From 8ef53d6f6180440582d1cca305fd084c9eb70443 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Valentin=20Gr=C3=A9goire?= Date: Tue, 7 Jul 2020 14:50:05 +0200 Subject: [PATCH 1/5] chore: added constants for search API --- gitlab/const.py | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/gitlab/const.py b/gitlab/const.py index 7791a39b3..069f0bf1b 100644 --- a/gitlab/const.py +++ b/gitlab/const.py @@ -33,3 +33,40 @@ NOTIFICATION_LEVEL_GLOBAL = "global" NOTIFICATION_LEVEL_MENTION = "mention" NOTIFICATION_LEVEL_CUSTOM = "custom" + +_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 +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 +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 From 9baa90535b5a8096600f9aec96e528f4d2ac7d74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Valentin=20Gr=C3=A9goire?= Date: Wed, 16 Sep 2020 20:42:24 +0200 Subject: [PATCH 2/5] fix: typo --- docs/gl_objects/badges.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/gl_objects/badges.rst b/docs/gl_objects/badges.rst index 1bda282dd..2a26bb3fe 100644 --- a/docs/gl_objects/badges.rst +++ b/docs/gl_objects/badges.rst @@ -28,7 +28,7 @@ List badges:: badges = group_or_project.badges.list() -Get ad badge:: +Get a badge:: badge = group_or_project.badges.get(badge_id) From 7565bf059b240c9fffaf6959ee168a12d0fedd77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Valentin=20Gr=C3=A9goire?= Date: Wed, 16 Sep 2020 21:31:23 +0200 Subject: [PATCH 3/5] chore: added docs for search scopes constants --- docs/gl_objects/search.rst | 40 +++++++++++++++++++++++++++++++++++++- gitlab/const.py | 1 + 2 files changed, 40 insertions(+), 1 deletion(-) diff --git a/docs/gl_objects/search.rst b/docs/gl_objects/search.rst index 750bbe0f1..e7ba5d71e 100644 --- a/docs/gl_objects/search.rst +++ b/docs/gl_objects/search.rst @@ -4,7 +4,45 @@ Search API You can search for resources at the top level, in a project or in a group. Searches are based on a scope (issues, merge requests, and so on) and a search -string. +string. The following constants are provided to represent the possible scopes: + + +* global scopes: + + + ``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`` + + +* group scopes: + + + ``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`` + + +* project scopes: + + + ``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 --------- diff --git a/gitlab/const.py b/gitlab/const.py index 069f0bf1b..1abad86e2 100644 --- a/gitlab/const.py +++ b/gitlab/const.py @@ -34,6 +34,7 @@ NOTIFICATION_LEVEL_MENTION = "mention" NOTIFICATION_LEVEL_CUSTOM = "custom" +# Search scopes _SEARCH_SCOPE_PROJECTS = "projects" _SEARCH_SCOPE_ISSUES = "issues" _SEARCH_SCOPE_MERGE_REQUESTS = "merge_requests" From 650b65c389c686bcc9a9cef81b6ca2a509d8cad2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Valentin=20Gr=C3=A9goire?= Date: Wed, 16 Sep 2020 22:04:53 +0200 Subject: [PATCH 4/5] fix: docs changed using the consts --- docs/gl_objects/search.rst | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/docs/gl_objects/search.rst b/docs/gl_objects/search.rst index e7ba5d71e..283589ef4 100644 --- a/docs/gl_objects/search.rst +++ b/docs/gl_objects/search.rst @@ -61,31 +61,32 @@ Examples Search for issues matching a specific string:: # global search - gl.search('issues', 'regression') + gl.search(gitlab.SEARCH_SCOPE_GLOBAL_ISSUES, 'regression') # group search group = gl.groups.get('mygroup') - group.search('issues', 'regression') + group.search(gitlab.SEARCH_SCOPE_GROUP_ISSUES, 'regression') # project search project = gl.projects.get('myproject') - project.search('issues', 'regression') + project.search(gitlab.SEARCH_SCOPE_PROJECT_ISSUES, 'regression') The ``search()`` methods implement the pagination support:: # get lists of 10 items, and start at page 2 - gl.search('issues', search_str, page=2, per_page=10) + gl.search(gitlab.SEARCH_SCOPE_GLOBAL_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('issues', search_str, as_list=False): + for item in gl.search(gitlab.SEARCH_SCOPE_GLOBAL_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('issues', search_str, as_list=False): + for item in gl.search(gitlab.SEARCH_SCOPE_GLOBAL_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' issue.save() + From 16fc0489b2fe24e0356e9092c9878210b7330a72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Valentin=20Gr=C3=A9goire?= Date: Tue, 29 Sep 2020 13:57:48 +0200 Subject: [PATCH 5/5] chore: simplified search scope constants --- docs/gl_objects/search.rst | 51 ++++++++++++++------------------------ 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 283589ef4..eb8ba80b0 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 1abad86e2..0d2f421e8 100644 --- a/gitlab/const.py +++ b/gitlab/const.py @@ -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