diff options
author | Valentin Grégoire <valentin.gregoire@gmail.com> | 2020-09-29 13:57:48 +0200 |
---|---|---|
committer | Valentin Grégoire <valentin.gregoire@gmail.com> | 2020-09-29 13:57:48 +0200 |
commit | 16fc0489b2fe24e0356e9092c9878210b7330a72 (patch) | |
tree | b9c778d75304c5bf2916813e8677949335a4262b | |
parent | 650b65c389c686bcc9a9cef81b6ca2a509d8cad2 (diff) | |
download | gitlab-16fc0489b2fe24e0356e9092c9878210b7330a72.tar.gz |
chore: simplified search scope constants
-rw-r--r-- | docs/gl_objects/search.rst | 51 | ||||
-rw-r--r-- | gitlab/const.py | 43 |
2 files changed, 29 insertions, 65 deletions
diff --git a/docs/gl_objects/search.rst b/docs/gl_objects/search.rst index 283589e..eb8ba80 100644 --- a/docs/gl_objects/search.rst +++ b/docs/gl_objects/search.rst @@ -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 @@ -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' diff --git a/gitlab/const.py b/gitlab/const.py index 1abad86..0d2f421 100644 --- a/gitlab/const.py +++ b/gitlab/const.py @@ -35,39 +35,18 @@ NOTIFICATION_LEVEL_MENTION = "mention" 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 |