Skip to content

Commit e54c4e6

Browse files
authored
Merge branch 'main' into feature/gerrit-authentication
2 parents 66a59b2 + 77593a9 commit e54c4e6

File tree

80 files changed

+3243
-1549
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

80 files changed

+3243
-1549
lines changed

CHANGELOG.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,36 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [4.6.1] - 2025-07-29
11+
12+
### Added
13+
- Add search context to ask sourcebot context selector. [#397](https://github.com/sourcebot-dev/sourcebot/pull/397)
14+
- Add ability to include/exclude connection in search context. [#399](https://github.com/sourcebot-dev/sourcebot/pull/399)
15+
- Search context refactor to search scope and demo card UI changes. [#405](https://github.com/sourcebot-dev/sourcebot/pull/405)
16+
- Add GitHub star toast. [#409](https://github.com/sourcebot-dev/sourcebot/pull/409)
17+
- Added a onboarding modal when first visiting the homepage when `ask` mode is selected. [#408](https://github.com/sourcebot-dev/sourcebot/pull/408)
18+
- [ask sb] Added `searchReposTool` and `listAllReposTool`. [#400](https://github.com/sourcebot-dev/sourcebot/pull/400)
19+
20+
### Fixed
21+
- Fixed multiple writes race condition on config file watcher. [#398](https://github.com/sourcebot-dev/sourcebot/pull/398)
22+
23+
### Changed
24+
- Bumped AI SDK and associated packages version. [#404](https://github.com/sourcebot-dev/sourcebot/pull/404)
25+
- Bumped form-data package version. [#407](https://github.com/sourcebot-dev/sourcebot/pull/407)
26+
- Bumped next version. [#406](https://github.com/sourcebot-dev/sourcebot/pull/406)
27+
- [ask sb] Improved search code tool with filter options. [#400](https://github.com/sourcebot-dev/sourcebot/pull/400)
28+
- [ask sb] Removed search scope constraint. [#400](https://github.com/sourcebot-dev/sourcebot/pull/400)
29+
- Update README with new features and videos. [#410](https://github.com/sourcebot-dev/sourcebot/pull/410)
30+
- [ask sb] Add back search scope requirement and other UI changes. [#411](https://github.com/sourcebot-dev/sourcebot/pull/411)
31+
32+
## [4.6.0] - 2025-07-25
33+
1034
### Added
1135
- Introducing Ask Sourcebot - ask natural langauge about your codebase. Get back comprehensive Markdown responses with inline citations back to the code. Bring your own LLM api key. [#392](https://github.com/sourcebot-dev/sourcebot/pull/392)
1236

37+
### Fixed
38+
- Fixed onboarding infinite loop when GCP IAP Auth is enabled. [#381](https://github.com/sourcebot-dev/sourcebot/pull/381)
39+
1340
## [4.5.3] - 2025-07-20
1441

1542
### Changed

README.md

Lines changed: 29 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
<strong>Self Host</strong>
1313
</a> ·
1414
<a href="https://demo.sourcebot.dev">
15-
<strong>Demo</strong>
15+
<strong>Public Demo</strong>
1616
</a>
1717
</h3>
1818
</div>
@@ -37,34 +37,45 @@
3737
<a href="https://github.com/sourcebot-dev/sourcebot/stargazers"><img src="https://img.shields.io/github/stars/sourcebot-dev/sourcebot" /></a>
3838
</p>
3939
<p align="center">
40-
<p align="center">
41-
<a href="https://discord.gg/6Fhp27x7Pb"><img src="https://dcbadge.limes.pink/api/server/https://discord.gg/6Fhp27x7Pb?style=flat"/></a>
42-
</p>
4340
</p>
4441

45-
# About
46-
4742
Sourcebot is a self-hosted tool that helps you understand your codebase.
4843

4944
- **Ask Sourcebot:** Ask questions about your codebase and have Sourcebot provide detailed answers grounded with inline citations.
5045
- **Code search:** Search and navigate across all your repos and branches, no matter where they’re hosted.
5146

52-
https://github.com/user-attachments/assets/286ad97a-a543-4eef-a2f1-4fa31bea1b32
47+
Try it out in our [public demo](https://demo.sourcebot.dev)!
48+
49+
https://github.com/user-attachments/assets/ed66a622-e38f-4947-a531-86df1e1e0218
50+
51+
# Features
52+
![Sourcebot Features](https://github.com/user-attachments/assets/3aed7348-7aeb-4af3-89da-b617c3db2e02)
53+
54+
## Ask Sourcebot
55+
Ask Sourcebot gives you the ability to ask complex questions about your codebase in natural language.
56+
57+
It uses Sourcebot's existing code search and navigation tools to allow reasoning models to search your code, follow code nav references, and provide an answer that's rich with inline citations and navigable code snippets.
58+
59+
https://github.com/user-attachments/assets/8212cd16-683f-468f-8ea5-67455c0931e2
60+
61+
## Code Search
62+
Search across all your repos/branches across any code host platform. Blazingly fast, and supports regular expressions, repo/language search filters, boolean logic, and more.
63+
64+
https://github.com/user-attachments/assets/3b381452-d329-4949-b6f2-2fc38952e481
65+
66+
## Code Navigation
67+
IDE-level code navigation (goto definition and find references) across all your repos.
5368

69+
https://github.com/user-attachments/assets/e2da2829-71cc-40af-98b4-7ba52e945530
5470

55-
## Features
56-
- 💻 **One-command deployment**: Get started instantly using Docker on your own machine.
57-
- 🤖 **Bring your own model**: Connect Sourcebot to any of the reasoning models you're already using.
58-
- 🔍 **Multi-repo support**: Index and search through multiple public and private repositories and branches on GitHub, GitLab, Bitbucket, Gitea, or Gerrit.
59-
-**Lightning fast performance**: Built on top of the powerful [Zoekt](https://github.com/sourcegraph/zoekt) search engine.
60-
- 🎨 **Modern web app**: Enjoy a sleek interface with features like syntax highlighting, light/dark mode, and vim-style navigation.
61-
- 📂 **Full file visualization**: Instantly view the entire file when selecting any search result.
71+
## Built-in File Explorer
72+
Explore every file across all of your repos. Modern UI with syntax highlighting, file tree, code navigation, etc.
6273

63-
You can try out our public hosted demo [here](https://demo.sourcebot.dev)!
74+
https://github.com/user-attachments/assets/31ec0669-707d-4e03-b511-1bc33d44197a
6475

6576
# Deploy Sourcebot
6677

67-
Sourcebot can be deployed in seconds using our official docker image. Visit our [docs](https://docs.sourcebot.dev/self-hosting/overview) for more information.
78+
Sourcebot can be deployed in seconds using our official docker image. Visit our [docs](https://docs.sourcebot.dev/docs/deployment-guide) for more information.
6879

6980
1. Create a config
7081
```sh
@@ -106,10 +117,10 @@ docker run \
106117
</details>
107118
</br>
108119

109-
3. Start searching at `http://localhost:3000`
120+
3. Visit `http://localhost:3000` to start using Sourcebot
110121
</br>
111122

112-
To learn how to configure Sourcebot to index your own repos, please refer to our [docs](https://docs.sourcebot.dev/self-hosting/overview).
123+
To configure Sourcebot (index your own repos, connect your LLMs, etc), check out our [docs](https://docs.sourcebot.dev/docs/configuration/config-file).
113124

114125
> [!NOTE]
115126
> Sourcebot collects <a href="https://demo.sourcebot.dev/~/search?query=captureEvent%5C(%20repo%3Asourcebot">anonymous usage data</a> by default to help us improve the product. No sensitive data is collected, but if you'd like to disable this you can do so by setting the `SOURCEBOT_TELEMETRY_DISABLED` environment

docs/docs/deployment-guide.mdx

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ The following guide will walk you through the steps to deploy Sourcebot on your
3232
}' > config.json
3333
```
3434

35-
This config creates a single GitHub connection named `starter-connection` that specifies [Sourcebot](https://github.com/sourcebot-dev/sourcebot) as a repo to sync. [Learn more about the config file](/docs/connections/overview).
35+
This config creates a single GitHub connection named `starter-connection` that specifies [Sourcebot](https://github.com/sourcebot-dev/sourcebot) as a repo to sync. [Learn more about the config file](/docs/configuration/config-file).
3636
</Step>
3737

3838
<Step title="Launch your instance">
@@ -65,25 +65,24 @@ The following guide will walk you through the steps to deploy Sourcebot on your
6565

6666
<Step title="Complete onboarding">
6767
Navigate to `http://localhost:3000` and complete the onboarding flow.
68-
69-
<Note>
70-
By default, only email / password authentication is enabled. [Learn more about authentication](/docs/configuration/auth/overview).
71-
</Note>
7268
</Step>
7369

7470
<Step title="Done">
75-
You're all set! If you'd like to setup [Ask Sourcebot](/docs/features/ask/overview), configure a language model [provider](/docs/configuration/language-model-providers)
71+
You're all set! If you'd like to setup [Ask Sourcebot](/docs/features/ask/overview), configure a language model [provider](/docs/configuration/language-model-providers).
7672
</Step>
7773
</Steps>
7874

7975
## Next steps
8076
---
8177

82-
<CardGroup cols={2}>
83-
<Card title="Connecting your code" icon="code" href="/docs/connections/overview">
84-
Learn more about how to connect your code to Sourcebot.
78+
<CardGroup cols={3}>
79+
<Card title="Index your code" icon="code" href="/docs/connections/overview">
80+
Learn how to index your code using Sourcebot
81+
</Card>
82+
<Card title="Language models" icon="brain" href="/docs/connections/overview">
83+
Learn how to configure language model providers to start using [Ask Sourcebot](/docs/features/ask/overview)
8584
</Card>
86-
<Card title="Setup other authentication providers" icon="lock" href="/docs/configuration/auth/overview">
85+
<Card title="Authentication" icon="lock" href="/docs/configuration/auth/overview">
8786
Learn more about how to setup SSO, email codes, and other authentication providers.
8887
</Card>
8988
</CardGroup>

docs/docs/overview.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ Search across all your repos/branches across any code host platform. Blazingly f
9393
loop
9494
playsInline
9595
className="w-full aspect-video"
96-
src="https://framerusercontent.com/assets/B9ZxrlsUeO9NJyzkKyvVV2KSU4.mp4"
96+
src="/images/code_nav.mp4"
9797
></video>
9898

9999

docs/images/code_nav.mp4

3.84 MB
Binary file not shown.

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

Lines changed: 28 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,13 @@
9292
]
9393
]
9494
},
95+
"includeConnections": {
96+
"type": "array",
97+
"description": "List of connections to include in the search context.",
98+
"items": {
99+
"type": "string"
100+
}
101+
},
95102
"exclude": {
96103
"type": "array",
97104
"description": "List of repositories to exclude from the search context. Expected to be formatted as a URL without any leading http(s):// prefix (e.g., 'github.com/sourcebot-dev/sourcebot'). Glob patterns are supported.",
@@ -105,14 +112,18 @@
105112
]
106113
]
107114
},
115+
"excludeConnections": {
116+
"type": "array",
117+
"description": "List of connections to exclude from the search context.",
118+
"items": {
119+
"type": "string"
120+
}
121+
},
108122
"description": {
109123
"type": "string",
110124
"description": "Optional description of the search context that surfaces in the UI."
111125
}
112126
},
113-
"required": [
114-
"include"
115-
],
116127
"additionalProperties": false
117128
}
118129
},
@@ -211,6 +222,13 @@
211222
]
212223
]
213224
},
225+
"includeConnections": {
226+
"type": "array",
227+
"description": "List of connections to include in the search context.",
228+
"items": {
229+
"type": "string"
230+
}
231+
},
214232
"exclude": {
215233
"type": "array",
216234
"description": "List of repositories to exclude from the search context. Expected to be formatted as a URL without any leading http(s):// prefix (e.g., 'github.com/sourcebot-dev/sourcebot'). Glob patterns are supported.",
@@ -224,14 +242,18 @@
224242
]
225243
]
226244
},
245+
"excludeConnections": {
246+
"type": "array",
247+
"description": "List of connections to exclude from the search context.",
248+
"items": {
249+
"type": "string"
250+
}
251+
},
227252
"description": {
228253
"type": "string",
229254
"description": "Optional description of the search context that surfaces in the UI."
230255
}
231256
},
232-
"required": [
233-
"include"
234-
],
235257
"additionalProperties": false
236258
}
237259
},

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

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,13 @@
1919
]
2020
]
2121
},
22+
"includeConnections": {
23+
"type": "array",
24+
"description": "List of connections to include in the search context.",
25+
"items": {
26+
"type": "string"
27+
}
28+
},
2229
"exclude": {
2330
"type": "array",
2431
"description": "List of repositories to exclude from the search context. Expected to be formatted as a URL without any leading http(s):// prefix (e.g., 'github.com/sourcebot-dev/sourcebot'). Glob patterns are supported.",
@@ -32,14 +39,18 @@
3239
]
3340
]
3441
},
42+
"excludeConnections": {
43+
"type": "array",
44+
"description": "List of connections to exclude from the search context.",
45+
"items": {
46+
"type": "string"
47+
}
48+
},
3549
"description": {
3650
"type": "string",
3751
"description": "Optional description of the search context that surfaces in the UI."
3852
}
3953
},
40-
"required": [
41-
"include"
42-
],
4354
"additionalProperties": false
4455
}
4556
```

packages/backend/src/zoekt.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,18 @@ export const indexGitRepository = async (repo: Repo, settings: Settings, ctx: Ap
7676
reject(error);
7777
return;
7878
}
79+
80+
if (stdout) {
81+
stdout.split('\n').filter(line => line.trim()).forEach(line => {
82+
logger.info(line);
83+
});
84+
}
85+
if (stderr) {
86+
stderr.split('\n').filter(line => line.trim()).forEach(line => {
87+
logger.error(line);
88+
});
89+
}
90+
7991
resolve({
8092
stdout,
8193
stderr

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

Lines changed: 28 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,13 @@ const schema = {
9191
]
9292
]
9393
},
94+
"includeConnections": {
95+
"type": "array",
96+
"description": "List of connections to include in the search context.",
97+
"items": {
98+
"type": "string"
99+
}
100+
},
94101
"exclude": {
95102
"type": "array",
96103
"description": "List of repositories to exclude from the search context. Expected to be formatted as a URL without any leading http(s):// prefix (e.g., 'github.com/sourcebot-dev/sourcebot'). Glob patterns are supported.",
@@ -104,14 +111,18 @@ const schema = {
104111
]
105112
]
106113
},
114+
"excludeConnections": {
115+
"type": "array",
116+
"description": "List of connections to exclude from the search context.",
117+
"items": {
118+
"type": "string"
119+
}
120+
},
107121
"description": {
108122
"type": "string",
109123
"description": "Optional description of the search context that surfaces in the UI."
110124
}
111125
},
112-
"required": [
113-
"include"
114-
],
115126
"additionalProperties": false
116127
}
117128
},
@@ -210,6 +221,13 @@ const schema = {
210221
]
211222
]
212223
},
224+
"includeConnections": {
225+
"type": "array",
226+
"description": "List of connections to include in the search context.",
227+
"items": {
228+
"type": "string"
229+
}
230+
},
213231
"exclude": {
214232
"type": "array",
215233
"description": "List of repositories to exclude from the search context. Expected to be formatted as a URL without any leading http(s):// prefix (e.g., 'github.com/sourcebot-dev/sourcebot'). Glob patterns are supported.",
@@ -223,14 +241,18 @@ const schema = {
223241
]
224242
]
225243
},
244+
"excludeConnections": {
245+
"type": "array",
246+
"description": "List of connections to exclude from the search context.",
247+
"items": {
248+
"type": "string"
249+
}
250+
},
226251
"description": {
227252
"type": "string",
228253
"description": "Optional description of the search context that surfaces in the UI."
229254
}
230255
},
231-
"required": [
232-
"include"
233-
],
234256
"additionalProperties": false
235257
}
236258
},

packages/schemas/src/v3/index.type.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,11 +114,19 @@ export interface SearchContext {
114114
/**
115115
* List of repositories to include in the search context. Expected to be formatted as a URL without any leading http(s):// prefix (e.g., 'github.com/sourcebot-dev/sourcebot'). Glob patterns are supported.
116116
*/
117-
include: string[];
117+
include?: string[];
118+
/**
119+
* List of connections to include in the search context.
120+
*/
121+
includeConnections?: string[];
118122
/**
119123
* List of repositories to exclude from the search context. Expected to be formatted as a URL without any leading http(s):// prefix (e.g., 'github.com/sourcebot-dev/sourcebot'). Glob patterns are supported.
120124
*/
121125
exclude?: string[];
126+
/**
127+
* List of connections to exclude from the search context.
128+
*/
129+
excludeConnections?: string[];
122130
/**
123131
* Optional description of the search context that surfaces in the UI.
124132
*/

0 commit comments

Comments
 (0)