Commit graph

566 commits

Author SHA1 Message Date
Kynan Ware
167e868fe2 docs: enhance help text and prompt for rename command 2024-12-09 10:16:38 -07: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
72a6fd00a4 Rename backwards compatible credentials pattern 2024-11-27 12:21:55 +01:00
William Martin
19d62826d6 Allow repo sync fetch to use insecure credentials pattern 2024-11-26 22:30:07 +01:00
William Martin
6b7f1ff060 Allow client fetch to use insecure credentials pattern 2024-11-26 22:30:03 +01:00
William Martin
7affcadb5e Allow client push to use insecure credential pattern 2024-11-26 22:29:58 +01:00
William Martin
46922694dc Support secure credential pattern 2024-11-26 22:29:38 +01:00
Kynan Ware
74f13a9b4f
Apply suggestions from code review
Co-authored-by: Andy Feller <andyfeller@github.com>
2024-11-21 13:55:35 -07:00
bagtoad
677ed2cdcf Refactor command documentation to use heredoc 2024-11-21 13:23:03 -07:00
William Martin
7bcb063391 Modify push prompt on repo create when bare 2024-11-11 16:17:06 +01:00
William Martin
8e63268aba Doc push behaviour for bare repo create 2024-11-11 16:10:32 +01:00
William Martin
e3665955a5 Push --mirror on bare repo create 2024-11-11 16:09:03 +01:00
William Martin
2efb9935db Doc isLocalRepo and git.Client IsLocalRepo differences 2024-11-11 14:18:26 +01:00
William Martin
f515e9c1e7 Use errWithExitCode interface in repo create isLocalRepo 2024-11-11 14:17:29 +01:00
William Martin
bc85e11d05 Backfill repo creation failure tests 2024-11-11 14:11:16 +01:00
William Martin
4a7f2e57b0 Support bare repo creation 2024-11-11 13:57:05 +01:00
Andy Feller
3f5fc85e41 Assert stderr for gh repo edit visibility tests 2024-10-30 13:31:00 -04:00
Andy Feller
15b2db9277 Require visibility confirmation in gh repo edit
This commit modifies interactive and non-interactive behaviors around `gh repo edit` as well as providing greater information about the impact.

1. `--help` usage is expanded to highlight the most significant consequences of changing visibility
1. `--help` usage and interactive experience call out GitHub Docs content that act as source of truth about full consequences of various changes
1. `gh repo edit` interactive experience will require confirmation for any visibility change
1. `gh repo edit` interactive experience will output potential stars and watchers lose regardless of visibility transition
1. `gh repo edit` will require `--visibility` flag to include new `--accept-visibility-change-consequences` flag regardless of interactivity
2024-10-29 10:25:04 -04:00
William Martin
a923e33421 Test json flags for repo view and list 2024-10-22 13:38:51 +02:00
Tyler McGoffin
81591a09b8 Use go-gh/auth package for IsEnterprise, IsTenancy, and NormalizeHostname 2024-10-15 11:56:43 -07:00
bagtoad
291370824b Return nil instead of empty objects when err 2024-10-11 12:08:10 -06:00
bagtoad
b6cdbc9e22 Fix license list and view tests 2024-10-11 11:59:06 -06:00
Kynan Ware
c6c938fafe
Apply suggestions from code review
Co-authored-by: Andy Feller <andyfeller@github.com>
2024-10-11 09:53:33 -06:00
bagtoad
95ca152fea Add examples for creating .gitignore files 2024-10-09 22:51:24 -06:00
bagtoad
922a157206 Update help for license view
Updated `Use` to indicate that args can be an SPDX ID or license key.
Improved the examples docs to show the use of both.
2024-10-09 22:34:06 -06:00
bagtoad
9b94bee895 Refactor http error handling 2024-10-09 22:26:03 -06:00
bagtoad
8abed17a00 implement --web flag for license view 2024-10-09 22:21:26 -06:00
bagtoad
a42d3e2f79 Fix license view help doc, add LICENSE.md example 2024-10-09 21:46:41 -06:00
bagtoad
f07f49810a Update help and fix heredoc indentation 2024-10-09 21:41:54 -06:00
bagtoad
282b3293c5 Add SPDX ID to license list output 2024-10-09 21:21:13 -06:00
bagtoad
d6c6c6b40c Fix ExactArgs invocation 2024-10-09 21:15:16 -06:00
bagtoad
f064bda5ea Add Long for license list indicating limitations 2024-10-09 21:10:35 -06:00
bagtoad
4ecb125c7c Update function names
Licenses are no longer referred to as templates. Prefix the new license and gitignore functions with "Repo" as a more descriptive name.
2024-10-09 21:00:43 -06:00
bagtoad
c2a7756c01 Reverse repo/shared package name change 2024-10-09 20:49:29 -06:00
Kynan Ware
8a1e6ac9f0
Apply suggestions from code review
Co-authored-by: Andy Feller <andyfeller@github.com>
2024-10-08 14:00:30 -06:00
bagtoad
3be44fb6e2 Move API calls to queries_repo.go 2024-10-06 11:51:16 -06:00
bagtoad
0bc0f8c8eb Implement license view 2024-09-29 19:09:46 -06:00
bagtoad
c76acb6aff Implement gitignore view 2024-09-29 17:26:04 -06:00
bagtoad
038b57c866 implement gitignore list 2024-09-29 12:29:56 -06:00
bagtoad
25cdce2cec Update license table headings and tests 2024-09-29 11:59:15 -06:00
bagtoad
2b4464a3af Fix ListLicenseTemplates doc 2024-09-29 11:49:09 -06:00
bagtoad
ac779ba82a fix output capitalization 2024-09-29 11:48:48 -06:00
bagtoad
2f608e3772 Cleanup rendering and tests 2024-09-29 11:46:37 -06:00
bagtoad
1aa2a824ba Remove json output option
Because the API query uses REST, the JSON exporter doesn't work as expected.
2024-09-29 11:00:29 -06:00
bagtoad
21f0d9466e Divide shared repo package and add queries tests 2024-09-29 10:40:22 -06:00
bagtoad
fd8c4633e3 First pass at implementing gh repo license list 2024-09-23 12:30:02 -06:00
Andy Feller
24336f1344 Enhance gh repo create docs, fix random cmd link
Relates #8946

