Skip to content

Commit e3e3b22

Browse files
committed
only get direct members
1 parent cddb0ba commit e3e3b22

File tree

3 files changed

+17
-2
lines changed

3 files changed

+17
-2
lines changed

pkg/connector/client/client.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -304,6 +304,20 @@ func (c *GitlabClient) GetProject(ctx context.Context, projectID string) (*Proje
304304
func (c *GitlabClient) ListProjectMembers(ctx context.Context, projectID string, nextPageToken string) ([]*ProjectMember, string, *v2.RateLimitDescription, error) {
305305
var members []*ProjectMember
306306

307+
apiURL, _ := url.Parse(fmt.Sprintf("/api/v4/projects/%s/members", PathEscape(projectID)))
308+
WithOffsetPagination(apiURL, nextPageToken)
309+
headers, rateLimitDesc, err := c.doRequest(ctx, http.MethodGet, apiURL.String(), &members, nil)
310+
if err != nil {
311+
return nil, "", rateLimitDesc, err
312+
}
313+
314+
nextToken := headers.Get("X-Next-Page")
315+
return members, nextToken, rateLimitDesc, nil
316+
}
317+
318+
func (c *GitlabClient) ListAllProjectMembers(ctx context.Context, projectID string, nextPageToken string) ([]*ProjectMember, string, *v2.RateLimitDescription, error) {
319+
var members []*ProjectMember
320+
307321
apiURL, _ := url.Parse(fmt.Sprintf("/api/v4/projects/%s/members/all", PathEscape(projectID)))
308322
WithOffsetPagination(apiURL, nextPageToken)
309323
headers, rateLimitDesc, err := c.doRequest(ctx, http.MethodGet, apiURL.String(), &members, nil)

pkg/connector/projects.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@ func (o *projectBuilder) Grants(ctx context.Context, resource *v2.Resource, pTok
122122
}
123123

124124
for _, user := range users {
125+
125126
entitlementId := fmt.Sprintf("group:%s:%s", groupId.Resource, client.AccessLevelValue(user.AccessLevel).String())
126127
principalId, err := resourceSdk.NewResourceID(userResourceType, user.ID)
127128
if err != nil {
@@ -131,7 +132,7 @@ func (o *projectBuilder) Grants(ctx context.Context, resource *v2.Resource, pTok
131132
grantOptions := []grant.GrantOption{
132133
grant.WithAnnotation(&v2.GrantExpandable{
133134
EntitlementIds: []string{entitlementId},
134-
Shallow: true,
135+
Shallow: false,
135136
}),
136137
}
137138

pkg/connector/users.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ func (u *userBuilder) listCloudVersion(ctx context.Context, parentResourceID *v2
116116
case projectResourceType.Id:
117117
var projectMembers []*client.ProjectMember
118118
var rateLimitDescProjectMembers *v2.RateLimitDescription
119-
projectMembers, nextPageToken, rateLimitDescProjectMembers, err = u.client.ListProjectMembers(ctx, parentResourceID.Resource, pToken.Token)
119+
projectMembers, nextPageToken, rateLimitDescProjectMembers, err = u.client.ListAllProjectMembers(ctx, parentResourceID.Resource, pToken.Token)
120120
if rateLimitDescProjectMembers != nil {
121121
outputAnnotations.WithRateLimiting(rateLimitDescProjectMembers)
122122
}

0 commit comments

Comments
 (0)