diff --git a/docs/gl_objects/builds.rst b/docs/gl_objects/builds.rst index ee450905a..dfb9acc13 100644 --- a/docs/gl_objects/builds.rst +++ b/docs/gl_objects/builds.rst @@ -29,6 +29,10 @@ Get a pipeline for a project:: pipeline = project.pipelines.get(pipeline_id) +Get variables of a pipeline:: + + variables = pipeline.variables.list() + Create a pipeline for a particular reference:: pipeline = project.pipelines.create({'ref': 'master'}) diff --git a/gitlab/v4/objects.py b/gitlab/v4/objects.py index 16a3da8aa..8fc715090 100644 --- a/gitlab/v4/objects.py +++ b/gitlab/v4/objects.py @@ -3100,8 +3100,21 @@ class ProjectPipelineJobManager(ListMixin, RESTManager): _list_filters = ("scope",) +class ProjectPipelineVariable(RESTObject): + _id_attr = "key" + + +class ProjectPipelineVariableManager(ListMixin, RESTManager): + _path = "/projects/%(project_id)s/pipelines/%(pipeline_id)s/variables" + _obj_cls = ProjectPipelineVariable + _from_parent_attrs = {"project_id": "project_id", "pipeline_id": "id"} + + class ProjectPipeline(RESTObject, RefreshMixin, ObjectDeleteMixin): - _managers = (("jobs", "ProjectPipelineJobManager"),) + _managers = ( + ("jobs", "ProjectPipelineJobManager"), + ("variables", "ProjectPipelineVariableManager"), + ) @cli.register_custom_action("ProjectPipeline") @exc.on_http_error(exc.GitlabPipelineCancelError)