gitlab4j-api icon indicating copy to clipboard operation
gitlab4j-api copied to clipboard

groupApi removeMember remove subgroup and projects member

Open CHYhave opened this issue 1 year ago • 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

CHYhave avatar Jul 02 '24 10:07 CHYhave

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);
}

`

CHYhave avatar Jul 03 '24 00:07 CHYhave

What you describes seems to be related to how GitLab itself works. I don't think we can influence this at client side.

jmini avatar Aug 12 '24 13:08 jmini