Commit graph

373 commits

Author SHA1 Message Date
Jose Garcia
b44355d80d Merge pull request #26 from github/jg/secrets-and-server-port
Don't overwrite .zshenv, support server port for SSH, forward X11
2021-07-21 13:30:16 -04:00
Jose Garcia
c2b136a84f ghcs code command support 2021-07-21 13:28:47 -04:00
Jose Garcia
3e50fff2c9 X11 support 2021-07-21 10:22:33 -04:00
Kristján Oddsson
7a3e47ff3e Update error message link and wording. 2021-07-21 12:46:44 +01:00
Jose Garcia
e81bee6886 Doesn't overwrite .zshenv and supports server-port 2021-07-20 18:43:43 -04:00
Jose Garcia
8faee1e5a9 Update main.go 2021-07-20 08:09:48 -04:00
Jose Garcia
5e803aca79 Merge pull request #20 from github/jg/better-conn-handling
Bump go-liveshare w/ better connection handling and simpler ssh setup
2021-07-20 08:08:33 -04:00
Jose Garcia
6642fb520a Better connection handling and simpler ssh setup 2021-07-20 08:04:34 -04:00
Issy Long
2f8d00e0f8 Merge pull request #19 from github/version-cmd
cmd/ghcs/main: Add `--version` flag
2021-07-20 13:02:41 +01:00
Issy Long
4582fed1cc cmd/ghcs/main: Add --version flag
- This is built into Cobra the argument parser. Now `ghcs --version`
  exists.
- When we prepare to bump the version, we need to remember to update
  this value else the Homebrew formula, GitHub releases and the `ghcs
  --version` output will be mismatched.
- Fixes https://github.com/github/ghcs/issues/16.
2021-07-19 18:45:18 +01:00
Issy Long
cb29b11ab2 cmd/ghcs/main: Fail gracefully if GITHUB_TOKEN entirely unset
- I have my GitHub API token in my environment as
  `HOMEBREW_GITHUB_API_TOKEN`, so with things that need `GITHUB_TOKEN` I
  have to remember to `export GITHUB_TOKEN=$HOMEBREW_GITHUB_API_TOKEN`.
- I didn't for this tool, and got this unfriendly error message:

```
❯ ghcs list
Error: error getting user: Bad credentials
Usage:
  ghcs list [flags]

Flags:
  -h, --help   help for list

error getting user: Bad credentials
```

- This moves the "do you have a `GITHUB_TOKEN`" question to the very
  beginning (no guarantees about org SSO access, just a string that
  exists), erroring out with a nice message if users don't have that
  envvar set:

