summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/gl_objects/mrs.py8
-rw-r--r--docs/gl_objects/mrs.rst22
-rw-r--r--gitlab/objects.py15
3 files changed, 41 insertions, 4 deletions
diff --git a/docs/gl_objects/mrs.py b/docs/gl_objects/mrs.py
index 0ef3b87..021338d 100644
--- a/docs/gl_objects/mrs.py
+++ b/docs/gl_objects/mrs.py
@@ -63,3 +63,11 @@ mr.unsubscribe()
# todo
mr.todo()
# end todo
+
+# diff list
+diffs = mr.diffs.list()
+# end diff list
+
+# diff get
+diff = mr.diffs.get(diff_id)
+# end diff get
diff --git a/docs/gl_objects/mrs.rst b/docs/gl_objects/mrs.rst
index 6c83ab7..d6e10d3 100644
--- a/docs/gl_objects/mrs.rst
+++ b/docs/gl_objects/mrs.rst
@@ -2,10 +2,12 @@
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.
+You can use merge requests to notify a project that a branch is ready for
+merging. The owner of the target projet can accept the merge request.
+
+* Object class: :class:`~gitlab.objects.ProjectMergeRequest`
+* Manager objects: :attr:`gitlab.Gitlab.project_mergerequests`,
+ :attr:`Project.mergerequests <gitlab.objects.Project.mergerequests>`
Examples
--------
@@ -89,3 +91,15 @@ Mark a MR as todo:
.. literalinclude:: mrs.py
:start-after: # todo
:end-before: # end todo
+
+List the diffs for a merge request:
+
+.. literalinclude:: mrs.py
+ :start-after: # diff list
+ :end-before: # end diff list
+
+Get a diff for a merge request:
+
+.. literalinclude:: mrs.py
+ :start-after: # diff get
+ :end-before: # end diff get
diff --git a/gitlab/objects.py b/gitlab/objects.py
index f9b29a0..85868b3 100644
--- a/gitlab/objects.py
+++ b/gitlab/objects.py
@@ -1512,6 +1512,19 @@ class ProjectTagManager(BaseManager):
obj_cls = ProjectTag
+class ProjectMergeRequestDiff(GitlabObject):
+ _url = ('/projects/%(project_id)s/merge_requests/'
+ '%(merge_request_id)s/versions')
+ canCreate = False
+ canUpdate = False
+ canDelete = False
+ requiredUrlAttrs = ['project_id', 'merge_request_id']
+
+
+class ProjectMergeRequestDiffManager(BaseManager):
+ obj_cls = ProjectMergeRequestDiff
+
+
class ProjectMergeRequestNote(GitlabObject):
_url = '/projects/%(project_id)s/merge_requests/%(merge_request_id)s/notes'
_constructorTypes = {'author': 'User'}
@@ -1539,6 +1552,8 @@ class ProjectMergeRequest(GitlabObject):
managers = (
('notes', ProjectMergeRequestNoteManager,
[('project_id', 'project_id'), ('merge_request_id', 'id')]),
+ ('diffs', ProjectMergeRequestDiffManager,
+ [('project_id', 'project_id'), ('merge_request_id', 'id')]),
)
def _data_for_gitlab(self, extra_parameters={}, update=False,