diff --git a/src/main/java/org/gitlab4j/api/GroupApi.java b/src/main/java/org/gitlab4j/api/GroupApi.java index 4b37ff496901fac9ca9af0a8eeae0ada72ef72d0..7a8d433cce30fafa21f57672bb631002b847dd10 100644 --- a/src/main/java/org/gitlab4j/api/GroupApi.java +++ b/src/main/java/org/gitlab4j/api/GroupApi.java @@ -22,6 +22,7 @@ import org.gitlab4j.api.models.Group; import org.gitlab4j.api.models.GroupFilter; import org.gitlab4j.api.models.GroupParams; import org.gitlab4j.api.models.GroupProjectsFilter; +import org.gitlab4j.api.models.LdapGroupLink; import org.gitlab4j.api.models.Member; import org.gitlab4j.api.models.Project; import org.gitlab4j.api.models.Variable; @@ -1177,6 +1178,20 @@ public class GroupApi extends AbstractApi { post(Response.Status.NO_CONTENT, (Form)null, "groups", getGroupIdOrPath(groupIdOrPath), "ldap_sync"); } + /** + * Get the list of LDAP group links. + * + *
GitLab Endpoint: GET /groups/:id/ldap_group_links
+ * + * @param groupIdOrPath the group ID, path of the group, or a Group instance holding the group ID or path + * @return a list of LDAP group links + * @throws GitLabApiException if any exception occurs + */ + public List getLdapGroupLinks(Object groupIdOrPath) throws GitLabApiException { + Response response = get(Response.Status.OK, null, "groups", getGroupIdOrPath(groupIdOrPath), "ldap_group_links"); + return (response.readEntity(new GenericType>() {})); + } + /** * Adds an LDAP group link. * diff --git a/src/main/java/org/gitlab4j/api/models/LdapGroupLink.java b/src/main/java/org/gitlab4j/api/models/LdapGroupLink.java new file mode 100644 index 0000000000000000000000000000000000000000..8830b247308c116d28078e0c0233416084f8f17d --- /dev/null +++ b/src/main/java/org/gitlab4j/api/models/LdapGroupLink.java @@ -0,0 +1,52 @@ + +package org.gitlab4j.api.models; + +import org.gitlab4j.api.utils.JacksonJson; + +public class LdapGroupLink { + + private String cn; + + private AccessLevel groupAccess; + + private String provider; + + private String filter; + + public String getCn() { + return cn; + } + + public void setCn(String aCn) { + cn = aCn; + } + + public AccessLevel getGroupAccess() { + return groupAccess; + } + + public void setGroupAccess(AccessLevel aGroupAccess) { + groupAccess = aGroupAccess; + } + + public String getProvider() { + return provider; + } + + public void setProvider(String aProvider) { + provider = aProvider; + } + + public String getFilter() { + return filter; + } + + public void setFilter(String aFilter) { + filter = aFilter; + } + + @Override + public String toString() { + return (JacksonJson.toJsonString(this)); + } +} diff --git a/src/test/java/org/gitlab4j/api/TestGitLabApiBeans.java b/src/test/java/org/gitlab4j/api/TestGitLabApiBeans.java index 7e8de8d1667d99cb57f5324d966530476724a65c..191db4a366161116a1e13bd3f9dad1ec04799500 100644 --- a/src/test/java/org/gitlab4j/api/TestGitLabApiBeans.java +++ b/src/test/java/org/gitlab4j/api/TestGitLabApiBeans.java @@ -81,6 +81,7 @@ import org.gitlab4j.api.models.Job; import org.gitlab4j.api.models.Key; import org.gitlab4j.api.models.Label; import org.gitlab4j.api.models.LabelEvent; +import org.gitlab4j.api.models.LdapGroupLink; import org.gitlab4j.api.models.Link; import org.gitlab4j.api.models.Member; import org.gitlab4j.api.models.MergeRequest; @@ -771,6 +772,12 @@ public class TestGitLabApiBeans { assertTrue(compareJson(labels, "labels.json")); } + @Test + public void testLdapGroupLink() throws Exception { + LdapGroupLink link = unmarshalResource(LdapGroupLink.class, "ldap-group-link.json"); + assertTrue(compareJson(link, "ldap-group-link.json")); + } + @Test public void testSearchBlobs() throws Exception { List searchResults = unmarshalResourceList(SearchBlob.class, "wiki-blobs.json"); diff --git a/src/test/resources/org/gitlab4j/api/ldap-group-link.json b/src/test/resources/org/gitlab4j/api/ldap-group-link.json new file mode 100644 index 0000000000000000000000000000000000000000..ffb817409c5da1f30186a2f8659030226670ce95 --- /dev/null +++ b/src/test/resources/org/gitlab4j/api/ldap-group-link.json @@ -0,0 +1,6 @@ +{ + "cn": "My Group", + "group_access": 30, + "provider": "tertiary", + "filter": "(employeeType=developer)" +}