Skip to content

Commit 9ab7bb0

Browse files
committed
refactor(org-webhook): migrate to context-aware CRUD functions
Migrate resource_github_organization_webhook.go from legacy CRUD to context-aware CRUD functions (CreateContext, ReadContext, UpdateContext, DeleteContext) per Terraform Plugin SDK v2 best practices. Ref: #2996
1 parent a06ef10 commit 9ab7bb0

1 file changed

Lines changed: 31 additions & 31 deletions

File tree

github/resource_github_organization_webhook.go

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,16 @@ import (
88
"strconv"
99

1010
"github.com/google/go-github/v81/github"
11+
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
1112
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
1213
)
1314

1415
func resourceGithubOrganizationWebhook() *schema.Resource {
1516
return &schema.Resource{
16-
Create: resourceGithubOrganizationWebhookCreate,
17-
Read: resourceGithubOrganizationWebhookRead,
18-
Update: resourceGithubOrganizationWebhookUpdate,
19-
Delete: resourceGithubOrganizationWebhookDelete,
17+
CreateContext: resourceGithubOrganizationWebhookCreate,
18+
ReadContext: resourceGithubOrganizationWebhookRead,
19+
UpdateContext: resourceGithubOrganizationWebhookUpdate,
20+
DeleteContext: resourceGithubOrganizationWebhookDelete,
2021
Importer: &schema.ResourceImporter{
2122
StateContext: schema.ImportStatePassthroughContext,
2223
},
@@ -79,21 +80,20 @@ func resourceGithubOrganizationWebhookObject(d *schema.ResourceData) *github.Hoo
7980
return hook
8081
}
8182

82-
func resourceGithubOrganizationWebhookCreate(d *schema.ResourceData, meta any) error {
83+
func resourceGithubOrganizationWebhookCreate(ctx context.Context, d *schema.ResourceData, meta any) diag.Diagnostics {
8384
err := checkOrganization(meta)
8485
if err != nil {
85-
return err
86+
return diag.FromErr(err)
8687
}
8788

8889
client := meta.(*Owner).v3client
8990

9091
orgName := meta.(*Owner).name
9192
webhookObj := resourceGithubOrganizationWebhookObject(d)
92-
ctx := context.Background()
9393

9494
hook, _, err := client.Organizations.CreateHook(ctx, orgName, webhookObj)
9595
if err != nil {
96-
return err
96+
return diag.FromErr(err)
9797
}
9898
d.SetId(strconv.FormatInt(hook.GetID(), 10))
9999

@@ -105,26 +105,26 @@ func resourceGithubOrganizationWebhookCreate(d *schema.ResourceData, meta any) e
105105
}
106106

107107
if err = d.Set("configuration", interfaceFromWebhookConfig(hook.Config)); err != nil {
108-
return err
108+
return diag.FromErr(err)
109109
}
110110

111-
return resourceGithubOrganizationWebhookRead(d, meta)
111+
return resourceGithubOrganizationWebhookRead(ctx, d, meta)
112112
}
113113

114-
func resourceGithubOrganizationWebhookRead(d *schema.ResourceData, meta any) error {
114+
func resourceGithubOrganizationWebhookRead(ctx context.Context, d *schema.ResourceData, meta any) diag.Diagnostics {
115115
err := checkOrganization(meta)
116116
if err != nil {
117-
return err
117+
return diag.FromErr(err)
118118
}
119119

120120
client := meta.(*Owner).v3client
121121

122122
orgName := meta.(*Owner).name
123123
hookID, err := strconv.ParseInt(d.Id(), 10, 64)
124124
if err != nil {
125-
return unconvertibleIdErr(d.Id(), err)
125+
return diag.FromErr(unconvertibleIdErr(d.Id(), err))
126126
}
127-
ctx := context.WithValue(context.Background(), ctxId, d.Id())
127+
ctx = context.WithValue(ctx, ctxId, d.Id())
128128
if !d.IsNewResource() {
129129
ctx = context.WithValue(ctx, ctxEtag, d.Get("etag").(string))
130130
}
@@ -143,20 +143,20 @@ func resourceGithubOrganizationWebhookRead(d *schema.ResourceData, meta any) err
143143
return nil
144144
}
145145
}
146-
return err
146+
return diag.FromErr(err)
147147
}
148148

