From d4df36b3d50c8d0b3b106b8329667cb8abbc603c Mon Sep 17 00:00:00 2001 From: Mond WAN Date: Fri, 17 Mar 2017 11:13:27 +0800 Subject: [PATCH 1/2] Implement create pipeline API * Integrate with BaseManager * Add doc about how to create a pipeline Reference: * https://docs.gitlab.com/ee/api/pipelines.html#create-a-new-pipeline --- docs/gl_objects/projects.py | 6 ++++++ docs/gl_objects/projects.rst | 6 ++++++ gitlab/objects.py | 6 +++++- 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/docs/gl_objects/projects.py b/docs/gl_objects/projects.py index 54bde842e..6fd449593 100644 --- a/docs/gl_objects/projects.py +++ b/docs/gl_objects/projects.py @@ -400,6 +400,12 @@ pipeline = project.pipelines.get(pipeline_id) # end pipeline get +# pipeline create +pipeline = gl.project_pipelines.create({'project_id': 1, 'ref': 'master'}) +# or +project.pipelines.create({'ref': 'master'}) +# end pipeline create + # pipeline retry pipeline.retry() # end pipeline retry diff --git a/docs/gl_objects/projects.rst b/docs/gl_objects/projects.rst index dc6c48baf..300b84845 100644 --- a/docs/gl_objects/projects.rst +++ b/docs/gl_objects/projects.rst @@ -438,6 +438,12 @@ Cancel builds in a pipeline: :start-after: # pipeline cancel :end-before: # end pipeline cancel +Create a pipeline for a particular reference: + +.. literalinclude:: projects.py + :start-after: # pipeline create + :end-before: # end pipeline create + Services -------- diff --git a/gitlab/objects.py b/gitlab/objects.py index efe75d0a6..e97ca57e0 100644 --- a/gitlab/objects.py +++ b/gitlab/objects.py @@ -1971,10 +1971,14 @@ class ProjectFileManager(BaseManager): class ProjectPipeline(GitlabObject): _url = '/projects/%(project_id)s/pipelines' - canCreate = False + _create_url = '/projects/%(project_id)s/pipeline' + canUpdate = False canDelete = False + requiredUrlAttrs = ['project_id'] + requiredCreateAttrs = ['ref'] + def retry(self, **kwargs): """Retries failed builds in a pipeline. From c4ac70415625f18b68cb2b5a3e4b0be23ecb350b Mon Sep 17 00:00:00 2001 From: Mond WAN Date: Sat, 18 Mar 2017 02:05:51 +0800 Subject: [PATCH 2/2] Update the document for consistency --- docs/gl_objects/projects.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/gl_objects/projects.py b/docs/gl_objects/projects.py index 6fd449593..4412f22f8 100644 --- a/docs/gl_objects/projects.py +++ b/docs/gl_objects/projects.py @@ -403,7 +403,7 @@ # pipeline create pipeline = gl.project_pipelines.create({'project_id': 1, 'ref': 'master'}) # or -project.pipelines.create({'ref': 'master'}) +pipeline = project.pipelines.create({'ref': 'master'}) # end pipeline create # pipeline retry