```
issyl0 in cetus in ~/repos/github/ghcs/cmd/ghcs on gracefully-fail-if-token-envvar-unset
❯ ./ghcs list
The GITHUB_TOKEN environment variable is required. Create a Personal Access Token with org SSO access at https://github.com/settings/tokens/new.

issyl0 in cetus in ~/repos/github/ghcs/cmd/ghcs on gracefully-fail-if-token-envvar-unset
❯ export GITHUB_TOKEN=$HOMEBREW_GITHUB_API_TOKEN

❯ ./ghcs list
+--------------------------------+--------------------+------------------------------------+----------+---------------------------+
|              NAME              |     REPOSITORY     |               BRANCH               |  STATE   |        CREATED AT         |
+--------------------------------+--------------------+------------------------------------+----------+---------------------------+
| issyl0-github-cat-ggrpj5fvwvr  | github/cat         | dependabot/bundler/graphql-1.12.13 | Shutdown | 2021-07-13T12:36:53+01:00 |
+--------------------------------+--------------------+------------------------------------+----------+---------------------------+
```
2021-07-19 18:10:15 +01:00
Jose Garcia
570a407bac Fix directive 2021-07-19 08:00:51 -04:00
Jose Garcia
798413848b Portfowarding private/public/forward now supported 2021-07-17 20:32:47 -04:00
Jose Garcia
3c42ab8f7a ghcs ports v1 2021-07-16 18:45:38 -04:00
Jose Garcia
44698ea1de Merge branch 'main' into mislav/timeout 2021-07-15 11:54:52 -04:00
Jose Garcia
ecea5b821a Give more time to start 2021-07-15 14:35:26 +00:00
Mislav Marohnić
d506a97419 Increase ssh command timeout and improve error message
- My `github/github` codespace failed to start within 10s
- Output more precise error message
2021-07-15 16:10:03 +02:00
Mislav Marohnić
d46420e812 Improve ssh command
- Ensure parent process exits when `ssh` sub-process is done
- Enable connections to `github/github` when `--profile` flag wasn't given
2021-07-15 16:07:23 +02:00
Jose Garcia
a5f558bf2a Makes secrets work 2021-07-15 08:49:18 -04:00
Jose Garcia
4a0eaa3da5 Latest and greatest 2021-07-14 16:12:30 -04:00
Sam
33c3fb5cdd
Merge pull request #3870 from cli/extensions-revisited
Improvements to gh extensions
2021-06-28 17:12:29 -07:00
Mislav Marohnić
1ec47d8191 Improvements to gh extensions
- Extensions on Windows now enabled through the `sh.exe` interpreter
- `sh.exe` now found on Windows when git was installed via scoop
- `gh extensions list` command shows origin repo for the extension
- `gh extensions upgrade --all` is required to upgrade all extensions
- Added `gh extensions remove`
- Shell completions now include aliases and extension names
- `gh` help output now lists available extension names
- Extensions are stored to XDG_DATA_HOME
2021-06-21 16:54:08 +02:00
Mislav Marohnić
8ff42bf28c Fix repo override 2021-06-17 17:58:46 +02:00
Mislav Marohnić
8dd1e12f64 Merge remote-tracking branch 'origin' into fix-actions-help 2021-06-17 16:13:34 +02:00
Mislav Marohnić
883943946a Add a global pre-run hook to handle auth check and repo override
With auth check being done via Cobra hooks, it is automatically skipped
for non-runnable commands and `-h/--help` flag usage.
2021-06-17 16:01:57 +02:00
chemotaxis
1e3bba5ff6 Add comment about cmd.Help()
The linter picked up that the error value from cmd.Help() isn't checked.

Even though cmd.Help() returns an error value, it's always nil. The
inner HelpFunc() function directly prints the error message instead of
returning an error value.
2021-06-16 22:28:41 -04:00
chemotaxis
558ff2dff0 Skip authentication message if asking for help
Currently, this still checks authentication, but we skip the
authentication message and exit normally.
2021-06-16 14:25:08 -04:00
chemotaxis
c903f1ecd0 Ask for and print help even if logged out
You have to explicitly ask for help using the help flags.  Otherwise,
`gh` will just print the authentication message.
2021-06-16 01:18:52 -04:00
Sam Coe
edfac42384
Set up iostreams in factory default 2021-06-15 09:20:00 -04:00
Cristian Dominguez
b3c2318e09 Increase GH_PAGER precedence
If `GH_PAGER` is exists, set it as the pager even if one is
already set in config.

This allows a user to change/disable the pager per single invocation.
2021-06-04 23:22:37 -03:00
Mislav Marohnić
ffebd23ba7
Merge pull request #3761 from cli/command-extensions
Experimental command extensions support
2021-06-03 19:13:38 +02:00
Mislav Marohnić
fce93d6080 Experimental command extensions support
Extensions are looked up as `~/.config/gh/extensions/gh-*`.
Additionally, any executables found in PATH named `gh-*` are available
as `gh <command>`.
2021-06-01 17:15:20 +02:00
Sam Coe
583e74d70c
Add support for XDG_STATE_HOME 2021-05-25 16:30:51 -04:00
nate smith
9f451d9eef review feedback 2021-04-29 16:06:26 -05:00
nate smith
02e9fa086d start on incorrect function error handling 2021-04-28 13:59:54 -05:00
Junjie Yuan
927e4c7e4d
using filepath.Join() instead of path.Join() to fix wrong filepath on Windows:
PS C:\Users\Junjie Yuan> gh auth status
github.com
  ✓ Logged in to github.com as junjieyuan (C:\Users\Junjie Yuan\.config\gh/hosts.yml)
  ✓ Git operations for github.com configured to use https protocol.
  ✓ Token: *******************