149149
if err = d.Set("etag", resp.Header.Get("ETag")); err != nil {
150-
return err
150+
return diag.FromErr(err)
151151
}
152152
if err = d.Set("url", hook.GetURL()); err != nil {
153-
return err
153+
return diag.FromErr(err)
154154
}
155155
if err = d.Set("active", hook.GetActive()); err != nil {
156-
return err
156+
return diag.FromErr(err)
157157
}
158158
if err = d.Set("events", hook.Events); err != nil {
159-
return err
159+
return diag.FromErr(err)
160160
}
161161

162162
// GitHub returns the secret as a string of 8 astrisks "********"
@@ -172,16 +172,16 @@ func resourceGithubOrganizationWebhookRead(d *schema.ResourceData, meta any) err
172172
}
173173

174174
if err = d.Set("configuration", interfaceFromWebhookConfig(hook.Config)); err != nil {
175-
return err
175+
return diag.FromErr(err)
176176
}
177177

178178
return nil
179179
}
180180

181-
func resourceGithubOrganizationWebhookUpdate(d *schema.ResourceData, meta any) error {
181+
func resourceGithubOrganizationWebhookUpdate(ctx context.Context, d *schema.ResourceData, meta any) diag.Diagnostics {
182182
err := checkOrganization(meta)
183183
if err != nil {
184-
return err
184+
return diag.FromErr(err)
185185
}
186186

187187
client := meta.(*Owner).v3client
@@ -190,36 +190,36 @@ func resourceGithubOrganizationWebhookUpdate(d *schema.ResourceData, meta any) e
190190
webhookObj := resourceGithubOrganizationWebhookObject(d)
191191
hookID, err := strconv.ParseInt(d.Id(), 10, 64)
192192
if err != nil {
193-
return unconvertibleIdErr(d.Id(), err)
193+
return diag.FromErr(unconvertibleIdErr(d.Id(), err))
194194
}
195-
ctx := context.WithValue(context.Background(), ctxId, d.Id())
195+
ctx = context.WithValue(ctx, ctxId, d.Id())
196196

197197
_, _, err = client.Organizations.EditHook(ctx,
198198
orgName, hookID, webhookObj)
199199
if err != nil {
200-
return err
200+
return diag.FromErr(err)
201201
}
202202

203-
return resourceGithubOrganizationWebhookRead(d, meta)
203+
return resourceGithubOrganizationWebhookRead(ctx, d, meta)
204204
}
205205

206-
func resourceGithubOrganizationWebhookDelete(d *schema.ResourceData, meta any) error {
206+
func resourceGithubOrganizationWebhookDelete(ctx context.Context, d *schema.ResourceData, meta any) diag.Diagnostics {
207207
err := checkOrganization(meta)
208208
if err != nil {
209-
return err
209+
return diag.FromErr(err)
210210
}
211211

212212
client := meta.(*Owner).v3client
213213

214214
orgName := meta.(*Owner).name
215215
hookID, err := strconv.ParseInt(d.Id(), 10, 64)
216216
if err != nil {
217-
return unconvertibleIdErr(d.Id(), err)
217+
return diag.FromErr(unconvertibleIdErr(d.Id(), err))
218218
}
219-
ctx := context.WithValue(context.Background(), ctxId, d.Id())
219+
ctx = context.WithValue(ctx, ctxId, d.Id())
220220

221221
_, err = client.Organizations.DeleteHook(ctx, orgName, hookID)
222-
return err
222+
return diag.FromErr(err)
223223
}
224224

225225
func webhookConfigFromInterface(config map[string]any) *github.HookConfig {

0 commit comments

Comments
 (0)