diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 6db19b9..4ad3fef 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.17.0" + ".": "0.18.0" } \ No newline at end of file diff --git a/.stats.yml b/.stats.yml index 8cf9ee7..9e4dbe6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 65 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fkernel-e914e2d08b888c77051acb09176d5e88052f130e0d22e85d946a675d2c3d39ab.yml -openapi_spec_hash: 611d0ed1b4519331470b5d14e5f6784a -config_hash: 3ded7a0ed77b1bfd68eabc6763521fe8 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fkernel-015c11efc34c81d4d82a937c017f5eb789ea3ca21a05b70e2ed31c069b839293.yml +openapi_spec_hash: 3dcab2044da305f376cecf4eca38caee +config_hash: 0fbdda3a736cc2748ca33371871e61b3 diff --git a/CHANGELOG.md b/CHANGELOG.md index 2aefd98..71fed8b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 0.18.0 (2025-10-30) + +Full Changelog: [v0.17.0...v0.18.0](https://github.com/onkernel/kernel-go-sdk/compare/v0.17.0...v0.18.0) + +### Features + +* apps: add offset pagination + headers ([bb1bb22](https://github.com/onkernel/kernel-go-sdk/commit/bb1bb22bab1970f1c2ef0455d3002abbfc46466b)) + ## 0.17.0 (2025-10-27) Full Changelog: [v0.16.0...v0.17.0](https://github.com/onkernel/kernel-go-sdk/compare/v0.16.0...v0.17.0) diff --git a/README.md b/README.md index c40dcb9..74d456f 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ Or to pin the version: ```sh -go get -u 'github.com/onkernel/kernel-go-sdk@v0.17.0' +go get -u 'github.com/onkernel/kernel-go-sdk@v0.18.0' ``` diff --git a/api.md b/api.md index 533c147..495591c 100644 --- a/api.md +++ b/api.md @@ -32,7 +32,7 @@ Response Types: Methods: -- client.Apps.List(ctx context.Context, query kernel.AppListParams) ([]kernel.AppListResponse, error) +- client.Apps.List(ctx context.Context, query kernel.AppListParams) (pagination.OffsetPagination[kernel.AppListResponse], error) # Invocations diff --git a/app.go b/app.go index f2f3ff4..32bed97 100644 --- a/app.go +++ b/app.go @@ -12,6 +12,7 @@ import ( "github.com/onkernel/kernel-go-sdk/internal/apiquery" "github.com/onkernel/kernel-go-sdk/internal/requestconfig" "github.com/onkernel/kernel-go-sdk/option" + "github.com/onkernel/kernel-go-sdk/packages/pagination" "github.com/onkernel/kernel-go-sdk/packages/param" "github.com/onkernel/kernel-go-sdk/packages/respjson" "github.com/onkernel/kernel-go-sdk/shared" @@ -38,11 +39,26 @@ func NewAppService(opts ...option.RequestOption) (r AppService) { } // List applications. Optionally filter by app name and/or version label. -func (r *AppService) List(ctx context.Context, query AppListParams, opts ...option.RequestOption) (res *[]AppListResponse, err error) { +func (r *AppService) List(ctx context.Context, query AppListParams, opts ...option.RequestOption) (res *pagination.OffsetPagination[AppListResponse], err error) { + var raw *http.Response opts = slices.Concat(r.Options, opts) + opts = append([]option.RequestOption{option.WithResponseInto(&raw)}, opts...) path := "apps" - err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, query, &res, opts...) - return + cfg, err := requestconfig.NewRequestConfig(ctx, http.MethodGet, path, query, &res, opts...) + if err != nil { + return nil, err + } + err = cfg.Execute() + if err != nil { + return nil, err + } + res.SetPageConfig(cfg, raw) + return res, nil +} + +// List applications. Optionally filter by app name and/or version label. +func (r *AppService) ListAutoPaging(ctx context.Context, query AppListParams, opts ...option.RequestOption) *pagination.OffsetPaginationAutoPager[AppListResponse] { + return pagination.NewOffsetPaginationAutoPager(r.List(ctx, query, opts...)) } // Summary of an application version. @@ -84,6 +100,10 @@ func (r *AppListResponse) UnmarshalJSON(data []byte) error { type AppListParams struct { // Filter results by application name. AppName param.Opt[string] `query:"app_name,omitzero" json:"-"` + // Limit the number of app to return. + Limit param.Opt[int64] `query:"limit,omitzero" json:"-"` + // Offset the number of app to return. + Offset param.Opt[int64] `query:"offset,omitzero" json:"-"` // Filter results by version label. Version param.Opt[string] `query:"version,omitzero" json:"-"` paramObj diff --git a/app_test.go b/app_test.go index 100d114..b69d610 100644 --- a/app_test.go +++ b/app_test.go @@ -28,6 +28,8 @@ func TestAppListWithOptionalParams(t *testing.T) { ) _, err := client.Apps.List(context.TODO(), kernel.AppListParams{ AppName: kernel.String("app_name"), + Limit: kernel.Int(1), + Offset: kernel.Int(0), Version: kernel.String("version"), }) if err != nil { diff --git a/internal/version.go b/internal/version.go index c265c64..8dc40e7 100644 --- a/internal/version.go +++ b/internal/version.go @@ -2,4 +2,4 @@ package internal -const PackageVersion = "0.17.0" // x-release-please-version +const PackageVersion = "0.18.0" // x-release-please-version