Skip to content

Commit bff5892

Browse files
committed
github_team: Update to use context-aware provider functions
This makes debugging easier as we get DEBUG logs from HTTP req/res Signed-off-by: Timo Sand <[email protected]>
1 parent 760eee3 commit bff5892

1 file changed

Lines changed: 46 additions & 46 deletions

File tree

github/resource_github_team.go

Lines changed: 46 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,20 @@ import (
88
"strconv"
99

1010
"github.com/google/go-github/v77/github"
11+
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
1112
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/customdiff"
1213
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
1314
"github.com/shurcooL/githubv4"
1415
)
1516

1617
func resourceGithubTeam() *schema.Resource {
1718
return &schema.Resource{
18-
Create: resourceGithubTeamCreate,
19-
Read: resourceGithubTeamRead,
20-
Update: resourceGithubTeamUpdate,
21-
Delete: resourceGithubTeamDelete,
19+
CreateContext: resourceGithubTeamCreate,
20+
ReadContext: resourceGithubTeamRead,
21+
UpdateContext: resourceGithubTeamUpdate,
22+
DeleteContext: resourceGithubTeamDelete,
2223
Importer: &schema.ResourceImporter{
23-
State: resourceGithubTeamImport,
24+
StateContext: resourceGithubTeamImport,
2425
},
2526

2627
CustomizeDiff: customdiff.Sequence(
@@ -104,10 +105,10 @@ func resourceGithubTeam() *schema.Resource {
104105
}
105106
}
106107

107-
func resourceGithubTeamCreate(d *schema.ResourceData, meta any) error {
108+
func resourceGithubTeamCreate(ctx context.Context, d *schema.ResourceData, meta any) diag.Diagnostics {
108109
err := checkOrganization(meta)
109110
if err != nil {
110-
return err
111+
return diag.FromErr(err)
111112
}
112113

113114
client := meta.(*Owner).v3client
@@ -128,16 +129,15 @@ func resourceGithubTeamCreate(d *schema.ResourceData, meta any) error {
128129
if parentTeamID, ok := d.GetOk("parent_team_id"); ok {
129130
teamID, err := getTeamID(parentTeamID.(string), meta)
130131
if err != nil {
131-
return err
132+
return diag.FromErr(err)
132133
}
133134
newTeam.ParentTeamID = &teamID
134135
}
135-
ctx := context.Background()
136136

137137
githubTeam, _, err := client.Teams.CreateTeam(ctx,
138138
ownerName, newTeam)
139139
if err != nil {
140-
return err
140+
return diag.FromErr(err)
141141
}
142142

143143
/*
@@ -161,36 +161,36 @@ func resourceGithubTeamCreate(d *schema.ResourceData, meta any) error {
161161
newTeam,
162162
false)
163163
if err != nil {
164-
return err
164+
return diag.FromErr(err)
165165
}
166166
}
167167

168168
create_default_maintainer := d.Get("create_default_maintainer").(bool)
169169
if !create_default_maintainer {
170170
log.Printf("[DEBUG] Removing default maintainer from team: %s (%s)", name, ownerName)
171171
if err := removeDefaultMaintainer(*githubTeam.Slug, meta); err != nil {
172-
return err
172+
return diag.FromErr(err)
173173
}
174174
}
175175

176176
d.SetId(strconv.FormatInt(githubTeam.GetID(), 10))
177-
return resourceGithubTeamRead(d, meta)
177+
return resourceGithubTeamRead(ctx, d, meta)
178178
}
179179

180-
func resourceGithubTeamRead(d *schema.ResourceData, meta any) error {
180+
func resourceGithubTeamRead(ctx context.Context, d *schema.ResourceData, meta any) diag.Diagnostics {
181181
err := checkOrganization(meta)
182182
if err != nil {
183-
return err
183+
return diag.FromErr(err)
184184
}
185185

186186
client := meta.(*Owner).v3client
187187
orgID := meta.(*Owner).id
188188

189189
id, err := strconv.ParseInt(d.Id(), 10, 64)
190190
if err != nil {
191-
return unconvertibleIdErr(d.Id(), err)
191+
return diag.FromErr(unconvertibleIdErr(d.Id(), err))
192192
}
193-
ctx := context.WithValue(context.Background(), ctxId, d.Id())
193+
ctx = context.WithValue(ctx, ctxId, d.Id())
194194
if !d.IsNewResource() {
195195
ctx = context.WithValue(ctx, ctxEtag, d.Get("etag").(string))
196196
}
@@ -210,62 +210,62 @@ func resourceGithubTeamRead(d *schema.ResourceData, meta any) error {
210210
return nil
211211
}
212212
}
213-
return err
213+
return diag.FromErr(err)
214214
}
215215

216216
if err = d.Set("etag", resp.Header.Get("ETag")); err != nil {
217-
return err
217+
return diag.FromErr(err)
218218
}
219219
if err = d.Set("description", team.GetDescription()); err != nil {
220-
return err
220+
return diag.FromErr(err)
221221
}
222222
if err = d.Set("name", team.GetName()); err != nil {
223-
return err
223+
return diag.FromErr(err)
224224
}
225225
if err = d.Set("privacy", team.GetPrivacy()); err != nil {
226-
return err
226+
return diag.FromErr(err)
227227
}
228228
if parent := team.Parent; parent != nil {
229229
if err = d.Set("parent_team_id", strconv.FormatInt(team.Parent.GetID(), 10)); err != nil {
230-
return err
230+
return diag.FromErr(err)
231231
}
232232
if err = d.Set("parent_team_read_id", strconv.FormatInt(team.Parent.GetID(), 10)); err != nil {
233-
return err
233+
return diag.FromErr(err)
234234
}
235235
if err = d.Set("parent_team_read_slug", parent.Slug); err != nil {
236-
return err
236+
return diag.FromErr(err)
237237
}
238238
} else {
239239
if err = d.Set("parent_team_id", ""); err != nil {
240-
return err
240+
return diag.FromErr(err)
241241
}
242242
if err = d.Set("parent_team_read_id", ""); err != nil {
243-
return err
243+
return diag.FromErr(err)
244244
}
245245
if err = d.Set("parent_team_read_slug", ""); err != nil {
246-
return err
246+
return diag.FromErr(err)
247247
}
248248
}
249249
if err = d.Set("ldap_dn", team.GetLDAPDN()); err != nil {
250-
return err
250+
return diag.FromErr(err)
251251
}
252252
if err = d.Set("slug", team.GetSlug()); err != nil {
253-
return err
253+
return diag.FromErr(err)
254254
}
255255
if err = d.Set("node_id", team.GetNodeID()); err != nil {
256-
return err
256+
return diag.FromErr(err)
257257
}
258258
if err = d.Set("members_count", team.GetMembersCount()); err != nil {
259-
return err
259+
return diag.FromErr(err)
260260
}
261261

262262
return nil
263263
}
264264

265-
func resourceGithubTeamUpdate(d *schema.ResourceData, meta any) error {
265+
func resourceGithubTeamUpdate(ctx context.Context, d *schema.ResourceData, meta any) diag.Diagnostics {
266266
err := checkOrganization(meta)
267267
if err != nil {
268-
return err
268+
return diag.FromErr(err)
269269
}
270270

271271
client := meta.(*Owner).v3client
@@ -279,7 +279,7 @@ func resourceGithubTeamUpdate(d *schema.ResourceData, meta any) error {
279279
if parentTeamID, ok := d.GetOk("parent_team_id"); ok {
280280
teamID, err := getTeamID(parentTeamID.(string), meta)
281281
if err != nil {
282-
return err
282+
return diag.FromErr(err)
283283
}
284284
editedTeam.ParentTeamID = &teamID
285285
removeParentTeam = false
@@ -289,15 +289,15 @@ func resourceGithubTeamUpdate(d *schema.ResourceData, meta any) error {
289289

290290
teamID, err := strconv.ParseInt(d.Id(), 10, 64)
291291
if err != nil {
292-
return unconvertibleIdErr(d.Id(), err)
292+
return diag.FromErr(unconvertibleIdErr(d.Id(), err))
293293
}
294294

295-
ctx := context.WithValue(context.Background(), ctxId, d.Id())
295+
ctx = context.WithValue(ctx, ctxId, d.Id())
296296

297297
//nolint:staticcheck // SA1019: EditTeamByID is deprecated but still needed for legacy compatibility
298298
team, _, err := client.Teams.EditTeamByID(ctx, meta.(*Owner).id, teamID, editedTeam, removeParentTeam)
299299
if err != nil {
300-
return err
300+
return diag.FromErr(err)
301301
}
302302

303303
if d.HasChange("ldap_dn") {
@@ -307,28 +307,28 @@ func resourceGithubTeamUpdate(d *schema.ResourceData, meta any) error {
307307
}
308308
_, _, err = client.Admin.UpdateTeamLDAPMapping(ctx, team.GetID(), mapping)
309309
if err != nil {
310-
return err
310+
return diag.FromErr(err)
311311
}
312312
}
313313

314314
d.SetId(strconv.FormatInt(team.GetID(), 10))
315-
return resourceGithubTeamRead(d, meta)
315+
return resourceGithubTeamRead(ctx, d, meta)
316316
}
317317

318-
func resourceGithubTeamDelete(d *schema.ResourceData, meta any) error {
318+
func resourceGithubTeamDelete(ctx context.Context, d *schema.ResourceData, meta any) diag.Diagnostics {
319319
err := checkOrganization(meta)
320320
if err != nil {
321-
return err
321+
return diag.FromErr(err)
322322
}
323323

324324
client := meta.(*Owner).v3client
325325
orgID := meta.(*Owner).id
326326

327327
id, err := strconv.ParseInt(d.Id(), 10, 64)
328328
if err != nil {
329-
return unconvertibleIdErr(d.Id(), err)
329+
return diag.FromErr(unconvertibleIdErr(d.Id(), err))
330330
}
331-
ctx := context.WithValue(context.Background(), ctxId, d.Id())
331+
ctx = context.WithValue(ctx, ctxId, d.Id())
332332

333333
//nolint:staticcheck // SA1019: DeleteTeamByID is deprecated but still needed for legacy compatibility
334334
_, err = client.Teams.DeleteTeamByID(ctx, orgID, id)
@@ -356,10 +356,10 @@ func resourceGithubTeamDelete(d *schema.ResourceData, meta any) error {
356356
}
357357
}
358358
}
359-
return err
359+
return diag.FromErr(err)
360360
}
361361

362-
func resourceGithubTeamImport(d *schema.ResourceData, meta any) ([]*schema.ResourceData, error) {
362+
func resourceGithubTeamImport(ctx context.Context, d *schema.ResourceData, meta any) ([]*schema.ResourceData, error) {
363363
teamID, err := getTeamID(d.Id(), meta)
364364
if err != nil {
365365
return nil, err

0 commit comments

Comments
 (0)