Merge pull request #2825 from cli/rename-fork
restore fork rename behavior for nontty case
This commit is contained in:
commit
6152d8a419
2 changed files with 22 additions and 5 deletions
|
|
@ -12,6 +12,7 @@ import (
|
|||
"github.com/cli/cli/git"
|
||||
"github.com/cli/cli/internal/config"
|
||||
"github.com/cli/cli/internal/ghrepo"
|
||||
"github.com/cli/cli/internal/run"
|
||||
"github.com/cli/cli/pkg/cmdutil"
|
||||
"github.com/cli/cli/pkg/iostreams"
|
||||
"github.com/cli/cli/pkg/prompt"
|
||||
|
|
@ -234,8 +235,23 @@ func forkRun(opts *ForkOptions) error {
|
|||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if _, err := remotes.FindByName(remoteName); err == nil {
|
||||
return fmt.Errorf("a remote called '%s' already exists. You can rerun this command with --remote-name to specify a different remote name.", remoteName)
|
||||
if connectedToTerminal {
|
||||
return fmt.Errorf("a remote called '%s' already exists. You can rerun this command with --remote-name to specify a different remote name.", remoteName)
|
||||
} else {
|
||||
// TODO next major version we should break this behavior and force users to opt into
|
||||
// remote renaming in a scripting context via --remote-name
|
||||
renameTarget := "upstream"
|
||||
renameCmd, err := git.GitCommand("remote", "rename", remoteName, renameTarget)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
err = run.PrepareCmd(renameCmd).Run()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
forkedRepoCloneURL := ghrepo.FormatRemoteURL(forkedRepo, protocol)
|
||||
|
|
|
|||
|
|
@ -104,7 +104,7 @@ func TestRepoFork_existing_remote_error(t *testing.T) {
|
|||
defer reg.StubWithFixturePath(200, "./forkResult.json")()
|
||||
httpClient := &http.Client{Transport: reg}
|
||||
|
||||
_, err := runCommand(httpClient, nil, false, "--remote")
|
||||
_, err := runCommand(httpClient, nil, true, "--remote")
|
||||
if err == nil {
|
||||
t.Fatal("expected error running command `repo fork`")
|
||||
}
|
||||
|
|
@ -114,7 +114,7 @@ func TestRepoFork_existing_remote_error(t *testing.T) {
|
|||
reg.Verify(t)
|
||||
}
|
||||
|
||||
func TestRepoFork_no_existing_remote(t *testing.T) {
|
||||
func TestRepoFork_no_conflicting_remote(t *testing.T) {
|
||||
remotes := []*context.Remote{
|
||||
{
|
||||
Remote: &git.Remote{
|
||||
|
|
@ -153,9 +153,10 @@ func TestRepoFork_in_parent_nontty(t *testing.T) {
|
|||
cs, restore := run.Stub()
|
||||
defer restore(t)
|
||||
|
||||
cs.Register(`git remote add -f fork https://github\.com/someone/REPO\.git`, 0, "")
|
||||
cs.Register("git remote rename origin upstream", 0, "")
|
||||
cs.Register(`git remote add -f origin https://github\.com/someone/REPO\.git`, 0, "")
|
||||
|
||||
output, err := runCommand(httpClient, nil, false, "--remote --remote-name=fork")
|
||||
output, err := runCommand(httpClient, nil, false, "--remote")
|
||||
if err != nil {
|
||||
t.Fatalf("error running command `repo fork`: %v", err)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue