Skip to content

Commit 451b1eb

Browse files
committed
Fix deprecated team APIs
1 parent fc9e86e commit 451b1eb

File tree

4 files changed

+25
-19
lines changed

4 files changed

+25
-19
lines changed

github/resource_github_repository_collaborators.go

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -407,8 +407,8 @@ func matchUserCollaboratorsAndInvites(repoName string, want []any, hasUsers []us
407407

408408
func matchTeamCollaborators(repoName string, want []any, has []teamCollaborator, meta any) error {
409409
client := meta.(*Owner).v3client
410-
orgID := meta.(*Owner).id
411410
owner := meta.(*Owner).name
411+
orgId := meta.(*Owner).id
412412
ctx := context.Background()
413413

414414
remove := make([]teamCollaborator, 0)
@@ -429,9 +429,9 @@ func matchTeamCollaborators(repoName string, want []any, has []teamCollaborator,
429429
if wantPerm == "" { // user should NOT have permission
430430
remove = append(remove, hasTeam)
431431
} else if wantPerm != hasTeam.permission { // permission should be updated
432-
log.Printf("[DEBUG] Updating team %d permission from %s to %s for repo: %s.", hasTeam.teamID, hasTeam.permission, wantPerm, repoName)
432+
log.Printf("[DEBUG] Updating team %s permission from %s to %s for repo: %s.", hasTeam.teamSlug, hasTeam.permission, wantPerm, repoName)
433433
_, err := client.Teams.AddTeamRepoByID(
434-
ctx, orgID, hasTeam.teamID, owner, repoName, &github.TeamAddTeamRepoOptions{
434+
ctx, orgId, hasTeam.teamID, owner, repoName, &github.TeamAddTeamRepoOptions{
435435
Permission: wantPerm,
436436
},
437437
)
@@ -444,6 +444,10 @@ func matchTeamCollaborators(repoName string, want []any, has []teamCollaborator,
444444
for _, t := range want {
445445
teamData := t.(map[string]any)
446446
teamIDString := teamData["team_id"].(string)
447+
teamSlug, err := getTeamSlug(teamIDString, meta)
448+
if err != nil {
449+
return err
450+
}
447451
teamID, err := getTeamID(teamIDString, meta)
448452
if err != nil {
449453
return err
@@ -460,9 +464,9 @@ func matchTeamCollaborators(repoName string, want []any, has []teamCollaborator,
460464
}
461465
permission := teamData["permission"].(string)
462466
// team needs to be added
463-
log.Printf("[DEBUG] Adding team %s with permission %s for repo: %s.", teamIDString, permission, repoName)
467+
log.Printf("[DEBUG] Adding team %s with permission %s for repo: %s.", teamSlug, permission, repoName)
464468
_, err = client.Teams.AddTeamRepoByID(
465-
ctx, orgID, teamID, owner, repoName, &github.TeamAddTeamRepoOptions{
469+
ctx, orgId, teamID, owner, repoName, &github.TeamAddTeamRepoOptions{
466470
Permission: permission,
467471
},
468472
)
@@ -472,10 +476,10 @@ func matchTeamCollaborators(repoName string, want []any, has []teamCollaborator,
472476
}
473477

474478
for _, team := range remove {
475-
log.Printf("[DEBUG] Removing team %d from repo: %s.", team.teamID, repoName)
476-
_, err := client.Teams.RemoveTeamRepoByID(ctx, orgID, team.teamID, owner, repoName)
479+
log.Printf("[DEBUG] Removing team %s from repo: %s.", team.teamSlug, repoName)
480+
_, err := client.Teams.RemoveTeamRepoByID(ctx, orgId, team.teamID, owner, repoName)
477481
if err != nil {
478-
err = handleArchivedRepoDelete(err, "team repository access", fmt.Sprintf("team %d", team.teamID), owner, repoName)
482+
err = handleArchivedRepoDelete(err, "team repository access", fmt.Sprintf("team %s", team.teamSlug), owner, repoName)
479483
if err != nil {
480484
return err
481485
}

github/resource_github_repository_ruleset.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -689,7 +689,12 @@ func resourceGithubRepositoryRulesetUpdate(d *schema.ResourceData, meta any) err
689689
// UpdateRulesetNoBypassActor always includes the field so that bypass actors can actually be removed.
690690
// See: https://github.com/google/go-github/blob/b6248e6f6aec019e75ba2c8e189bfe89f36b7d01/github/repos_rules.go#L196
691691
if d.HasChange("bypass_actors") {
692-
ruleset, _, err = client.Repositories.UpdateRulesetNoBypassActor(ctx, owner, repoName, rulesetID, *rulesetReq)
692+
// Clear bypass actors first, then update with new ruleset
693+
_, err = client.Repositories.UpdateRulesetClearBypassActor(ctx, owner, repoName, rulesetID)
694+
if err != nil {
695+
return err
696+
}
697+
ruleset, _, err = client.Repositories.UpdateRuleset(ctx, owner, repoName, rulesetID, *rulesetReq)
693698
} else {
694699
ruleset, _, err = client.Repositories.UpdateRuleset(ctx, owner, repoName, rulesetID, *rulesetReq)
695700
}

github/resource_github_team.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ func resourceGithubTeamCreate(d *schema.ResourceData, meta any) error {
155155
*/
156156
if newTeam.ParentTeamID != nil && githubTeam.Parent == nil {
157157
_, _, err := client.Teams.EditTeamByID(ctx,
158-
*githubTeam.Organization.ID,
158+
meta.(*Owner).id,
159159
*githubTeam.ID,
160160
newTeam,
161161
false)
@@ -267,7 +267,6 @@ func resourceGithubTeamUpdate(d *schema.ResourceData, meta any) error {
267267
}
268268

269269
client := meta.(*Owner).v3client
270-
orgId := meta.(*Owner).id
271270
var removeParentTeam bool
272271

273272
editedTeam := github.NewTeam{
@@ -290,9 +289,10 @@ func resourceGithubTeamUpdate(d *schema.ResourceData, meta any) error {
290289
if err != nil {
291290
return unconvertibleIdErr(d.Id(), err)
292291
}
292+
293293
ctx := context.WithValue(context.Background(), ctxId, d.Id())
294294

295-
team, _, err := client.Teams.EditTeamByID(ctx, orgId, teamId, editedTeam, removeParentTeam)
295+
team, _, err := client.Teams.EditTeamByID(ctx, meta.(*Owner).id, teamId, editedTeam, removeParentTeam)
296296
if err != nil {
297297
return err
298298
}

github/resource_github_team_repository.go

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ func resourceGithubTeamRepositoryCreate(d *schema.ResourceData, meta any) error
7070

7171
client := meta.(*Owner).v3client
7272
orgId := meta.(*Owner).id
73+
orgName := meta.(*Owner).name
7374

7475
// The given team id could be an id or a slug
7576
givenTeamId := d.Get("team_id").(string)
@@ -78,7 +79,6 @@ func resourceGithubTeamRepositoryCreate(d *schema.ResourceData, meta any) error
7879
return err
7980
}
8081

81-
orgName := meta.(*Owner).name
8282
repoName := d.Get("repository").(string)
8383
permission := d.Get("permission").(string)
8484
ctx := context.Background()
@@ -108,23 +108,20 @@ func resourceGithubTeamRepositoryRead(d *schema.ResourceData, meta any) error {
108108
}
109109

110110
client := meta.(*Owner).v3client
111-
orgId := meta.(*Owner).id
111+
teamSlug := d.Get("slug").(string)
112112

113113
teamIdString, repoName, err := parseTwoPartID(d.Id(), "team_id", "repository")
114114
if err != nil {
115115
return err
116116
}
117-
teamId, err := getTeamID(teamIdString, meta)
118-
if err != nil {
119-
return err
120-
}
117+
121118
orgName := meta.(*Owner).name
122119
ctx := context.WithValue(context.Background(), ctxId, d.Id())
123120
if !d.IsNewResource() {
124121
ctx = context.WithValue(ctx, ctxEtag, d.Get("etag").(string))
125122
}
126123

127-
repo, resp, repoErr := client.Teams.IsTeamRepoByID(ctx, orgId, teamId, orgName, repoName)
124+
repo, resp, repoErr := client.Teams.IsTeamRepoBySlug(ctx, orgName, teamSlug, orgName, repoName)
128125
if repoErr != nil {
129126
ghErr := &github.ErrorResponse{}
130127
if errors.As(repoErr, &ghErr) {

0 commit comments

Comments
 (0)