diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 800f691..8f3951d 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -19,10 +19,10 @@ jobs:
runs-on: ${{ github.repository == 'stainless-sdks/gitpod-typescript' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
if: github.event_name == 'push' || github.event.pull_request.head.repo.fork
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- name: Set up Node
- uses: actions/setup-node@v4
+ uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with:
node-version: '20'
@@ -41,10 +41,10 @@ jobs:
contents: read
id-token: write
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- name: Set up Node
- uses: actions/setup-node@v4
+ uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with:
node-version: '20'
@@ -57,7 +57,7 @@ jobs:
- name: Get GitHub OIDC Token
if: github.repository == 'stainless-sdks/gitpod-typescript'
id: github-oidc
- uses: actions/github-script@v6
+ uses: actions/github-script@00f12e3e20659f42342b1c0226afda7f7c042325 # v6
with:
script: core.setOutput('github_token', await core.getIDToken());
@@ -74,10 +74,10 @@ jobs:
runs-on: ${{ github.repository == 'stainless-sdks/gitpod-typescript' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
if: github.event_name == 'push' || github.event.pull_request.head.repo.fork
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- name: Set up Node
- uses: actions/setup-node@v4
+ uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with:
node-version: '20'
diff --git a/.github/workflows/publish-npm.yml b/.github/workflows/publish-npm.yml
index 7936e80..c95a4ba 100644
--- a/.github/workflows/publish-npm.yml
+++ b/.github/workflows/publish-npm.yml
@@ -23,10 +23,10 @@ jobs:
id-token: write
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- name: Set up Node
- uses: actions/setup-node@v4
+ uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with:
node-version: '24'
registry-url: 'https://registry.npmjs.org'
diff --git a/.github/workflows/release-doctor.yml b/.github/workflows/release-doctor.yml
index 742b303..6e13518 100644
--- a/.github/workflows/release-doctor.yml
+++ b/.github/workflows/release-doctor.yml
@@ -12,7 +12,7 @@ jobs:
if: github.repository == 'gitpod-io/gitpod-sdk-typescript' && (github.event_name == 'push' || github.event_name == 'workflow_dispatch' || startsWith(github.head_ref, 'release-please') || github.head_ref == 'next')
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- name: Check release environment
run: |
diff --git a/.release-please-manifest.json b/.release-please-manifest.json
index 64f3cdd..76d5538 100644
--- a/.release-please-manifest.json
+++ b/.release-please-manifest.json
@@ -1,3 +1,3 @@
{
- ".": "0.8.0"
+ ".": "0.9.0"
}
diff --git a/.stats.yml b/.stats.yml
index 0fdb5b6..e42a5ca 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
-configured_endpoints: 159
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-d62ef4b9187c1f3d36f428abc4b31d8a09ffd36e93d39b8136c60c8f463c838e.yml
-openapi_spec_hash: d7f01b6f24e88eb46d744ecd28061f26
-config_hash: 26e4a10dfc6ec809322e60d889d15414
+configured_endpoints: 160
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-3935e467f9c15925790aada293124db82bb5d6840eeac52d81fbac6a9b0fd154.yml
+openapi_spec_hash: b417d7f10ea430216e9b70e4468a3212
+config_hash: d3267594264bfb76d2ee7e881d5f8a5a
diff --git a/CHANGELOG.md b/CHANGELOG.md
index f86e4aa..af5589a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,25 @@
# Changelog
+## 0.9.0 (2026-01-09)
+
+Full Changelog: [v0.8.0...v0.9.0](https://github.com/gitpod-io/gitpod-sdk-typescript/compare/v0.8.0...v0.9.0)
+
+### Features
+
+* **agent:** add group-based SCM tools access control ([9f8d2f9](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/9f8d2f902fc221a89e27ae74e47315d6300f2af2))
+* **api:** add ImageInput to UserInputBlock proto ([103bf02](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/103bf02589912eb6d2d04626372edbfe4868d041))
+* **api:** add recommended editors configuration to project settings ([57ae935](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/57ae9355b5e86430af037958dc529a942fbeb05b))
+* **db:** add webhooks table with trigger reference ([2f87f2d](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/2f87f2da279d2727a3eb0288d2365f1c1b0aada3))
+* **prebuild:** expose snapshot completion percentage in prebuild status ([778c94b](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/778c94b9b4e453853efd9b611bfeb8d9e9d81f39))
+* **skills:** add organization-level skills support ([24cb9a2](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/24cb9a234c1deb8238e6f42dbed2ace01ff35d7e))
+
+
+### Chores
+
+* break long lines in snippets into multiline ([9fa685f](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/9fa685ffc219966cd2480ae7250e646994a7331d))
+* **internal:** codegen related update ([74962c9](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/74962c94a845f1645dd6df17b8a7240894ff64c9))
+* pin GitHub Actions to SHA ([d29f17d](https://github.com/gitpod-io/gitpod-sdk-typescript/commit/d29f17de8d5cb9632525387669978058c18ba0a7))
+
## 0.8.0 (2025-12-15)
Full Changelog: [v0.7.11...v0.8.0](https://github.com/gitpod-io/gitpod-sdk-typescript/compare/v0.7.11...v0.8.0)
diff --git a/LICENSE b/LICENSE
index 01fd4f2..30d8cd5 100644
--- a/LICENSE
+++ b/LICENSE
@@ -186,7 +186,7 @@
same "printed page" as the copyright notice for easier
identification within third-party archives.
- Copyright 2025 Gitpod
+ Copyright 2026 Gitpod
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/README.md b/README.md
index c116f77..58e93fe 100644
--- a/README.md
+++ b/README.md
@@ -172,7 +172,9 @@ const response = await client.identity.getAuthenticatedIdentity().asResponse();
console.log(response.headers.get('X-My-Header'));
console.log(response.statusText); // access the underlying Response object
-const { data: response, response: raw } = await client.identity.getAuthenticatedIdentity().withResponse();
+const { data: response, response: raw } = await client.identity
+ .getAuthenticatedIdentity()
+ .withResponse();
console.log(raw.headers.get('X-My-Header'));
console.log(response.organizationId);
```
diff --git a/api.md b/api.md
index 07e45cb..b1ba44f 100644
--- a/api.md
+++ b/api.md
@@ -275,11 +275,13 @@ Types:
- GroupMembership
- MembershipCreateResponse
+- MembershipRetrieveResponse
- MembershipDeleteResponse
Methods:
- client.groups.memberships.create({ ...params }) -> MembershipCreateResponse
+- client.groups.memberships.retrieve({ ...params }) -> MembershipRetrieveResponse
- client.groups.memberships.list({ ...params }) -> GroupMembershipsMembersPage
- client.groups.memberships.delete({ ...params }) -> unknown
@@ -462,6 +464,7 @@ Types:
- ProjectMetadata
- ProjectPhase
- ProjectPrebuildConfiguration
+- RecommendedEditors
- ProjectCreateResponse
- ProjectRetrieveResponse
- ProjectUpdateResponse
diff --git a/package.json b/package.json
index d491c93..d42136d 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@gitpod/sdk",
- "version": "0.8.0",
+ "version": "0.9.0",
"description": "The official TypeScript library for the Gitpod API",
"author": "Gitpod ",
"types": "dist/index.d.ts",
diff --git a/src/client.ts b/src/client.ts
index aef5331..6d3d8ef 100644
--- a/src/client.ts
+++ b/src/client.ts
@@ -315,6 +315,7 @@ import {
ProjectUpdateResponse,
Projects,
ProjectsProjectsPage,
+ RecommendedEditors,
} from './resources/projects/projects';
import {
GatewayInfo,
@@ -1449,6 +1450,7 @@ export declare namespace Gitpod {
type ProjectMetadata as ProjectMetadata,
type ProjectPhase as ProjectPhase,
type ProjectPrebuildConfiguration as ProjectPrebuildConfiguration,
+ type RecommendedEditors as RecommendedEditors,
type ProjectCreateResponse as ProjectCreateResponse,
type ProjectRetrieveResponse as ProjectRetrieveResponse,
type ProjectUpdateResponse as ProjectUpdateResponse,
diff --git a/src/resources/agents.ts b/src/resources/agents.ts
index c287386..ec832cf 100644
--- a/src/resources/agents.ts
+++ b/src/resources/agents.ts
@@ -1132,6 +1132,11 @@ export interface PromptSpec {
*/
isCommand?: boolean;
+ /**
+ * is_skill indicates if this prompt is a skill (workflow instructions for agents)
+ */
+ isSkill?: boolean;
+
/**
* is_template indicates if this prompt is a template
*/
@@ -1144,17 +1149,34 @@ export interface PromptSpec {
}
export interface UserInputBlock {
- text: UserInputBlock.Text;
-
id?: string;
/**
* Timestamp when this block was created. Used for debugging and support bundles.
*/
createdAt?: string;
+
+ /**
+ * ImageInput allows sending images to the agent. Media type is inferred from magic
+ * bytes by the backend.
+ */
+ image?: UserInputBlock.Image;
+
+ text?: UserInputBlock.Text;
}
export namespace UserInputBlock {
+ /**
+ * ImageInput allows sending images to the agent. Media type is inferred from magic
+ * bytes by the backend.
+ */
+ export interface Image {
+ /**
+ * Raw image data (max 4MB). Supported formats: PNG, JPEG, WebP.
+ */
+ data?: string;
+ }
+
export interface Text {
content?: string;
}
@@ -1203,6 +1225,8 @@ export interface AgentCreatePromptParams {
isCommand?: boolean;
+ isSkill?: boolean;
+
isTemplate?: boolean;
name?: string;
@@ -1284,6 +1308,8 @@ export namespace AgentListPromptsParams {
isCommand?: boolean;
+ isSkill?: boolean;
+
isTemplate?: boolean;
}
@@ -1387,6 +1413,11 @@ export namespace AgentUpdatePromptParams {
*/
isCommand?: boolean | null;
+ /**
+ * Whether this prompt is a skill
+ */
+ isSkill?: boolean | null;
+
/**
* Whether this prompt is a template
*/
diff --git a/src/resources/groups/groups.ts b/src/resources/groups/groups.ts
index 5c566bf..6c991f4 100644
--- a/src/resources/groups/groups.ts
+++ b/src/resources/groups/groups.ts
@@ -10,6 +10,8 @@ import {
MembershipDeleteParams,
MembershipDeleteResponse,
MembershipListParams,
+ MembershipRetrieveParams,
+ MembershipRetrieveResponse,
Memberships,
} from './memberships';
import * as RoleAssignmentsAPI from './role-assignments';
@@ -528,9 +530,11 @@ export declare namespace Groups {
Memberships as Memberships,
type GroupMembership as GroupMembership,
type MembershipCreateResponse as MembershipCreateResponse,
+ type MembershipRetrieveResponse as MembershipRetrieveResponse,
type MembershipDeleteResponse as MembershipDeleteResponse,
type GroupMembershipsMembersPage as GroupMembershipsMembersPage,
type MembershipCreateParams as MembershipCreateParams,
+ type MembershipRetrieveParams as MembershipRetrieveParams,
type MembershipListParams as MembershipListParams,
type MembershipDeleteParams as MembershipDeleteParams,
};
diff --git a/src/resources/groups/index.ts b/src/resources/groups/index.ts
index 80bf45e..bdaec7e 100644
--- a/src/resources/groups/index.ts
+++ b/src/resources/groups/index.ts
@@ -18,8 +18,10 @@ export {
Memberships,
type GroupMembership,
type MembershipCreateResponse,
+ type MembershipRetrieveResponse,
type MembershipDeleteResponse,
type MembershipCreateParams,
+ type MembershipRetrieveParams,
type MembershipListParams,
type MembershipDeleteParams,
type GroupMembershipsMembersPage,
diff --git a/src/resources/groups/memberships.ts b/src/resources/groups/memberships.ts
index 097335a..20e0929 100644
--- a/src/resources/groups/memberships.ts
+++ b/src/resources/groups/memberships.ts
@@ -48,6 +48,48 @@ export class Memberships extends APIResource {
return this._client.post('/gitpod.v1.GroupService/CreateMembership', { body, ...options });
}
+ /**
+ * Gets a specific membership by group ID and subject.
+ *
+ * Use this method to:
+ *
+ * - Check if a user or service account is a member of a group
+ * - Verify group membership for access control
+ *
+ * ### Examples
+ *
+ * - Check user membership:
+ *
+ * Checks if a user is a member of a specific group.
+ *
+ * ```yaml
+ * groupId: "d2c94c27-3b76-4a42-b88c-95a85e392c68"
+ * subject:
+ * id: "f53d2330-3795-4c5d-a1f3-453121af9c60"
+ * principal: PRINCIPAL_USER
+ * ```
+ *
+ * ### Authorization
+ *
+ * All organization members can check group membership (transparency model).
+ *
+ * @example
+ * ```ts
+ * const membership = await client.groups.memberships.retrieve(
+ * {
+ * subject: {
+ * id: 'f53d2330-3795-4c5d-a1f3-453121af9c60',
+ * principal: 'PRINCIPAL_USER',
+ * },
+ * groupId: 'd2c94c27-3b76-4a42-b88c-95a85e392c68',
+ * },
+ * );
+ * ```
+ */
+ retrieve(body: MembershipRetrieveParams, options?: RequestOptions): APIPromise {
+ return this._client.post('/gitpod.v1.GroupService/GetMembership', { body, ...options });
+ }
+
/**
* Lists all memberships of a group.
*
@@ -172,6 +214,13 @@ export interface MembershipCreateResponse {
member?: GroupMembership;
}
+export interface MembershipRetrieveResponse {
+ /**
+ * The membership if found, nil if subject is not a member
+ */
+ member?: GroupMembership;
+}
+
/**
* Empty response
*/
@@ -186,6 +235,15 @@ export interface MembershipCreateParams {
subject?: Shared.Subject;
}
+export interface MembershipRetrieveParams {
+ /**
+ * Subject to check membership for
+ */
+ subject: Shared.Subject;
+
+ groupId?: string;
+}
+
export interface MembershipListParams extends MembersPageParams {
/**
* Body param:
@@ -228,9 +286,11 @@ export declare namespace Memberships {
export {
type GroupMembership as GroupMembership,
type MembershipCreateResponse as MembershipCreateResponse,
+ type MembershipRetrieveResponse as MembershipRetrieveResponse,
type MembershipDeleteResponse as MembershipDeleteResponse,
type GroupMembershipsMembersPage as GroupMembershipsMembersPage,
type MembershipCreateParams as MembershipCreateParams,
+ type MembershipRetrieveParams as MembershipRetrieveParams,
type MembershipListParams as MembershipListParams,
type MembershipDeleteParams as MembershipDeleteParams,
};
diff --git a/src/resources/groups/role-assignments.ts b/src/resources/groups/role-assignments.ts
index 4c8c1eb..e40ab27 100644
--- a/src/resources/groups/role-assignments.ts
+++ b/src/resources/groups/role-assignments.ts
@@ -214,7 +214,9 @@ export type ResourceRole =
| 'RESOURCE_ROLE_WORKFLOW_VIEWER'
| 'RESOURCE_ROLE_WORKFLOW_EXECUTOR'
| 'RESOURCE_ROLE_SNAPSHOT_ADMIN'
- | 'RESOURCE_ROLE_SNAPSHOT_RUNNER';
+ | 'RESOURCE_ROLE_SNAPSHOT_RUNNER'
+ | 'RESOURCE_ROLE_WEBHOOK_ADMIN'
+ | 'RESOURCE_ROLE_WEBHOOK_VIEWER';
/**
* RoleAssignment represents a role assigned to a group on a specific resource
diff --git a/src/resources/index.ts b/src/resources/index.ts
index 0d1d9fd..2dcceb1 100644
--- a/src/resources/index.ts
+++ b/src/resources/index.ts
@@ -198,6 +198,7 @@ export {
type ProjectMetadata,
type ProjectPhase,
type ProjectPrebuildConfiguration,
+ type RecommendedEditors,
type ProjectCreateResponse,
type ProjectRetrieveResponse,
type ProjectUpdateResponse,
diff --git a/src/resources/organizations/policies.ts b/src/resources/organizations/policies.ts
index 86b9b7c..da14a6b 100644
--- a/src/resources/organizations/policies.ts
+++ b/src/resources/organizations/policies.ts
@@ -111,6 +111,12 @@ export interface AgentPolicy {
* disabled for agents
*/
scmToolsDisabled: boolean;
+
+ /**
+ * scm_tools_allowed_group_id restricts SCM tools access to members of this group.
+ * Empty means no restriction (all users can use SCM tools if not disabled).
+ */
+ scmToolsAllowedGroupId?: string;
}
/**
@@ -411,6 +417,12 @@ export namespace PolicyUpdateParams {
*/
mcpDisabled?: boolean | null;
+ /**
+ * scm_tools_allowed_group_id restricts SCM tools access to members of this group.
+ * Empty means no restriction (all users can use SCM tools if not disabled).
+ */
+ scmToolsAllowedGroupId?: string | null;
+
/**
* scm_tools_disabled controls whether SCM (Source Control Management) tools are
* disabled for agents
diff --git a/src/resources/prebuilds.ts b/src/resources/prebuilds.ts
index af5a6f1..195450c 100644
--- a/src/resources/prebuilds.ts
+++ b/src/resources/prebuilds.ts
@@ -353,6 +353,14 @@ export interface PrebuildStatus {
*/
logUrl?: string;
+ /**
+ * snapshot_completion_percentage is the progress of snapshot creation (0-100).
+ * Only populated when phase is SNAPSHOTTING and progress is available from the
+ * cloud provider. This value may update infrequently or remain at 0 depending on
+ * the provider.
+ */
+ snapshotCompletionPercentage?: number;
+
/**
* status_version is incremented each time the status is updated. Used for
* optimistic concurrency control.
diff --git a/src/resources/projects/index.ts b/src/resources/projects/index.ts
index 14efa77..ca1bffc 100644
--- a/src/resources/projects/index.ts
+++ b/src/resources/projects/index.ts
@@ -26,6 +26,7 @@ export {
type ProjectMetadata,
type ProjectPhase,
type ProjectPrebuildConfiguration,
+ type RecommendedEditors,
type ProjectCreateResponse,
type ProjectRetrieveResponse,
type ProjectUpdateResponse,
diff --git a/src/resources/projects/projects.ts b/src/resources/projects/projects.ts
index b7d4d83..093c604 100644
--- a/src/resources/projects/projects.ts
+++ b/src/resources/projects/projects.ts
@@ -23,6 +23,7 @@ import {
ProjectPolicy,
ProjectRole,
} from './policies';
+import * as RunnersAPI from '../runners/runners';
import { APIPromise } from '../../core/api-promise';
import { PagePromise, ProjectsPage, type ProjectsPageParams } from '../../core/pagination';
import { RequestOptions } from '../../internal/request-options';
@@ -386,6 +387,11 @@ export interface Project {
*/
prebuildConfiguration?: ProjectPrebuildConfiguration;
+ /**
+ * recommended_editors specifies the editors recommended for this project.
+ */
+ recommendedEditors?: RecommendedEditors;
+
/**
* technical_description is a detailed technical description of the project This
* field is not returned by default in GetProject or ListProjects responses
@@ -683,6 +689,33 @@ export namespace ProjectPrebuildConfiguration {
}
}
+/**
+ * RecommendedEditors contains the map of recommended editors and their versions.
+ */
+export interface RecommendedEditors {
+ /**
+ * editors maps editor aliases to their recommended versions. Key is the editor
+ * alias (e.g., "intellij", "goland", "vscode"). Value contains the list of
+ * recommended versions for that editor. If versions list is empty, all available
+ * versions are recommended. Example: {"intellij": {versions: ["2025.1",
+ * "2024.3"]}, "goland": {}}
+ */
+ editors?: { [key: string]: RecommendedEditors.Editors };
+}
+
+export namespace RecommendedEditors {
+ /**
+ * EditorVersions contains the recommended versions for an editor.
+ */
+ export interface Editors {
+ /**
+ * versions is the list of recommended versions for this editor. If empty, all
+ * available versions are recommended. Examples for JetBrains: ["2025.1", "2024.3"]
+ */
+ versions?: Array;
+ }
+}
+
export interface ProjectCreateResponse {
project?: Project;
}
@@ -789,6 +822,13 @@ export interface ProjectUpdateParams {
*/
projectId?: string;
+ /**
+ * recommended_editors specifies the editors recommended for this project. If not
+ * provided, the existing recommended editors are not modified. To clear all
+ * recommended editors, set to an empty RecommendedEditors message.
+ */
+ recommendedEditors?: RecommendedEditors | null;
+
/**
* technical_description is a detailed technical description of the project This
* field is not returned by default in GetProject or ListProjects responses 8KB max
@@ -821,6 +861,12 @@ export namespace ProjectListParams {
*/
runnerIds?: Array;
+ /**
+ * runner_kinds filters the response to only projects that use environment classes
+ * from runners of these kinds
+ */
+ runnerKinds?: Array;
+
/**
* search performs case-insensitive search across project name, project ID, and
* repository name
@@ -872,6 +918,7 @@ export declare namespace Projects {
type ProjectMetadata as ProjectMetadata,
type ProjectPhase as ProjectPhase,
type ProjectPrebuildConfiguration as ProjectPrebuildConfiguration,
+ type RecommendedEditors as RecommendedEditors,
type ProjectCreateResponse as ProjectCreateResponse,
type ProjectRetrieveResponse as ProjectRetrieveResponse,
type ProjectUpdateResponse as ProjectUpdateResponse,
diff --git a/src/resources/shared.ts b/src/resources/shared.ts
index 1bb2c24..bd4015d 100644
--- a/src/resources/shared.ts
+++ b/src/resources/shared.ts
@@ -224,7 +224,8 @@ export type ResourceType =
| 'RESOURCE_TYPE_ORGANIZATION_LLM_INTEGRATION'
| 'RESOURCE_TYPE_CUSTOM_DOMAIN'
| 'RESOURCE_TYPE_ROLE_ASSIGNMENT_CHANGED'
- | 'RESOURCE_TYPE_GROUP_MEMBERSHIP_CHANGED';
+ | 'RESOURCE_TYPE_GROUP_MEMBERSHIP_CHANGED'
+ | 'RESOURCE_TYPE_WEBHOOK';
export interface RunsOn {
docker?: RunsOn.Docker;
diff --git a/src/version.ts b/src/version.ts
index 23f967c..5c16194 100644
--- a/src/version.ts
+++ b/src/version.ts
@@ -1 +1 @@
-export const VERSION = '0.8.0'; // x-release-please-version
+export const VERSION = '0.9.0'; // x-release-please-version
diff --git a/tests/api-resources/groups/memberships.test.ts b/tests/api-resources/groups/memberships.test.ts
index 5a8f3cf..e28a932 100644
--- a/tests/api-resources/groups/memberships.test.ts
+++ b/tests/api-resources/groups/memberships.test.ts
@@ -20,6 +20,26 @@ describe('resource memberships', () => {
expect(dataAndResponse.response).toBe(rawResponse);
});
+ // Prism tests are disabled
+ test.skip('retrieve: only required params', async () => {
+ const responsePromise = client.groups.memberships.retrieve({ subject: {} });
+ const rawResponse = await responsePromise.asResponse();
+ expect(rawResponse).toBeInstanceOf(Response);
+ const response = await responsePromise;
+ expect(response).not.toBeInstanceOf(Response);
+ const dataAndResponse = await responsePromise.withResponse();
+ expect(dataAndResponse.data).toBe(response);
+ expect(dataAndResponse.response).toBe(rawResponse);
+ });
+
+ // Prism tests are disabled
+ test.skip('retrieve: required and optional params', async () => {
+ const response = await client.groups.memberships.retrieve({
+ subject: { id: 'f53d2330-3795-4c5d-a1f3-453121af9c60', principal: 'PRINCIPAL_USER' },
+ groupId: 'd2c94c27-3b76-4a42-b88c-95a85e392c68',
+ });
+ });
+
// Prism tests are disabled
test.skip('list', async () => {
const responsePromise = client.groups.memberships.list({});
diff --git a/tests/api-resources/organizations/policies.test.ts b/tests/api-resources/organizations/policies.test.ts
index fbbc3b8..609ca00 100644
--- a/tests/api-resources/organizations/policies.test.ts
+++ b/tests/api-resources/organizations/policies.test.ts
@@ -47,7 +47,12 @@ describe('resource policies', () => {
test.skip('update: required and optional params', async () => {
const response = await client.organizations.policies.update({
organizationId: 'b0e12f6c-4c67-429d-a4a6-d9838b5da047',
- agentPolicy: { commandDenyList: ['string'], mcpDisabled: true, scmToolsDisabled: true },
+ agentPolicy: {
+ commandDenyList: ['string'],
+ mcpDisabled: true,
+ scmToolsAllowedGroupId: 'scmToolsAllowedGroupId',
+ scmToolsDisabled: true,
+ },
allowedEditorIds: ['string'],
allowLocalRunners: true,
defaultEditorId: 'defaultEditorId',
diff --git a/tests/api-resources/prebuilds.test.ts b/tests/api-resources/prebuilds.test.ts
index 4db6cc4..8c9ffe8 100644
--- a/tests/api-resources/prebuilds.test.ts
+++ b/tests/api-resources/prebuilds.test.ts
@@ -27,7 +27,11 @@ describe('resource prebuilds', () => {
test.skip('create: required and optional params', async () => {
const response = await client.prebuilds.create({
projectId: 'b0e12f6c-4c67-429d-a4a6-d9838b5da047',
- spec: { desiredPhase: 'PREBUILD_PHASE_UNSPECIFIED', specVersion: 'specVersion', timeout: '3600s' },
+ spec: {
+ desiredPhase: 'PREBUILD_PHASE_UNSPECIFIED',
+ specVersion: 'specVersion',
+ timeout: '3600s',
+ },
environmentClassId: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
});
});
diff --git a/tests/index.test.ts b/tests/index.test.ts
index b0c11e4..6acc8cc 100644
--- a/tests/index.test.ts
+++ b/tests/index.test.ts
@@ -87,7 +87,11 @@ describe('instantiate client', () => {
error: jest.fn(),
};
- const client = new Gitpod({ logger: logger, logLevel: 'debug', bearerToken: 'My Bearer Token' });
+ const client = new Gitpod({
+ logger: logger,
+ logLevel: 'debug',
+ bearerToken: 'My Bearer Token',
+ });
await forceAPIResponseForClient(client);
expect(debugMock).toHaveBeenCalled();
@@ -107,7 +111,11 @@ describe('instantiate client', () => {
error: jest.fn(),
};
- const client = new Gitpod({ logger: logger, logLevel: 'info', bearerToken: 'My Bearer Token' });
+ const client = new Gitpod({
+ logger: logger,
+ logLevel: 'info',
+ bearerToken: 'My Bearer Token',
+ });
await forceAPIResponseForClient(client);
expect(debugMock).not.toHaveBeenCalled();
@@ -157,7 +165,11 @@ describe('instantiate client', () => {
};
process.env['GITPOD_LOG'] = 'debug';
- const client = new Gitpod({ logger: logger, logLevel: 'off', bearerToken: 'My Bearer Token' });
+ const client = new Gitpod({
+ logger: logger,
+ logLevel: 'off',
+ bearerToken: 'My Bearer Token',
+ });
await forceAPIResponseForClient(client);
expect(debugMock).not.toHaveBeenCalled();
@@ -173,7 +185,11 @@ describe('instantiate client', () => {
};
process.env['GITPOD_LOG'] = 'not a log level';
- const client = new Gitpod({ logger: logger, logLevel: 'debug', bearerToken: 'My Bearer Token' });
+ const client = new Gitpod({
+ logger: logger,
+ logLevel: 'debug',
+ bearerToken: 'My Bearer Token',
+ });
expect(client.logLevel).toBe('debug');
expect(warnMock).not.toHaveBeenCalled();
});
@@ -549,7 +565,11 @@ describe('retries', () => {
return new Response(JSON.stringify({ a: 1 }), { headers: { 'Content-Type': 'application/json' } });
};
- const client = new Gitpod({ bearerToken: 'My Bearer Token', timeout: 10, fetch: testFetch });
+ const client = new Gitpod({
+ bearerToken: 'My Bearer Token',
+ timeout: 10,
+ fetch: testFetch,
+ });
expect(await client.request({ path: '/foo', method: 'get' })).toEqual({ a: 1 });
expect(count).toEqual(2);
@@ -579,7 +599,11 @@ describe('retries', () => {
return new Response(JSON.stringify({ a: 1 }), { headers: { 'Content-Type': 'application/json' } });
};
- const client = new Gitpod({ bearerToken: 'My Bearer Token', fetch: testFetch, maxRetries: 4 });
+ const client = new Gitpod({
+ bearerToken: 'My Bearer Token',
+ fetch: testFetch,
+ maxRetries: 4,
+ });
expect(await client.request({ path: '/foo', method: 'get' })).toEqual({ a: 1 });
@@ -603,7 +627,11 @@ describe('retries', () => {
capturedRequest = init;
return new Response(JSON.stringify({ a: 1 }), { headers: { 'Content-Type': 'application/json' } });
};
- const client = new Gitpod({ bearerToken: 'My Bearer Token', fetch: testFetch, maxRetries: 4 });
+ const client = new Gitpod({
+ bearerToken: 'My Bearer Token',
+ fetch: testFetch,
+ maxRetries: 4,
+ });
expect(
await client.request({
@@ -665,7 +693,11 @@ describe('retries', () => {
capturedRequest = init;
return new Response(JSON.stringify({ a: 1 }), { headers: { 'Content-Type': 'application/json' } });
};
- const client = new Gitpod({ bearerToken: 'My Bearer Token', fetch: testFetch, maxRetries: 4 });
+ const client = new Gitpod({
+ bearerToken: 'My Bearer Token',
+ fetch: testFetch,
+ maxRetries: 4,
+ });
expect(
await client.request({