- updates the documentation within `gh repo create` to include links to lookup .gitignore templates and licenses
- fixes link markup within `gh auth setup-git` so link is formatted correctly on https://cli.github.com
2024-09-16 13:42:51 -04:00
Andy Feller
327451627c
Merge pull request #9509 from muzimuzhi/typo/repo-sync
Fix doc typo for `repo sync`
2024-08-28 09:29:24 -04:00
Tyler McGoffin
91eb34011c
Remove Internal from gh repo create prompt when owner is not an org (#9465)
* Remove `Internal` from `gh repo create` prompt when owner is not an org

Closes #9464

Internal repos only exist for organizations, so when a user selects their
personal namespace to create a repo using `gh repo create`, `Internal`
should not be an option in the `Visibility` prompt.

This should avoid the additional quirk where if the user selects
`Internal` while creating a personal repo and then proceeds to add any
of the README, .gitignore, or LICENSE files prompted for later, the repo
will not error and instead get created as a `Public` repo. This has the
potential for a user to unknowingly leak sensitive info intended to go
into a non-public repo.

* Refactor prompter with test coverage

By extracting the repo visibility options to its own function,
getRepoVisibilityOptions, we're able to directly test the behavior
introduced with this change. This breaks the testing pattern established
here thus far, but may be a good example of the direction we should
explore for a future refactor.

* Add failing tests to check for error with internal vis in non-org repos

There is a bug in the code, currently, where a user repo can attempt to be
created as with `--internal` visibility flag  when that is not an option
for non-org repos. It fails at the API level if the --gitignore,
--license, or --add-readme flags are not included, but silently falls back
to Public visibility if one of them is included.

Because this bug already existed, this commit adds the tests to ensure
that both scenarios described above are captured accurately by the test
suite. A fix for the latter scenario will be coming in a future commit

* Add Exclude to httpmock registry and implement in Test_repoCreate

Upon attempting to make the previous commit pass, I realized that it was
actually impossible to test what I wanted to. The tests in the previous
commit were behaving as expected given the bug that commit described, but
upon attempting to implement a solution I realized that the tests were
only testing the mocks and not the code functionality itself.

Essentially, when the code to fix the bug was implemented, the tests were
failing because the mocks required to test the buggy behavior were no
longer being called. To make the tests pass, I'd have to rewrite them, but
were I to remove the bug fix, the tests would no longer fail.

This pointed me to a gap in our httpmocks - the ability to intentionally
exclude api calls. The behavior I'm trying to test, here, is that we stop
executing when a certain condition is met, and therefore won't make any
subsequent api calls down the chain.

This implements the Exclude method on the registry such that it will fail
if an excluded api pattern is called. I have refactored the tests in
Test_repoCreate to use the Exclude mock for testing.

* Add error if user attempts to create repo with --internal flag

This was previously failing at either the API if no other flags were
included or falling back to creating a public repo if one of gitignore,
license, or add-readme were included.

* Add testing for error messages in gh repo create

In the previous commits, we've introduced a new error when a user tries to
create an Internal repo not owned by an organization. This adds tests to
verify that the error we are getting is, in fact, the one associated with
this use case and not some random error.
2024-08-22 10:01:16 -07:00
Yukai Chou
2374e82633 Fix doc typo for repo sync 2024-08-23 00:17:31 +08:00