Skip to content

Commit

Permalink
chore: simplified search scope constants
Browse files Browse the repository at this point in the history
  • Loading branch information
valentingregoire committed Sep 29, 2020
1 parent 650b65c commit 16fc048
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 65 deletions.
51 changes: 18 additions & 33 deletions docs/gl_objects/search.rst
Expand Up @@ -7,41 +7,26 @@ Searches are based on a scope (issues, merge requests, and so on) and a search
string. The following constants are provided to represent the possible scopes:


* global scopes:
* Shared scopes (global, group and project):

+ ``gitlab.SEARCH_SCOPE_GLOBAL_PROJECTS``: ``projects``
+ ``gitlab.SEARCH_SCOPE_GLOBAL_ISSUES``: ``issues``
+ ``gitlab.SEARCH_SCOPE_GLOBAL_MERGE_REQUESTS``: ``merge_requests``
+ ``gitlab.SEARCH_SCOPE_GLOBAL_MILESTONES``: ``milestones``
+ ``gitlab.SEARCH_SCOPE_GLOBAL_SNIPPET_TITLES``: ``snippet_titles``
+ ``gitlab.SEARCH_SCOPE_GLOBAL_WIKI_BLOBS``: ``wiki_blobs``
+ ``gitlab.SEARCH_SCOPE_GLOBAL_COMMITS``: ``commits``
+ ``gitlab.SEARCH_SCOPE_GLOBAL_BLOBS``: ``blobs``
+ ``gitlab.SEARCH_SCOPE_GLOBAL_USERS``: ``users``
+ ``gitlab.SEARCH_SCOPE_PROJECTS``: ``projects``
+ ``gitlab.SEARCH_SCOPE_ISSUES``: ``issues``
+ ``gitlab.SEARCH_SCOPE_MERGE_REQUESTS``: ``merge_requests``
+ ``gitlab.SEARCH_SCOPE_MILESTONES``: ``milestones``
+ ``gitlab.SEARCH_SCOPE_WIKI_BLOBS``: ``wiki_blobs``
+ ``gitlab.SEARCH_SCOPE_COMMITS``: ``commits``
+ ``gitlab.SEARCH_SCOPE_BLOBS``: ``blobs``
+ ``gitlab.SEARCH_SCOPE_USERS``: ``users``


* group scopes:
* specific global scope:

+ ``gitlab.SEARCH_SCOPE_GROUP_PROJECTS``: ``projects``
+ ``gitlab.SEARCH_SCOPE_GROUP_ISSUES``: ``issues``
+ ``gitlab.SEARCH_SCOPE_GROUP_MERGE_REQUESTS``: ``merge_requests``
+ ``gitlab.SEARCH_SCOPE_GROUP_MILESTONES``: ``milestones``
+ ``gitlab.SEARCH_SCOPE_GROUP_WIKI_BLOBS``: ``wiki_blobs``
+ ``gitlab.SEARCH_SCOPE_GROUP_COMMITS``: ``commits``
+ ``gitlab.SEARCH_SCOPE_GROUP_BLOBS``: ``blobs``
+ ``gitlab.SEARCH_SCOPE_GROUP_USERS``: ``users``
+ ``gitlab.SEARCH_SCOPE_GLOBAL_SNIPPET_TITLES``: ``snippet_titles``


* project scopes:
* specific project scope:

+ ``gitlab.SEARCH_SCOPE_PROJECT_ISSUES``: ``issues``
+ ``gitlab.SEARCH_SCOPE_PROJECT_MERGE_REQUESTS``: ``merge_requests``
+ ``gitlab.SEARCH_SCOPE_PROJECT_MILESTONES``: ``milestones``
+ ``gitlab.SEARCH_SCOPE_PROJECT_NOTES``: ``notes``
+ ``gitlab.SEARCH_SCOPE_PROJECT_WIKI_BLOBS``: ``wiki_blobs``
+ ``gitlab.SEARCH_SCOPE_PROJECT_COMMITS``: ``commits``
+ ``gitlab.SEARCH_SCOPE_PROJECT_BLOBS``: ``blobs``
+ ``gitlab.SEARCH_SCOPE_PROJECT_USERS``: ``users``


Reference
Expand All @@ -61,30 +46,30 @@ Examples
Search for issues matching a specific string::

# global search
gl.search(gitlab.SEARCH_SCOPE_GLOBAL_ISSUES, 'regression')
gl.search(gitlab.SEARCH_SCOPE_ISSUES, 'regression')

# group search
group = gl.groups.get('mygroup')
group.search(gitlab.SEARCH_SCOPE_GROUP_ISSUES, 'regression')
group.search(gitlab.SEARCH_SCOPE_ISSUES, 'regression')

# project search
project = gl.projects.get('myproject')
project.search(gitlab.SEARCH_SCOPE_PROJECT_ISSUES, 'regression')
project.search(gitlab.SEARCH_SCOPE_ISSUES, 'regression')

The ``search()`` methods implement the pagination support::

