summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/gl_objects/builds.rst4
-rw-r--r--gitlab/v4/objects.py15
2 files changed, 18 insertions, 1 deletions
diff --git a/docs/gl_objects/builds.rst b/docs/gl_objects/builds.rst
index a80fe6d..d74d9d6 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 16a3da8..8fc7150 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)