Skip to content

Commit 021f504

Browse files
[BB-1807] use SyncDirectMembersOnly logic to decide about groups memeber endpoint for grants (#75)
* use SyncDirectMembersOnly logic to decide about groups memeber endpoint for grants * add nil check for pageToken
1 parent da2991e commit 021f504

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

pkg/connector/client/client.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ func (c *GitlabClient) GetGroup(ctx context.Context, groupID string) (*Group, *v
173173
return &group, rateLimitDesc, nil
174174
}
175175

176-
// ListAllGroupMembers retrieves members and pending invites of a specific group.
176+
// ListAllGroupMembers retrieves members and pending invites of a specific group including inherited members through ancestor groups.
177177
func (c *GitlabClient) ListAllGroupMembers(ctx context.Context, groupID string, nextPageToken string) ([]*GroupMember, string, *v2.RateLimitDescription, error) {
178178
var members []*GroupMember
179179

pkg/connector/groups.go

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,13 +117,25 @@ func (o *groupBuilder) Grants(ctx context.Context, resource *v2.Resource, pToken
117117
var outGrants []*v2.Grant
118118
var outputAnnotations = annotations.New()
119119
var users []*client.GroupMember
120+
var err error
121+
122+
var pageToken string
123+
if pToken != nil {
124+
pageToken = pToken.Token
125+
}
120126

121127
groupId, err := fromGroupResourceId(resource.Id.Resource)
122128
if err != nil {
123129
return nil, "", nil, fmt.Errorf("error parsing group resource id: %w", err)
124130
}
125131

126-
users, nextPageToken, rateLimitDesc, err := o.client.ListGroupMembers(ctx, groupId, pToken.Token)
132+
var nextPageToken string
133+
var rateLimitDesc *v2.RateLimitDescription
134+
if o.client.SyncDirectMembersOnly {
135+
users, nextPageToken, rateLimitDesc, err = o.client.ListGroupMembers(ctx, groupId, pageToken)
136+
} else {
137+
users, nextPageToken, rateLimitDesc, err = o.client.ListAllGroupMembers(ctx, groupId, pageToken)
138+
}
127139
if rateLimitDesc != nil {
128140
outputAnnotations.WithRateLimiting(rateLimitDesc)
129141
}

0 commit comments

Comments
 (0)