Commit 63d7192b authored by Greg Messner's avatar Greg Messner
Browse files

Added support for merge request diff versions (#562)

parent 76900ce0
......@@ -17,6 +17,7 @@ import org.gitlab4j.api.models.ApprovalState;
import org.gitlab4j.api.models.Commit;
import org.gitlab4j.api.models.Issue;
import org.gitlab4j.api.models.MergeRequest;
import org.gitlab4j.api.models.MergeRequestDiff;
import org.gitlab4j.api.models.MergeRequestFilter;
import org.gitlab4j.api.models.MergeRequestParams;
import org.gitlab4j.api.models.Participant;
......@@ -388,6 +389,50 @@ public class MergeRequestApi extends AbstractApi {
return (getCommits(projectIdOrPath, mergeRequestIid, getDefaultPerPage()).stream());
}
/**
* Get a list of merge request diff versions.
*
* <pre><code>GitLab Endpoint: GET /projects/:id/merge_requests/:merge_request_iid/versions</code></pre>
*
* @param projectIdOrPath the project in the form of an Integer(ID), String(path), or Project instance
* @param mergeRequestIid the internal ID of the merge request
* @return a List of merge request diff versions for the specified merge request
* @throws GitLabApiException if any exception occurs
*/
public List<MergeRequestDiff> getMergeRequestDiffs(Object projectIdOrPath, Integer mergeRequestIid) throws GitLabApiException {
return (getMergeRequestDiffs(projectIdOrPath, mergeRequestIid, getDefaultPerPage()).all());
}
/**
* Get a Pager of merge request diff versions.
*
* <pre><code>GitLab Endpoint: GET /projects/:id/merge_requests/:merge_request_iid/versions</code></pre>
*
* @param projectIdOrPath the project in the form of an Integer(ID), String(path), or Project instance
* @param mergeRequestIid the internal ID of the merge request
* @param itemsPerPage the number of MergeRequest instances that will be fetched per page
* @return a Pager of merge request diff versions for the specified merge request
* @throws GitLabApiException if any exception occurs
*/
public Pager<MergeRequestDiff> getMergeRequestDiffs(Object projectIdOrPath, Integer mergeRequestIid, int itemsPerPage) throws GitLabApiException {
return (new Pager<MergeRequestDiff>(this, MergeRequestDiff.class, itemsPerPage, null,
"projects", getProjectIdOrPath(projectIdOrPath), "merge_requests", mergeRequestIid, "versions"));
}
/**
* Get a Stream of merge request diff versions.
*
* <pre><code>GitLab Endpoint: GET /projects/:id/merge_requests/:merge_request_iid/versions</code></pre>
*
* @param projectIdOrPath the project in the form of an Integer(ID), String(path), or Project instance
* @param mergeRequestIid the internal ID of the merge request
* @return a Stream of merge request diff versions for the specified merge request
* @throws GitLabApiException if any exception occurs
*/
public Stream<MergeRequestDiff> getMergeRequestDiffsStream(Object projectIdOrPath, Integer mergeRequestIid) throws GitLabApiException {
return (getMergeRequestDiffs(projectIdOrPath, mergeRequestIid, getDefaultPerPage()).stream());
}
/**
* Creates a merge request.
*
......
......@@ -2,7 +2,6 @@ package org.gitlab4j.api.models;
import java.util.Date;
import org.gitlab4j.api.Constants.MergeRequestState;
import org.gitlab4j.api.utils.JacksonJson;
public class MergeRequestDiff {
......@@ -13,7 +12,7 @@ public class MergeRequestDiff {
private String startCommitSha;
private Date createdAt;
private Integer mergeRequestId;
private MergeRequestState state;
private String state;
private String realSize;
public Integer getId() {
......@@ -64,11 +63,11 @@ public class MergeRequestDiff {
this.mergeRequestId = mergeRequestId;
}
public MergeRequestState getState() {
public String getState() {
return state;
}
public void setState(MergeRequestState state) {
public void setState(String state) {
this.state = state;
}
......
......@@ -74,6 +74,7 @@ import org.gitlab4j.api.models.Label;
import org.gitlab4j.api.models.LabelEvent;
import org.gitlab4j.api.models.Member;
import org.gitlab4j.api.models.MergeRequest;
import org.gitlab4j.api.models.MergeRequestDiff;
import org.gitlab4j.api.models.Milestone;
import org.gitlab4j.api.models.Note;
import org.gitlab4j.api.models.NotificationSettings;
......@@ -538,6 +539,12 @@ public class TestGitLabApiBeans {
assertTrue(compareJson(mergeRequest, "merge-request.json"));
}
@Test
public void testMergeRequestDiffs() throws Exception {
List<MergeRequestDiff> diffs = unmarshalResourceList(MergeRequestDiff.class, "merge-request-diffs.json");
assertTrue(compareJson(diffs, "merge-request-diffs.json"));
}
@Test
public void testMilestone() throws Exception {
Milestone milestone = unmarshalResource(Milestone.class, "milestone.json");
......
[{
"id": 110,
"head_commit_sha": "33e2ee8579fda5bc36accc9c6fbd0b4fefda9e30",
"base_commit_sha": "eeb57dffe83deb686a60a71c16c32f71046868fd",
"start_commit_sha": "eeb57dffe83deb686a60a71c16c32f71046868fd",
"created_at": "2016-07-26T14:44:48.926Z",
"merge_request_id": 105,
"state": "collected",
"real_size": "1"
}, {
"id": 108,
"head_commit_sha": "3eed087b29835c48015768f839d76e5ea8f07a24",
"base_commit_sha": "eeb57dffe83deb686a60a71c16c32f71046868fd",
"start_commit_sha": "eeb57dffe83deb686a60a71c16c32f71046868fd",
"created_at": "2016-07-25T14:21:33.028Z",
"merge_request_id": 105,
"state": "collected",
"real_size": "1"
}]
\ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment