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({