This commit is contained in:
msukkari 2025-09-17 17:25:52 -07:00
parent e9c5109e5c
commit 7d5a85ad8b
21 changed files with 345 additions and 115 deletions

View file

@ -68,6 +68,8 @@
"docs/connections/gitlab",
"docs/connections/bitbucket-cloud",
"docs/connections/bitbucket-data-center",
"docs/connections/ado-cloud",
"docs/connections/ado-server",
"docs/connections/gitea",
"docs/connections/gerrit",
"docs/connections/generic-git-host",

View file

@ -0,0 +1,141 @@
---
title: Linking code from Azure Devops Cloud
sidebarTitle: Azure Devops Cloud
icon: https://www.svgrepo.com/show/448307/azure-devops.svg
---
import AzureDevopsSchema from '/snippets/schemas/v3/azuredevops.schema.mdx'
If you're not familiar with Sourcebot [connections](/docs/connections/overview), please read that overview first.
## Examples
<AccordionGroup>
<Accordion title="Sync individual repos">
```json
{
"type": "azuredevops",
"repos": [
"organizationName/projectName/repoName",
"organizationName/projectName/repoName2
]
}
```
</Accordion>
<Accordion title="Sync all repos in a organization">
```json
{
"type": "azuredevops",
"orgs": [
"organizationName",
"organizationName2
]
}
```
</Accordion>
<Accordion title="Sync all repos in a project">
```json
{
"type": "azuredevops",
"projects": [
"organizationName/projectName",
"organizationName/projectName2"
]
}
```
</Accordion>
<Accordion title="Exclude repos from syncing">
```json
{
"type": "azuredevops",
// Include all repos in my-org...
"orgs": [
"my-org"
],
// ...except:
"exclude": {
// repos that are disabled
"disabled": true,
// repos that match these glob patterns
"repos": [
"reposToExclude*"
],
// projects that match these glob patterns
"projects": [
"projectstoExclude*"
]
// repos less than the defined min OR larger than the defined max
"size": {
// repos that are less than 1MB (in bytes)...
"min": 1048576,
// or repos greater than 100MB (in bytes)
"max": 104857600
}
}
}
```
</Accordion>
</AccordionGroup>
## Authenticating with Azure Devops Cloud
Azure Devops Cloud requires you to provide a PAT in order to index your repositories. To learn how to create PAT, check out the [Azure Devops docs](https://learn.microsoft.com/en-us/azure/devops/organizations/accounts/use-personal-access-tokens-to-authenticate?view=azure-devops&tabs=Windows).
Sourcebot needs the `Read` access for the `Code` scope in order to find and clone your repos.
Next, provide the access token via the `token` property, either as an environment variable or a secret:
<Tabs>
<Tab title="Environment Variable">
1. Add the `token` property to your connection config:
```json
{
"type": "azuredevops",
"token": {
// note: this env var can be named anything. It
// doesn't need to be `ADO_TOKEN`.
"env": "ADO_TOKEN"
}
// .. rest of config ..
}
```
2. Pass this environment variable each time you run Sourcebot:
```bash
docker run \
-e ADO_TOKEN=<PAT> \
/* additional args */ \
ghcr.io/sourcebot-dev/sourcebot:latest
```
</Tab>
<Tab title="Secret">
<Note>Secrets are only supported when [authentication](/docs/configuration/auth/overview) is enabled.</Note>
1. Navigate to **Secrets** in settings and create a new secret with your PAT:
![](/images/secrets_list.png)
2. Add the `token` property to your connection config:
```json
{
"type": "azuredevops",
"token": {
"secret": "mysecret"
}
// .. rest of config ..
}
```
</Tab>
</Tabs>
## Schema reference
<Accordion title="Reference">
[schemas/v3/azuredevops.json](https://github.com/sourcebot-dev/sourcebot/blob/main/schemas/v3/azuredevops.json)
<AzureDevopsSchema />
</Accordion>

View file

@ -0,0 +1,141 @@
---
title: Linking code from Azure Devops Server
sidebarTitle: Azure Devops Server
icon: https://www.svgrepo.com/show/448307/azure-devops.svg
---
import AzureDevopsSchema from '/snippets/schemas/v3/azuredevops.schema.mdx'
If you're not familiar with Sourcebot [connections](/docs/connections/overview), please read that overview first.
## Examples
<AccordionGroup>
<Accordion title="Sync individual repos">
```json
{
"type": "azuredevops",
"repos": [
"organizationName/projectName/repoName",
"organizationName/projectName/repoName2
]
}
```
</Accordion>
<Accordion title="Sync all repos in a collection">
```json
{
"type": "azuredevops",
"orgs": [
"collectionName",
"collectionName2"
]
}
```
</Accordion>
<Accordion title="Sync all repos in a project">
```json
{
"type": "azuredevops",
"projects": [
"collectionName/projectName",
"collectionName/projectName2"
]
}
```
</Accordion>
<Accordion title="Exclude repos from syncing">
```json
{
"type": "azuredevops",
// Include all repos in my-org...
"orgs": [
"my-org"
],
// ...except:
"exclude": {
// repos that are disabled
"disabled": true,
// repos that match these glob patterns
"repos": [
"reposToExclude*"
],
// projects that match these glob patterns
"projects": [
"projectstoExclude*"
]
// repos less than the defined min OR larger than the defined max
"size": {
// repos that are less than 1MB (in bytes)...
"min": 1048576,
// or repos greater than 100MB (in bytes)
"max": 104857600
}
}
}
```
</Accordion>
</AccordionGroup>
## Authenticating with Azure Devops Server
Azure Devops Server requires you to provide a PAT in order to index your repositories. To learn how to create PAT, check out the [Azure Devops docs](https://learn.microsoft.com/en-us/azure/devops/organizations/accounts/use-personal-access-tokens-to-authenticate?view=azure-devops&tabs=Windows).
Sourcebot needs the `Read` access for the `Code` scope in order to find and clone your repos.
Next, provide the access token via the `token` property, either as an environment variable or a secret:
<Tabs>
<Tab title="Environment Variable">
1. Add the `token` property to your connection config:
```json
{
"type": "azuredevops",
"token": {
// note: this env var can be named anything. It
// doesn't need to be `ADO_TOKEN`.
"env": "ADO_TOKEN"
}
// .. rest of config ..
}
```
2. Pass this environment variable each time you run Sourcebot:
```bash
docker run \
-e ADO_TOKEN=<PAT> \
/* additional args */ \
ghcr.io/sourcebot-dev/sourcebot:latest
```
</Tab>
<Tab title="Secret">
<Note>Secrets are only supported when [authentication](/docs/configuration/auth/overview) is enabled.</Note>
1. Navigate to **Secrets** in settings and create a new secret with your PAT:
![](/images/secrets_list.png)
2. Add the `token` property to your connection config:
```json
{
"type": "azuredevops",
"token": {
"secret": "mysecret"
}
// .. rest of config ..
}
```
</Tab>
</Tabs>
## Schema reference
<Accordion title="Reference">
[schemas/v3/azuredevops.json](https://github.com/sourcebot-dev/sourcebot/blob/main/schemas/v3/azuredevops.json)
<AzureDevopsSchema />
</Accordion>

View file

@ -85,7 +85,6 @@ Next, provide the access token via the `token` property, either as an environmen
<Tabs>
<Tab title="Environment Variable">
<Note>Environment variables are only supported in a [declarative config](/docs/configuration/declarative-config) and cannot be used in the web UI.</Note>
1. Add the `token` property to your connection config:
```json

View file

@ -132,7 +132,6 @@ Next, provide the access token via the `token` property, either as an environmen
<Tabs>
<Tab title="Environment Variable">
<Note>Environment variables are only supported in a [declarative config](/docs/configuration/declarative-config) and cannot be used in the web UI.</Note>
1. Add the `token` property to your connection config:
```json

View file

@ -120,7 +120,6 @@ Next, provide the PAT via the `token` property, either as an environment variabl
<Tabs>
<Tab title="Environment Variable">
<Note>Environment variables are only supported in a [declarative config](/docs/configuration/declarative-config) and cannot be used in the web UI.</Note>
1. Add the `token` property to your connection config:
```json

3
docs/images/ado.svg Normal file
View file

@ -0,0 +1,3 @@
<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg" fill="none">
<path fill="currentColor" d="M15 3.622v8.512L11.5 15l-5.425-1.975v1.958L3.004 10.97l8.951.7V4.005L15 3.622zm-2.984.428L6.994 1v2.001L2.382 4.356 1 6.13v4.029l1.978.873V5.869l9.038-1.818z"/>
</svg>

After

Width:  |  Height:  |  Size: 272 B

View file

@ -1,6 +1,5 @@
<Tabs>
<Tab title="Environment Variable">
<Note>Environment variables are only supported in a [declarative config](/docs/configuration/declarative-config) and cannot be used in the web UI.</Note>
1. Add the `token` and `user` (username associated with the app password you created) properties to your connection config:
```json

View file

@ -1,6 +1,5 @@
<Tabs>
<Tab title="Environment Variable">
<Note>Environment variables are only supported in a [declarative config](/docs/configuration/declarative-config) and cannot be used in the web UI.</Note>
1. Add the `token` property to your connection config:
```json

View file

@ -3,6 +3,43 @@
<Card horizontal title="GitLab" icon="gitlab" href="/docs/connections/gitlab" />
<Card horizontal title="Bitbucket Cloud" icon="bitbucket" href="/docs/connections/bitbucket-cloud" />
<Card horizontal title="Bitbucket Data Center" icon="bitbucket" href="/docs/connections/bitbucket-data-center" />
{/* Mintlify has a bug where linking to a file for the logo renders it with a white background, so we have to embed it directly */}
<Card
horizontal
title="Azure Dev Ops Cloud"
href="/docs/connections/azure-devops"
icon={
<svg
xmlns="http://www.w3.org/2000/svg"
fill="none"
viewBox="0 0 16 16"
className="w-6 h-6 text-white"
>
<path
fill="currentColor"
d="M15 3.622v8.512L11.5 15l-5.425-1.975v1.958L3.004 10.97l8.951.7V4.005L15 3.622zm-2.984.428L6.994 1v2.001L2.382 4.356 1 6.13v4.029l1.978.873V5.869l9.038-1.818z"
/>
</svg>
}
/>
<Card
horizontal
title="Azure Dev Ops Server"
href="/docs/connections/azure-devops"
icon={
<svg
xmlns="http://www.w3.org/2000/svg"
fill="none"
viewBox="0 0 16 16"
className="w-6 h-6 text-white"
>
<path
fill="currentColor"
d="M15 3.622v8.512L11.5 15l-5.425-1.975v1.958L3.004 10.97l8.951.7V4.005L15 3.622zm-2.984.428L6.994 1v2.001L2.382 4.356 1 6.13v4.029l1.978.873V5.869l9.038-1.818z"
/>
</svg>
}
/>
<Card horizontal title="Gitea" icon="mug-tea" href="/docs/connections/gitea" />
<Card horizontal title="Gerrit" icon="crow" href="/docs/connections/gerrit" />
<Card horizontal title="Other Git hosts" icon="git-alt" href="/docs/connections/generic-git-host" />

View file

@ -65,23 +65,12 @@
"default": "cloud",
"description": "The type of Azure DevOps deployment"
},
"apiVersion": {
"type": "string",
"default": "7.1",
"description": "The Azure DevOps API version to use. For Cloud, use 7.1 or later. For Server: 2022 uses 7.1, 2020 uses 6.0, 2019 uses 5.1.",
"examples": [
"7.1",
"7.0",
"6.0",
"5.1"
]
},
"useTfsPath": {
"type": "boolean",
"default": false,
"description": "Use legacy TFS path format (/tfs) in API URLs. Required for older TFS installations (TFS 2018 and earlier). When true, API URLs will include /tfs in the path (e.g., https://server/tfs/collection/_apis/...)."
},
"organizations": {
"orgs": {
"type": "array",
"items": {
"type": "string",
@ -138,7 +127,7 @@
"type": "string"
},
"default": [],
"description": "List of individual repositories to exclude from syncing. Glob patterns are supported."
"description": "List of repositories to exclude from syncing. Glob patterns are supported."
},
"projects": {
"type": "array",

View file

@ -934,23 +934,12 @@
"default": "cloud",
"description": "The type of Azure DevOps deployment"
},
"apiVersion": {
"type": "string",
"default": "7.1",
"description": "The Azure DevOps API version to use. For Cloud, use 7.1 or later. For Server: 2022 uses 7.1, 2020 uses 6.0, 2019 uses 5.1.",
"examples": [
"7.1",
"7.0",
"6.0",
"5.1"
]
},
"useTfsPath": {
"type": "boolean",
"default": false,
"description": "Use legacy TFS path format (/tfs) in API URLs. Required for older TFS installations (TFS 2018 and earlier). When true, API URLs will include /tfs in the path (e.g., https://server/tfs/collection/_apis/...)."
},
"organizations": {
"orgs": {
"type": "array",
"items": {
"type": "string",
@ -1007,7 +996,7 @@
"type": "string"
},
"default": [],
"description": "List of individual repositories to exclude from syncing. Glob patterns are supported."
"description": "List of repositories to exclude from syncing. Glob patterns are supported."
},
"projects": {
"type": "array",

View file

@ -1197,23 +1197,12 @@
"default": "cloud",
"description": "The type of Azure DevOps deployment"
},
"apiVersion": {
"type": "string",
"default": "7.1",
"description": "The Azure DevOps API version to use. For Cloud, use 7.1 or later. For Server: 2022 uses 7.1, 2020 uses 6.0, 2019 uses 5.1.",
"examples": [
"7.1",
"7.0",
"6.0",
"5.1"
]
},
"useTfsPath": {
"type": "boolean",
"default": false,
"description": "Use legacy TFS path format (/tfs) in API URLs. Required for older TFS installations (TFS 2018 and earlier). When true, API URLs will include /tfs in the path (e.g., https://server/tfs/collection/_apis/...)."
},
"organizations": {
"orgs": {
"type": "array",
"items": {
"type": "string",
@ -1270,7 +1259,7 @@
"type": "string"
},
"default": [],
"description": "List of individual repositories to exclude from syncing. Glob patterns are supported."
"description": "List of repositories to exclude from syncing. Glob patterns are supported."
},
"projects": {
"type": "array",

View file

@ -64,23 +64,12 @@ const schema = {
"default": "cloud",
"description": "The type of Azure DevOps deployment"
},
"apiVersion": {
"type": "string",
"default": "7.1",
"description": "The Azure DevOps API version to use. For Cloud, use 7.1 or later. For Server: 2022 uses 7.1, 2020 uses 6.0, 2019 uses 5.1.",
"examples": [
"7.1",
"7.0",
"6.0",
"5.1"
]
},
"useTfsPath": {
"type": "boolean",
"default": false,
"description": "Use legacy TFS path format (/tfs) in API URLs. Required for older TFS installations (TFS 2018 and earlier). When true, API URLs will include /tfs in the path (e.g., https://server/tfs/collection/_apis/...)."
},
"organizations": {
"orgs": {
"type": "array",
"items": {
"type": "string",
@ -137,7 +126,7 @@ const schema = {
"type": "string"
},
"default": [],
"description": "List of individual repositories to exclude from syncing. Glob patterns are supported."
"description": "List of repositories to exclude from syncing. Glob patterns are supported."
},
"projects": {
"type": "array",

View file

@ -29,10 +29,6 @@ export interface AzureDevOpsConnectionConfig {
* The type of Azure DevOps deployment
*/
deploymentType?: "cloud" | "server";
/**
* The Azure DevOps API version to use. For Cloud, use 7.1 or later. For Server: 2022 uses 7.1, 2020 uses 6.0, 2019 uses 5.1.
*/
apiVersion?: string;
/**
* Use legacy TFS path format (/tfs) in API URLs. Required for older TFS installations (TFS 2018 and earlier). When true, API URLs will include /tfs in the path (e.g., https://server/tfs/collection/_apis/...).
*/
@ -40,7 +36,7 @@ export interface AzureDevOpsConnectionConfig {
/**
* List of organizations to sync with. For Cloud, this is the organization name. For Server, this is the collection name. All projects and repositories visible to the provided `token` will be synced, unless explicitly defined in the `exclude` property.
*/
organizations?: string[];
orgs?: string[];
/**
* List of specific projects to sync with. Expected to be formatted as '{orgName}/{projectName}' for Cloud or '{collectionName}/{projectName}' for Server.
*/
@ -55,7 +51,7 @@ export interface AzureDevOpsConnectionConfig {
*/
disabled?: boolean;
/**
* List of individual repositories to exclude from syncing. Glob patterns are supported.
* List of repositories to exclude from syncing. Glob patterns are supported.
*/
repos?: string[];
/**

View file

@ -933,23 +933,12 @@ const schema = {
"default": "cloud",
"description": "The type of Azure DevOps deployment"
},
"apiVersion": {
"type": "string",
"default": "7.1",
"description": "The Azure DevOps API version to use. For Cloud, use 7.1 or later. For Server: 2022 uses 7.1, 2020 uses 6.0, 2019 uses 5.1.",
"examples": [
"7.1",
"7.0",
"6.0",
"5.1"
]
},
"useTfsPath": {
"type": "boolean",
"default": false,
"description": "Use legacy TFS path format (/tfs) in API URLs. Required for older TFS installations (TFS 2018 and earlier). When true, API URLs will include /tfs in the path (e.g., https://server/tfs/collection/_apis/...)."
},
"organizations": {
"orgs": {
"type": "array",
"items": {
"type": "string",
@ -1006,7 +995,7 @@ const schema = {
"type": "string"
},
"default": [],
"description": "List of individual repositories to exclude from syncing. Glob patterns are supported."
"description": "List of repositories to exclude from syncing. Glob patterns are supported."
},
"projects": {
"type": "array",

View file

@ -341,10 +341,6 @@ export interface AzureDevOpsConnectionConfig {
* The type of Azure DevOps deployment
*/
deploymentType?: "cloud" | "server";
/**
* The Azure DevOps API version to use. For Cloud, use 7.1 or later. For Server: 2022 uses 7.1, 2020 uses 6.0, 2019 uses 5.1.
*/
apiVersion?: string;
/**
* Use legacy TFS path format (/tfs) in API URLs. Required for older TFS installations (TFS 2018 and earlier). When true, API URLs will include /tfs in the path (e.g., https://server/tfs/collection/_apis/...).
*/
@ -352,7 +348,7 @@ export interface AzureDevOpsConnectionConfig {
/**
* List of organizations to sync with. For Cloud, this is the organization name. For Server, this is the collection name. All projects and repositories visible to the provided `token` will be synced, unless explicitly defined in the `exclude` property.
*/
organizations?: string[];
orgs?: string[];
/**
* List of specific projects to sync with. Expected to be formatted as '{orgName}/{projectName}' for Cloud or '{collectionName}/{projectName}' for Server.
*/
@ -367,7 +363,7 @@ export interface AzureDevOpsConnectionConfig {
*/
disabled?: boolean;
/**
* List of individual repositories to exclude from syncing. Glob patterns are supported.
* List of repositories to exclude from syncing. Glob patterns are supported.
*/
repos?: string[];
/**

View file

@ -1196,23 +1196,12 @@ const schema = {
"default": "cloud",
"description": "The type of Azure DevOps deployment"
},
"apiVersion": {
"type": "string",
"default": "7.1",
"description": "The Azure DevOps API version to use. For Cloud, use 7.1 or later. For Server: 2022 uses 7.1, 2020 uses 6.0, 2019 uses 5.1.",
"examples": [
"7.1",
"7.0",
"6.0",
"5.1"
]
},
"useTfsPath": {
"type": "boolean",
"default": false,
"description": "Use legacy TFS path format (/tfs) in API URLs. Required for older TFS installations (TFS 2018 and earlier). When true, API URLs will include /tfs in the path (e.g., https://server/tfs/collection/_apis/...)."
},
"organizations": {
"orgs": {
"type": "array",
"items": {
"type": "string",
@ -1269,7 +1258,7 @@ const schema = {
"type": "string"
},
"default": [],
"description": "List of individual repositories to exclude from syncing. Glob patterns are supported."
"description": "List of repositories to exclude from syncing. Glob patterns are supported."
},
"projects": {
"type": "array",

View file

@ -466,10 +466,6 @@ export interface AzureDevOpsConnectionConfig {
* The type of Azure DevOps deployment
*/
deploymentType?: "cloud" | "server";
/**
* The Azure DevOps API version to use. For Cloud, use 7.1 or later. For Server: 2022 uses 7.1, 2020 uses 6.0, 2019 uses 5.1.
*/
apiVersion?: string;
/**
* Use legacy TFS path format (/tfs) in API URLs. Required for older TFS installations (TFS 2018 and earlier). When true, API URLs will include /tfs in the path (e.g., https://server/tfs/collection/_apis/...).
*/
@ -477,7 +473,7 @@ export interface AzureDevOpsConnectionConfig {
/**
* List of organizations to sync with. For Cloud, this is the organization name. For Server, this is the collection name. All projects and repositories visible to the provided `token` will be synced, unless explicitly defined in the `exclude` property.
*/
organizations?: string[];
orgs?: string[];
/**
* List of specific projects to sync with. Expected to be formatted as '{orgName}/{projectName}' for Cloud or '{collectionName}/{projectName}' for Server.
*/
@ -492,7 +488,7 @@ export interface AzureDevOpsConnectionConfig {
*/
disabled?: boolean;
/**
* List of individual repositories to exclude from syncing. Glob patterns are supported.
* List of repositories to exclude from syncing. Glob patterns are supported.
*/
repos?: string[];
/**

View file

@ -33,23 +33,12 @@
"default": "cloud",
"description": "The type of Azure DevOps deployment"
},
"apiVersion": {
"type": "string",
"default": "7.1",
"description": "The Azure DevOps API version to use. For Cloud, use 7.1 or later. For Server: 2022 uses 7.1, 2020 uses 6.0, 2019 uses 5.1.",
"examples": [
"7.1",
"7.0",
"6.0",
"5.1"
]
},
"useTfsPath": {
"type": "boolean",
"default": false,
"description": "Use legacy TFS path format (/tfs) in API URLs. Required for older TFS installations (TFS 2018 and earlier). When true, API URLs will include /tfs in the path (e.g., https://server/tfs/collection/_apis/...)."
},
"organizations": {
"orgs": {
"type": "array",
"items": {
"type": "string",
@ -106,7 +95,7 @@
"type": "string"
},
"default": [],
"description": "List of individual repositories to exclude from syncing. Glob patterns are supported."
"description": "List of repositories to exclude from syncing. Glob patterns are supported."
},
"projects": {
"type": "array",

2
vendor/zoekt vendored

@ -1 +1 @@
Subproject commit 07c64afd5c719b5c95aae21c71009aacadbc528e
Subproject commit 12a2f4ad075359a09bd8a91793acb002211217aa