@@ -19,17 +19,16 @@ package helm
1919import (
2020 "context"
2121 "encoding/base64"
22+ "errors"
2223 "fmt"
2324 "log"
2425 "net/http"
2526 "os"
2627 "strings"
2728
2829 "github.com/google/go-github/v35/github"
29- "github.com/pkg/errors"
30- utilerrors "k8s.io/apimachinery/pkg/util/errors"
3130 "k8s.io/apimachinery/pkg/util/sets"
32- "k8s.io/utils/pointer "
31+ "k8s.io/utils/ptr "
3332
3433 "github.com/cert-manager/release/pkg/release/manifests"
3534)
@@ -41,10 +40,10 @@ const (
4140 tplPRDescription = "This PR was generated by [cmrel](https://github.com/cert-manager/release) for the cert-manager staged release: `%s`."
4241)
4342
44- var acceptableGitHubPermissions sets.String
43+ var acceptableGitHubPermissions sets.Set [ string ]
4544
4645func init () {
47- acceptableGitHubPermissions = sets .NewString ("write" , "admin" )
46+ acceptableGitHubPermissions = sets .New ("write" , "admin" )
4847}
4948
5049type RepositoryManager interface {
@@ -85,13 +84,13 @@ func NewGitHubRepositoryManager(client *GitHubClient, owner, repo, branch string
8584func (o * gitHubRepositoryManager ) Check (ctx context.Context ) (err error ) {
8685 var errs []error
8786 defer func () {
88- err = errors .WithStack ( utilerrors . NewAggregate ( errs ) )
87+ err = errors .Join ( errs ... )
8988 }()
9089
9190 // NB: Empty user means current logged in user
9291 user , response , err := o .UsersClient .Get (ctx , "" )
9392 if err != nil {
94- return errors . WithStack ( err )
93+ return err
9594 }
9695 scopes := strings .Split (response .Header .Get ("X-Oauth-Scopes" ), "," )
9796 for i , scope := range scopes {
@@ -106,7 +105,7 @@ func (o *gitHubRepositoryManager) Check(ctx context.Context) (err error) {
106105 if err != nil {
107106 var gitHubErr * github.ErrorResponse
108107 if ! errors .As (err , & gitHubErr ) {
109- return errors . WithStack ( err )
108+ return err
110109 }
111110 if gitHubErr .Response .StatusCode == http .StatusNotFound {
112111 errs = append (
@@ -128,7 +127,7 @@ func (o *gitHubRepositoryManager) Check(ctx context.Context) (err error) {
128127 errs ,
129128 fmt .Errorf (
130129 "expected permission to be one of %q, got: %q" ,
131- strings .Join (acceptableGitHubPermissions .List (), "," ),
130+ strings .Join (acceptableGitHubPermissions .UnsortedList (), "," ),
132131 actualPermission ,
133132 ),
134133 )
@@ -139,7 +138,7 @@ func (o *gitHubRepositoryManager) Check(ctx context.Context) (err error) {
139138 if err != nil {
140139 var gitHubErr * github.ErrorResponse
141140 if ! errors .As (err , & gitHubErr ) {
142- return errors . WithStack ( err )
141+ return err
143142 }
144143 if gitHubErr .Response .StatusCode == http .StatusNotFound {
145144 errs = append (errs , fmt .Errorf ("branch %q not found: %v" , o .branch , err ))
@@ -168,14 +167,14 @@ func (o *gitHubRepositoryManager) Publish(ctx context.Context, releaseName strin
168167 }
169168 // Create PR
170169 npr := & github.NewPullRequest {
171- Title : pointer . StringPtr (fmt .Sprintf (tplPRTitle , releaseName )),
172- Body : pointer . StringPtr (fmt .Sprintf (tplPRDescription , releaseName )),
173- Base : pointer . StringPtr (o .branch ),
174- Head : pointer . StringPtr (newBranchName ),
170+ Title : ptr . To (fmt .Sprintf (tplPRTitle , releaseName )),
171+ Body : ptr . To (fmt .Sprintf (tplPRDescription , releaseName )),
172+ Base : ptr . To (o .branch ),
173+ Head : ptr . To (newBranchName ),
175174 }
176175 pr , _ , err := o .PullRequestClient .Create (ctx , o .owner , o .repo , npr )
177176 if err != nil {
178- return "" , errors . WithStack ( err )
177+ return "" , err
179178 }
180179 prURL := pr .GetHTMLURL ()
181180 log .Printf ("Created PR: %s " , prURL )
@@ -187,16 +186,16 @@ func (o *gitHubRepositoryManager) Publish(ctx context.Context, releaseName strin
187186func (o * gitHubRepositoryManager ) createBranch (ctx context.Context , sourceName , branchName string ) (* github.Reference , error ) {
188187 baseRef , _ , err := o .GitClient .GetRef (ctx , o .owner , o .repo , fmt .Sprintf ("refs/heads/%s" , sourceName ))
189188 if err != nil {
190- return nil , errors . WithStack ( err )
189+ return nil , err
191190 }
192191
193192 newRef := & github.Reference {
194- Ref : pointer . StringPtr (fmt .Sprintf ("refs/heads/%s" , branchName )),
193+ Ref : ptr . To (fmt .Sprintf ("refs/heads/%s" , branchName )),
195194 Object : baseRef .GetObject (),
196195 }
197196
198197 ref , _ , err := o .GitClient .CreateRef (ctx , o .owner , o .repo , newRef )
199- return ref , errors . WithStack ( err )
198+ return ref , err
200199}
201200
202201// commitChartToBranch uploads a single Helm chart to the target branch, along with its signature if such a signature exists
@@ -207,7 +206,7 @@ func (o *gitHubRepositoryManager) commitChartToBranch(ctx context.Context, ref *
207206
208207 chartContent , err := os .ReadFile (chart .Path ())
209208 if err != nil {
210- return errors . WithStack ( err )
209+ return err
211210 }
212211
213212 // we can't just append a github.TreeEntry because the tgz file is binary data and can't be string encoded, which
@@ -218,7 +217,7 @@ func (o *gitHubRepositoryManager) commitChartToBranch(ctx context.Context, ref *
218217 Encoding : github .String ("base64" ),
219218 })
220219 if err != nil {
221- return errors . WithStack ( err )
220+ return err
222221 }
223222
224223 entries = append (entries , & github.TreeEntry {
@@ -240,7 +239,7 @@ func (o *gitHubRepositoryManager) commitChartToBranch(ctx context.Context, ref *
240239 provFileName := chartFileName + ".prov"
241240 provContent , err := os .ReadFile (* provPath )
242241 if err != nil {
243- return errors . WithStack ( err )
242+ return err
244243 }
245244
246245 // TreeEntries can create a blob entry if it contains textual data; a prov file does, so
@@ -254,20 +253,20 @@ func (o *gitHubRepositoryManager) commitChartToBranch(ctx context.Context, ref *
254253 })
255254
256255 if err != nil {
257- return errors . WithStack ( err )
256+ return err
258257 }
259258
260259 commitMessage = commitMessage + fmt .Sprintf (" and %s" , provFileName )
261260 }
262261
263262 tree , _ , err := o .GitClient .CreateTree (ctx , o .owner , o .repo , * ref .Object .SHA , entries )
264263 if err != nil {
265- return errors . WithStack ( err )
264+ return err
266265 }
267266
268267 parent , _ , err := o .RepositoriesClient .GetCommit (ctx , o .owner , o .repo , * ref .Object .SHA )
269268 if err != nil {
270- return errors . WithStack ( err )
269+ return err
271270 }
272271
273272 // This needs to be set, according to:
@@ -283,13 +282,13 @@ func (o *gitHubRepositoryManager) commitChartToBranch(ctx context.Context, ref *
283282 }
284283 newCommit , _ , err := o .GitClient .CreateCommit (ctx , o .owner , o .repo , commit )
285284 if err != nil {
286- return errors . WithStack ( err )
285+ return err
287286 }
288287
289288 ref .Object .SHA = newCommit .SHA
290289 _ , _ , err = o .GitClient .UpdateRef (ctx , o .owner , o .repo , ref , false )
291290 if err != nil {
292- return errors . WithStack ( err )
291+ return err
293292 }
294293
295294 return nil
0 commit comments