@@ -9,15 +9,16 @@ import (
99 "strconv"
1010
1111 "github.com/google/go-github/v81/github"
12+ "github.com/hashicorp/terraform-plugin-sdk/v2/diag"
1213 "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
1314)
1415
1516func resourceGithubRelease () * schema.Resource {
1617 return & schema.Resource {
17- Create : resourceGithubReleaseCreateUpdate ,
18- Update : resourceGithubReleaseCreateUpdate ,
19- Read : resourceGithubReleaseRead ,
20- Delete : resourceGithubReleaseDelete ,
18+ CreateContext : resourceGithubReleaseCreateUpdate ,
19+ UpdateContext : resourceGithubReleaseCreateUpdate ,
20+ ReadContext : resourceGithubReleaseRead ,
21+ DeleteContext : resourceGithubReleaseDelete ,
2122 Importer : & schema.ResourceImporter {
2223 State : resourceGithubReleaseImport ,
2324 },
@@ -137,8 +138,7 @@ func resourceGithubRelease() *schema.Resource {
137138 }
138139}
139140
140- func resourceGithubReleaseCreateUpdate (d * schema.ResourceData , meta any ) error {
141- ctx := context .Background ()
141+ func resourceGithubReleaseCreateUpdate (ctx context.Context , d * schema.ResourceData , meta any ) diag.Diagnostics {
142142 if ! d .IsNewResource () {
143143 ctx = context .WithValue (ctx , ctxId , d .Id ())
144144 }
@@ -183,12 +183,12 @@ func resourceGithubReleaseCreateUpdate(d *schema.ResourceData, meta any) error {
183183 log .Printf ("[DEBUG] Response from creating release: %#v" , * resp )
184184 }
185185 if err != nil {
186- return err
186+ return diag . FromErr ( err )
187187 }
188188 } else {
189189 id , err := strconv .ParseInt (d .Id (), 10 , 64 )
190190 if err != nil {
191- return err
191+ return diag . FromErr ( err )
192192 }
193193 log .Printf ("[DEBUG] Updating release: %d:%s (%s/%s)" ,
194194 id , targetCommitish , owner , repoName )
@@ -197,25 +197,25 @@ func resourceGithubReleaseCreateUpdate(d *schema.ResourceData, meta any) error {
197197 log .Printf ("[DEBUG] Response from updating release: %#v" , * resp )
198198 }
199199 if err != nil {
200- return err
200+ return diag . FromErr ( err )
201201 }
202202 }
203203
204204 transformResponseToResourceData (d , release , repoName )
205205 return nil
206206}
207207
208- func resourceGithubReleaseRead (d * schema.ResourceData , meta any ) error {
208+ func resourceGithubReleaseRead (ctx context. Context , d * schema.ResourceData , meta any ) diag. Diagnostics {
209209 repository := d .Get ("repository" ).(string )
210- ctx : = context .WithValue (context . Background () , ctxId , d .Id ())
210+ ctx = context .WithValue (ctx , ctxId , d .Id ())
211211 client := meta .(* Owner ).v3client
212212 owner := meta .(* Owner ).name
213213 releaseID , err := strconv .ParseInt (d .Id (), 10 , 64 )
214214 if err != nil {
215- return err
215+ return diag . FromErr ( err )
216216 }
217217 if releaseID == 0 {
218- return fmt .Errorf ("`release_id` must be present" )
218+ return diag .Errorf ("`release_id` must be present" )
219219 }
220220
221221 release , _ , err := client .Repositories .GetRelease (ctx , owner , repository , releaseID )
@@ -228,31 +228,31 @@ func resourceGithubReleaseRead(d *schema.ResourceData, meta any) error {
228228 return nil
229229 }
230230 }
231- return err
231+ return diag . FromErr ( err )
232232 }
233233 transformResponseToResourceData (d , release , repository )
234234 return nil
235235}
236236
237- func resourceGithubReleaseDelete (d * schema.ResourceData , meta any ) error {
238- ctx : = context .WithValue (context . Background () , ctxId , d .Id ())
237+ func resourceGithubReleaseDelete (ctx context. Context , d * schema.ResourceData , meta any ) diag. Diagnostics {
238+ ctx = context .WithValue (ctx , ctxId , d .Id ())
239239 repository := d .Get ("repository" ).(string )
240240 client := meta .(* Owner ).v3client
241241 owner := meta .(* Owner ).name
242242
243243 releaseIDStr := d .Id ()
244244 releaseID , err := strconv .ParseInt (d .Id (), 10 , 64 )
245245 if err != nil {
246- return unconvertibleIdErr (releaseIDStr , err )
246+ return diag . FromErr ( unconvertibleIdErr (releaseIDStr , err ) )
247247 }
248248 if releaseID == 0 {
249- return fmt .Errorf ("`release_id` must be present" )
249+ return diag .Errorf ("`release_id` must be present" )
250250 }
251251
252252 _ , err = client .Repositories .DeleteRelease (ctx , owner , repository , releaseID )
253253 if err != nil {
254- return fmt .Errorf ("error deleting GitHub release reference %s/%s (%s): %w" ,
255- fmt .Sprint (releaseID ), repository , owner , err )
254+ return diag . FromErr ( fmt .Errorf ("error deleting GitHub release reference %s/%s (%s): %w" ,
255+ fmt .Sprint (releaseID ), repository , owner , err ))
256256 }
257257 return nil
258258}
0 commit comments