Skip to content

Commit ec95fea

Browse files
release: 0.8.0 (#71)
* feat(agent): add group-based SCM tools access control * fix: skip usage tests that don't work with Prism * chore: pin GitHub Actions to SHA * codegen metadata * chore(internal): codegen related update * codegen metadata * feat(skills): add organization-level skills support * feat(prebuild): expose snapshot completion percentage in prebuild status * feat(api): add ImageInput to UserInputBlock proto * fix: streaming endpoints should pass through errors correctly * feat(api): add recommended editors configuration to project settings * codegen metadata * feat(db): add webhooks table with trigger reference * release: 0.8.0 --------- Co-authored-by: stainless-app[bot] <142633134+stainless-app[bot]@users.noreply.github.com> Co-authored-by: Jesús Espino <jesus@gitpod.io> Co-authored-by: Jesús Espino <jespinog@gmail.com>
1 parent 7bb82f9 commit ec95fea

22 files changed

Lines changed: 309 additions & 42 deletions

.github/workflows/ci.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@ jobs:
2020
if: github.event_name == 'push' || github.event.pull_request.head.repo.fork
2121

2222
steps:
23-
- uses: actions/checkout@v4
23+
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
2424

2525
- name: Setup go
26-
uses: actions/setup-go@v5
26+
uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5
2727
with:
2828
go-version-file: ./go.mod
2929

@@ -35,10 +35,10 @@ jobs:
3535
runs-on: ${{ github.repository == 'stainless-sdks/gitpod-go' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
3636
if: github.event_name == 'push' || github.event.pull_request.head.repo.fork
3737
steps:
38-
- uses: actions/checkout@v4
38+
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
3939

4040
- name: Setup go
41-
uses: actions/setup-go@v5
41+
uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5
4242
with:
4343
go-version-file: ./go.mod
4444

.release-please-manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
".": "0.7.0"
2+
".": "0.8.0"
33
}

.stats.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
configured_endpoints: 159
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-d62ef4b9187c1f3d36f428abc4b31d8a09ffd36e93d39b8136c60c8f463c838e.yml
3-
openapi_spec_hash: d7f01b6f24e88eb46d744ecd28061f26
4-
config_hash: 26e4a10dfc6ec809322e60d889d15414
1+
configured_endpoints: 160
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-3935e467f9c15925790aada293124db82bb5d6840eeac52d81fbac6a9b0fd154.yml
3+
openapi_spec_hash: b417d7f10ea430216e9b70e4468a3212
4+
config_hash: d3267594264bfb76d2ee7e881d5f8a5a

CHANGELOG.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,30 @@
11
# Changelog
22

3+
## 0.8.0 (2026-01-09)
4+
5+
Full Changelog: [v0.7.0...v0.8.0](https://github.com/gitpod-io/gitpod-sdk-go/compare/v0.7.0...v0.8.0)
6+
7+
### Features
8+
9+
* **agent:** add group-based SCM tools access control ([02a3ac4](https://github.com/gitpod-io/gitpod-sdk-go/commit/02a3ac402e5b07ea0efffaf6a35ea3740b800211))
10+
* **api:** add ImageInput to UserInputBlock proto ([c48d8ec](https://github.com/gitpod-io/gitpod-sdk-go/commit/c48d8ec1113b38bdc7cf11495001b6c29cb112a4))
11+
* **api:** add recommended editors configuration to project settings ([673574f](https://github.com/gitpod-io/gitpod-sdk-go/commit/673574ffc184dc7b7f5e66599e173899d9dd4e4e))
12+
* **db:** add webhooks table with trigger reference ([41d8762](https://github.com/gitpod-io/gitpod-sdk-go/commit/41d8762b09efce9967748d6c4e57308d8ee2dc7c))
13+
* **prebuild:** expose snapshot completion percentage in prebuild status ([5e6837c](https://github.com/gitpod-io/gitpod-sdk-go/commit/5e6837cb70420eeba8a19f2b10f965e6c4d4478f))
14+
* **skills:** add organization-level skills support ([dbd94be](https://github.com/gitpod-io/gitpod-sdk-go/commit/dbd94bebb9f959939d0bb2b882181316b771d0b9))
15+
16+
17+
### Bug Fixes
18+
19+
* skip usage tests that don't work with Prism ([2e9de50](https://github.com/gitpod-io/gitpod-sdk-go/commit/2e9de50431b0d2ab64db8b7bbba3c83aedc7d74b))
20+
* streaming endpoints should pass through errors correctly ([0897659](https://github.com/gitpod-io/gitpod-sdk-go/commit/08976594ce2bdb431fc4a662ec0fa21d6989a8c3))
21+
22+
23+
### Chores
24+
25+
* **internal:** codegen related update ([7118d8d](https://github.com/gitpod-io/gitpod-sdk-go/commit/7118d8d561c9b7bacfa89e78e7fa1731c8c9f37b))
26+
* pin GitHub Actions to SHA ([af1d69c](https://github.com/gitpod-io/gitpod-sdk-go/commit/af1d69c695071e89c7ede111953b510914b6dff0))
27+
328
## 0.7.0 (2025-12-15)
429

530
Full Changelog: [v0.6.1...v0.7.0](https://github.com/gitpod-io/gitpod-sdk-go/compare/v0.6.1...v0.7.0)

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@
186186
same "printed page" as the copyright notice for easier
187187
identification within third-party archives.
188188

189-
Copyright 2025 Gitpod
189+
Copyright 2026 Gitpod
190190

191191
Licensed under the Apache License, Version 2.0 (the "License");
192192
you may not use this file except in compliance with the License.

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ Or to pin the version:
2424
<!-- x-release-please-start-version -->
2525

2626
```sh
27-
go get -u 'github.com/gitpod-io/gitpod-sdk-go@v0.7.0'
27+
go get -u 'github.com/gitpod-io/gitpod-sdk-go@v0.8.0'
2828
```
2929

3030
<!-- x-release-please-end -->

agent.go

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1385,6 +1385,8 @@ type PromptSpec struct {
13851385
Command string `json:"command"`
13861386
// is_command indicates if this prompt is a command
13871387
IsCommand bool `json:"isCommand"`
1388+
// is_skill indicates if this prompt is a skill (workflow instructions for agents)
1389+
IsSkill bool `json:"isSkill"`
13881390
// is_template indicates if this prompt is a template
13891391
IsTemplate bool `json:"isTemplate"`
13901392
// prompt is the content of the prompt
@@ -1396,6 +1398,7 @@ type PromptSpec struct {
13961398
type promptSpecJSON struct {
13971399
Command apijson.Field
13981400
IsCommand apijson.Field
1401+
IsSkill apijson.Field
13991402
IsTemplate apijson.Field
14001403
Prompt apijson.Field
14011404
raw string
@@ -1411,16 +1414,30 @@ func (r promptSpecJSON) RawJSON() string {
14111414
}
14121415

14131416
type UserInputBlockParam struct {
1414-
Text param.Field[UserInputBlockTextParam] `json:"text,required"`
1415-
ID param.Field[string] `json:"id"`
1417+
ID param.Field[string] `json:"id"`
14161418
// Timestamp when this block was created. Used for debugging and support bundles.
14171419
CreatedAt param.Field[time.Time] `json:"createdAt" format:"date-time"`
1420+
// ImageInput allows sending images to the agent. Media type is inferred from magic
1421+
// bytes by the backend.
1422+
Image param.Field[UserInputBlockImageParam] `json:"image"`
1423+
Text param.Field[UserInputBlockTextParam] `json:"text"`
14181424
}
14191425

14201426
func (r UserInputBlockParam) MarshalJSON() (data []byte, err error) {
14211427
return apijson.MarshalRoot(r)
14221428
}
14231429

1430+
// ImageInput allows sending images to the agent. Media type is inferred from magic
1431+
// bytes by the backend.
1432+
type UserInputBlockImageParam struct {
1433+
// Raw image data (max 4MB). Supported formats: PNG, JPEG, WebP.
1434+
Data param.Field[string] `json:"data" format:"byte"`
1435+
}
1436+
1437+
func (r UserInputBlockImageParam) MarshalJSON() (data []byte, err error) {
1438+
return apijson.MarshalRoot(r)
1439+
}
1440+
14241441
type UserInputBlockTextParam struct {
14251442
Content param.Field[string] `json:"content"`
14261443
}
@@ -1575,6 +1592,7 @@ type AgentNewPromptParams struct {
15751592
Command param.Field[string] `json:"command"`
15761593
Description param.Field[string] `json:"description"`
15771594
IsCommand param.Field[bool] `json:"isCommand"`
1595+
IsSkill param.Field[bool] `json:"isSkill"`
15781596
IsTemplate param.Field[bool] `json:"isTemplate"`
15791597
Name param.Field[string] `json:"name"`
15801598
Prompt param.Field[string] `json:"prompt"`
@@ -1704,6 +1722,7 @@ type AgentListPromptsParamsFilter struct {
17041722
Command param.Field[string] `json:"command"`
17051723
CommandPrefix param.Field[string] `json:"commandPrefix"`
17061724
IsCommand param.Field[bool] `json:"isCommand"`
1725+
IsSkill param.Field[bool] `json:"isSkill"`
17071726
IsTemplate param.Field[bool] `json:"isTemplate"`
17081727
}
17091728

@@ -1804,6 +1823,8 @@ type AgentUpdatePromptParamsSpec struct {
18041823
Command param.Field[string] `json:"command"`
18051824
// Whether this prompt is a command
18061825
IsCommand param.Field[bool] `json:"isCommand"`
1826+
// Whether this prompt is a skill
1827+
IsSkill param.Field[bool] `json:"isSkill"`
18071828
// Whether this prompt is a template
18081829
IsTemplate param.Field[bool] `json:"isTemplate"`
18091830
// The prompt content

agent_test.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ func TestAgentNewPromptWithOptionalParams(t *testing.T) {
5656
Command: gitpod.F("command"),
5757
Description: gitpod.F("x"),
5858
IsCommand: gitpod.F(true),
59+
IsSkill: gitpod.F(true),
5960
IsTemplate: gitpod.F(true),
6061
Name: gitpod.F("x"),
6162
Prompt: gitpod.F("x"),
@@ -177,6 +178,7 @@ func TestAgentListPromptsWithOptionalParams(t *testing.T) {
177178
Command: gitpod.F("command"),
178179
CommandPrefix: gitpod.F("commandPrefix"),
179180
IsCommand: gitpod.F(true),
181+
IsSkill: gitpod.F(true),
180182
IsTemplate: gitpod.F(true),
181183
}),
182184
Pagination: gitpod.F(gitpod.AgentListPromptsParamsPagination{
@@ -259,11 +261,14 @@ func TestAgentSendToExecutionWithOptionalParams(t *testing.T) {
259261
_, err := client.Agents.SendToExecution(context.TODO(), gitpod.AgentSendToExecutionParams{
260262
AgentExecutionID: gitpod.F("6fa1a3c7-fbb7-49d1-ba56-1890dc7c4c35"),
261263
UserInput: gitpod.F(gitpod.UserInputBlockParam{
264+
ID: gitpod.F("id"),
265+
CreatedAt: gitpod.F(time.Now()),
266+
Image: gitpod.F(gitpod.UserInputBlockImageParam{
267+
Data: gitpod.F("U3RhaW5sZXNzIHJvY2tz"),
268+
}),
262269
Text: gitpod.F(gitpod.UserInputBlockTextParam{
263270
Content: gitpod.F("Generate a report based on the latest logs."),
264271
}),
265-
ID: gitpod.F("id"),
266-
CreatedAt: gitpod.F(time.Now()),
267272
}),
268273
})
269274
if err != nil {
@@ -372,6 +377,7 @@ func TestAgentUpdatePromptWithOptionalParams(t *testing.T) {
372377
Spec: gitpod.F(gitpod.AgentUpdatePromptParamsSpec{
373378
Command: gitpod.F("command"),
374379
IsCommand: gitpod.F(true),
380+
IsSkill: gitpod.F(true),
375381
IsTemplate: gitpod.F(true),
376382
Prompt: gitpod.F("prompt"),
377383
}),

aliases.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,9 @@ const ResourceTypeRoleAssignmentChanged = shared.ResourceTypeRoleAssignmentChang
272272
// This is an alias to an internal value.
273273
const ResourceTypeGroupMembershipChanged = shared.ResourceTypeGroupMembershipChanged
274274

275+
// This is an alias to an internal value.
276+
const ResourceTypeWebhook = shared.ResourceTypeWebhook
277+
275278
// This is an alias to an internal type.
276279
type RunsOn = shared.RunsOn
277280

api.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -316,11 +316,13 @@ Response Types:
316316

317317
- <a href="https://pkg.go.dev/github.com/gitpod-io/gitpod-sdk-go">gitpod</a>.<a href="https://pkg.go.dev/github.com/gitpod-io/gitpod-sdk-go#GroupMembership">GroupMembership</a>
318318
- <a href="https://pkg.go.dev/github.com/gitpod-io/gitpod-sdk-go">gitpod</a>.<a href="https://pkg.go.dev/github.com/gitpod-io/gitpod-sdk-go#GroupMembershipNewResponse">GroupMembershipNewResponse</a>
319+
- <a href="https://pkg.go.dev/github.com/gitpod-io/gitpod-sdk-go">gitpod</a>.<a href="https://pkg.go.dev/github.com/gitpod-io/gitpod-sdk-go#GroupMembershipGetResponse">GroupMembershipGetResponse</a>
319320
- <a href="https://pkg.go.dev/github.com/gitpod-io/gitpod-sdk-go">gitpod</a>.<a href="https://pkg.go.dev/github.com/gitpod-io/gitpod-sdk-go#GroupMembershipDeleteResponse">GroupMembershipDeleteResponse</a>
320321

321322
Methods:
322323

323324
- <code title="post /gitpod.v1.GroupService/CreateMembership">client.Groups.Memberships.<a href="https://pkg.go.dev/github.com/gitpod-io/gitpod-sdk-go#GroupMembershipService.New">New</a>(ctx <a href="https://pkg.go.dev/context">context</a>.<a href="https://pkg.go.dev/context#Context">Context</a>, body <a href="https://pkg.go.dev/github.com/gitpod-io/gitpod-sdk-go">gitpod</a>.<a href="https://pkg.go.dev/github.com/gitpod-io/gitpod-sdk-go#GroupMembershipNewParams">GroupMembershipNewParams</a>) (<a href="https://pkg.go.dev/github.com/gitpod-io/gitpod-sdk-go">gitpod</a>.<a href="https://pkg.go.dev/github.com/gitpod-io/gitpod-sdk-go#GroupMembershipNewResponse">GroupMembershipNewResponse</a>, <a href="https://pkg.go.dev/builtin#error">error</a>)</code>
325+
- <code title="post /gitpod.v1.GroupService/GetMembership">client.Groups.Memberships.<a href="https://pkg.go.dev/github.com/gitpod-io/gitpod-sdk-go#GroupMembershipService.Get">Get</a>(ctx <a href="https://pkg.go.dev/context">context</a>.<a href="https://pkg.go.dev/context#Context">Context</a>, body <a href="https://pkg.go.dev/github.com/gitpod-io/gitpod-sdk-go">gitpod</a>.<a href="https://pkg.go.dev/github.com/gitpod-io/gitpod-sdk-go#GroupMembershipGetParams">GroupMembershipGetParams</a>) (<a href="https://pkg.go.dev/github.com/gitpod-io/gitpod-sdk-go">gitpod</a>.<a href="https://pkg.go.dev/github.com/gitpod-io/gitpod-sdk-go#GroupMembershipGetResponse">GroupMembershipGetResponse</a>, <a href="https://pkg.go.dev/builtin#error">error</a>)</code>
324326
- <code title="post /gitpod.v1.GroupService/ListMemberships">client.Groups.Memberships.<a href="https://pkg.go.dev/github.com/gitpod-io/gitpod-sdk-go#GroupMembershipService.List">List</a>(ctx <a href="https://pkg.go.dev/context">context</a>.<a href="https://pkg.go.dev/context#Context">Context</a>, params <a href="https://pkg.go.dev/github.com/gitpod-io/gitpod-sdk-go">gitpod</a>.<a href="https://pkg.go.dev/github.com/gitpod-io/gitpod-sdk-go#GroupMembershipListParams">GroupMembershipListParams</a>) (<a href="https://pkg.go.dev/github.com/gitpod-io/gitpod-sdk-go/packages/pagination">pagination</a>.<a href="https://pkg.go.dev/github.com/gitpod-io/gitpod-sdk-go/packages/pagination#MembersPage">MembersPage</a>[<a href="https://pkg.go.dev/github.com/gitpod-io/gitpod-sdk-go">gitpod</a>.<a href="https://pkg.go.dev/github.com/gitpod-io/gitpod-sdk-go#GroupMembership">GroupMembership</a>], <a href="https://pkg.go.dev/builtin#error">error</a>)</code>
325327
- <code title="post /gitpod.v1.GroupService/DeleteMembership">client.Groups.Memberships.<a href="https://pkg.go.dev/github.com/gitpod-io/gitpod-sdk-go#GroupMembershipService.Delete">Delete</a>(ctx <a href="https://pkg.go.dev/context">context</a>.<a href="https://pkg.go.dev/context#Context">Context</a>, body <a href="https://pkg.go.dev/github.com/gitpod-io/gitpod-sdk-go">gitpod</a>.<a href="https://pkg.go.dev/github.com/gitpod-io/gitpod-sdk-go#GroupMembershipDeleteParams">GroupMembershipDeleteParams</a>) (<a href="https://pkg.go.dev/github.com/gitpod-io/gitpod-sdk-go">gitpod</a>.<a href="https://pkg.go.dev/github.com/gitpod-io/gitpod-sdk-go#GroupMembershipDeleteResponse">GroupMembershipDeleteResponse</a>, <a href="https://pkg.go.dev/builtin#error">error</a>)</code>
326328

@@ -524,6 +526,7 @@ Params Types:
524526

525527
- <a href="https://pkg.go.dev/github.com/gitpod-io/gitpod-sdk-go">gitpod</a>.<a href="https://pkg.go.dev/github.com/gitpod-io/gitpod-sdk-go#EnvironmentInitializerParam">EnvironmentInitializerParam</a>
526528
- <a href="https://pkg.go.dev/github.com/gitpod-io/gitpod-sdk-go">gitpod</a>.<a href="https://pkg.go.dev/github.com/gitpod-io/gitpod-sdk-go#ProjectPrebuildConfigurationParam">ProjectPrebuildConfigurationParam</a>
529+
- <a href="https://pkg.go.dev/github.com/gitpod-io/gitpod-sdk-go">gitpod</a>.<a href="https://pkg.go.dev/github.com/gitpod-io/gitpod-sdk-go#RecommendedEditorsParam">RecommendedEditorsParam</a>
527530

528531
Response Types:
529532

@@ -532,6 +535,7 @@ Response Types:
532535
- <a href="https://pkg.go.dev/github.com/gitpod-io/gitpod-sdk-go">gitpod</a>.<a href="https://pkg.go.dev/github.com/gitpod-io/gitpod-sdk-go#ProjectMetadata">ProjectMetadata</a>
533536
- <a href="https://pkg.go.dev/github.com/gitpod-io/gitpod-sdk-go">gitpod</a>.<a href="https://pkg.go.dev/github.com/gitpod-io/gitpod-sdk-go#ProjectPhase">ProjectPhase</a>
534537
- <a href="https://pkg.go.dev/github.com/gitpod-io/gitpod-sdk-go">gitpod</a>.<a href="https://pkg.go.dev/github.com/gitpod-io/gitpod-sdk-go#ProjectPrebuildConfiguration">ProjectPrebuildConfiguration</a>
538+
- <a href="https://pkg.go.dev/github.com/gitpod-io/gitpod-sdk-go">gitpod</a>.<a href="https://pkg.go.dev/github.com/gitpod-io/gitpod-sdk-go#RecommendedEditors">RecommendedEditors</a>
535539
- <a href="https://pkg.go.dev/github.com/gitpod-io/gitpod-sdk-go">gitpod</a>.<a href="https://pkg.go.dev/github.com/gitpod-io/gitpod-sdk-go#ProjectNewResponse">ProjectNewResponse</a>
536540
- <a href="https://pkg.go.dev/github.com/gitpod-io/gitpod-sdk-go">gitpod</a>.<a href="https://pkg.go.dev/github.com/gitpod-io/gitpod-sdk-go#ProjectGetResponse">ProjectGetResponse</a>
537541
- <a href="https://pkg.go.dev/github.com/gitpod-io/gitpod-sdk-go">gitpod</a>.<a href="https://pkg.go.dev/github.com/gitpod-io/gitpod-sdk-go#ProjectUpdateResponse">ProjectUpdateResponse</a>

0 commit comments

Comments
 (0)