diff options
-rw-r--r-- | docs/gl_objects/runners.py | 18 | ||||
-rw-r--r-- | docs/gl_objects/runners.rst | 42 | ||||
-rw-r--r-- | gitlab/objects.py | 11 |
3 files changed, 67 insertions, 4 deletions
diff --git a/docs/gl_objects/runners.py b/docs/gl_objects/runners.py index 3de36df..1a9cb82 100644 --- a/docs/gl_objects/runners.py +++ b/docs/gl_objects/runners.py @@ -22,3 +22,21 @@ gl.runners.delete(runner_id) # or runner.delete() # end delete + +# project list +runners = gl.project_runners.list(project_id=1) +# or +runners = project.runners.list() +# end project list + +# project enable +p_runner = gl.project_runners.create({'runner_id': runner.id}, project_id=1) +# or +p_runner = project.runners.create({'runner_id': runner.id}) +# end project enable + +# project disable +gl.project_runners.delete(runner.id) +# or +project.runners.delete(runner.id) +# end project disable diff --git a/docs/gl_objects/runners.rst b/docs/gl_objects/runners.rst index 2f7e599..02db9be 100644 --- a/docs/gl_objects/runners.rst +++ b/docs/gl_objects/runners.rst @@ -2,11 +2,17 @@ Runners ####### -Global runners -============== +Runners are external process used to run CI jobs. They are deployed by the +administrator and registered to the GitLab instance. -Use :class:`~gitlab.objects.Runner` objects to manipulate runners. The -:attr:`gitlab.Gitlab.runners` manager object provides helper functions. +Shared runners are available for all projects. Specific runners are enabled for +a list of projects. + +Global runners (admin) +====================== + +* Object class: :class:`~gitlab.objects.Runner` +* Manager objects: :attr:`gitlab.Gitlab.runners` Examples -------- @@ -48,3 +54,31 @@ Remove a runner: .. literalinclude:: runners.py :start-after: # delete :end-before: # end delete + +Project runners +=============== + +* Object class: :class:`~gitlab.objects.ProjectRunner` +* Manager objects: :attr:`gitlab.Gitlab.runners`, + :attr:`gitlab.Gitlab.Project.runners` + +Examples +-------- + +List the runners for a project: + +.. literalinclude:: runners.py + :start-after: # project list + :end-before: # end project list + +Enable a specific runner for a project: + +.. literalinclude:: runners.py + :start-after: # project enable + :end-before: # end project enable + +Disable a specific runner for a project: + +.. literalinclude:: runners.py + :start-after: # project disable + :end-before: # end project disable diff --git a/gitlab/objects.py b/gitlab/objects.py index b2c0c04..3f09aad 100644 --- a/gitlab/objects.py +++ b/gitlab/objects.py @@ -2142,6 +2142,16 @@ class ProjectDeploymentManager(BaseManager): obj_cls = ProjectDeployment +class ProjectRunner(GitlabObject): + _url = '/projects/%(project_id)s/runners' + canUpdate = False + requiredCreateAttrs = ['runner_id'] + + +class ProjectRunnerManager(BaseManager): + obj_cls = ProjectRunner + + class Project(GitlabObject): _url = '/projects' _constructorTypes = {'owner': 'User', 'namespace': 'Group'} @@ -2189,6 +2199,7 @@ class Project(GitlabObject): ('notificationsettings', ProjectNotificationSettingsManager, [('project_id', 'id')]), ('pipelines', ProjectPipelineManager, [('project_id', 'id')]), + ('runners', ProjectRunnerManager, [('project_id', 'id')]), ('services', ProjectServiceManager, [('project_id', 'id')]), ('snippets', ProjectSnippetManager, [('project_id', 'id')]), ('tags', ProjectTagManager, [('project_id', 'id')]), |