aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-alm-client/src/main/java
diff options
context:
space:
mode:
authorAurelien Poscia <aurelien.poscia@sonarsource.com>2023-12-13 09:54:59 +0100
committersonartech <sonartech@sonarsource.com>2023-12-22 20:03:02 +0000
commitd237a80b07c1a99151bb61f492ab27dfdfd65594 (patch)
tree92ad30044b9dfa5a8e727813a61a8ed122625a86 /server/sonar-alm-client/src/main/java
parentb2cd0f3ff50d504cd88ecf7eec9887ef4fb46ea3 (diff)
downloadsonarqube-d237a80b07c1a99151bb61f492ab27dfdfd65594.tar.gz
sonarqube-d237a80b07c1a99151bb61f492ab27dfdfd65594.zip
SONAR-21244 Add step to fetch GitLab groups membership
Diffstat (limited to 'server/sonar-alm-client/src/main/java')
-rw-r--r--server/sonar-alm-client/src/main/java/org/sonar/alm/client/gitlab/GitlabApplicationClient.java13
1 files changed, 11 insertions, 2 deletions
diff --git a/server/sonar-alm-client/src/main/java/org/sonar/alm/client/gitlab/GitlabApplicationClient.java b/server/sonar-alm-client/src/main/java/org/sonar/alm/client/gitlab/GitlabApplicationClient.java
index cb260fcec33..0abe8f4e39e 100644
--- a/server/sonar-alm-client/src/main/java/org/sonar/alm/client/gitlab/GitlabApplicationClient.java
+++ b/server/sonar-alm-client/src/main/java/org/sonar/alm/client/gitlab/GitlabApplicationClient.java
@@ -62,6 +62,7 @@ public class GitlabApplicationClient {
private static final Type GITLAB_USER = TypeToken.getParameterized(List.class, GsonUser.class).getType();
protected static final String PRIVATE_TOKEN = "Private-Token";
+ private static final String GITLAB_GROUPS_MEMBERS_ENDPOINT = "/groups/%s/members";
protected final OkHttpClient client;
private final GitlabPaginatedHttpClient gitlabPaginatedHttpClient;
@@ -355,8 +356,16 @@ public class GitlabApplicationClient {
return Set.copyOf(executePaginatedQuery(gitlabUrl, token, "/groups", resp -> GSON.fromJson(resp, GITLAB_GROUP)));
}
- public Set<GsonUser> getGroupMembers(String gitlabUrl, String token, String groupId) {
- return Set.copyOf(executePaginatedQuery(gitlabUrl, token, format("/groups/%s/members", groupId), resp -> GSON.fromJson(resp, GITLAB_USER)));
+ public Set<GsonUser> getDirectGroupMembers(String gitlabUrl, String token, String groupId) {
+ return getMembers(gitlabUrl, token, format(GITLAB_GROUPS_MEMBERS_ENDPOINT, groupId));
+ }
+
+ public Set<GsonUser> getAllGroupMembers(String gitlabUrl, String token, String groupId) {
+ return getMembers(gitlabUrl, token, format(GITLAB_GROUPS_MEMBERS_ENDPOINT + "/all", groupId));
+ }
+
+ private Set<GsonUser> getMembers(String gitlabUrl, String token, String endpoint) {
+ return Set.copyOf(executePaginatedQuery(gitlabUrl, token, endpoint, resp -> GSON.fromJson(resp, GITLAB_USER)));
}
private <E> List<E> executePaginatedQuery(String appUrl, String token, String query, Function<String, List<E>> responseDeserializer) {