Signed-off-by: Junjie Yuan <yuan@junjie.pro>
2021-04-22 15:19:16 +08:00
Nate Smith
b2e32a508d
Merge pull request #3330 from cli/man-gen-test
Add tests for manual pages generation
2021-04-05 14:21:44 -05:00
Mislav Marohnić
69ca2dda4a Quick fix: respect default hostname when parsing owner/repo pairs
This re-enables using GH_HOST to set a default hostname when
supplying repo argument like `gh repo clone owner/repo`.
2021-04-02 15:16:27 +02:00
Mislav Marohnić
71c2bc5807 Add tests for manual pages generation 2021-03-30 20:47:25 +02:00
Mislav Marohnić
23b2594662 Fix crash when generating man pages
Fixes #3329
2021-03-30 19:59:39 +02:00
Sam
9ec1e21d4c
Default to GHES host if only GHES is authenticated (#3286) 2021-03-30 16:51:00 +02:00
Mislav Marohnić
c63247f0ea Avoid checking for new releases when authenticating git
Avoid displaying upgrade notice if any output is redirected. This also
alleviates the need to specifically check for `gh completion -s
<shell>`, `gh __complete`, and other scripting scenarios where we
absolutely don't want to trigger any upgrade checks or notices.
2021-03-04 17:39:25 +01:00
Mislav Marohnić
aa5cf6c48a
Merge pull request #3075 from cli/credential-helper-absolute
Use absolute path when configuring gh as git credential
2021-03-04 13:51:24 +01:00
Mislav Marohnić
cfbfb578f0 Read Executable from factory instead of from stdlib 2021-03-04 13:41:50 +01:00
Mislav Marohnić
9234163679 Formalize gh process exit codes
Here are the statuses:
- 0: success
- 1: misc. error
- 2: user interrupt/cancellation
- 4: authentication needed

These old exit codes are now changed to "1":
- we used to return "2" for config file errors;
- we used to return "2" for alias expansion errors;
- we used to return "3" for alias runtime errors.

I do not believe that there is a need to distinguish these specific
cases via exit status, and converting them to "1" frees codes "2" and
"3" for more practical use.
2021-03-04 13:35:59 +01:00
Mislav Marohnić
dd34cae112 Merge remote-tracking branch 'origin' into cancel-error-status 2021-03-02 13:52:07 +01:00
Mislav Marohnić
2ebdde1ddd Exit with status code "2" on user cancellation errors
This also stops printing "interrupt" after Ctrl-C is pressed.
2021-03-02 13:48:44 +01:00
Mislav Marohnić
27aea42d8a Avoid upgrade notice for recent release if gh is under Homebrew prefix
Before, when gh detected there was a new release in the `cli/cli` repo,
it would show this notice:

    A new release of gh is available: {V1} → {V2}

Additionally, when the release was more than 24h old, we would show this
to Homebrew users:

    To upgrade, run: brew update && brew upgrade gh

Ref. feb4acc2c0

This change makes it so that the original notice "A new release of gh is
available" is NOT shown to Homebrew users unless the release is older
than 24h. We effectively hide the fact that any release happened until
we're sure that the version bump has made it to `homebrew-core`.
2021-02-23 12:24:51 +01:00
Mislav Marohnić
feb4acc2c0 Suggest brew upgrade gh when new version detected
When the update notifier is enabled and a new version was detected, show
a Homebrew upgrade notice if:
- the release was at least 24 hours ago; and
- the current `gh` binary is under the Homebrew prefix.
2021-02-08 13:57:08 +01:00
Mislav Marohnić
2843ffff23 Classify the update package as internal 2020-12-15 16:09:08 +01:00