Commit graph

368 commits

Author SHA1 Message Date
Mislav Marohnić
48bac0abd2 Fix race in codespaces delete test 2021-09-29 16:40:40 +02:00
Jose Garcia
a0f11b6664 Handle concurrency in tests and logger
- Live Share tests
- Logger implementation for ghcs
2021-09-29 16:40:40 +02:00
Mislav Marohnić
f749590e87 Replace old "github/ghcs" import statements 2021-09-28 16:57:56 +02:00
Mislav Marohnić
e64607d07b Merge remote-tracking branch 'ghcs/main' into import-codespaces
Co-authored-by: Jose Garcia <josebalius@github.com>
2021-09-28 16:46:27 +02:00
Mislav Marohnić
f947ef3448 Remove lightstep configuration
The `github.com/shirou/gopsutil` dependency of lightstep-tracer is
giving us trouble during building.

Ref. https://github.com/shirou/gopsutil/issues/976

Another build problem raises its head even after we upgrade gopsutil to
a version where the above bug is fixed.
2021-09-28 16:42:35 +02:00
Mislav Marohnić
c82d4c5472 Avoid passing params struct as pointer 2021-09-24 17:36:18 +02:00
Mislav Marohnić
dc8f6ef183 No longer accept a logger in CreateCodespace
The API layer shouldn't concern itself with logging progress to stderr.
Instead, we will subsequently add progress indicators in the caller
around CreateCodespace and other potentially slow commands as needed.
2021-09-24 17:30:31 +02:00
Mislav Marohnić
ca0f89d3bc Introduce an App struct that executes core business logic
The Cobra commands are now a light wrapper around the App struct.

Co-authored-by: Jose Garcia <josebalius@github.com>
2021-09-24 17:20:34 +02:00
Mislav Marohnić
8807b3a73a Merge pull request #184 from github/args-constraint
Consistently institute constraints for position arguments and improve error message
2021-09-24 16:02:36 +02:00
Mislav Marohnić
92d0abd6ab Merge pull request #79 from github/raffo/delete-codespaces
Add code and command to delete unused codespaces
2021-09-24 16:02:05 +02:00
Mislav Marohnić
3d017b2824 Fix stderr output on delete errors 2021-09-24 15:09:41 +02:00
Mislav Marohnić
d853ce5bc9 Avoid resolving executable() until requested at runtime
This is to avoid hitting the filesystem and resolving symlinks
unnecessarily. The value of executable is just used conditionally by a
handful of commands.
2021-09-24 14:42:41 +02:00
Mislav Marohnić
75c1dfdf49 Fetch codespace by name directly if name argument given 2021-09-23 18:57:22 +02:00
Jose Garcia
f4396e8f1a Inline go-liveshare with history 2021-09-23 11:28:04 -04:00
Mislav Marohnić
e8212a80a9 Print delete failures as they occur 2021-09-23 17:14:25 +02:00
Mislav Marohnić
1232dba684 Merge remote-tracking branch 'origin' into raffo/delete-codespaces 2021-09-23 16:43:22 +02:00
Jose Garcia
fb12f4108f Merge pull request #181 from github/jg/poll-on-async-creation
ghcs create: poll for codespaces that are being retried by the server
2021-09-23 10:10:57 -04:00
Jose Garcia
4e0ac15fe0 Add buffer to channels to avoid goroutine leak 2021-09-22 15:10:47 -04:00
Jose Garcia
9a558bc58c Early return if polling is not required
- Add context to errors in poller
2021-09-22 15:03:12 -04:00
Mislav Marohnić
7a91ba5942 Print usage help when args given to "NoArgs" commands 2021-09-22 19:51:12 +02:00
Mislav Marohnić
a55f7af92c Correct wrong args constraints 2021-09-22 19:36:25 +02:00
Jose Garcia
208f1721b5 Rename ProvisionCodespaceParams 2021-09-22 13:21:02 -04:00
Jose Garcia
70a2ea2e6a PR Feedback
- Rename ProvisionCodespace -> CreateCodespace
- Rename createCodespace -> startCreate
- Additional docs/comments
- Simplify ProvisionCodespaceParams
2021-09-22 13:19:26 -04:00
Jose Garcia
d2d21996bc Move ProvisionCodespace to API client
- Make CreateCodespace private along with its errors
2021-09-22 11:49:41 -04:00
Mislav Marohnić
32d3a38465 Name of the codespace 2021-09-22 16:39:50 +02:00
Mislav Marohnić
cb7b535b91 Add tests for delete 2021-09-22 16:11:34 +02:00
Jose Garcia
86717f14a1 Implement codespaces.Provision
- Move polling logic into the Provision function
- Document the behavior expected of callers when an ErrCreateAsyncRetry
  is returned
