gitlab4j-api
gitlab4j-api copied to clipboard
groupApi removeMember remove subgroup and projects member
- add subgroup member
- add group member
- remove group member expect group member has been removed and keep subgroup member actual subgroup also has been removed
test case: ` @Test public void removeMember() throws GitLabApiException, MalformedURLException { Integer groupId = 3, userId = 2; Integer subGroupId = 5; GitLabApi gitLabApi = new GitLabApi("http://10.10.102.202:33200/", "glpat-mW-1QqaqTquBGdGt8UY6"); GroupApi groupApi = gitLabApi.getGroupApi();
Member groupMember = groupApi.getOptionalMember(groupId, userId, true).orElse(null);
if (groupMember == null) {
groupApi.addMember(groupId, userId, AccessLevel.MAINTAINER);
groupMember = groupApi.getOptionalMember(groupId, userId).orElse(null);
}
Assert.assertNotNull(groupMember);
Member subGroupMember = groupApi.getOptionalMember(subGroupId, userId).orElse(null);
if (subGroupMember == null) {
groupApi.addMember(subGroupId, userId, AccessLevel.MAINTAINER);
subGroupMember = groupApi.getOptionalMember(subGroupId, userId).orElse(null);
}
Assert.assertNotNull(subGroupMember);
Group group = groupApi.getGroup(groupId);
groupApi.removeMember(group.getId(), userId);
groupMember = groupApi.getOptionalMember(groupId, userId).orElse(null);
Assert.assertNull(groupMember);
subGroupMember = groupApi.getOptionalMember(subGroupId, userId).orElse(null);
Assert.assertNotNull("sub group member has been removed", subGroupMember);
}
`
What you describes seems to be related to how GitLab itself works. I don't think we can influence this at client side.