From e825044b9148afbbd0d7584119dcd115c6ff7908 Mon Sep 17 00:00:00 2001 From: Aditya Bansal Date: Mon, 14 Mar 2022 18:46:50 -0700 Subject: [PATCH] Comments and order_by support --- src/main/java/org/gitlab4j/api/Constants.java | 23 +++++++++++++++++++ .../java/org/gitlab4j/api/RepositoryApi.java | 15 ++++++------ 2 files changed, 31 insertions(+), 7 deletions(-) diff --git a/src/main/java/org/gitlab4j/api/Constants.java b/src/main/java/org/gitlab4j/api/Constants.java index bb786c54..f96945c5 100644 --- a/src/main/java/org/gitlab4j/api/Constants.java +++ b/src/main/java/org/gitlab4j/api/Constants.java @@ -311,6 +311,29 @@ public interface Constants { } } + /** Enum to use for ordering the results of getContibutors(). */ + public enum ContributorOrderBy { + + NAME, EMAIL, COMMITS; + + private static JacksonJsonEnumHelper enumHelper = new JacksonJsonEnumHelper<>(ContributorOrderBy.class); + + @JsonCreator + public static ContributorOrderBy forValue(String value) { + return enumHelper.forValue(value); + } + + @JsonValue + public String toValue() { + return (enumHelper.toString(this)); + } + + @Override + public String toString() { + return (enumHelper.toString(this)); + } + } + /** Enum to use for specifying the scope when calling getPipelines(). */ public enum PipelineScope { diff --git a/src/main/java/org/gitlab4j/api/RepositoryApi.java b/src/main/java/org/gitlab4j/api/RepositoryApi.java index 735cf41d..e2aa3d3e 100644 --- a/src/main/java/org/gitlab4j/api/RepositoryApi.java +++ b/src/main/java/org/gitlab4j/api/RepositoryApi.java @@ -671,18 +671,19 @@ public class RepositoryApi extends AbstractApi { * @param projectIdOrPath the project in the form of an Long(ID), String(path), or Project instance * @param page the page to get * @param perPage the number of projects per page - * @param sort optional param to sort the list of contributors by + * @param orderBy (optional param) returns contributors ordered by NAME, EMAIL, or COMMITS. Default is COMMITS + * @param sortOrder (optional param) returns contributors sorted in ASC or DESC order. Default is ASC * @return a List containing the contributors for the specified project ID * @throws GitLabApiException if any exception occurs */ - public List getContributors(Object projectIdOrPath, int page, int perPage, String sort) throws GitLabApiException { - if (sort != null && !(sort.equals("asc") || sort.equals("desc")) ) { - throw new RuntimeException("Sort must be asc or desc"); + public List getContributors(Object projectIdOrPath, int page, int perPage, ContributorOrderBy orderBy, SortOrder sortOrder) throws GitLabApiException { + GitLabApiForm formData = new GitLabApiForm().withParam(PAGE_PARAM, page).withParam(PER_PAGE_PARAM, perPage); + if (sortOrder != null) { + formData.withParam("sort", sortOrder, false); } - GitLabApiForm formData = new GitLabApiForm().withParam(PAGE_PARAM, page).withParam(PER_PAGE_PARAM, perPage); - if (sort != null) { - formData.withParam("sort", sort, false); + if (orderBy != null) { + formData.withParam("order_by", orderBy, false); } Response response = get(Response.Status.OK, formData.asMap(), -- GitLab