diff --git a/pkg/cmd/repo/rename/rename.go b/pkg/cmd/repo/rename/rename.go index 628f53402..adf81c49d 100644 --- a/pkg/cmd/repo/rename/rename.go +++ b/pkg/cmd/repo/rename/rename.go @@ -5,6 +5,7 @@ import ( "encoding/json" "fmt" "net/http" + "strings" "github.com/cli/cli/v2/api" "github.com/cli/cli/v2/internal/config" @@ -37,7 +38,7 @@ func NewCmdRename(f *cmdutil.Factory, runf func(*RenameOptions) error) *cobra.Co cmd := &cobra.Command{ DisableFlagsInUseLine: true, - Use: "rename ", + Use: "rename ", Short: "Rename a repository", Long: "Rename a GitHub repository", Args: cmdutil.ExactArgs(2, "cannot rename: repository argument required"), @@ -53,21 +54,24 @@ func NewCmdRename(f *cmdutil.Factory, runf func(*RenameOptions) error) *cobra.Co } func renameRun(opts *RenameOptions) error { - oldRepoName := opts.RepoName[0] - newRepoName := opts.RepoName[1] - - // cs := opts.IO.ColorScheme() + cs := opts.IO.ColorScheme() httpClient, err := opts.HttpClient() if err != nil { return err } apiClient := api.NewClientFromHTTP(httpClient) - username, err := api.CurrentLoginName(apiClient, ghinstance.Default()) + currentUser, err := api.CurrentLoginName(apiClient, ghinstance.Default()) if err != nil { return err } + oldRepoName := opts.RepoName[0] + if !strings.Contains(oldRepoName, "/") { + oldRepoName = currentUser + "/" + oldRepoName + } + newRepoName := opts.RepoName[1] + repo, err := ghrepo.FromFullName(oldRepoName) if err != nil { return fmt.Errorf("argument error: %w", err) @@ -79,7 +83,7 @@ func renameRun(opts *RenameOptions) error { return err } - if username != repoDetails.Owner.Login { + if currentUser != repoDetails.Owner.Login { return fmt.Errorf("you do not own this repository") } @@ -94,7 +98,9 @@ func renameRun(opts *RenameOptions) error { return err } - + if opts.IO.IsStdoutTTY() { + fmt.Fprintf(opts.IO.Out, "%s Renamed repository %s\n", cs.SuccessIcon(), currentUser + "/" + newRepoName) + } return nil }