Commit graph

5099 commits

Author SHA1 Message Date
Jason Lunz
38eb894d73
prevent leaking any blocked goroutines on error 2021-12-20 13:57:53 -07:00
Jason Lunz
932c9da473
clean up inadvertently truncated help message 2021-12-20 13:57:53 -07:00
Jason Lunz
7bd6fe9af8
maximize the time checkAuthorizedKeys has to run concurrently
Also, other than that, restore the original ordering of this function
2021-12-20 13:57:53 -07:00
Jason Lunz
a864985f0a
use WaitGroup for a more idiomatic concurrency pattern 2021-12-20 13:57:53 -07:00
Jason Lunz
81b34d272c
inline openSSHSession 2021-12-20 13:57:53 -07:00
Jason Lunz
28dd73ffdf
always pass a non-nil logger to openSSHSession 2021-12-20 13:57:53 -07:00
Jason Lunz
37f8039f76
merge ensureAuthorizedKeys into checkAuthorizedKeys 2021-12-20 13:57:52 -07:00
Jason Lunz
ae3aacb964
fix errcheck linter warning 2021-12-20 13:57:52 -07:00
Jason Lunz
6b34fa2a27
oh look, struct definitions can be scoped! 2021-12-20 13:57:52 -07:00
Jason Lunz
f22be4a03d
use a more robust method to get the executable path
cmdutil.Factory.Executable() accounts for things like package managers
and symlinks to the actual executable.

An alternative to passing the *cmdutil.Factory down the stack would be
stashing the executable string in the codespace.App, which works (and
the diff is smaller), but it produced some odd non-local test failures.
This way seems less mysterious and more like other uses of Factory in
the codebase.
2021-12-20 13:57:52 -07:00
Jason Lunz
7b432de5c2
use heredoc helper for config template 2021-12-17 17:09:06 -07:00
Jason Lunz
b2598d64f9
start codespace to fetch config if it's explicitly requested
When running `gh cs ssh config` without a `-c` option, we skip
codespaces that aren't available. This change suppresses that behavior
when a single codespace is explicitly requested, starting the codespace
if it's not running.
2021-12-17 17:08:58 -07:00
Jason Lunz
61823997c2
always verify authorized keys in parallel with other work, and at most once 2021-12-17 16:46:53 -07:00
Jason Lunz
0af268da4e
properly indent ssh config example 2021-12-17 16:11:55 -07:00
Jason Lunz
06eb5ad47f
fetch remote ssh usernames in parallel 2021-12-17 16:10:44 -07:00
Jason Lunz
2ee88da647
close session on error 2021-12-17 14:42:54 -07:00
Jason Lunz
a05541f4ed
drop redundant API call 2021-12-17 11:39:14 -07:00
Jason Lunz
0670a7758b
use generic io interfaces 2021-12-17 11:18:59 -07:00
Jason Lunz
811d6505d2
tighten up ssh config help wording 2021-12-17 11:03:11 -07:00
Jason Lunz
206b6379c3
return non-zero if ssh config skips any codespaces 2021-12-17 10:47:22 -07:00
Jason Lunz
a9d02a746b
push fetching codespace details into openSSHSession callers 2021-12-16 17:19:34 -07:00
Jason Lunz
ac685611b1
openssh -> OpenSSH 2021-12-16 17:00:40 -07:00
Jason Lunz
71c9fa11f0
add more ssh config --help documentation 2021-12-16 17:00:40 -07:00
Jason Lunz
369ea534b6
explain why failure to connect to a codespace doesn't fail the entire command 2021-12-16 17:00:39 -07:00
Jason Lunz
4a6887f99e
add a comment explaining why we build an sshUsers map 2021-12-16 17:00:38 -07:00
Jason Lunz
6f8635a17e
listOpensshConfig -> printOpenSSHConfig 2021-12-16 17:00:37 -07:00
Jason Lunz
b7cd2bbc72
no need to separately declare vars here 2021-12-16 17:00:37 -07:00
Jason Lunz
3cb3cf7ca5
make ListOpensshConfig private 2021-12-16 17:00:36 -07:00
Jason Lunz
96a2e125e6
document the codespaceSSHConfig struct 2021-12-16 17:00:36 -07:00
Jason Lunz
ca3b59dd35
use struct embedding to express this less verbosely 2021-12-16 16:09:33 -07:00
Jason Lunz
ac3b0c50e3
Ssh -> SSH 2021-12-16 16:09:32 -07:00
Jason Lunz
92609bd1ec
Revert "use go-multierror to combine read/write close errors"
This reverts commit 456f4381e02aa843ddb3cc1b9628cb81487ba895.
2021-12-16 16:09:32 -07:00
Jason Lunz
3ca5cbab84
hide the gh cs ssh --stdio option in the --help message 2021-12-16 16:09:31 -07:00
Jason Lunz
8687fcb2a0
clean up gh cs ssh option parsing/validation 2021-12-16 16:09:30 -07:00
Jason Lunz
c9d0085e57
move gh cs ssh --config into a separate gh cs ssh config command
We could also move this to a toplevel command, but I don't want to
pollute that namespace too much. Open to suggestions.
2021-12-16 16:09:30 -07:00
Jason Lunz
0e6abda73b
allow generating ssh config for a single codespace 2021-12-16 15:42:39 -07:00
Jason Lunz
92403f3a2f
check for incompatible command line options 2021-12-16 15:42:38 -07:00
Jason Lunz
7765000601
add gh cs ssh openssh config file generator 2021-12-16 15:42:38 -07:00
Jason Lunz
4306762f8b
factor out openSshSession() helper function 2021-12-16 15:42:37 -07:00
Jason Lunz
c5e553e400
implement gh cs ssh --stdio 2021-12-16 15:42:37 -07:00
Jason Lunz
81b658ea75
use go-multierror to combine read/write close errors 2021-12-16 15:42:33 -07:00
Jason Lunz
9416056da1
allow combining os.Stdin and os.Stdout as an io.ReadWriteCloser 2021-12-16 15:41:54 -07:00
Mislav Marohnić
f588aec7f3
Fix repo create regressions (#4904) 2021-12-15 19:05:04 +01:00
Mislav Marohnić
5cd977e328 💅 normalize prompt style for text inputs 2021-12-14 18:38:46 +01:00
Mislav Marohnić
c90fc18b0c Avoid creating repo when cancelling from interactive mode 2021-12-14 18:18:08 +01:00
Mislav Marohnić
3e40780074 💅 repo create cleanups 2021-12-14 18:05:42 +01:00
Mislav Marohnić
21e6d95982 Fix repo create printing created URL in no-TTY mode 2021-12-14 17:49:43 +01:00
Benjamin Chadwick
4bbbf46321
Fix browse last commit when using the repo override flag (#4845) 2021-12-13 15:00:22 +01:00
Mislav Marohnić
2d0b9460be
Merge pull request #4318 from g14a/gh-repo-edit
gh repo edit
2021-12-10 13:44:39 +01:00
Mislav Marohnić
c509a3d4e6
Merge pull request #4861 from despreston/4835-labels-race
fix race condition when updating labels
2021-12-08 16:25:00 +01:00