2021-09-22 09:09:09 -04:00
Jose Garcia
48e3473a95 PR Feedback
- Bring context.Timeout into the poller
- Accept duration and interval
- Other tidy up
2021-09-21 18:18:30 -04:00
Mislav Marohnić
678da44c28 Simplify delete further 2021-09-21 21:09:26 +02:00
Mislav Marohnić
ab86739b6b Merge remote-tracking branch 'origin' into mislav/delete-codespaces 2021-09-21 20:35:58 +02:00
Jose Garcia
861811baf0 Upgrade pkg name after merge 2021-09-21 14:02:05 -04:00
Jose Garcia
d5b03df406 Merge branch 'main' of github.com:github/ghcs into jg/poll-on-async-creation 2021-09-21 14:01:37 -04:00
Jose Garcia
323462ca5c Poll codespace on ErrCreateAsyncRetry error
- Introduce tests for the poller
- Attempt to fetch codespace for 2 mins
2021-09-21 12:37:11 -04:00
Mislav Marohnić
683d847dd2 Merge remote-tracking branch 'origin' into cli-migration 2021-09-21 17:38:41 +02:00
Jose Garcia
8a53c4369e Merge pull request #179 from github/jg/close-session
liveshare: close sessions
2021-09-21 10:14:22 -04:00
Jose Garcia
e8e914c220 PR Feedback
- Upgrade to go-liveshare v0.19.0
- Remove export helper method
- Use local implementation
2021-09-21 10:05:48 -04:00
Alan Donovan
0f88081bfa Merge pull request #178 from github/check-authorized-keys
ghcs ssh: check user has authorised SSH keys
2021-09-21 10:03:45 -04:00
Alan Donovan
d3d1ce726d do logs too 2021-09-21 10:02:55 -04:00
Jose Garcia
0b68aaab7e Return error on 202 responses
- Start implementing the retry/poll flow
2021-09-21 09:59:16 -04:00
Alan Donovan
f33d430500 Merge pull request #177 from github/delete-surplus-args
delete: reject positional arguments
2021-09-21 09:26:22 -04:00
Jose Garcia
7f682f9c39 Close Live Share sessions
- New helper method codespaces.CloseSession to be used using defer
- Upgrade to go-liveshare v0.17.0
2021-09-20 16:56:57 -04:00
Alan Donovan
dbb80d8b1e check for authorised SSH keys 2021-09-20 16:01:43 -04:00
Alan Donovan
9e08b7477d delete: reject position args 2021-09-20 13:40:45 -04:00
Mislav Marohnić
b894d3e134 Simplify delete implementation 2021-09-20 18:37:00 +02:00
Mislav Marohnić
836075215d Merge remote-tracking branch 'origin' into cli-migration 2021-09-20 13:59:32 +02:00
Jose Garcia
85f79ed8e8 Merge pull request #159 from github/jg/ssh-cmd-flags
ghcs ssh: ssh flags and command support
2021-09-20 07:43:16 -04:00
Raffaele Di Fazio
c4f0eda96d force was actually needed by a next commit
Signed-off-by: Raffaele Di Fazio <raffo@github.com>
2021-09-20 11:54:30 +02:00
Raffaele Di Fazio
eca3ecb43b Merge branch 'main' into raffo/delete-codespaces 2021-09-20 11:53:35 +02:00
Raffaele Di Fazio
4721e7004b add threshold to delete by repo
Signed-off-by: Raffaele Di Fazio <raffo@github.com>
2021-09-20 11:10:44 +02:00
Raffaele Di Fazio
11024f71fa force is not used in delete by repo
Signed-off-by: Raffaele Di Fazio <raffo@github.com>
2021-09-20 10:27:29 +02:00