Skip to content

Commit a4e978b

Browse files
authored
Merge pull request #4 from onkernel/release-please--branches--main--changes--next
release: 0.2.0
2 parents 3c4712d + 99139db commit a4e978b

File tree

8 files changed

+50
-5
lines changed

8 files changed

+50
-5
lines changed

.release-please-manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
".": "0.1.0"
2+
".": "0.2.0"
33
}

.stats.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
configured_endpoints: 18
1+
configured_endpoints: 19
22
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fhypeman-5e2239ba23ac3dbbc95b8993a491e99e9fd23fed2e6ea9cecb81b83bf34a00ff.yml
33
openapi_spec_hash: 4708504f9119289926b3341d083a1814
4-
config_hash: 35db4c99791f175865381f13a8ad6075
4+
config_hash: 45d3d945ce8eea7a52c8ead4c03fcf3c

CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
# Changelog
22

3+
## 0.2.0 (2025-11-26)
4+
5+
Full Changelog: [v0.1.0...v0.2.0](https://github.com/onkernel/hypeman-go/compare/v0.1.0...v0.2.0)
6+
7+
### Features
8+
9+
* **api:** add exec ([f3992ff](https://github.com/onkernel/hypeman-go/commit/f3992ffe807e7006a25ae2211cd5cb25fb599bff))
10+
311
## 0.1.0 (2025-11-26)
412

513
Full Changelog: [v0.0.3...v0.1.0](https://github.com/onkernel/hypeman-go/compare/v0.0.3...v0.1.0)

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ Or to pin the version:
2828
<!-- x-release-please-start-version -->
2929

3030
```sh
31-
go get -u 'github.com/onkernel/hypeman-go@v0.1.0'
31+
go get -u 'github.com/onkernel/hypeman-go@v0.2.0'
3232
```
3333

3434
<!-- x-release-please-end -->

api.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ Methods:
3333
- <code title="get /instances/{id}">client.Instances.<a href="https://pkg.go.dev/github.com/onkernel/hypeman-go#InstanceService.Get">Get</a>(ctx <a href="https://pkg.go.dev/context">context</a>.<a href="https://pkg.go.dev/context#Context">Context</a>, id <a href="https://pkg.go.dev/builtin#string">string</a>) (<a href="https://pkg.go.dev/github.com/onkernel/hypeman-go">hypeman</a>.<a href="https://pkg.go.dev/github.com/onkernel/hypeman-go#Instance">Instance</a>, <a href="https://pkg.go.dev/builtin#error">error</a>)</code>
3434
- <code title="get /instances">client.Instances.<a href="https://pkg.go.dev/github.com/onkernel/hypeman-go#InstanceService.List">List</a>(ctx <a href="https://pkg.go.dev/context">context</a>.<a href="https://pkg.go.dev/context#Context">Context</a>) ([]<a href="https://pkg.go.dev/github.com/onkernel/hypeman-go">hypeman</a>.<a href="https://pkg.go.dev/github.com/onkernel/hypeman-go#Instance">Instance</a>, <a href="https://pkg.go.dev/builtin#error">error</a>)</code>
3535
- <code title="delete /instances/{id}">client.Instances.<a href="https://pkg.go.dev/github.com/onkernel/hypeman-go#InstanceService.Delete">Delete</a>(ctx <a href="https://pkg.go.dev/context">context</a>.<a href="https://pkg.go.dev/context#Context">Context</a>, id <a href="https://pkg.go.dev/builtin#string">string</a>) <a href="https://pkg.go.dev/builtin#error">error</a></code>
36+
- <code title="get /instances/{id}/exec">client.Instances.<a href="https://pkg.go.dev/github.com/onkernel/hypeman-go#InstanceService.ExecuteCommand">ExecuteCommand</a>(ctx <a href="https://pkg.go.dev/context">context</a>.<a href="https://pkg.go.dev/context#Context">Context</a>, id <a href="https://pkg.go.dev/builtin#string">string</a>) <a href="https://pkg.go.dev/builtin#error">error</a></code>
3637
- <code title="post /instances/{id}/standby">client.Instances.<a href="https://pkg.go.dev/github.com/onkernel/hypeman-go#InstanceService.PutInStandby">PutInStandby</a>(ctx <a href="https://pkg.go.dev/context">context</a>.<a href="https://pkg.go.dev/context#Context">Context</a>, id <a href="https://pkg.go.dev/builtin#string">string</a>) (<a href="https://pkg.go.dev/github.com/onkernel/hypeman-go">hypeman</a>.<a href="https://pkg.go.dev/github.com/onkernel/hypeman-go#Instance">Instance</a>, <a href="https://pkg.go.dev/builtin#error">error</a>)</code>
3738
- <code title="post /instances/{id}/restore">client.Instances.<a href="https://pkg.go.dev/github.com/onkernel/hypeman-go#InstanceService.RestoreFromStandby">RestoreFromStandby</a>(ctx <a href="https://pkg.go.dev/context">context</a>.<a href="https://pkg.go.dev/context#Context">Context</a>, id <a href="https://pkg.go.dev/builtin#string">string</a>) (<a href="https://pkg.go.dev/github.com/onkernel/hypeman-go">hypeman</a>.<a href="https://pkg.go.dev/github.com/onkernel/hypeman-go#Instance">Instance</a>, <a href="https://pkg.go.dev/builtin#error">error</a>)</code>
3839
- <code title="get /instances/{id}/logs">client.Instances.<a href="https://pkg.go.dev/github.com/onkernel/hypeman-go#InstanceService.StreamLogs">StreamLogs</a>(ctx <a href="https://pkg.go.dev/context">context</a>.<a href="https://pkg.go.dev/context#Context">Context</a>, id <a href="https://pkg.go.dev/builtin#string">string</a>, query <a href="https://pkg.go.dev/github.com/onkernel/hypeman-go">hypeman</a>.<a href="https://pkg.go.dev/github.com/onkernel/hypeman-go#InstanceStreamLogsParams">InstanceStreamLogsParams</a>) (<a href="https://pkg.go.dev/builtin#string">string</a>, <a href="https://pkg.go.dev/builtin#error">error</a>)</code>

instance.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,19 @@ func (r *InstanceService) Delete(ctx context.Context, id string, opts ...option.
8282
return
8383
}
8484

85+
// Upgrades to WebSocket for bidirectional streaming for shell access.
86+
func (r *InstanceService) ExecuteCommand(ctx context.Context, id string, opts ...option.RequestOption) (err error) {
87+
opts = slices.Concat(r.Options, opts)
88+
opts = append([]option.RequestOption{option.WithHeader("Accept", "*/*")}, opts...)
89+
if id == "" {
90+
err = errors.New("missing required id parameter")
91+
return
92+
}
93+
path := fmt.Sprintf("instances/%s/exec", id)
94+
err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, nil, nil, opts...)
95+
return
96+
}
97+
8598
// Put instance in standby (pause, snapshot, delete VMM)
8699
func (r *InstanceService) PutInStandby(ctx context.Context, id string, opts ...option.RequestOption) (res *Instance, err error) {
87100
opts = slices.Concat(r.Options, opts)

instance_test.go

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,29 @@ func TestInstanceDelete(t *testing.T) {
119119
}
120120
}
121121

122+
func TestInstanceExecuteCommand(t *testing.T) {
123+
t.Skip("Prism tests are disabled")
124+
baseURL := "http://localhost:4010"
125+
if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok {
126+
baseURL = envURL
127+
}
128+
if !testutil.CheckTestServer(t, baseURL) {
129+
return
130+
}
131+
client := hypeman.NewClient(
132+
option.WithBaseURL(baseURL),
133+
option.WithAPIKey("My API Key"),
134+
)
135+
err := client.Instances.ExecuteCommand(context.TODO(), "id")
136+
if err != nil {
137+
var apierr *hypeman.Error
138+
if errors.As(err, &apierr) {
139+
t.Log(string(apierr.DumpRequest(true)))
140+
}
141+
t.Fatalf("err should be nil: %s", err.Error())
142+
}
143+
}
144+
122145
func TestInstancePutInStandby(t *testing.T) {
123146
t.Skip("Prism tests are disabled")
124147
baseURL := "http://localhost:4010"

internal/version.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22

33
package internal
44

5-
const PackageVersion = "0.1.0" // x-release-please-version
5+
const PackageVersion = "0.2.0" // x-release-please-version

0 commit comments

Comments
 (0)