Skip to content

Commit 0832478

Browse files
lgatellierJohnVillalovos
authored andcommitted
feat(api): Add support for new runner creation API
1 parent 058d5a5 commit 0832478

File tree

3 files changed

+35
-0
lines changed

3 files changed

+35
-0
lines changed

gitlab/client.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,8 @@ def __init__(
189189
"""See :class:`~gitlab.v4.objects.PagesDomainManager`"""
190190
self.user_activities = objects.UserActivitiesManager(self)
191191
"""See :class:`~gitlab.v4.objects.UserActivitiesManager`"""
192+
self.user_runners = objects.UserRunnerManager(self)
193+
"""See :class:`~gitlab.v4.objects.UserRunnerManager`"""
192194
self.applications = objects.ApplicationManager(self)
193195
"""See :class:`~gitlab.v4.objects.ApplicationManager`"""
194196
self.variables = objects.VariableManager(self)

gitlab/v4/objects/users.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,8 @@
6363
"UserMembershipManager",
6464
"UserProject",
6565
"UserProjectManager",
66+
"UserRunner",
67+
"UserRunnerManager",
6668
]
6769

6870

@@ -678,3 +680,28 @@ class UserFollowingManager(ListMixin, RESTManager):
678680
_path = "/users/{user_id}/following"
679681
_obj_cls = User
680682
_from_parent_attrs = {"user_id": "id"}
683+
684+
685+
class UserRunner(RESTObject):
686+
pass
687+
688+
689+
class UserRunnerManager(CreateMixin, RESTManager):
690+
_path = "/user/runners"
691+
_obj_cls = UserRunner
692+
_types = {"tag_list": types.CommaSeparatedListAttribute}
693+
_create_attrs = RequiredOptional(
694+
required=("runner_type",),
695+
optional=(
696+
"group_id",
697+
"project_id",
698+
"description",
699+
"paused",
700+
"locked",
701+
"run_untagged",
702+
"tag_list",
703+
"access_level",
704+
"maximum_timeout",
705+
"maintenance_note",
706+
),
707+
)

tests/unit/objects/test_runners.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -258,6 +258,12 @@ def test_create_runner(gl: gitlab.Gitlab, resp_runner_register):
258258
assert runner.token == "6337ff461c94fd3fa32ba3b1ff4125"
259259

260260

261+
def test_create_user_runner(gl: gitlab.Gitlab, resp_runner_register):
262+
runner = gl.user_runners.create({"runner_type": "instance_type"})
263+
assert runner.id == "6"
264+
assert runner.token == "6337ff461c94fd3fa32ba3b1ff4125"
265+
266+
261267
def test_get_update_runner(gl: gitlab.Gitlab, resp_runner_detail):
262268
runner = gl.runners.get(6)
263269
assert runner.active is True

0 commit comments

Comments
 (0)