Skip to content

Commit c8c344e

Browse files
committed
[BB-1134] githbu: return annotations
1 parent 15c3893 commit c8c344e

File tree

5 files changed

+26
-11
lines changed

5 files changed

+26
-11
lines changed

pkg/connector/enterprise_role.go

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -135,9 +135,12 @@ func (o *enterpriseRoleResourceType) Grants(
135135
return nil, "", nil, fmt.Errorf("baton-github: error getting user roles cache: %w", err)
136136
}
137137

138-
ret := []*v2.Grant{}
138+
var (
139+
annotations annotations.Annotations
140+
ret = make([]*v2.Grant, 0, len(cache[resource.Id.Resource]))
141+
)
139142
for _, userLogin := range cache[resource.Id.Resource] {
140-
user, _, err := o.client.Users.Get(ctx, userLogin)
143+
user, resp, err := o.client.Users.Get(ctx, userLogin)
141144
if err != nil {
142145
return nil, "", nil, fmt.Errorf("baton-github: error getting user %s: %w", userLogin, err)
143146
}
@@ -147,6 +150,12 @@ func (o *enterpriseRoleResourceType) Grants(
147150
return nil, "", nil, fmt.Errorf("baton-github: error creating resource ID for user %s: %w", userLogin, err)
148151
}
149152

153+
restApiRateLimit, err := extractRateLimitData(resp)
154+
if err != nil {
155+
return nil, "", nil, err
156+
}
157+
annotations.WithRateLimiting(restApiRateLimit)
158+
150159
ret = append(ret, grant.NewGrant(
151160
resource,
152161
"assigned",

pkg/connector/invitation.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ func (i *invitationResourceType) List(ctx context.Context, parentID *v2.Resource
9999
invitationResources = append(invitationResources, ir)
100100
}
101101
annotations.WithRateLimiting(restApiRateLimit)
102-
return invitationResources, pageToken, nil, nil
102+
return invitationResources, pageToken, annotations, nil
103103
}
104104

105105
func (i *invitationResourceType) Entitlements(_ context.Context, resource *v2.Resource, _ *pagination.Token) ([]*v2.Entitlement, string, annotations.Annotations, error) {
@@ -155,7 +155,7 @@ func (i *invitationResourceType) CreateAccount(
155155
}
156156
return &v2.CreateAccountResponse_SuccessResult{
157157
Resource: r,
158-
}, nil, nil, nil
158+
}, nil, annotations, nil
159159
}
160160

161161
func (i *invitationResourceType) Delete(ctx context.Context, resourceId *v2.ResourceId) (annotations.Annotations, error) {

pkg/connector/org.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,8 @@ func (o *orgResourceType) List(
100100

101101
orgs, resp, err := o.client.Organizations.List(ctx, "", opts)
102102
if err != nil {
103-
return nil, "", nil, fmt.Errorf("github-connector: failed to fetch org: %w", err)
103+
_, reqAnnos, _ := parseResp(resp)
104+
return nil, "", reqAnnos, fmt.Errorf("github-connector: failed to fetch org: %w", err)
104105
}
105106

106107
nextPage, reqAnnos, err := parseResp(resp)
@@ -199,7 +200,8 @@ func (o *orgResourceType) Grants(
199200

200201
users, resp, err := o.client.Organizations.ListMembers(ctx, orgName, &opts)
201202
if err != nil {
202-
return nil, "", nil, fmt.Errorf("github-connectorv2: failed to list org members: %w", err)
203+
_, reqAnnos, _ := parseResp(resp)
204+
return nil, "", reqAnnos, fmt.Errorf("github-connectorv2: failed to list org members: %w", err)
203205
}
204206

205207
nextPage, reqAnnos, err := parseResp(resp)
@@ -216,7 +218,8 @@ func (o *orgResourceType) Grants(
216218
for _, user := range users {
217219
membership, _, err := o.client.Organizations.GetOrgMembership(ctx, user.GetLogin(), orgName)
218220
if err != nil {
219-
return nil, "", nil, fmt.Errorf("github-connectorv2: failed to get org memberships for user: %w", err)
221+
_, reqAnnos, _ := parseResp(resp)
222+
return nil, "", reqAnnos, fmt.Errorf("github-connectorv2: failed to get org memberships for user: %w", err)
220223
}
221224
if membership.GetState() == "pending" {
222225
continue

pkg/connector/repository.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,8 @@ func (o *repositoryResourceType) List(ctx context.Context, parentID *v2.Resource
8888

8989
repos, resp, err := o.client.Repositories.ListByOrg(ctx, orgName, opts)
9090
if err != nil {
91-
return nil, "", nil, fmt.Errorf("github-connector: failed to list repositories: %w", err)
91+
_, reqAnnos, _ := parseResp(resp)
92+
return nil, "", reqAnnos, fmt.Errorf("github-connector: failed to list repositories: %w", err)
9293
}
9394

9495
nextPage, reqAnnos, err := parseResp(resp)

pkg/connector/team.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,8 @@ func (o *teamResourceType) List(ctx context.Context, parentID *v2.ResourceId, pt
9595

9696
teams, resp, err := o.client.Teams.ListTeams(ctx, orgName, opts)
9797
if err != nil {
98-
return nil, "", nil, fmt.Errorf("github-connector: failed to list teams: %w", err)
98+
_, reqAnnos, _ := parseResp(resp)
99+
return nil, "", reqAnnos, fmt.Errorf("github-connector: failed to list teams: %w", err)
99100
}
100101

101102
nextPage, reqAnnos, err := parseResp(resp)
@@ -164,9 +165,10 @@ func (o *teamResourceType) Grants(ctx context.Context, resource *v2.Resource, pT
164165
return nil, "", nil, fmt.Errorf("error fetching orgID from team profile")
165166
}
166167

167-
org, _, err := o.client.Organizations.GetByID(ctx, orgID)
168+
org, resp, err := o.client.Organizations.GetByID(ctx, orgID)
168169
if err != nil {
169-
return nil, "", nil, err
170+
_, reqAnnos, _ := parseResp(resp)
171+
return nil, "", reqAnnos, err
170172
}
171173

172174
githubID, err := parseResourceToGitHub(resource.Id)

0 commit comments

Comments
 (0)