Commit graph

48 commits

Author SHA1 Message Date
majiayu000
3f0044fd94 fix: error when --remote flag used with repo argument
When a repository argument is provided to `gh repo fork`, the command
operates independently of the current local repository. Using --remote
in this context is incompatible because there's no local repository to
add the remote to.

This change returns an explicit error when these flags are combined,
providing clear feedback instead of silently ignoring the --remote flag.

Fixes #2722

Signed-off-by: majiayu000 <1835304752@qq.com>
2025-12-26 14:43:52 +08:00
Tyler McGoffin
efec5d9250 Fixed test for stdout in non-tty use case of repo fork 2025-01-03 15:54:07 -08:00
Tim Rogers
c719d920c3
When renaming an existing remote in gh repo fork, log the change
When running `gh repo fork` in the context of an existing repo, the CLI offers to create a remote for the fork:

```
? Would you like to add a remote for the fork? Yes
```

If you accept, it prints a log stating that the `origin` remote has been created:

```
✓ Added remote origin
```

Where there is an existing `origin` remote, this is renamed to `upstream`, but this is done silently without any notification to the user.

```bash
$ git remote -v
origin	https://github.com/timrogers/badger.github.io.git (fetch)
origin	https://github.com/timrogers/badger.github.io.git (push)
upstream	https://github.com/badger/badger.github.io.git (fetch)
upstream	https://github.com/badger/badger.github.io.git (push)
```

It seems kinda fine to rename the remote without explicitly confirming since this is not a truly destructive action, but it should make it clear what it is doing.

This updates the logging to explicitly log about the renaming of
the existing remote:

```
✓ Renamed remote origin to upstream
```

