Skip to content

Commit 2093f5f

Browse files
Merge branch 'main' into v5
2 parents cd42301 + a6116ca commit 2093f5f

17 files changed

Lines changed: 218 additions & 27 deletions

File tree

.github/workflows/_build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ jobs:
104104

105105
- name: Build Docker image
106106
id: build
107-
uses: docker/build-push-action@v6
107+
uses: docker/build-push-action@v7
108108
with:
109109
context: .
110110
build-args: |

.github/workflows/pr-gate.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,6 @@ jobs:
1919

2020
- name: Build Docker image
2121
id: build
22-
uses: docker/build-push-action@v6
22+
uses: docker/build-push-action@v7
2323
with:
2424
context: .

CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1111
- Redesigned the app layout with a new collapsible sidebar navigation, replacing the previous top navigation bar. [#1097](https://github.com/sourcebot-dev/sourcebot/pull/1097)
1212
- Expired offline license keys no longer crash the process. An expired key now degrades to the unlicensed state. [#1109](https://github.com/sourcebot-dev/sourcebot/pull/1109)
1313

14+
## [4.17.1] - 2026-05-04
15+
16+
### Added
17+
- Added three new audit actions covering the full org membership lifecycle: `org.member_added`, `org.member_removed`, and `org.member_left`. [#1165](https://github.com/sourcebot-dev/sourcebot/pull/1165)
18+
- Added per-user JWT session versioning so admin-driven member removals (and voluntary leaves) invalidate the removed user's active JWT cookies, personal API keys, and OAuth tokens atomically on their next request. [#1168](https://github.com/sourcebot-dev/sourcebot/pull/1168)
19+
20+
### Fixed
21+
- Fixed Azure DevOps connection schema to allow spaces in project and repository names. [#1170](https://github.com/sourcebot-dev/sourcebot/pull/1170)
22+
1423
## [4.17.0] - 2026-04-30
1524

1625
### Added

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<div align="center">
99
<div>
1010
<h3>
11-
<a href="https://docs.sourcebot.dev/self-hosting/overview">
11+
<a href="https://docs.sourcebot.dev">
1212
<strong>Self Host</strong>
1313
</a> ·
1414
<a href="https://app.sourcebot.dev">

docs/api-reference/sourcebot-public.openapi.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"openapi": "3.0.3",
33
"info": {
44
"title": "Sourcebot Public API",
5-
"version": "v4.17.0",
5+
"version": "v4.17.1",
66
"description": "OpenAPI description for the public Sourcebot REST endpoints used for search, repository listing, and file browsing. Authentication is instance-dependent: API keys are the standard integration mechanism, OAuth bearer tokens are EE-only, and some instances may allow anonymous access."
77
},
88
"tags": [

docs/docs/configuration/audit-logs.mdx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,9 @@ curl --request GET '$SOURCEBOT_URL/api/ee/audit' \
145145
| `user.signed_out` | `user` | `user` |
146146
| `org.member_promoted_to_owner` | `user` | `user` |
147147
| `org.owner_demoted_to_member` | `user` | `user` |
148+
| `org.member_added` | `user` | `user` |
149+
| `org.member_removed` | `user` | `user` |
150+
| `org.member_left` | `user` | `user` |
148151

149152

150153
## Response schema

docs/snippets/schemas/v3/azuredevops.schema.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@
8282
"type": "array",
8383
"items": {
8484
"type": "string",
85-
"pattern": "^[\\w.-]+\\/[\\w.-]+$"
85+
"pattern": "^[\\w.-]+\\/[\\w. -]+$"
8686
},
8787
"default": [],
8888
"examples": [
@@ -97,7 +97,7 @@
9797
"type": "array",
9898
"items": {
9999
"type": "string",
100-
"pattern": "^[\\w.-]+\\/[\\w.-]+\\/[\\w.-]+$"
100+
"pattern": "^[\\w.-]+\\/[\\w. -]+\\/[\\w. -]+$"
101101
},
102102
"default": [],
103103
"examples": [
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
-- AlterTable
2+
ALTER TABLE "User" ADD COLUMN "sessionVersion" INTEGER NOT NULL DEFAULT 0;

packages/db/prisma/schema.prisma

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -403,6 +403,11 @@ model User {
403403
oauthAuthCodes OAuthAuthorizationCode[]
404404
oauthRefreshTokens OAuthRefreshToken[]
405405
406+
/// Per-user JWT version. Incremented to invalidate every active session for
407+
/// this user on their next request. Compared against the `sessionVersion`
408+
/// claim baked into the JWT cookie at mint time.
409+
sessionVersion Int @default(0)
410+
406411
createdAt DateTime @default(now())
407412
updatedAt DateTime @updatedAt
408413

packages/schemas/src/v3/azuredevops.schema.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ const schema = {
8181
"type": "array",
8282
"items": {
8383
"type": "string",
84-
"pattern": "^[\\w.-]+\\/[\\w.-]+$"
84+
"pattern": "^[\\w.-]+\\/[\\w. -]+$"
8585
},
8686
"default": [],
8787
"examples": [
@@ -96,7 +96,7 @@ const schema = {
9696
"type": "array",
9797
"items": {
9898
"type": "string",
99-
"pattern": "^[\\w.-]+\\/[\\w.-]+\\/[\\w.-]+$"
99+
"pattern": "^[\\w.-]+\\/[\\w. -]+\\/[\\w. -]+$"
100100
},
101101
"default": [],
102102
"examples": [

0 commit comments

Comments
 (0)