File tree Expand file tree Collapse file tree 3 files changed +49
-0
lines changed
Expand file tree Collapse file tree 3 files changed +49
-0
lines changed Original file line number Diff line number Diff 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 )
Original file line number Diff line number Diff line change 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+ )
Original file line number Diff line number Diff line change 66import pytest
77import responses
88
9+ import gitlab
910from gitlab .v4 .objects import StarredProject , User , UserMembership , UserStatus
1011
1112from .test_projects import project_content
@@ -243,6 +244,19 @@ def resp_starred_projects():
243244 yield rsps
244245
245246
247+ @pytest .fixture
248+ def resp_runner_create ():
249+ with responses .RequestsMock () as rsps :
250+ rsps .add (
251+ method = responses .POST ,
252+ url = "http://localhost/api/v4/user/runners" ,
253+ json = {"id" : "6" , "token" : "6337ff461c94fd3fa32ba3b1ff4125" },
254+ content_type = "application/json" ,
255+ status = 200 ,
256+ )
257+ yield rsps
258+
259+
246260def test_get_user (gl , resp_get_user ):
247261 user = gl .users .get (1 )
248262 assert isinstance (user , User )
@@ -306,3 +320,9 @@ def test_list_starred_projects(user, resp_starred_projects):
306320 projects = user .starred_projects .list ()
307321 assert isinstance (projects [0 ], StarredProject )
308322 assert projects [0 ].id == project_content ["id" ]
323+
324+
325+ def test_create_user_runner (gl : gitlab .Gitlab , resp_runner_create ):
326+ runner = gl .user_runners .create ({"runner_type" : "instance_type" })
327+ assert runner .id == "6"
328+ assert runner .token == "6337ff461c94fd3fa32ba3b1ff4125"
You can’t perform that action at this time.
0 commit comments