From 9b94bee895a47dae1c14529b991e9df09ee348ff Mon Sep 17 00:00:00 2001 From: bagtoad <47394200+BagToad@users.noreply.github.com> Date: Wed, 9 Oct 2024 22:26:03 -0600 Subject: [PATCH] Refactor http error handling --- pkg/cmd/repo/gitignore/view/view.go | 7 +++++-- pkg/cmd/repo/license/view/view.go | 7 +++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/pkg/cmd/repo/gitignore/view/view.go b/pkg/cmd/repo/gitignore/view/view.go index 82009820c..a679ef946 100644 --- a/pkg/cmd/repo/gitignore/view/view.go +++ b/pkg/cmd/repo/gitignore/view/view.go @@ -81,8 +81,11 @@ func viewRun(opts *ViewOptions) error { hostname, _ := cfg.Authentication().DefaultHost() gitIgnore, err := api.RepoGitIgnoreTemplate(client, hostname, opts.Template) if err != nil { - if strings.Contains(err.Error(), "HTTP 404") { - return fmt.Errorf("'%s' is not a valid gitignore template. Run `gh repo gitignore list` for options", opts.Template) + var httpErr api.HTTPError + if errors.As(err, &httpErr) { + if httpErr.StatusCode == 404 { + return fmt.Errorf("'%s' is not a valid gitignore template. Run `gh repo gitignore list` for options", opts.Template) + } } return err } diff --git a/pkg/cmd/repo/license/view/view.go b/pkg/cmd/repo/license/view/view.go index c21086fbc..02100efa3 100644 --- a/pkg/cmd/repo/license/view/view.go +++ b/pkg/cmd/repo/license/view/view.go @@ -94,8 +94,11 @@ func viewRun(opts *ViewOptions) error { hostname, _ := cfg.Authentication().DefaultHost() license, err := api.RepoLicense(client, hostname, opts.License) if err != nil { - if strings.Contains(err.Error(), "HTTP 404") { - return fmt.Errorf("'%s' is not a valid license template name or SPDX ID.\n\nRun `gh repo license list` to see available commonly used licenses. For even more licenses, visit %s", opts.License, text.DisplayURL("https://choosealicense.com/appendix")) + var httpErr api.HTTPError + if errors.As(err, &httpErr) { + if httpErr.StatusCode == 404 { + return fmt.Errorf("'%s' is not a valid license template name or SPDX ID.\n\nRun `gh repo license list` to see available commonly used licenses. For even more licenses, visit %s", opts.License, text.DisplayURL("https://choosealicense.com/appendix")) + } } return err }