gitlab4j/gitlab4j-api

groupApi removeMember remove subgroup and projects member

Opened this issue · 2 comments

  1. add subgroup member
  2. add group member
  3. 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.