Skip to content

Commit 3c9c8be

Browse files
committed
Migrate github_branch_default to context-aware CRUD and tflog
1 parent 94f71cf commit 3c9c8be

1 file changed

Lines changed: 28 additions & 28 deletions

File tree

github/resource_github_branch_default.go

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,20 @@ package github
33
import (
44
"context"
55
"errors"
6-
"log"
76
"net/http"
87

98
"github.com/google/go-github/v84/github"
9+
"github.com/hashicorp/terraform-plugin-log/tflog"
10+
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
1011
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
1112
)
1213

1314
func resourceGithubBranchDefault() *schema.Resource {
1415
return &schema.Resource{
15-
Create: resourceGithubBranchDefaultCreate,
16-
Read: resourceGithubBranchDefaultRead,
17-
Delete: resourceGithubBranchDefaultDelete,
18-
Update: resourceGithubBranchDefaultUpdate,
16+
CreateContext: resourceGithubBranchDefaultCreate,
17+
ReadContext: resourceGithubBranchDefaultRead,
18+
DeleteContext: resourceGithubBranchDefaultDelete,
19+
UpdateContext: resourceGithubBranchDefaultUpdate,
1920
Importer: &schema.ResourceImporter{
2021
StateContext: schema.ImportStatePassthroughContext,
2122
},
@@ -51,47 +52,45 @@ func resourceGithubBranchDefault() *schema.Resource {
5152
}
5253
}
5354

54-
func resourceGithubBranchDefaultCreate(d *schema.ResourceData, meta any) error {
55+
func resourceGithubBranchDefaultCreate(ctx context.Context, d *schema.ResourceData, meta any) diag.Diagnostics {
5556
client := meta.(*Owner).v3client
5657
owner := meta.(*Owner).name
5758
repoName := d.Get("repository").(string)
5859
defaultBranch := d.Get("branch").(string)
5960
rename := d.Get("rename").(bool)
6061

61-
ctx := context.Background()
62-
6362
repository, _, err := client.Repositories.Get(ctx, owner, repoName)
6463
if err != nil {
65-
return err
64+
return diag.FromErr(err)
6665
}
6766

6867
if *repository.DefaultBranch != defaultBranch {
6968
if rename {
7069
if _, _, err := client.Repositories.RenameBranch(ctx, owner, repoName, *repository.DefaultBranch, defaultBranch); err != nil {
71-
return err
70+
return diag.FromErr(err)
7271
}
7372
} else {
7473
repository := &github.Repository{
7574
DefaultBranch: &defaultBranch,
7675
}
7776

7877
if _, _, err := client.Repositories.Edit(ctx, owner, repoName, repository); err != nil {
79-
return err
78+
return diag.FromErr(err)
8079
}
8180
}
8281
}
8382

8483
d.SetId(repoName)
8584

86-
return resourceGithubBranchDefaultRead(d, meta)
85+
return resourceGithubBranchDefaultRead(ctx, d, meta)
8786
}
8887

89-
func resourceGithubBranchDefaultRead(d *schema.ResourceData, meta any) error {
88+
func resourceGithubBranchDefaultRead(ctx context.Context, d *schema.ResourceData, meta any) diag.Diagnostics {
9089
client := meta.(*Owner).v3client
9190
owner := meta.(*Owner).name
9291
repoName := d.Id()
9392

94-
ctx := context.WithValue(context.Background(), ctxId, d.Id())
93+
ctx = context.WithValue(ctx, ctxId, d.Id())
9594
if !d.IsNewResource() {
9695
ctx = context.WithValue(ctx, ctxEtag, d.Get("etag").(string))
9796
}
@@ -104,13 +103,15 @@ func resourceGithubBranchDefaultRead(d *schema.ResourceData, meta any) error {
104103
return nil
105104
}
106105
if ghErr.Response.StatusCode == http.StatusNotFound {
107-
log.Printf("[INFO] Removing repository %s/%s from state because it no longer exists in GitHub",
108-
owner, repoName)
106+
tflog.Info(ctx, "Removing repository from state because it no longer exists in GitHub", map[string]any{
107+
"owner": owner,
108+
"repository": repoName,
109+
})
109110
d.SetId("")
110111
return nil
111112
}
112113
}
113-
return err
114+
return diag.FromErr(err)
114115
}
115116

116117
if repository.DefaultBranch == nil {
@@ -124,7 +125,7 @@ func resourceGithubBranchDefaultRead(d *schema.ResourceData, meta any) error {
124125
return nil
125126
}
126127

127-
func resourceGithubBranchDefaultDelete(d *schema.ResourceData, meta any) error {
128+
func resourceGithubBranchDefaultDelete(ctx context.Context, d *schema.ResourceData, meta any) diag.Diagnostics {
128129
client := meta.(*Owner).v3client
129130
owner := meta.(*Owner).name
130131
repoName := d.Id()
@@ -133,38 +134,37 @@ func resourceGithubBranchDefaultDelete(d *schema.ResourceData, meta any) error {
133134
DefaultBranch: nil,
134135
}
135136

136-
ctx := context.Background()
137-
138137
_, _, err := client.Repositories.Edit(ctx, owner, repoName, repository)
139-
return err
138+
if err != nil {
139+
return diag.FromErr(err)
140+
}
141+
return nil
140142
}
141143

142-
func resourceGithubBranchDefaultUpdate(d *schema.ResourceData, meta any) error {
144+
func resourceGithubBranchDefaultUpdate(ctx context.Context, d *schema.ResourceData, meta any) diag.Diagnostics {
143145
client := meta.(*Owner).v3client
144146
owner := meta.(*Owner).name
145147
repoName := d.Id()
146148
defaultBranch := d.Get("branch").(string)
147149
rename := d.Get("rename").(bool)
148150

149-
ctx := context.Background()
150-
151151
if rename {
152152
repository, _, err := client.Repositories.Get(ctx, owner, repoName)
153153
if err != nil {
154-
return err
154+
return diag.FromErr(err)
155155
}
156156
if _, _, err := client.Repositories.RenameBranch(ctx, owner, repoName, *repository.DefaultBranch, defaultBranch); err != nil {
157-
return err
157+
return diag.FromErr(err)
158158
}
159159
} else {
160160
repository := &github.Repository{
161161
DefaultBranch: &defaultBranch,
162162
}
163163

164164
if _, _, err := client.Repositories.Edit(ctx, owner, repoName, repository); err != nil {
165-
return err
165+
return diag.FromErr(err)
166166
}
167167
}
168168

169-
return resourceGithubBranchDefaultRead(d, meta)
169+
return resourceGithubBranchDefaultRead(ctx, d, meta)
170170
}

0 commit comments

Comments
 (0)