From e61267a6a492cf678ed09346073afb6e3cb35e4a Mon Sep 17 00:00:00 2001 From: fdi Date: Tue, 27 Oct 2026 16:21:13 +0100 Subject: [PATCH 1/7] feat: added group field archived --- .../src/main/java/org/gitlab4j/api/models/Group.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/gitlab4j-models/src/main/java/org/gitlab4j/api/models/Group.java b/gitlab4j-models/src/main/java/org/gitlab4j/api/models/Group.java index bfec0db61..e1240b6c8 100644 --- a/gitlab4j-models/src/main/java/org/gitlab4j/api/models/Group.java +++ b/gitlab4j-models/src/main/java/org/gitlab4j/api/models/Group.java @@ -1,5 +1,6 @@ package org.gitlab4j.api.models; +import java.beans.Visibility; import java.util.Date; import java.util.List; @@ -54,6 +55,7 @@ public void setJobArtifactsSize(Long jobArtifactsSize) { private String path; private String description; + private String archived; private Visibility visibility; private Boolean lfsEnabled; private Boolean requestAccessEnabled; @@ -91,6 +93,14 @@ public void setDescription(String description) { this.description = description; } + public String getArchived() { + return archived; + } + + public void setArchived(String archived) { + this.archived = archived; + } + public Visibility getVisibility() { return visibility; } From 4f168adfeeb327f16df82428e5dadb6be43b0b00 Mon Sep 17 00:00:00 2001 From: fdi Date: Tue, 27 Oct 2026 16:21:32 +0100 Subject: [PATCH 2/7] feat: added get parameter active --- .../main/java/org/gitlab4j/api/GroupApi.java | 75 +++++++++++++++++-- .../org/gitlab4j/api/models/GroupFilter.java | 29 ++++++- 2 files changed, 95 insertions(+), 9 deletions(-) diff --git a/gitlab4j-api/src/main/java/org/gitlab4j/api/GroupApi.java b/gitlab4j-api/src/main/java/org/gitlab4j/api/GroupApi.java index 155bf046e..9d38b7711 100644 --- a/gitlab4j-api/src/main/java/org/gitlab4j/api/GroupApi.java +++ b/gitlab4j-api/src/main/java/org/gitlab4j/api/GroupApi.java @@ -1,7 +1,11 @@ package org.gitlab4j.api; +import java.beans.Visibility; import java.io.File; import java.io.InputStream; +import java.lang.foreign.MemorySegment.Scope; +import java.lang.reflect.Member; +import java.text.Normalizer.Form; import java.util.Arrays; import java.util.Date; import java.util.List; @@ -9,11 +13,7 @@ import java.util.Optional; import java.util.stream.Stream; -import jakarta.ws.rs.core.Form; -import jakarta.ws.rs.core.GenericType; -import jakarta.ws.rs.core.MediaType; -import jakarta.ws.rs.core.MultivaluedMap; -import jakarta.ws.rs.core.Response; +import javax.swing.SortOrder; import org.gitlab4j.api.models.AccessLevel; import org.gitlab4j.api.models.AccessRequest; @@ -27,19 +27,21 @@ import org.gitlab4j.api.models.GroupHookParams; import org.gitlab4j.api.models.GroupParams; import org.gitlab4j.api.models.GroupProjectsFilter; -import org.gitlab4j.api.models.ImpersonationToken.Scope; import org.gitlab4j.api.models.Iteration; import org.gitlab4j.api.models.IterationFilter; import org.gitlab4j.api.models.LdapGroupLink; -import org.gitlab4j.api.models.Member; import org.gitlab4j.api.models.Project; import org.gitlab4j.api.models.SamlGroupLink; import org.gitlab4j.api.models.SharedGroupsFilter; import org.gitlab4j.api.models.UploadedFile; import org.gitlab4j.api.models.Variable; -import org.gitlab4j.api.models.Visibility; import org.gitlab4j.models.utils.ISO8601; +import jakarta.ws.rs.core.GenericType; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.core.MultivaluedMap; +import jakarta.ws.rs.core.Response; + /** * This class implements the client side API for the GitLab groups calls. * @see Groups API at GitLab @@ -118,6 +120,63 @@ public Stream getGroupsStream() throws GitLabApiException { return (getGroups(getDefaultPerPage()).stream()); } + /** + * Get a list of active groups + * + *
GitLab Endpoint: GET /groups?active=true
+ * + * @return a list of active Groups + * @throws GitLabApiException if any exception occurs + */ + public List getActiveGroups() throws GitLabApiException { + return (getActiveGroups(getDefaultPerPage()).all()); + } + + /** + * Get a list of active groups using the specified page and per page settings. + * + *
GitLab Endpoint: GET /groups?active=true
+ * + * @param page the page to get + * @param perPage the number of groups per page + * @return the list of active Groups in the specified range + * @throws GitLabApiException if any exception occurs + */ + public List getActiveGroups(int page, int perPage) throws GitLabApiException { + GitLabApiForm formData = createGitLabApiForm() + .withParam("active", true) + .withParam(PAGE_PARAM, page) + .withParam(PER_PAGE_PARAM, perPage); + Response response = get(Response.Status.OK, formData.asMap(), "groups"); + return (response.readEntity(new GenericType>() {})); + } + + /** + * Get a Pager of active groups. + * + *
GitLab Endpoint: GET /groups?active=true
+ * + * @param itemsPerPage the number of active Group instances that will be fetched per page + * @return a Pager of active Groups + * @throws GitLabApiException if any exception occurs + */ + public Pager getActiveGroups(int itemsPerPage) throws GitLabApiException { + GitLabApiForm formData = createGitLabApiForm().withParam("active", true); + return (new Pager(this, Group.class, itemsPerPage, formData.asMap(), "groups")); + } + + /** + * Get a Stream of active groups + * + *
GitLab Endpoint: GET /groups?active=true
+ * + * @return a Stream of active Groups + * @throws GitLabApiException if any exception occurs + */ + public Stream getActiveGroupsStream() throws GitLabApiException { + return (getActiveGroups(getDefaultPerPage()).stream()); + } + /** * Get all groups that match your string in their name or path. * diff --git a/gitlab4j-models/src/main/java/org/gitlab4j/api/models/GroupFilter.java b/gitlab4j-models/src/main/java/org/gitlab4j/api/models/GroupFilter.java index f551c4a41..4daae805f 100644 --- a/gitlab4j-models/src/main/java/org/gitlab4j/api/models/GroupFilter.java +++ b/gitlab4j-models/src/main/java/org/gitlab4j/api/models/GroupFilter.java @@ -4,8 +4,9 @@ import java.util.ArrayList; import java.util.List; +import javax.swing.SortOrder; + import org.gitlab4j.models.Constants.GroupOrderBy; -import org.gitlab4j.models.Constants.SortOrder; import org.gitlab4j.models.GitLabForm; import org.gitlab4j.models.utils.JacksonJson; @@ -20,6 +21,8 @@ public class GroupFilter implements Serializable { private String search; private GroupOrderBy orderBy; private SortOrder sort; + private Boolean archived; + private Boolean active; private Boolean statistics; private Boolean withCustomAttributes; private Boolean owned; @@ -83,6 +86,28 @@ public GroupFilter withSortOder(SortOrder sort) { return (this); } + /** + * Include group archived status. + * + * @param archived If true, returns only archived groups + * @return the reference to this GroupFilter instance + */ + public GroupFilter withArchived(Boolean archived) { + this.archived = archived; + return (this); + } + + /** + * Include group active status. + * + * @param active If true, returns only groups that are not archived and not marked for deletion. + * @return the reference to this GroupFilter instance + */ + public GroupFilter withActive(Boolean active) { + this.active = active; + return (this); + } + /** * Include group statistics (admins only). * @@ -162,6 +187,8 @@ public GitLabForm getQueryParams() { .withParam("search", search) .withParam("order_by", orderBy) .withParam("sort", sort) + .withParam("archived", archived) + .withParam("active", active) .withParam("statistics", statistics) .withParam("with_custom_attributes", withCustomAttributes) .withParam("owned", owned) From ca35074af6f7843c0d8073209f723fe27c55d653 Mon Sep 17 00:00:00 2001 From: ysemko <73164669+ysemko@users.noreply.github.com> Date: Tue, 27 Oct 2026 15:50:47 +0000 Subject: [PATCH 3/7] fix: imports --- .../main/java/org/gitlab4j/api/GroupApi.java | 18 ++++++++---------- .../java/org/gitlab4j/api/models/Group.java | 1 - .../org/gitlab4j/api/models/GroupFilter.java | 3 +-- 3 files changed, 9 insertions(+), 13 deletions(-) diff --git a/gitlab4j-api/src/main/java/org/gitlab4j/api/GroupApi.java b/gitlab4j-api/src/main/java/org/gitlab4j/api/GroupApi.java index 9d38b7711..48f4ee75e 100644 --- a/gitlab4j-api/src/main/java/org/gitlab4j/api/GroupApi.java +++ b/gitlab4j-api/src/main/java/org/gitlab4j/api/GroupApi.java @@ -1,11 +1,7 @@ package org.gitlab4j.api; -import java.beans.Visibility; import java.io.File; import java.io.InputStream; -import java.lang.foreign.MemorySegment.Scope; -import java.lang.reflect.Member; -import java.text.Normalizer.Form; import java.util.Arrays; import java.util.Date; import java.util.List; @@ -13,7 +9,11 @@ import java.util.Optional; import java.util.stream.Stream; -import javax.swing.SortOrder; +import jakarta.ws.rs.core.Form; +import jakarta.ws.rs.core.GenericType; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.core.MultivaluedMap; +import jakarta.ws.rs.core.Response; import org.gitlab4j.api.models.AccessLevel; import org.gitlab4j.api.models.AccessRequest; @@ -27,21 +27,19 @@ import org.gitlab4j.api.models.GroupHookParams; import org.gitlab4j.api.models.GroupParams; import org.gitlab4j.api.models.GroupProjectsFilter; +import org.gitlab4j.api.models.ImpersonationToken.Scope; import org.gitlab4j.api.models.Iteration; import org.gitlab4j.api.models.IterationFilter; import org.gitlab4j.api.models.LdapGroupLink; +import org.gitlab4j.api.models.Member; import org.gitlab4j.api.models.Project; import org.gitlab4j.api.models.SamlGroupLink; import org.gitlab4j.api.models.SharedGroupsFilter; import org.gitlab4j.api.models.UploadedFile; import org.gitlab4j.api.models.Variable; +import org.gitlab4j.api.models.Visibility; import org.gitlab4j.models.utils.ISO8601; -import jakarta.ws.rs.core.GenericType; -import jakarta.ws.rs.core.MediaType; -import jakarta.ws.rs.core.MultivaluedMap; -import jakarta.ws.rs.core.Response; - /** * This class implements the client side API for the GitLab groups calls. * @see Groups API at GitLab diff --git a/gitlab4j-models/src/main/java/org/gitlab4j/api/models/Group.java b/gitlab4j-models/src/main/java/org/gitlab4j/api/models/Group.java index e1240b6c8..b0d3b80f4 100644 --- a/gitlab4j-models/src/main/java/org/gitlab4j/api/models/Group.java +++ b/gitlab4j-models/src/main/java/org/gitlab4j/api/models/Group.java @@ -1,6 +1,5 @@ package org.gitlab4j.api.models; -import java.beans.Visibility; import java.util.Date; import java.util.List; diff --git a/gitlab4j-models/src/main/java/org/gitlab4j/api/models/GroupFilter.java b/gitlab4j-models/src/main/java/org/gitlab4j/api/models/GroupFilter.java index 4daae805f..5c307d39d 100644 --- a/gitlab4j-models/src/main/java/org/gitlab4j/api/models/GroupFilter.java +++ b/gitlab4j-models/src/main/java/org/gitlab4j/api/models/GroupFilter.java @@ -4,9 +4,8 @@ import java.util.ArrayList; import java.util.List; -import javax.swing.SortOrder; - import org.gitlab4j.models.Constants.GroupOrderBy; +import org.gitlab4j.models.Constants.SortOrder; import org.gitlab4j.models.GitLabForm; import org.gitlab4j.models.utils.JacksonJson; From 49ecfdad609d0e9b29da6694cee45df019f84332 Mon Sep 17 00:00:00 2001 From: ysemko <73164669+ysemko@users.noreply.github.com> Date: Tue, 27 Oct 2026 15:55:19 +0000 Subject: [PATCH 4/7] fix: create Form --- gitlab4j-api/src/main/java/org/gitlab4j/api/GroupApi.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gitlab4j-api/src/main/java/org/gitlab4j/api/GroupApi.java b/gitlab4j-api/src/main/java/org/gitlab4j/api/GroupApi.java index 48f4ee75e..c030cc651 100644 --- a/gitlab4j-api/src/main/java/org/gitlab4j/api/GroupApi.java +++ b/gitlab4j-api/src/main/java/org/gitlab4j/api/GroupApi.java @@ -141,7 +141,7 @@ public List getActiveGroups() throws GitLabApiException { * @throws GitLabApiException if any exception occurs */ public List getActiveGroups(int page, int perPage) throws GitLabApiException { - GitLabApiForm formData = createGitLabApiForm() + Form formData = new GitLabApiForm() .withParam("active", true) .withParam(PAGE_PARAM, page) .withParam(PER_PAGE_PARAM, perPage); @@ -159,7 +159,7 @@ public List getActiveGroups(int page, int perPage) throws GitLabApiExcept * @throws GitLabApiException if any exception occurs */ public Pager getActiveGroups(int itemsPerPage) throws GitLabApiException { - GitLabApiForm formData = createGitLabApiForm().withParam("active", true); + Form formData = new GitLabApiForm().withParam("active", true); return (new Pager(this, Group.class, itemsPerPage, formData.asMap(), "groups")); } From 5caeeff7d6ae0c9c883c52f01da8f0bd42478f3f Mon Sep 17 00:00:00 2001 From: ysemko <73164669+ysemko@users.noreply.github.com> Date: Tue, 27 Oct 2026 15:58:37 +0000 Subject: [PATCH 5/7] fix: whitespace --- .../src/main/java/org/gitlab4j/api/models/Group.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gitlab4j-models/src/main/java/org/gitlab4j/api/models/Group.java b/gitlab4j-models/src/main/java/org/gitlab4j/api/models/Group.java index b0d3b80f4..ab6a57d88 100644 --- a/gitlab4j-models/src/main/java/org/gitlab4j/api/models/Group.java +++ b/gitlab4j-models/src/main/java/org/gitlab4j/api/models/Group.java @@ -54,7 +54,7 @@ public void setJobArtifactsSize(Long jobArtifactsSize) { private String path; private String description; - private String archived; + private String archived; private Visibility visibility; private Boolean lfsEnabled; private Boolean requestAccessEnabled; From fce71b643dfcadc42a367d67c76296ab6de42aad Mon Sep 17 00:00:00 2001 From: ysemko <73164669+ysemko@users.noreply.github.com> Date: Tue, 27 Oct 2026 16:01:11 +0000 Subject: [PATCH 6/7] fix: whitespace --- .../src/main/java/org/gitlab4j/api/models/GroupFilter.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gitlab4j-models/src/main/java/org/gitlab4j/api/models/GroupFilter.java b/gitlab4j-models/src/main/java/org/gitlab4j/api/models/GroupFilter.java index 5c307d39d..aff2d4950 100644 --- a/gitlab4j-models/src/main/java/org/gitlab4j/api/models/GroupFilter.java +++ b/gitlab4j-models/src/main/java/org/gitlab4j/api/models/GroupFilter.java @@ -20,8 +20,8 @@ public class GroupFilter implements Serializable { private String search; private GroupOrderBy orderBy; private SortOrder sort; - private Boolean archived; - private Boolean active; + private Boolean archived; + private Boolean active; private Boolean statistics; private Boolean withCustomAttributes; private Boolean owned; From 39155b13fa8d48f622ab25a61b4c4935011f8280 Mon Sep 17 00:00:00 2001 From: ysemko <73164669+ysemko@users.noreply.github.com> Date: Tue, 27 Oct 2026 16:02:04 +0000 Subject: [PATCH 7/7] fix: whitespace --- .../src/main/java/org/gitlab4j/api/models/Group.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gitlab4j-models/src/main/java/org/gitlab4j/api/models/Group.java b/gitlab4j-models/src/main/java/org/gitlab4j/api/models/Group.java index ab6a57d88..1d4e5940b 100644 --- a/gitlab4j-models/src/main/java/org/gitlab4j/api/models/Group.java +++ b/gitlab4j-models/src/main/java/org/gitlab4j/api/models/Group.java @@ -54,7 +54,7 @@ public void setJobArtifactsSize(Long jobArtifactsSize) { private String path; private String description; - private String archived; + private String archived; private Visibility visibility; private Boolean lfsEnabled; private Boolean requestAccessEnabled;