Skip to content

Commit 9482f0f

Browse files
authored
Fetch user directly instead of relying on the profile for their login (#26)
1 parent de3f4be commit 9482f0f

File tree

1 file changed

+10
-11
lines changed

1 file changed

+10
-11
lines changed

pkg/connector/team.go

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -276,17 +276,17 @@ func (o *teamResourceType) Grant(ctx context.Context, principal *v2.Resource, en
276276
return nil, err
277277
}
278278

279-
userTrait, err := rType.GetUserTrait(principal)
279+
userId, err := strconv.ParseInt(principal.Id.Resource, 10, 64)
280280
if err != nil {
281281
return nil, err
282282
}
283283

284-
userLogin, ok := rType.GetProfileStringValue(userTrait.Profile, "login")
285-
if !ok {
286-
return nil, err
284+
user, _, err := o.client.Users.GetByID(ctx, userId)
285+
if err != nil {
286+
return nil, fmt.Errorf("github-connectorv2: failed to get user %d, err: %w", userId, err)
287287
}
288288

289-
_, _, e := o.client.Teams.AddTeamMembershipByID(ctx, orgId, teamId, userLogin, &github.TeamAddTeamMembershipOptions{
289+
_, _, e := o.client.Teams.AddTeamMembershipByID(ctx, orgId, teamId, user.GetLogin(), &github.TeamAddTeamMembershipOptions{
290290
Role: entitlement.Slug,
291291
})
292292
if e != nil {
@@ -325,17 +325,16 @@ func (o *teamResourceType) Revoke(ctx context.Context, grant *v2.Grant) (annotat
325325
return nil, err
326326
}
327327

328-
userTrait, err := rType.GetUserTrait(principal)
328+
userId, err := strconv.ParseInt(principal.Id.Resource, 10, 64)
329329
if err != nil {
330330
return nil, err
331331
}
332332

333-
userLogin, ok := rType.GetProfileStringValue(userTrait.Profile, "login")
334-
if !ok {
335-
return nil, err
333+
user, _, err := o.client.Users.GetByID(ctx, userId)
334+
if err != nil {
335+
return nil, fmt.Errorf("github-connectorv2: failed to get user %d, err: %w", userId, err)
336336
}
337-
338-
_, e := o.client.Teams.RemoveTeamMembershipByID(ctx, orgId, teamId, userLogin)
337+
_, e := o.client.Teams.RemoveTeamMembershipByID(ctx, orgId, teamId, user.GetLogin())
339338
if e != nil {
340339
return nil, fmt.Errorf("github-connectorv2: failed to revoke user team membership: %w", e)
341340
}

0 commit comments

Comments
 (0)