Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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'

Expand All @@ -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'

Expand All @@ -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());

Expand All @@ -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'

Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/publish-npm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release-doctor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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: |
Expand Down
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "0.8.0"
".": "0.9.0"
}
8 changes: 4 additions & 4 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -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-d27df409d7979dbb29733500872b84823b37257c1b3a93f7ba2b0d95bd4faac6.yml
openapi_spec_hash: 1c7c624b62b6a216486c8150074d5237
config_hash: d3267594264bfb76d2ee7e881d5f8a5a
19 changes: 19 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,24 @@
# Changelog

## 0.9.0 (2026-01-08)

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))
* **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)
Expand Down
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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);
```
Expand Down
3 changes: 3 additions & 0 deletions api.md
Original file line number Diff line number Diff line change
Expand Up @@ -275,11 +275,13 @@ Types:

- <code><a href="./src/resources/groups/memberships.ts">GroupMembership</a></code>
- <code><a href="./src/resources/groups/memberships.ts">MembershipCreateResponse</a></code>
- <code><a href="./src/resources/groups/memberships.ts">MembershipRetrieveResponse</a></code>
- <code><a href="./src/resources/groups/memberships.ts">MembershipDeleteResponse</a></code>

Methods:

- <code title="post /gitpod.v1.GroupService/CreateMembership">client.groups.memberships.<a href="./src/resources/groups/memberships.ts">create</a>({ ...params }) -> MembershipCreateResponse</code>
- <code title="post /gitpod.v1.GroupService/GetMembership">client.groups.memberships.<a href="./src/resources/groups/memberships.ts">retrieve</a>({ ...params }) -> MembershipRetrieveResponse</code>
- <code title="post /gitpod.v1.GroupService/ListMemberships">client.groups.memberships.<a href="./src/resources/groups/memberships.ts">list</a>({ ...params }) -> GroupMembershipsMembersPage</code>
- <code title="post /gitpod.v1.GroupService/DeleteMembership">client.groups.memberships.<a href="./src/resources/groups/memberships.ts">delete</a>({ ...params }) -> unknown</code>

Expand Down Expand Up @@ -462,6 +464,7 @@ Types:
- <code><a href="./src/resources/projects/projects.ts">ProjectMetadata</a></code>
- <code><a href="./src/resources/projects/projects.ts">ProjectPhase</a></code>
- <code><a href="./src/resources/projects/projects.ts">ProjectPrebuildConfiguration</a></code>
- <code><a href="./src/resources/projects/projects.ts">RecommendedEditors</a></code>
- <code><a href="./src/resources/projects/projects.ts">ProjectCreateResponse</a></code>
- <code><a href="./src/resources/projects/projects.ts">ProjectRetrieveResponse</a></code>
- <code><a href="./src/resources/projects/projects.ts">ProjectUpdateResponse</a></code>
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -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 <[email protected]>",
"types": "dist/index.d.ts",
Expand Down
2 changes: 2 additions & 0 deletions src/client.ts
Original file line number Diff line number Diff line change
Expand Up @@ -315,6 +315,7 @@ import {
ProjectUpdateResponse,
Projects,
ProjectsProjectsPage,
RecommendedEditors,
} from './resources/projects/projects';
import {
GatewayInfo,
Expand Down Expand Up @@ -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,
Expand Down
35 changes: 33 additions & 2 deletions src/resources/agents.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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
*/
Expand All @@ -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;
}
Expand Down Expand Up @@ -1203,6 +1225,8 @@ export interface AgentCreatePromptParams {

isCommand?: boolean;

isSkill?: boolean;

isTemplate?: boolean;

name?: string;
Expand Down Expand Up @@ -1284,6 +1308,8 @@ export namespace AgentListPromptsParams {

isCommand?: boolean;

isSkill?: boolean;

isTemplate?: boolean;
}

Expand Down Expand Up @@ -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
*/
Expand Down
4 changes: 4 additions & 0 deletions src/resources/groups/groups.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ import {
MembershipDeleteParams,
MembershipDeleteResponse,
MembershipListParams,
MembershipRetrieveParams,
MembershipRetrieveResponse,
Memberships,
} from './memberships';
import * as RoleAssignmentsAPI from './role-assignments';
Expand Down Expand Up @@ -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,
};
Expand Down
2 changes: 2 additions & 0 deletions src/resources/groups/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,10 @@ export {
Memberships,
type GroupMembership,
type MembershipCreateResponse,
type MembershipRetrieveResponse,
type MembershipDeleteResponse,
type MembershipCreateParams,
type MembershipRetrieveParams,
type MembershipListParams,
type MembershipDeleteParams,
type GroupMembershipsMembersPage,
Expand Down
60 changes: 60 additions & 0 deletions src/resources/groups/memberships.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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<MembershipRetrieveResponse> {
return this._client.post('/gitpod.v1.GroupService/GetMembership', { body, ...options });
}

/**
* Lists all memberships of a group.
*
Expand Down Expand Up @@ -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
*/
Expand All @@ -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:
Expand Down Expand Up @@ -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,
};
Expand Down
1 change: 1 addition & 0 deletions src/resources/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -198,6 +198,7 @@ export {
type ProjectMetadata,
type ProjectPhase,
type ProjectPrebuildConfiguration,
type RecommendedEditors,
type ProjectCreateResponse,
type ProjectRetrieveResponse,
type ProjectUpdateResponse,
Expand Down
Loading