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
32 changes: 16 additions & 16 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@ name: CI
on:
push:
branches-ignore:
- "generated"
- "codegen/**"
- "integrated/**"
- "stl-preview-head/**"
- "stl-preview-base/**"
- 'generated'
- 'codegen/**'
- 'integrated/**'
- 'stl-preview-head/**'
- 'stl-preview-base/**'
pull_request:
branches-ignore:
- "stl-preview-head/**"
- "stl-preview-base/**"
- 'stl-preview-head/**'
- 'stl-preview-base/**'

jobs:
lint:
Expand All @@ -19,15 +19,15 @@ jobs:
runs-on: ${{ github.repository == 'stainless-sdks/gitpod-python' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
if: github.event_name == 'push' || github.event.pull_request.head.repo.fork
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4

- name: Install Rye
run: |
curl -sSf https://rye.astral.sh/get | bash
echo "$HOME/.rye/shims" >> $GITHUB_PATH
env:
RYE_VERSION: "0.44.0"
RYE_INSTALL_OPTION: "--yes"
RYE_VERSION: '0.44.0'
RYE_INSTALL_OPTION: '--yes'

- name: Install dependencies
run: rye sync --all-features
Expand All @@ -44,15 +44,15 @@ jobs:
id-token: write
runs-on: ${{ github.repository == 'stainless-sdks/gitpod-python' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4

- name: Install Rye
run: |
curl -sSf https://rye.astral.sh/get | bash
echo "$HOME/.rye/shims" >> $GITHUB_PATH
env:
RYE_VERSION: "0.44.0"
RYE_INSTALL_OPTION: "--yes"
RYE_VERSION: '0.44.0'
RYE_INSTALL_OPTION: '--yes'

- name: Install dependencies
run: rye sync --all-features
Expand Down Expand Up @@ -81,15 +81,15 @@ jobs:
runs-on: ${{ github.repository == 'stainless-sdks/gitpod-python' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
if: github.event_name == 'push' || github.event.pull_request.head.repo.fork
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4

- name: Install Rye
run: |
curl -sSf https://rye.astral.sh/get | bash
echo "$HOME/.rye/shims" >> $GITHUB_PATH
env:
RYE_VERSION: "0.44.0"
RYE_INSTALL_OPTION: "--yes"
RYE_VERSION: '0.44.0'
RYE_INSTALL_OPTION: '--yes'

- name: Bootstrap
run: ./scripts/bootstrap
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/publish-pypi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,19 +17,19 @@ jobs:
id-token: write

steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4

- name: Install Rye
uses: eifinger/setup-rye@c694239a43768373e87d0103d7f547027a23f3c8 # v4
with:
version: '0.44.0'

- name: Sync dependencies
run: rye sync

- name: Build package
run: rye build --clean

- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e # release/v1
with:
Expand Down
8 changes: 4 additions & 4 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
configured_endpoints: 170
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-2423c089f280cdf34a987d40531692097a69f4aa971c6adf9aeec4fd7984cec2.yml
openapi_spec_hash: 24037c3ab9ceca689150d07ecec7aa80
config_hash: d726afb2a92132197e4eae04303e8041
configured_endpoints: 172
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-4a034f8dd3f618814ce17b264d78b40176f613d34f806f8add5425792e36c34d.yml
openapi_spec_hash: 5f1f4678b4956c4afa3ffc8539443ef7
config_hash: dad4ee53c894c682895d6d045c4c2105
28 changes: 4 additions & 24 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,34 +1,14 @@
# Changelog

## 0.7.0 (2026-01-21)
## 0.7.0 (2026-01-23)

Full Changelog: [v0.6.0...v0.7.0](https://github.com/gitpod-io/gitpod-sdk-python/compare/v0.6.0...v0.7.0)

### Features

* [api] Introduce RPCs to share resources with individual users ([df1cf39](https://github.com/gitpod-io/gitpod-sdk-python/commit/df1cf39a9c1b387c9e9313bfec68a97759762e0b))
* [api] sorting for `ListMembers` ([838e74c](https://github.com/gitpod-io/gitpod-sdk-python/commit/838e74c4da4b57590a6dd0af19bdd20faf7d2805))
* [backend] Adding direct_share field to groups ([78c0bdd](https://github.com/gitpod-io/gitpod-sdk-python/commit/78c0bddc838e217007729d723283f9e9cd04d9a2))
* [backend] Introduce role and member status filtering for `ListMembers` ([34fb372](https://github.com/gitpod-io/gitpod-sdk-python/commit/34fb372aef655ae57fc99d5b37e152c75d831af5))
* **agent:** add spec mode for planning before interactive implementation ([de6bee5](https://github.com/gitpod-io/gitpod-sdk-python/commit/de6bee5d7d337456f1a19de0659cd6957c7c1a9b))
* API for SCIM configuration management ([70becd4](https://github.com/gitpod-io/gitpod-sdk-python/commit/70becd4cd142fac4fc839018d52fb4cb93e17834))
* **api:** add CheckRepositoryAccess API for repository access validation ([b34ed1b](https://github.com/gitpod-io/gitpod-sdk-python/commit/b34ed1b8ecd39343ed02c5f376e9495775912140))
* **api:** add draft and state fields to PullRequest proto ([e0023da](https://github.com/gitpod-io/gitpod-sdk-python/commit/e0023da5a30344c2fc87ebce55e26101c4ad40b5))
* **api:** add inputs array to UserInputBlock proto ([8262825](https://github.com/gitpod-io/gitpod-sdk-python/commit/8262825c21be1de663b9a3aad29e9f9fe1cf219d))
* **api:** add ListSCMOrganizations endpoint ([9c8f7ea](https://github.com/gitpod-io/gitpod-sdk-python/commit/9c8f7eadd38bc0326ecf1be48706003fa258257c))
* **api:** add search, creator, and status filters to ListWorkflows ([ddd18c0](https://github.com/gitpod-io/gitpod-sdk-python/commit/ddd18c09beb0f24e076818783d2dae09ca9b9f8b))
* **api:** improve SearchRepositories pagination with next_page and total_count ([2847a10](https://github.com/gitpod-io/gitpod-sdk-python/commit/2847a10e6cbb09be83b012e8a6fcabd32f49e019))
* **automations:** add before_snapshot trigger type ([9cd272f](https://github.com/gitpod-io/gitpod-sdk-python/commit/9cd272f98f2215b834a841ca34c52ce04fd2898e))
* **client:** add support for binary request streaming ([be5a823](https://github.com/gitpod-io/gitpod-sdk-python/commit/be5a8235224ff1ecf25464e716191fbf3c7c7fb1))
* **dashboard:** show tier badge in org selector ([89fd8fe](https://github.com/gitpod-io/gitpod-sdk-python/commit/89fd8fef7f9de200e4aecd563c965d4209427052))
* Define SCIMConfiguration database schema ([03bd185](https://github.com/gitpod-io/gitpod-sdk-python/commit/03bd1858ec2aefbd4c20a71c206135c441afa99c))
* move agent mode from Spec to Status, add AgentModeChange signals ([a55115b](https://github.com/gitpod-io/gitpod-sdk-python/commit/a55115ba054078dcb689222cc150b2b1f56077bf))
* **secrets:** add ServiceAccountSecret entity with full support ([30e17c5](https://github.com/gitpod-io/gitpod-sdk-python/commit/30e17c55b991286527f64c8857b04dd9b5a2ba7b))


### Chores

* **internal:** update `actions/checkout` version ([53dcf30](https://github.com/gitpod-io/gitpod-sdk-python/commit/53dcf30cb41a6cbf30ce510b0b2d46cdd5895008))
* **api:** add announcement banner fields to organization proto ([74b9fa3](https://github.com/gitpod-io/gitpod-sdk-python/commit/74b9fa326458881e9fe5de9c9f55494a6231412d))
* **api:** add filters to ListPrebuilds for inventory page ([b5d43cc](https://github.com/gitpod-io/gitpod-sdk-python/commit/b5d43cc6183fcc67cea81ae9d78c4cf6e7f2db4d))
* **api:** implement GetAnnouncementBanner and UpdateAnnouncementBanner handlers ([2cf3454](https://github.com/gitpod-io/gitpod-sdk-python/commit/2cf3454764ec630da000fd38b1b4d1ef74ed5308))

## 0.6.0 (2026-01-09)

Expand Down
2 changes: 1 addition & 1 deletion src/gitpod/types/agent_mode.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@
__all__ = ["AgentMode"]

AgentMode: TypeAlias = Literal[
"AGENT_MODE_UNSPECIFIED", "AGENT_MODE_EXECUTION", "AGENT_MODE_PLANNING", "AGENT_MODE_RALPH", "AGENT_MODE_SPEC"
"AGENT_MODE_UNSPECIFIED", "AGENT_MODE_EXECUTION", "AGENT_MODE_PLANNING", "AGENT_MODE_RALPH"
]
47 changes: 7 additions & 40 deletions src/gitpod/types/user_input_block_param.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,61 +2,30 @@

from __future__ import annotations

from typing import Union, Iterable
from typing import Union
from datetime import datetime
from typing_extensions import Literal, Annotated, TypedDict
from typing_extensions import Annotated, TypedDict

from .._types import Base64FileInput
from .._utils import PropertyInfo
from .._models import set_pydantic_config

__all__ = ["UserInputBlockParam", "Image", "Input", "InputImage", "InputText", "Text"]
__all__ = ["UserInputBlockParam", "Image", "Text"]


class Image(TypedDict, total=False):
"""
ImageInput allows sending images to the agent.
Client must provide the MIME type; backend validates against magic bytes.
Media type is inferred from magic bytes by the backend.
"""

data: Annotated[Union[str, Base64FileInput], PropertyInfo(format="base64")]
"""Raw image data (max 4MB). Supported formats: PNG, JPEG."""

mime_type: Annotated[Literal["image/png", "image/jpeg"], PropertyInfo(alias="mimeType")]
"""Raw image data (max 4MB). Supported formats: PNG, JPEG, WebP."""


set_pydantic_config(Image, {"arbitrary_types_allowed": True})


class InputImage(TypedDict, total=False):
"""
ImageInput allows sending images to the agent.
Client must provide the MIME type; backend validates against magic bytes.
"""

data: Annotated[Union[str, Base64FileInput], PropertyInfo(format="base64")]
"""Raw image data (max 4MB). Supported formats: PNG, JPEG."""

mime_type: Annotated[Literal["image/png", "image/jpeg"], PropertyInfo(alias="mimeType")]


set_pydantic_config(InputImage, {"arbitrary_types_allowed": True})


class InputText(TypedDict, total=False):
content: str


class Input(TypedDict, total=False):
image: InputImage
"""
ImageInput allows sending images to the agent. Client must provide the MIME
type; backend validates against magic bytes.
"""

text: InputText


class Text(TypedDict, total=False):
content: str

Expand All @@ -69,10 +38,8 @@ class UserInputBlockParam(TypedDict, total=False):

image: Image
"""
ImageInput allows sending images to the agent. Client must provide the MIME
type; backend validates against magic bytes.
ImageInput allows sending images to the agent. Media type is inferred from magic
bytes by the backend.
"""

inputs: Iterable[Input]

text: Text
28 changes: 2 additions & 26 deletions tests/api_resources/test_agents.py
Original file line number Diff line number Diff line change
Expand Up @@ -361,19 +361,7 @@ def test_method_send_to_execution_with_all_params(self, client: Gitpod) -> None:
user_input={
"id": "id",
"created_at": parse_datetime("2019-12-27T18:11:19.117Z"),
"image": {
"data": "U3RhaW5sZXNzIHJvY2tz",
"mime_type": "image/png",
},
"inputs": [
{
"image": {
"data": "U3RhaW5sZXNzIHJvY2tz",
"mime_type": "image/png",
},
"text": {"content": "x"},
}
],
"image": {"data": "U3RhaW5sZXNzIHJvY2tz"},
"text": {"content": "Generate a report based on the latest logs."},
},
)
Expand Down Expand Up @@ -886,19 +874,7 @@ async def test_method_send_to_execution_with_all_params(self, async_client: Asyn
user_input={
"id": "id",
"created_at": parse_datetime("2019-12-27T18:11:19.117Z"),
"image": {
"data": "U3RhaW5sZXNzIHJvY2tz",
"mime_type": "image/png",
},
"inputs": [
{
"image": {
"data": "U3RhaW5sZXNzIHJvY2tz",
"mime_type": "image/png",
},
"text": {"content": "x"},
}
],
"image": {"data": "U3RhaW5sZXNzIHJvY2tz"},
"text": {"content": "Generate a report based on the latest logs."},
},
)
Expand Down