Commit graph

385 commits

Author SHA1 Message Date
Issy Long
69865fa762 cmd/ghcs/main: Better description of ghcs as a whole
Co-authored-by: Camilo Garcia La Rotta <camilogarcialarotta@github.com>
2021-07-22 14:08:20 +01:00
Issy Long
b66d65379f cmd/ghcs/*.go: Better short descriptions of what commands do
- I ran `--help` on `ghcs code` and saw `ghcs code` and that was it,
  which was surprising. I expected a description.
- Here's a fix for all of the commands thus far to give them longer
  descriptions.
- I've only done "short" descriptions in Cobra terms, and removed the
  "long" descriptions as they seemed like they needed to be
  unnecessarily verbose.

Before:

```
❯ ghcs --help
Codespaces

Usage:
  ghcs [command]

Available Commands:
  code        code
  create      Create
  delete      delete
  help        Help about any command
  list        list
  ports       ports
  ssh         ssh

Flags:
  -h, --help      help for ghcs
  -v, --version   version for ghcs

Use "ghcs [command] --help" for more information about a command.

❯ ghcs ssh --help
ssh

Usage:
  ghcs ssh [flags]

Flags:
  -h, --help              help for ssh
      --profile string    SSH Profile
      --server-port int   SSH Server Port
```

After:

```
❯ ./ghcs --help
Codespaces

Usage:
  ghcs [command]

Available Commands:
  code        Open a GitHub Codespace in VSCode.
  create      Create a GitHub Codespace.
  delete      Delete a GitHub Codespace.
  help        Help about any command
  list        List GitHub Codespaces you have on your account.
  ports       Forward ports from a GitHub Codespace.
  ssh         SSH into a GitHub Codespace, for use with running tests/editing in vim, etc.

Flags:
  -h, --help      help for ghcs
  -v, --version   version for ghcs

Use "ghcs [command] --help" for more information about a command.

❯ ./ghcs ssh --help
SSH into a GitHub Codespace, for use with running tests/editing in vim, etc.

Usage:
  ghcs ssh [flags]

Flags:
  -h, --help              help for ssh
      --profile string    SSH Profile
      --server-port int   SSH Server Port
```
2021-07-22 11:07:23 +01:00
Camilo Garcia La Rotta
a68cda1469 refactor: break down Create() into smaller funcs 2021-07-21 20:54:18 -04:00
Camilo Garcia La Rotta
3db217fef0 feat: make sku survey optional 2021-07-21 20:27:22 -04:00
Camilo Garcia La Rotta
aab98ccc18 feat: break out repo and branch surveys 2021-07-21 20:06:05 -04:00
Camilo Garcia La Rotta
c751e88120 feat: introduce repo, branch and machine flags for ghcs create 2021-07-21 19:56:08 -04:00
Camilo Garcia La Rotta
5ca2fa5562 feat: ghcs delete repo REPO_NAME 2021-07-21 18:13:36 -04:00
Camilo Garcia La Rotta
7a0a8fa39c feat: ghcs delete all 2021-07-21 18:02:50 -04:00
Camilo Garcia La Rotta
0d6926e14b doc: root cmd description 2021-07-21 17:41:50 -04:00
Jose Garcia
532ee68165 Fix ssh command order 2021-07-21 14:04:42 -04:00
Jose Garcia
345e3e1b8a Update main.go 2021-07-21 13:50:19 -04:00
Jose Garcia
f7c80c99e7 Merge pull request #27 from github/jg/code-command
ghcs code command support
2021-07-21 13:48:10 -04:00
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