diff --git a/pagure/lib/__init__.py b/pagure/lib/__init__.py index 4926dc1..92200d2 100644 --- a/pagure/lib/__init__.py +++ b/pagure/lib/__init__.py @@ -1172,7 +1172,7 @@ def fork_project(session, user, repo, gitfolder, def search_projects( - session, username=None, fork=None, + session, username=None, fork=None, tags=None, start=None, limit=None, count=False): '''List existing projects ''' @@ -1236,6 +1236,16 @@ def search_projects( model.Project.parent_id == None ) + if tags is not None: + if not isinstance(tags, (list, tuple)): + tags = [tags] + + projects = projects.filter( + model.Project.id == model.TagProject.project_id + ).filter( + model.TagProject.tag.in_(tags) + ) + query = session.query( model.Project ).filter(