@@ -3,19 +3,20 @@ package github
33import (
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
1314func 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