summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGauvain Pocentek <gauvain@pocentek.net>2016-08-07 21:49:44 +0200
committerGauvain Pocentek <gauvain@pocentek.net>2016-08-07 21:49:44 +0200
commit5614a7c9bf62aede3804469b6781f45d927508ea (patch)
treeb8b3b471a4e2a813f2c4e7f801c5d297d8515b49
parent799b5934d00c8ae199c5b0a6bdd18f4b0e06d223 (diff)
downloadgitlab-5614a7c9bf62aede3804469b6781f45d927508ea.tar.gz
docs: add MR API
-rw-r--r--docs/api-objects.rst1
-rw-r--r--docs/gl_objects/mrs.py61
-rw-r--r--docs/gl_objects/mrs.rst85
3 files changed, 147 insertions, 0 deletions
diff --git a/docs/api-objects.rst b/docs/api-objects.rst
index bf1a4a6..83aaa20 100644
--- a/docs/api-objects.rst
+++ b/docs/api-objects.rst
@@ -14,6 +14,7 @@ API objects manipulation
gl_objects/issues
gl_objects/labels
gl_objects/licenses
+ gl_objects/mrs
gl_objects/namespaces
gl_objects/projects
gl_objects/runners
diff --git a/docs/gl_objects/mrs.py b/docs/gl_objects/mrs.py
new file mode 100644
index 0000000..1309923
--- /dev/null
+++ b/docs/gl_objects/mrs.py
@@ -0,0 +1,61 @@
+# list
+mrs = gl.project_mergerequests.list(project_id=1)
+# or
+mrs = project.mergerequests.list()
+# end list
+
+# filtered list
+mrs = project.mergerequests.list(state='merged', order_by='updated_at')
+# end filtered list
+
+# get
+mr = gl.project_mergerequests.get(mr_id, project_id=1)
+# or
+mr = project.mergerequests.get(mr_id)
+# end get
+
+# create
+mr = gl.project_mergerequests.create({'source_branch': 'cool_feature',
+ 'target_branch': 'master',
+ 'title': 'merge cool feature'},
+ project_id=1)
+# or
+mr = project.mergerequests.create({'source_branch': 'cool_feature',
+ 'target_branch': 'master',
+ 'title': 'merge cool feature'})
+# end create
+
+# update
+mr.description = 'New description'
+mr.save()
+# end update
+
+# state
+mr.state_event = 'close' # or 'reopen'
+mr.save()
+# end state
+
+# delete
+gl.project_mergerequests.delete(mr_id, project_id=1)
+# or
+project.mergerequests.delete(mr_id)
+# or
+mr.delete()
+# end delete
+
+# merge
+mr.merge()
+# end merge
+
+# cancel
+mr.cancel_merge_when_build_succeeds()
+# end cancel
+
+# issues
+mr.closes_issues()
+# end issues
+
+# subscribe
+mr.subscribe()
+mr.unsubscribe()
+# end subscribe
diff --git a/docs/gl_objects/mrs.rst b/docs/gl_objects/mrs.rst
new file mode 100644
index 0000000..2def079
--- /dev/null
+++ b/docs/gl_objects/mrs.rst
@@ -0,0 +1,85 @@
+##############
+Merge requests
+##############
+
+Use :class:`~gitlab.objects.ProjectMergeRequest` objects to manipulate MRs for
+projects. The :attr:`gitlab.Gitlab.project_mergerequests` and
+:attr:`Project.mergerequests <gitlab.objects.Project.mergerequests>` manager
+objects provide helper functions.
+
+Examples
+--------
+
+List MRs for a project:
+
+.. literalinclude:: mrs.py
+ :start-after: # list
+ :end-before: # end list
+
+You can filter and sort the returned list with the following parameters:
+
+* ``iid``: iid (unique ID for the project) of the MR
+* ``state``: state of the MR. It can be one of ``all``, ``merged``, '``opened``
+ or ``closed``
+* ``order_by``: sort by ``created_at`` or ``updated_at``
+* ``sort``: sort order (``asc`` or ``desc``)
+
+For example:
+
+.. literalinclude:: mrs.py
+ :start-after: # list
+ :end-before: # end list
+
+Get a single MR:
+
+.. literalinclude:: mrs.py
+ :start-after: # get
+ :end-before: # end get
+
+Create a MR:
+
+.. literalinclude:: mrs.py
+ :start-after: # create
+ :end-before: # end create
+
+Update a MR:
+
+.. literalinclude:: mrs.py
+ :start-after: # update
+ :end-before: # end update
+
+Change the state of a MR (close or reopen):
+
+.. literalinclude:: mrs.py
+ :start-after: # state
+ :end-before: # end state
+
+Delete a MR:
+
+.. literalinclude:: mrs.py
+ :start-after: # delete
+ :end-before: # end delete
+
+Accept a MR:
+
+.. literalinclude:: mrs.py
+ :start-after: # merge
+ :end-before: # end merge
+
+Cancel a MR when the build succeeds:
+
+.. literalinclude:: mrs.py
+ :start-after: # cancel
+ :end-before: # end cancel
+
+List issues that will close on merge:
+
+.. literalinclude:: mrs.py
+ :start-after: # issues
+ :end-before: # end issues
+
+Subscribe/unsubscribe a MR:
+
+.. literalinclude:: mrs.py
+ :start-after: # subscribe
+ :end-before: # end subscribe