summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Wittig <max.wittig@siemens.com>2020-05-04 08:10:49 +0200
committerMax Wittig <max.wittig@siemens.com>2020-05-16 15:12:23 +0200
commit49439916ab58b3481308df5800f9ffba8f5a8ffd (patch)
treecc9455a277227aaedd30e68b06703fd345720bbf
parent74b3ddcd5d44c4fe6c7c0189f87852d861e807f0 (diff)
downloadgitlab-49439916ab58b3481308df5800f9ffba8f5a8ffd.tar.gz
feat: add group runners api
-rw-r--r--docs/gl_objects/runners.rst5
-rw-r--r--gitlab/v4/objects.py15
2 files changed, 18 insertions, 2 deletions
diff --git a/docs/gl_objects/runners.rst b/docs/gl_objects/runners.rst
index ceda32a..b369bed 100644
--- a/docs/gl_objects/runners.rst
+++ b/docs/gl_objects/runners.rst
@@ -78,7 +78,7 @@ Verify a registered runner token::
except GitlabVerifyError:
print("Invalid token")
-Project runners
+Project/Group runners
===============
Reference
@@ -89,6 +89,9 @@ Reference
+ :class:`gitlab.v4.objects.ProjectRunner`
+ :class:`gitlab.v4.objects.ProjectRunnerManager`
+ :attr:`gitlab.v4.objects.Project.runners`
+ + :class:`gitlab.v4.objects.GroupRunner`
+ + :class:`gitlab.v4.objects.GroupRunnerManager`
+ + :attr:`gitlab.v4.objects.Group.runners`
* GitLab API: https://docs.gitlab.com/ce/api/runners.html
diff --git a/gitlab/v4/objects.py b/gitlab/v4/objects.py
index 42b2bf4..bc45bf1 100644
--- a/gitlab/v4/objects.py
+++ b/gitlab/v4/objects.py
@@ -1308,6 +1308,17 @@ class GroupProjectManager(ListMixin, RESTManager):
)
+class GroupRunner(ObjectDeleteMixin, RESTObject):
+ pass
+
+
+class GroupRunnerManager(NoUpdateMixin, RESTManager):
+ _path = "/groups/%(group_id)s/runners"
+ _obj_cls = GroupRunner
+ _from_parent_attrs = {"group_id": "id"}
+ _create_attrs = (("runner_id",), tuple())
+
+
class GroupSubgroup(RESTObject):
pass
@@ -1357,6 +1368,7 @@ class Group(SaveMixin, ObjectDeleteMixin, RESTObject):
("milestones", "GroupMilestoneManager"),
("notificationsettings", "GroupNotificationSettingsManager"),
("projects", "GroupProjectManager"),
+ ("runners", "GroupRunnerManager"),
("subgroups", "GroupSubgroupManager"),
("variables", "GroupVariableManager"),
("clusters", "GroupClusterManager"),
@@ -5382,7 +5394,8 @@ class RunnerManager(CRUDMixin, RESTManager):
query_data = {}
if scope is not None:
query_data["scope"] = scope
- return self.gitlab.http_list(path, query_data, **kwargs)
+ obj = self.gitlab.http_list(path, query_data, **kwargs)
+ return [self._obj_cls(self, item) for item in obj]
@cli.register_custom_action("RunnerManager", ("token",))
@exc.on_http_error(exc.GitlabVerifyError)