diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 4c56f2a..57726a4 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.64.0" + ".": "0.65.0" } \ No newline at end of file diff --git a/.stats.yml b/.stats.yml index d9e9753..dcde96d 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 117 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel/kernel-9d489e3e43edfa64a754d4281241718e01c85d9a82ef3687df12bbd3c4ff5b42.yml -openapi_spec_hash: a953cafb7f40ec8495dbd7df8bab8bad -config_hash: bb7acce8576a50dd449b0c8f58ef0f1d +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel/kernel-08c2d6a44f4cdcbfb6803a3043fdc1a3e33911dec4652cb3a870f01bc584421f.yml +openapi_spec_hash: c816491451347eb93b793cddf6a78648 +config_hash: 9e45c27425021d49b5391f5cc980b046 diff --git a/CHANGELOG.md b/CHANGELOG.md index 4e0a1bc..a63adb2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog +## 0.65.0 (2026-06-08) + +Full Changelog: [v0.64.0...v0.65.0](https://github.com/kernel/kernel-go-sdk/compare/v0.64.0...v0.65.0) + +### Features + +* **api:** allow setting a name and tags on a pool-acquired browser session ([ef64773](https://github.com/kernel/kernel-go-sdk/commit/ef647732782e8bc382a06d02377f46edd8ebc2b2)) +* **api:** support id-or-name lookup on browser session get/patch/delete ([193727b](https://github.com/kernel/kernel-go-sdk/commit/193727b6134db7c2f97d5170ef06c2b0692b45c8)) + ## 0.64.0 (2026-06-05) Full Changelog: [v0.63.0...v0.64.0](https://github.com/kernel/kernel-go-sdk/compare/v0.63.0...v0.64.0) diff --git a/README.md b/README.md index b5c1ff0..1530141 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ Or to pin the version: ```sh -go get -u 'github.com/kernel/kernel-go-sdk@v0.64.0' +go get -u 'github.com/kernel/kernel-go-sdk@v0.65.0' ``` diff --git a/api.md b/api.md index 727c43c..9eb99c1 100644 --- a/api.md +++ b/api.md @@ -87,11 +87,11 @@ Response Types: Methods: - client.Browsers.New(ctx context.Context, body kernel.BrowserNewParams) (\*kernel.BrowserNewResponse, error) -- client.Browsers.Get(ctx context.Context, id string, query kernel.BrowserGetParams) (\*kernel.BrowserGetResponse, error) -- client.Browsers.Update(ctx context.Context, id string, body kernel.BrowserUpdateParams) (\*kernel.BrowserUpdateResponse, error) +- client.Browsers.Get(ctx context.Context, idOrName string, query kernel.BrowserGetParams) (\*kernel.BrowserGetResponse, error) +- client.Browsers.Update(ctx context.Context, idOrName string, body kernel.BrowserUpdateParams) (\*kernel.BrowserUpdateResponse, error) - client.Browsers.List(ctx context.Context, query kernel.BrowserListParams) (\*pagination.OffsetPagination[kernel.BrowserListResponse], error) - client.Browsers.Curl(ctx context.Context, id string, body kernel.BrowserCurlParams) (\*kernel.BrowserCurlResponse, error) -- client.Browsers.DeleteByID(ctx context.Context, id string) error +- client.Browsers.DeleteByID(ctx context.Context, idOrName string) error - client.Browsers.LoadExtensions(ctx context.Context, id string, body kernel.BrowserLoadExtensionsParams) error ## Telemetry diff --git a/browser.go b/browser.go index ebd211a..cfb8067 100644 --- a/browser.go +++ b/browser.go @@ -76,25 +76,25 @@ func (r *BrowserService) New(ctx context.Context, body BrowserNewParams, opts .. } // Get information about a browser session. -func (r *BrowserService) Get(ctx context.Context, id string, query BrowserGetParams, opts ...option.RequestOption) (res *BrowserGetResponse, err error) { +func (r *BrowserService) Get(ctx context.Context, idOrName string, query BrowserGetParams, opts ...option.RequestOption) (res *BrowserGetResponse, err error) { opts = slices.Concat(r.Options, opts) - if id == "" { - err = errors.New("missing required id parameter") + if idOrName == "" { + err = errors.New("missing required id_or_name parameter") return nil, err } - path := fmt.Sprintf("browsers/%s", id) + path := fmt.Sprintf("browsers/%s", idOrName) err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, query, &res, opts...) return res, err } // Update a browser session. -func (r *BrowserService) Update(ctx context.Context, id string, body BrowserUpdateParams, opts ...option.RequestOption) (res *BrowserUpdateResponse, err error) { +func (r *BrowserService) Update(ctx context.Context, idOrName string, body BrowserUpdateParams, opts ...option.RequestOption) (res *BrowserUpdateResponse, err error) { opts = slices.Concat(r.Options, opts) - if id == "" { - err = errors.New("missing required id parameter") + if idOrName == "" { + err = errors.New("missing required id_or_name parameter") return nil, err } - path := fmt.Sprintf("browsers/%s", id) + path := fmt.Sprintf("browsers/%s", idOrName) err = requestconfig.ExecuteNewRequest(ctx, http.MethodPatch, path, body, &res, opts...) return res, err } @@ -138,15 +138,15 @@ func (r *BrowserService) Curl(ctx context.Context, id string, body BrowserCurlPa return res, err } -// Delete a browser session by ID -func (r *BrowserService) DeleteByID(ctx context.Context, id string, opts ...option.RequestOption) (err error) { +// Delete a browser session by ID or name +func (r *BrowserService) DeleteByID(ctx context.Context, idOrName string, opts ...option.RequestOption) (err error) { opts = slices.Concat(r.Options, opts) opts = append([]option.RequestOption{option.WithHeader("Accept", "*/*")}, opts...) - if id == "" { - err = errors.New("missing required id parameter") + if idOrName == "" { + err = errors.New("missing required id_or_name parameter") return err } - path := fmt.Sprintf("browsers/%s", id) + path := fmt.Sprintf("browsers/%s", idOrName) err = requestconfig.ExecuteNewRequest(ctx, http.MethodDelete, path, nil, nil, opts...) return err } diff --git a/browserpool.go b/browserpool.go index 2d510c7..dc4360f 100644 --- a/browserpool.go +++ b/browserpool.go @@ -532,6 +532,15 @@ type BrowserPoolAcquireParams struct { // calculated time it would take to fill the pool at the currently configured fill // rate. AcquireTimeoutSeconds param.Opt[int64] `json:"acquire_timeout_seconds,omitzero"` + // Optional human-readable name for the acquired browser session, used to find it + // later in the dashboard. Must be unique among active sessions within the pool's + // project. Applies to this lease only and is cleared when the browser is released + // back to the pool. + Name param.Opt[string] `json:"name,omitzero"` + // Optional user-defined key-value tags for the acquired browser session, used to + // find and group sessions later. Applies to this lease only and are cleared when + // the browser is released back to the pool. Up to 50 pairs. + Tags Tags `json:"tags,omitzero"` paramObj } diff --git a/browserpool_test.go b/browserpool_test.go index 39d8597..6748207 100644 --- a/browserpool_test.go +++ b/browserpool_test.go @@ -215,6 +215,11 @@ func TestBrowserPoolAcquireWithOptionalParams(t *testing.T) { "id_or_name", kernel.BrowserPoolAcquireParams{ AcquireTimeoutSeconds: kernel.Int(0), + Name: kernel.String("checkout-flow-1"), + Tags: kernel.Tags{ + "team": "backend", + "env": "staging", + }, }, ) if err != nil { diff --git a/internal/version.go b/internal/version.go index bc33403..5d1e9f9 100644 --- a/internal/version.go +++ b/internal/version.go @@ -2,4 +2,4 @@ package internal -const PackageVersion = "0.64.0" // x-release-please-version +const PackageVersion = "0.65.0" // x-release-please-version