From e98ff2ea387b7d18e2b94f124a0d61c46417f565 Mon Sep 17 00:00:00 2001 From: Michael Hoffman Date: Mon, 23 Dec 2024 21:09:10 -0500 Subject: [PATCH] Refactor autolink subcommands into their own packages --- pkg/cmd/repo/autolink/autolink.go | 3 ++- pkg/cmd/repo/autolink/{ => list}/http.go | 2 +- pkg/cmd/repo/autolink/{ => list}/http_test.go | 2 +- pkg/cmd/repo/autolink/{ => list}/list.go | 15 +++++++++++++-- pkg/cmd/repo/autolink/{ => list}/list_test.go | 4 ++-- pkg/cmd/repo/autolink/shared.go | 14 -------------- 6 files changed, 19 insertions(+), 21 deletions(-) rename pkg/cmd/repo/autolink/{ => list}/http.go (98%) rename pkg/cmd/repo/autolink/{ => list}/http_test.go (99%) rename pkg/cmd/repo/autolink/{ => list}/list.go (88%) rename pkg/cmd/repo/autolink/{ => list}/list_test.go (98%) delete mode 100644 pkg/cmd/repo/autolink/shared.go diff --git a/pkg/cmd/repo/autolink/autolink.go b/pkg/cmd/repo/autolink/autolink.go index 9c0972f7c..d9430f562 100644 --- a/pkg/cmd/repo/autolink/autolink.go +++ b/pkg/cmd/repo/autolink/autolink.go @@ -2,6 +2,7 @@ package autolink import ( "github.com/MakeNowJust/heredoc" + cmdList "github.com/cli/cli/v2/pkg/cmd/repo/autolink/list" "github.com/cli/cli/v2/pkg/cmdutil" "github.com/spf13/cobra" ) @@ -22,7 +23,7 @@ func NewCmdAutolink(f *cmdutil.Factory) *cobra.Command { } cmdutil.EnableRepoOverride(cmd, f) - cmd.AddCommand(newCmdList(f, nil)) + cmd.AddCommand(cmdList.NewCmdList(f, nil)) return cmd } diff --git a/pkg/cmd/repo/autolink/http.go b/pkg/cmd/repo/autolink/list/http.go similarity index 98% rename from pkg/cmd/repo/autolink/http.go rename to pkg/cmd/repo/autolink/list/http.go index a10e98f7b..e3fb27e7b 100644 --- a/pkg/cmd/repo/autolink/http.go +++ b/pkg/cmd/repo/autolink/list/http.go @@ -1,4 +1,4 @@ -package autolink +package list import ( "encoding/json" diff --git a/pkg/cmd/repo/autolink/http_test.go b/pkg/cmd/repo/autolink/list/http_test.go similarity index 99% rename from pkg/cmd/repo/autolink/http_test.go rename to pkg/cmd/repo/autolink/list/http_test.go index 64ffc1e40..8a2d5c296 100644 --- a/pkg/cmd/repo/autolink/http_test.go +++ b/pkg/cmd/repo/autolink/list/http_test.go @@ -1,4 +1,4 @@ -package autolink +package list import ( "fmt" diff --git a/pkg/cmd/repo/autolink/list.go b/pkg/cmd/repo/autolink/list/list.go similarity index 88% rename from pkg/cmd/repo/autolink/list.go rename to pkg/cmd/repo/autolink/list/list.go index 41d0d7266..9db044668 100644 --- a/pkg/cmd/repo/autolink/list.go +++ b/pkg/cmd/repo/autolink/list/list.go @@ -1,4 +1,4 @@ -package autolink +package list import ( "fmt" @@ -21,6 +21,17 @@ var autolinkFields = []string{ "urlTemplate", } +type autolink struct { + ID int `json:"id"` + IsAlphanumeric bool `json:"is_alphanumeric"` + KeyPrefix string `json:"key_prefix"` + URLTemplate string `json:"url_template"` +} + +func (s *autolink) ExportData(fields []string) map[string]interface{} { + return cmdutil.StructExportData(s, fields) +} + type listOptions struct { BaseRepo func() (ghrepo.Interface, error) Browser browser.Browser @@ -35,7 +46,7 @@ type AutolinkClient interface { Get(repo ghrepo.Interface) ([]autolink, error) } -func newCmdList(f *cmdutil.Factory, runF func(*listOptions) error) *cobra.Command { +func NewCmdList(f *cmdutil.Factory, runF func(*listOptions) error) *cobra.Command { opts := &listOptions{ Browser: f.Browser, IO: f.IOStreams, diff --git a/pkg/cmd/repo/autolink/list_test.go b/pkg/cmd/repo/autolink/list/list_test.go similarity index 98% rename from pkg/cmd/repo/autolink/list_test.go rename to pkg/cmd/repo/autolink/list/list_test.go index 0c24c5ba6..5db767032 100644 --- a/pkg/cmd/repo/autolink/list_test.go +++ b/pkg/cmd/repo/autolink/list/list_test.go @@ -1,4 +1,4 @@ -package autolink +package list import ( "bytes" @@ -69,7 +69,7 @@ func TestNewCmdList(t *testing.T) { require.NoError(t, err) var gotOpts *listOptions - cmd := newCmdList(f, func(opts *listOptions) error { + cmd := NewCmdList(f, func(opts *listOptions) error { gotOpts = opts return nil }) diff --git a/pkg/cmd/repo/autolink/shared.go b/pkg/cmd/repo/autolink/shared.go deleted file mode 100644 index c8478b346..000000000 --- a/pkg/cmd/repo/autolink/shared.go +++ /dev/null @@ -1,14 +0,0 @@ -package autolink - -import "github.com/cli/cli/v2/pkg/cmdutil" - -type autolink struct { - ID int `json:"id"` - IsAlphanumeric bool `json:"is_alphanumeric"` - KeyPrefix string `json:"key_prefix"` - URLTemplate string `json:"url_template"` -} - -func (s *autolink) ExportData(fields []string) map[string]interface{} { - return cmdutil.StructExportData(s, fields) -}