@@ -5,17 +5,18 @@ import (
55 "errors"
66 "strconv"
77
8+ "github.com/hashicorp/terraform-plugin-sdk/v2/diag"
89 "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
910 "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation"
1011 "github.com/shurcooL/githubv4"
1112)
1213
1314func resourceGithubTeamSettings () * schema.Resource {
1415 return & schema.Resource {
15- Create : resourceGithubTeamSettingsCreate ,
16- Read : resourceGithubTeamSettingsRead ,
17- Update : resourceGithubTeamSettingsUpdate ,
18- Delete : resourceGithubTeamSettingsDelete ,
16+ CreateContext : resourceGithubTeamSettingsCreate ,
17+ ReadContext : resourceGithubTeamSettingsRead ,
18+ UpdateContext : resourceGithubTeamSettingsUpdate ,
19+ DeleteContext : resourceGithubTeamSettingsDelete ,
1920 Importer : & schema.ResourceImporter {
2021 StateContext : resourceGithubTeamSettingsImport ,
2122 },
@@ -72,36 +73,32 @@ func resourceGithubTeamSettings() *schema.Resource {
7273 }
7374}
7475
75- func resourceGithubTeamSettingsCreate (d * schema.ResourceData , meta any ) error {
76- err := checkOrganization (meta )
77- if err != nil {
78- return err
76+ func resourceGithubTeamSettingsCreate (ctx context.Context , d * schema.ResourceData , meta any ) diag.Diagnostics {
77+ if err := checkOrganization (meta ); err != nil {
78+ return diag .FromErr (err )
7979 }
8080
81+ teamIDString := d .Get ("team_id" ).(string )
82+
8183 // Given a string that is either a team id or team slug, return the
8284 // get the basic details of the team including node_id and slug
83- ctx := context .Background ()
84-
85- teamIDString , _ := d .Get ("team_id" ).(string )
86-
8785 nodeId , slug , err := resolveTeamIDs (teamIDString , meta .(* Owner ), ctx )
8886 if err != nil {
89- return err
87+ return diag . FromErr ( err )
9088 }
9189 d .SetId (nodeId )
9290 if err = d .Set ("team_slug" , slug ); err != nil {
93- return err
91+ return diag . FromErr ( err )
9492 }
9593 if err = d .Set ("team_uid" , nodeId ); err != nil {
96- return err
94+ return diag . FromErr ( err )
9795 }
98- return resourceGithubTeamSettingsUpdate (d , meta )
96+ return resourceGithubTeamSettingsUpdate (ctx , d , meta )
9997}
10098
101- func resourceGithubTeamSettingsRead (d * schema.ResourceData , meta any ) error {
102- err := checkOrganization (meta )
103- if err != nil {
104- return err
99+ func resourceGithubTeamSettingsRead (ctx context.Context , d * schema.ResourceData , meta any ) diag.Diagnostics {
100+ if err := checkOrganization (meta ); err != nil {
101+ return diag .FromErr (err )
105102 }
106103
107104 graphql := meta .(* Owner ).v4client
@@ -115,9 +112,9 @@ func resourceGithubTeamSettingsRead(d *schema.ResourceData, meta any) error {
115112 "login" : githubv4 .String (orgName ),
116113 }
117114
118- e := graphql .Query (meta .( * Owner ). StopContext , & query , variables )
119- if e != nil {
120- return e
115+ err := graphql .Query (ctx , & query , variables )
116+ if err != nil {
117+ return diag . FromErr ( err )
121118 }
122119
123120 if query .Organization .Team .ReviewRequestDelegation {
@@ -126,21 +123,19 @@ func resourceGithubTeamSettingsRead(d *schema.ResourceData, meta any) error {
126123 reviewRequestDelegation ["member_count" ] = query .Organization .Team .ReviewRequestDelegationCount
127124 reviewRequestDelegation ["notify" ] = query .Organization .Team .ReviewRequestDelegationNotifyAll
128125 if err = d .Set ("review_request_delegation" , []any {reviewRequestDelegation }); err != nil {
129- return err
126+ return diag . FromErr ( err )
130127 }
131128 } else {
132129 if err = d .Set ("review_request_delegation" , []any {}); err != nil {
133- return err
130+ return diag . FromErr ( err )
134131 }
135132 }
136133
137134 return nil
138135}
139136
140- func resourceGithubTeamSettingsUpdate (d * schema.ResourceData , meta any ) error {
137+ func resourceGithubTeamSettingsUpdate (ctx context. Context , d * schema.ResourceData , meta any ) diag. Diagnostics {
141138 if d .HasChange ("review_request_delegation" ) || d .IsNewResource () {
142-
143- ctx := context .WithValue (context .Background (), ctxId , d .Id ())
144139 graphql := meta .(* Owner ).v4client
145140 if setting := d .Get ("review_request_delegation" ).([]any ); len (setting ) == 0 {
146141 var mutation struct {
@@ -149,7 +144,11 @@ func resourceGithubTeamSettingsUpdate(d *schema.ResourceData, meta any) error {
149144 } `graphql:"updateTeamReviewAssignment(input:$input)"`
150145 }
151146
152- return graphql .Mutate (ctx , & mutation , defaultTeamReviewAssignmentSettings (d .Id ()), nil )
147+ err := graphql .Mutate (ctx , & mutation , defaultTeamReviewAssignmentSettings (d .Id ()), nil )
148+ if err != nil {
149+ return diag .FromErr (err )
150+ }
151+ return nil
153152 } else {
154153 settings := d .Get ("review_request_delegation" ).([]any )[0 ].(map [string ]any )
155154
@@ -160,21 +159,25 @@ func resourceGithubTeamSettingsUpdate(d *schema.ResourceData, meta any) error {
160159 }
161160
162161 teamReviewAlgorithm := githubv4 .TeamReviewAssignmentAlgorithm (settings ["algorithm" ].(string ))
163- return graphql . Mutate ( ctx , & mutation , githubv4.UpdateTeamReviewAssignmentInput {
162+ updateTeamReviewAssignmentInput := githubv4.UpdateTeamReviewAssignmentInput {
164163 ID : d .Id (),
165164 Enabled : githubv4 .Boolean (true ),
166165 Algorithm : & teamReviewAlgorithm ,
167166 TeamMemberCount : new (githubv4.Int (settings ["member_count" ].(int ))),
168167 NotifyTeam : new (githubv4.Boolean (settings ["notify" ].(bool ))),
169- }, nil )
168+ }
169+ err := graphql .Mutate (ctx , & mutation , updateTeamReviewAssignmentInput , nil )
170+ if err != nil {
171+ return diag .FromErr (err )
172+ }
173+ return nil
170174 }
171175 }
172176
173- return resourceGithubTeamSettingsRead (d , meta )
177+ return resourceGithubTeamSettingsRead (ctx , d , meta )
174178}
175179
176- func resourceGithubTeamSettingsDelete (d * schema.ResourceData , meta any ) error {
177- ctx := context .WithValue (context .Background (), ctxId , d .Id ())
180+ func resourceGithubTeamSettingsDelete (ctx context.Context , d * schema.ResourceData , meta any ) diag.Diagnostics {
178181 graphql := meta .(* Owner ).v4client
179182
180183 var mutation struct {
@@ -183,7 +186,11 @@ func resourceGithubTeamSettingsDelete(d *schema.ResourceData, meta any) error {
183186 } `graphql:"updateTeamReviewAssignment(input:$input)"`
184187 }
185188
186- return graphql .Mutate (ctx , & mutation , defaultTeamReviewAssignmentSettings (d .Id ()), nil )
189+ err := graphql .Mutate (ctx , & mutation , defaultTeamReviewAssignmentSettings (d .Id ()), nil )
190+ if err != nil {
191+ return diag .FromErr (err )
192+ }
193+ return nil
187194}
188195
189196func resourceGithubTeamSettingsImport (ctx context.Context , d * schema.ResourceData , meta any ) ([]* schema.ResourceData , error ) {
0 commit comments