Skip to content

Commit 3a2e350

Browse files
committed
feat: add repositoryApi.compare(Object projectIdOrPath, String from, String to, Object fromProjectId, boolean straight)
1 parent f4fe584 commit 3a2e350

File tree

1 file changed

+33
-12
lines changed

1 file changed

+33
-12
lines changed

gitlab4j-api/src/main/java/org/gitlab4j/api/RepositoryApi.java

Lines changed: 33 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -914,18 +914,7 @@ public File getRepositoryArchive(
914914
*/
915915
public CompareResults compare(Object projectIdOrPath, String from, String to, boolean straight)
916916
throws GitLabApiException {
917-
Form formData = new GitLabApiForm()
918-
.withParam("from", from, true)
919-
.withParam("to", to, true)
920-
.withParam("straight", straight);
921-
Response response = get(
922-
Response.Status.OK,
923-
formData.asMap(),
924-
"projects",
925-
getProjectIdOrPath(projectIdOrPath),
926-
"repository",
927-
"compare");
928-
return (response.readEntity(CompareResults.class));
917+
return compare(projectIdOrPath, from, to, null, straight);
929918
}
930919

931920
/**
@@ -942,6 +931,38 @@ public CompareResults compare(Object projectIdOrPath, String from, String to) th
942931
return (compare(projectIdOrPath, from, to, false));
943932
}
944933

934+
/**
935+
* Compare branches, tags or commits. This can be accessed without authentication
936+
* if the repository is publicly accessible.
937+
*
938+
* @param projectIdOrPath the project in the form of an Long(ID), String(path), or Project instance
939+
* @param from the commit SHA or branch name
940+
* @param to the commit SHA or branch name
941+
* @param fromProjectId The ID to compare from.
942+
* @param straight specifies the comparison method, true for direct comparison between from and to (from..to),
943+
* false to compare using merge base (from…to)
944+
* @return a CompareResults containing the results of the comparison
945+
* @throws GitLabApiException if any exception occurs
946+
*/
947+
public CompareResults compare(Object projectIdOrPath, String from, String to, Object fromProjectId, boolean straight)
948+
throws GitLabApiException {
949+
GitLabApiForm formData = new GitLabApiForm()
950+
.withParam("from", from, true)
951+
.withParam("to", to, true)
952+
.withParam("straight", straight);
953+
if (fromProjectId != null) {
954+
formData.withParam("from_project_id", fromProjectId);
955+
}
956+
Response response = get(
957+
Response.Status.OK,
958+
formData.asMap(),
959+
"projects",
960+
getProjectIdOrPath(projectIdOrPath),
961+
"repository",
962+
"compare");
963+
return (response.readEntity(CompareResults.class));
964+
}
965+
945966
/**
946967
* Get a list of contributors from a project.
947968
*

0 commit comments

Comments
 (0)