Mark Phelps
dd5feda00a
Update wording after consulting product
2022-02-25 17:32:08 -05:00
Mark Phelps
71f32376d0
Fix tests
2022-02-22 20:20:52 -05:00
Mark Phelps
707220a9b1
PR updates
2022-02-22 14:16:03 -05:00
Mark Phelps
1ea26f33d8
Add create test
2022-02-22 09:50:43 -05:00
Mark Phelps
e7c2f973ae
Support opting out of permissions
2022-02-17 15:11:12 -05:00
Mark Phelps
590acaa1d6
WIP
2022-02-15 19:35:53 -05:00
Patrick Veverka
f6f8ba8b7b
Add display name for codespaces ( #5044 )
2022-02-09 16:15:03 +01:00
Caleb Brose
eeeb73a3e3
Repo name suggestions for cs create ( #5108 )
...
Co-authored-by: Alan Donovan <alan@alandonovan.net>
2022-01-31 10:20:49 +00:00
Jason Lunz
61e5fbb007
Revert "move gh cs ssh --config into a separate gh cs ssh config command"
...
This reverts commit c9d0085e57 .
2022-01-06 10:03:54 -07:00
Mislav Marohnić
3b7e5fc246
Store Executable() information on codespaces App
...
This is to avoid having to explicitly pass it to each subcommand that
needs it. Each codespaces command runs in the context of App, so that's
a point of shared context that we can store state in.
2021-12-21 14:03:10 +01:00
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