Fixes #9982.
2024-11-30 21:19:55 +00:00
William Martin
07e0ff7127 Fix repo fork to use remote protocol if none configured 2024-05-10 10:48:36 +02:00
William Martin
1d38230675
Move config interfaces into gh package (#9060) 2024-05-10 10:39:36 +02:00
William Martin
15ba536317 Ensure subtests use the right t during setup 2023-12-06 14:06:28 +01:00
William Martin
dc0f6d55e2 Use real config in fork cmd tests 2023-12-06 14:06:28 +01:00
Keith Bailey
363dacbbed
Set default repository for repo clone and repo fork (#7768) 2023-10-11 13:41:00 +00:00
Nate Smith
2ddfc3827d use new prompter in repo fork 2023-08-16 16:02:14 -05:00
Hamish 'James' Coates
394b23aa9b
Include new line after existing fork error log (#7030) 2023-02-28 00:53:25 +00:00
Josh Soref
7541ee6aec
Retry git clone on git clone failure in gh repo fork --clone (#6962) 2023-02-21 04:10:50 +00:00
Mislav Marohnić
14eb873b9e
Avoid implicitly fetching when adding a new git remote (#6990) 2023-02-07 21:22:02 +00:00
Sam Coe
98ab1f2587
Authenticate network git commands (#6541) 2022-11-15 13:14:37 +02:00
Sam Coe
4294ee14a1
revert revert 57fbe4f317 (#6474) 2022-10-20 12:17:20 +00:00
Sam Coe
2cefb9fa59
Fix pr create regression (#6472)
* Revert "Refactor to use new git client (#6447)"

This reverts commit 57fbe4f317.

* Fix pr create regression
2022-10-20 12:46:23 +03:00
Sam Coe
57fbe4f317
Refactor to use new git client (#6447) 2022-10-19 21:11:36 +03:00
Sam Coe
cacff4ad6d
Use go-gh config package (#5771) 2022-06-23 11:50:04 +00:00
Jonathan Fenwick
ddb408e67b
Add check to see if current owner is attempting to fork the repo (#5794)
Co-authored-by: Mislav Marohnić <mislav@github.com>
2022-06-14 13:13:24 +00:00
Håvard Anda Estensen
58cb773e09
Replace ioutil with io and os (#5498) 2022-04-26 13:07:44 +02:00
Mislav Marohnić
512208ca96 repo fork: tweak docs 2022-02-18 18:38:34 +01:00
Nate Smith
e17964cf03
Merge pull request #5092 from cli/repo-fork-proto
prefer configured git protocol when forking
2022-01-26 11:33:47 -06:00
nate smith
667671f048 fix race condition, increase clarity 2022-01-25 15:36:41 -06:00
nate smith
bd6e50a08a Merge remote-tracking branch 'origin/trunk' into feature/target-repo-fork-name 2022-01-25 14:08:27 -06:00
nate smith
0d214864d9 linter appeasement 2022-01-24 17:01:19 -06:00
nate smith
170a50fcc8 prefer configured git protocol when forking 2022-01-24 16:54:01 -06:00
Mislav Marohnić
44775f87c8 Add nolint directives to allow-list current lint violations 2022-01-14 19:52:52 +01:00
Gowtham Munukutla
3fb4c481dc modify tests 2021-12-11 10:17:04 +05:30
Mislav Marohnić
11fbb60ae7 Rename the module to "github.com/cli/cli/v2" 2021-08-25 12:41:30 +02:00
camille folch
54b86c7093
repo fork: check that --org is not the empty string
As it is already being done for --remote-name, except in this case
the default is the empty string.
2021-06-11 23:28:41 -03:00
Nate Smith
b0998772ae more cleanup 2021-06-10 21:46:02 +00:00
Nate Smith
f31a31e2ed stop stubbing out a Since function 2021-06-10 21:46:02 +00:00
vilmibm
4a7ec7f4f6 cleaning up fork tests 2021-06-10 21:45:54 +00:00
Mislav Marohnić
3cbd5b4934
Add repo fork --org functionality (#3611)
Co-authored-by: Gowtham Munukutla <gowtham.m81197@gmail.com>
2021-05-10 17:09:03 +02:00
Gowtham Munukutla
5caf01c564 add test for non tty fork 2021-04-01 10:49:12 +05:30
Nate Smith
e91b97b4c5
fully restore fork remote renaming behavior (#2982)
* fully restore fork remote renaming behavior

* catch blank remote name and error + arg tests

* hard wrap fork usage

* do not rename if remote-name supplied

* tweak error text
2021-02-17 12:33:22 -06:00
vilmibm
d051f0634f update tests 2021-01-22 16:13:39 -08:00
Mislav Marohnić
06cf2c9f81 Merge remote-tracking branch 'origin' into cmd-stub-new 2021-01-22 16:31:29 +01:00
vilmibm
48c89076f6 add positive case test 2021-01-21 12:04:19 -08:00
vilmibm
a27a94f8b5 Merge remote-tracking branch 'origin/trunk' into repo-fork-gitflags 2021-01-21 11:58:20 -08:00
Mislav Marohnić
4158209d50
Merge pull request #2811 from cli/utils-spinner-buh-bye
Retire utils.Spinner in favor of IOStreams.StartProgressIndicator
2021-01-21 17:34:39 +01:00
vilmibm
509e5dd0c9 fix tests 2021-01-20 16:10:56 -08:00
Mislav Marohnić
aa0de5f636 Stop using utils.Spinner in repo fork 2021-01-20 14:46:45 +01:00
Mislav Marohnić
fc77cbc964 Deprecate test.ExpectLines
For asserting command output, exact string matches are preferred in most cases. In cases when a pattern match is needed, the test can use regexp ad hoc.
2021-01-18 23:25:45 +01:00
Mislav Marohnić
5531498f27 Migrate to new cmd stubber in repo fork tests 2021-01-18 22:42:27 +01:00
Nate Smith
05a1a25271
match parent repo protocol when forking (#2434)
* match parent repo protocol when forking

* guard against nil and prefer PushURL
2020-11-20 12:00:49 -06:00
Cristian Dominguez
69b64507ea Add support for git flags in gh repo fork 2020-10-23 19:08:55 -03:00
vilmibm
10422e87eb just use simple bool flags
the original complexities here were because I thought there was a
shortcoming in cobra's bool support and I was wrong.
2020-07-27 13:04:31 -05:00
vilmibm
f3eb092d7e isolate repo fork command and tweak usage
This commit is another isolation refactor, this time for repo fork.
However, I got fed up with the --remote="true|false|prompt" style of
flags and took this opportunity to switch to a set of bool flags:

--remote and --clone
--no-remote and --no-clone

the string args were really non standard and confusing; with only two
bools it was impossible to tell when to prompt.
2020-07-27 13:04:31 -05:00