diff --git a/gertty/search/parser.py b/gertty/search/parser.py index a18d488..f1cd295 100644 --- a/gertty/search/parser.py +++ b/gertty/search/parser.py @@ -83,6 +83,7 @@ def SearchParser(): | reviewer_term | commit_term | project_term + | projects_term | project_key_term | branch_term | topic_term @@ -178,6 +179,10 @@ def SearchParser(): else: p[0] = gertty.db.project_table.c.name == p[2] + def p_projects_term(p): + '''projects_term : OP_PROJECTS string''' + p[0] = gertty.db.project_table.c.name.like('%s%%' % p[2]) + def p_project_key_term(p): '''project_key_term : OP_PROJECT_KEY NUMBER''' p[0] = gertty.db.change_table.c.project_key == p[2] diff --git a/gertty/search/tokenizer.py b/gertty/search/tokenizer.py index a4e0cb1..d3726aa 100644 --- a/gertty/search/tokenizer.py +++ b/gertty/search/tokenizer.py @@ -25,6 +25,7 @@ operators = { #'OP_REVIEWERIN', # needs local group membership 'commit': 'OP_COMMIT', 'project': 'OP_PROJECT', + 'projects': 'OP_PROJECTS', '_project_key': 'OP_PROJECT_KEY', # internal gertty use only 'branch': 'OP_BRANCH', 'topic': 'OP_TOPIC',