@@ -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
1617func 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