# get lists of 10 items, and start at page 2
gl.search(gitlab.SEARCH_SCOPE_GLOBAL_ISSUES, search_str, page=2, per_page=10)
gl.search(gitlab.SEARCH_SCOPE_ISSUES, search_str, page=2, per_page=10)

# get a generator that will automatically make required API calls for
# pagination
for item in gl.search(gitlab.SEARCH_SCOPE_GLOBAL_ISSUES, search_str, as_list=False):
for item in gl.search(gitlab.SEARCH_SCOPE_ISSUES, search_str, as_list=False):
do_something(item)

The search API doesn't return objects, but dicts. If you need to act on
objects, you need to create them explicitly::

for item in gl.search(gitlab.SEARCH_SCOPE_GLOBAL_ISSUES, search_str, as_list=False):
for item in gl.search(gitlab.SEARCH_SCOPE_ISSUES, search_str, as_list=False):
issue_project = gl.projects.get(item['project_id'], lazy=True)
issue = issue_project.issues.get(item['iid'])
issue.state = 'closed'
Expand Down
43 changes: 11 additions & 32 deletions gitlab/const.py
Expand Up @@ -35,39 +35,18 @@
NOTIFICATION_LEVEL_CUSTOM = "custom"

# Search scopes
_SEARCH_SCOPE_PROJECTS = "projects"
_SEARCH_SCOPE_ISSUES = "issues"
_SEARCH_SCOPE_MERGE_REQUESTS = "merge_requests"
_SEARCH_SCOPE_MILESTONES = "milestones"
_SEARCH_SCOPE_WIKI_BLOBS = "wiki_blobs"
_SEARCH_SCOPE_COMMITS = "commits"
_SEARCH_SCOPE_BLOBS = "blobs"
_SEARCH_SCOPE_USERS = "users"
# all scopes (global, group and project)
SEARCH_SCOPE_PROJECTS = "projects"
SEARCH_SCOPE_ISSUES = "issues"
SEARCH_SCOPE_MERGE_REQUESTS = "merge_requests"
SEARCH_SCOPE_MILESTONES = "milestones"
SEARCH_SCOPE_WIKI_BLOBS = "wiki_blobs"
SEARCH_SCOPE_COMMITS = "commits"
SEARCH_SCOPE_BLOBS = "blobs"
SEARCH_SCOPE_USERS = "users"

SEARCH_SCOPE_GLOBAL_PROJECTS = _SEARCH_SCOPE_PROJECTS
SEARCH_SCOPE_GLOBAL_ISSUES = _SEARCH_SCOPE_ISSUES
SEARCH_SCOPE_GLOBAL_MERGE_REQUESTS = _SEARCH_SCOPE_MERGE_REQUESTS
SEARCH_SCOPE_GLOBAL_MILESTONES = _SEARCH_SCOPE_MILESTONES
# specific global scope
SEARCH_SCOPE_GLOBAL_SNIPPET_TITLES = "snippet_titles"
SEARCH_SCOPE_GLOBAL_WIKI_BLOBS = _SEARCH_SCOPE_WIKI_BLOBS
SEARCH_SCOPE_GLOBAL_COMMITS = _SEARCH_SCOPE_COMMITS
SEARCH_SCOPE_GLOBAL_BLOBS = _SEARCH_SCOPE_BLOBS
SEARCH_SCOPE_GLOBAL_USERS = _SEARCH_SCOPE_USERS

SEARCH_SCOPE_GROUP_PROJECTS = _SEARCH_SCOPE_PROJECTS
SEARCH_SCOPE_GROUP_ISSUES = _SEARCH_SCOPE_ISSUES
SEARCH_SCOPE_GROUP_MERGE_REQUESTS = _SEARCH_SCOPE_MERGE_REQUESTS
SEARCH_SCOPE_GROUP_MILESTONES = _SEARCH_SCOPE_MILESTONES
SEARCH_SCOPE_GROUP_WIKI_BLOBS = _SEARCH_SCOPE_WIKI_BLOBS
SEARCH_SCOPE_GROUP_COMMITS = _SEARCH_SCOPE_COMMITS
SEARCH_SCOPE_GROUP_BLOBS = _SEARCH_SCOPE_BLOBS
SEARCH_SCOPE_GROUP_USERS = _SEARCH_SCOPE_USERS

SEARCH_SCOPE_PROJECT_ISSUES = _SEARCH_SCOPE_ISSUES
SEARCH_SCOPE_PROJECT_MERGE_REQUESTS = _SEARCH_SCOPE_MERGE_REQUESTS
SEARCH_SCOPE_PROJECT_MILESTONES = _SEARCH_SCOPE_MILESTONES
# specific project scope
SEARCH_SCOPE_PROJECT_NOTES = "notes"
SEARCH_SCOPE_PROJECT_WIKI_BLOBS = _SEARCH_SCOPE_WIKI_BLOBS
SEARCH_SCOPE_PROJECT_COMMITS = _SEARCH_SCOPE_COMMITS
SEARCH_SCOPE_PROJECT_BLOBS = _SEARCH_SCOPE_BLOBS
SEARCH_SCOPE_PROJECT_USERS = _SEARCH_SCOPE_USERS

0 comments on commit 16fc048

Please sign in to comment.