diff --git a/.env.baseai.example b/.env.baseai.example
new file mode 100644
index 000000000..68b6f3408
--- /dev/null
+++ b/.env.baseai.example
@@ -0,0 +1,7 @@
+# !! SERVER SIDE ONLY !!
+# Keep all your API keys secret — use only on the server side.
+
+# TODO: ADD: Both in your production and local env files.
+# Langbase API key for your User or Org account.
+# How to get this API key https://langbase.com/docs/api-reference/api-keys
+LANGBASE_API_KEY=
diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md
new file mode 100644
index 000000000..4db87090a
--- /dev/null
+++ b/.github/pull_request_template.md
@@ -0,0 +1,5 @@
+
+
+## Pull Request approval
+
+You will need to get your PR approved by at least one member of the Sourcegraph team. For reviews of docs formatting, styles, and component usage, please tag the docs team via the #docs Slack channel.
diff --git a/.github/workflows/pr-auditor.yml b/.github/workflows/pr-auditor.yml
index b8479fbd2..fc2b3e1ee 100644
--- a/.github/workflows/pr-auditor.yml
+++ b/.github/workflows/pr-auditor.yml
@@ -2,7 +2,7 @@ name: pr-auditor
on:
pull_request_target:
types: [ closed, edited, opened, synchronize, ready_for_review ]
- workflow_dispatch:
+
jobs:
check-pr:
@@ -10,11 +10,12 @@ jobs:
steps:
- uses: actions/checkout@v3
with:
- repository: 'sourcegraph/pr-auditor'
+ repository: 'sourcegraph/devx-service'
+ token: ${{ secrets.PR_AUDITOR_TOKEN }}
- uses: actions/setup-go@v4
- with: { go-version: '1.21' }
+ with: { go-version: '1.22' }
- - run: './check-pr.sh'
+ - run: 'go run ./cmd/pr-auditor'
env:
GITHUB_EVENT_PATH: ${{ env.GITHUB_EVENT_PATH }}
GITHUB_TOKEN: ${{ secrets.PR_AUDITOR_TOKEN }}
@@ -25,5 +26,5 @@ jobs:
report_failure:
needs: check-pr
if: ${{ failure() }}
- uses: sourcegraph/sourcegraph/.github/workflows/report-job-failure.yml@main
+ uses: sourcegraph/workflows/.github/workflows/report-job-failure.yml@main
secrets: inherit
diff --git a/.gitignore b/.gitignore
index 88c1cbbfa..968a8330e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -39,3 +39,17 @@ next-env.d.ts
# search index file generated on build
/public/search.json
+
+# IDEs
+.idea
+
+# We ignore the generated file as it should always be generated
+public/changelog.rss
+
+# baseai
+**/.baseai/
+
+# env file
+.env
+
+public/technical-changelog.rss
diff --git a/README.md b/README.md
index 681379352..20ca1a558 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,7 @@
# Sourcegraph Docs
+
+
Welcome to the Sourcegraph documentation! We're excited to have you contribute to our docs. We've recently rearchitectured our docs tech stack — powered by Next.js, TailwindCSS and deployed on Vercel. This guide will walk you through the process of contributing to our documentation using the new tech stack.
## Get started
@@ -16,7 +18,7 @@ Navigate to the project directory by typing the following command in your termin
cd sourcegraph-docs
```
-Before the dependencies are install make sure your local machine has the following versions of `node` and `pnpm`:
+Before the dependencies are install make sure your local machine has the following versions of `node` and `pnpm` installed:
* node: `v20.8.1`
* pnpm: `8.13.1`
@@ -84,7 +86,7 @@ This is an introductory paragraph.
### This is heading 3
-These are the details for heading three.
+These are the details for heading three.
This is how you add a [demo-link](https://sourcegraph.com/)
@@ -116,7 +118,7 @@ Here are the list of all the supported components we have:
- ``
- ``
-For a better docs experience we'll continue adding more components in future.
+For a better docs experience, we'll continue adding more components in the future.
### Adding a link
@@ -132,9 +134,9 @@ For example, if you want to link to the Cody Quickstart somewhere in the Code Se
- This is a way to hash-link to [Cody for VSCode installation](/cody/clients/install-vscode#verifying-the-installation) in Code Search docs
```
-### Adding images and binary assets
+### Adding media assets (images, videos and gifs)
-For large images and other binary assets, upload them to the `sourcegraph-assets` Google Cloud Storage bucket instead with `gsutil cp -a public-read local/path/to/myasset.png gs://sourcegraph-assets/` (and refer to them as `https://sourcegraphstatic.com/myasset.png`). For a more detailed instructions visit [this page](https://handbook.sourcegraph.com/handbook/editing/handbook-images-video/).
+You can upload images, videos and gifs to Sourcegraph docs. For a more detailed instructions visit [this page](https://www.notion.so/sourcegraph/How-to-host-blog-assets-using-GCP-file-storage-a2cae02bd0c74166a12eaff5062c41ad).
> Note: Make sure to use [ImageOptim.app](https://imageoptim.com/mac) to reduce the size of the images before uploading, since large images degrade page loading speed.
@@ -144,6 +146,12 @@ For large images and other binary assets, upload them to the `sourcegraph-assets
As you make changes to the documentation, the development server will automatically update. Review your changes by navigating to `http://localhost:3000` in your browser.
+### Previewing Vercel Deployments
+
+When you open a PR Vercel deploys and provides you with a preview deployment link. To view your deployment, click the **Visit Preview** link from Vercel's deployment panel in your PRs and you get a preview of your docs
+
+
+
## Submitting your Contribution
Once you're satisfied with your changes, follow these steps:
diff --git a/baseai/baseai.config.ts b/baseai/baseai.config.ts
new file mode 100644
index 000000000..f0ee748f5
--- /dev/null
+++ b/baseai/baseai.config.ts
@@ -0,0 +1,18 @@
+import type { BaseAIConfig } from 'baseai';
+
+export const config: BaseAIConfig = {
+ log: {
+ isEnabled: true,
+ logSensitiveData: false,
+ pipe: true,
+ 'pipe.completion': true,
+ 'pipe.request': true,
+ 'pipe.response': true,
+ tool: true,
+ memory: true
+ },
+ memory: {
+ useLocalEmbeddings: false
+ },
+ envFilePath: '.env'
+};
diff --git a/baseai/memory/memory-sg-docs-live/index.ts b/baseai/memory/memory-sg-docs-live/index.ts
new file mode 100644
index 000000000..34e85f4ec
--- /dev/null
+++ b/baseai/memory/memory-sg-docs-live/index.ts
@@ -0,0 +1,27 @@
+import { MemoryI } from '@baseai/core';
+
+const memoryDocs = (): MemoryI => ({
+ name: 'memory-sg-docs-live',
+ description: 'An AI memory storing all Sourcegraph docs.',
+ git: {
+ enabled: true,
+ include: ['**/*.mdx'],
+ gitignore: true,
+ embeddedAt: '',
+ deployedAt: '1b67d5c14520a898e2b9933ab3d2a9fe28515e31'
+ },
+ documents: {
+ meta: doc => {
+ const url = `https://sourcegraph.com/docs/${doc.path}`;
+ return {
+ url,
+ name: doc.name,
+ };
+ },
+ },
+});
+
+export default memoryDocs;
+
+// Old
+// deployedAt: '5f3fec8530280d01a783aadcdeb0ccc3f9cd8b70',
diff --git a/contentlayer.config.ts b/contentlayer.config.ts
index dd5641cc3..0487648c4 100644
--- a/contentlayer.config.ts
+++ b/contentlayer.config.ts
@@ -7,6 +7,8 @@ import remarkGfm from 'remark-gfm';
import { MDXDocument, allCoreContent } from './src/utils/contentlayer';
import { searchMetadata } from './src/data/search';
import GithubSlugger from 'github-slugger'
+import { visit } from "unist-util-visit"
+
export const Post = defineDocumentType(() => ({
name: 'Post',
filePathPattern: `**/*.mdx`,
@@ -70,13 +72,39 @@ const prettyCodeOptions = {
),
}
+const rehypePlugins:any = [
+ // Extract raw code content from code elements within pre elements
+ () => (tree: any) => {
+ visit(tree, (node: any) => {
+ if (node?.type === "element" && node?.tagName === "pre") {
+ const [codeEl] = node.children;
+ if (codeEl.tagName !== "code") return
+
+ node.raw = codeEl.children?.[0].value
+ }
+ });
+ },
+ [rehypePrettyCode, prettyCodeOptions],
+ // Add raw code content as a property to pre elements within div elements containing data-rehype-pretty-code-fragment attribute
+ () => (tree: any) => {
+ visit(tree, (node: any) => {
+ if (node?.type === "element" && node?.tagName === "div") {
+ if (!("data-rehype-pretty-code-fragment" in node.properties)) return
+
+ for (const child of node.children)
+ if (child.tagName === "pre") child.properties["raw"] = node.raw;
+ }
+ })
+ },rehypeSlug, [rehypeAutolinkHeadings]
+]
+
export default makeSource({
contentDirPath: 'docs', documentTypes: [Post], mdx: {
- remarkPlugins: [remarkGfm],
- rehypePlugins: [[rehypePrettyCode, prettyCodeOptions], rehypeSlug, [rehypeAutolinkHeadings]],
+ remarkPlugins: [remarkGfm],
+ rehypePlugins: rehypePlugins,
},
onSuccess: async (importData) => {
- const { allPosts } = await importData()
- createSearchIndex(allPosts);
+ const { allPosts } = await importData()
+ createSearchIndex(allPosts);
},
})
diff --git a/dev/rss.js b/dev/rss.js
new file mode 100644
index 000000000..660cdc716
--- /dev/null
+++ b/dev/rss.js
@@ -0,0 +1,71 @@
+const { Feed } = require('feed');
+const fs = require('fs');
+const path = require('path');
+
+const loadChangelog = () => {
+ const changelogPath = path.join(__dirname, '..', 'docs', 'technical-changelog.mdx');
+ return fs.readFileSync(changelogPath, 'utf8');
+}
+
+const extractRSSComments = (content) => {
+ const regex = /\{\/\*\s*RSS=(.*?)\s*\*\/}/g;
+ const matches = [];
+ let match;
+
+ while ((match = regex.exec(content)) !== null) {
+ matches.push(JSON.parse(match[1].trim()));
+ }
+
+ return matches;
+}
+
+const generateRssFeed = () => {
+ const baseURL = 'https://sourcegraph.com'
+ const siteURL = 'https://sourcegraph.com/docs';
+ const date = new Date();
+
+ const feed = new Feed({
+ title: 'Sourcegraph RSS',
+ description: 'RSS feed for Sourcegraph',
+ id: siteURL,
+ link: baseURL,
+ language: 'en',
+ image: `${siteURL}/sourcegraph-mark.png`,
+ favicon: `${siteURL}/sourcegraph-mark.png`,
+ copyright: `All rights reserved ${date.getFullYear()}, Sourcegraph`,
+ updated: date,
+ generator: 'Sourcegraph RSS Feed',
+ feedLinks: {
+ rss2: `${siteURL}/technical-changelog.rss`,
+ },
+ author: {
+ name: 'Sourcegraph',
+ email: 'hi@sourcegraph.com',
+ link: 'https://sourcegraph.com',
+ },
+ });
+
+ const changelog = loadChangelog();
+ const rssComments = extractRSSComments(changelog);
+
+ // the rss comments have the structure: {/* RSS={"version":"vX.Y.Z", "releasedAt": "" */}
+ for (let idx = 0; idx < rssComments.length; idx++) {
+ const comment = rssComments[idx];
+ if (!comment.version || !comment.releasedAt) {
+ continue;
+ }
+ const tag = comment.version.replace('v', '');
+ const versionDocLink = `${siteURL}/technical-changelog#${comment.version.replaceAll('.', '')}`;
+ feed.addItem({
+ title: `Sourcegraph ${tag}`,
+ id: comment.version,
+ link: versionDocLink,
+ description: `Sourcegraph ${tag} is now available! Note: we've updated our versioning conventions. Please see our releases page for more information.`,
+ date: new Date(comment.releasedAt),
+ });
+ }
+
+ fs.writeFileSync(path.join(__dirname, '../public/technical-changelog.rss'), feed.rss2());
+}
+
+module.exports = { generateRssFeed }
diff --git a/docs-chatbot.md b/docs-chatbot.md
new file mode 100644
index 000000000..cfc224f84
--- /dev/null
+++ b/docs-chatbot.md
@@ -0,0 +1,19 @@
+# How we use Docs Chatbot?
+
+Contact the docs team for any more questions on this.
+
+## To sync all the latest docs changes in the `main` branch check out to the `main` branch and run
+
+```sh
+pnpm langbase-sync
+```
+
+This will verify all the changes since the last sync, update these files, and then write the commit hash to `baseai/memory/docs/index.ts` file which you should commit to keep track.
+
+### Update llms.txt file
+
+Run the following command to update the `llms.txt` file:
+
+```sh
+pnpm llmstxt
+```
diff --git a/docs.config.js b/docs.config.js
index f10fd6d9a..a8b074cdf 100644
--- a/docs.config.js
+++ b/docs.config.js
@@ -1,5 +1,5 @@
const config = {
- DOCS_LATEST_VERSION: '5.3'
+ DOCS_LATEST_VERSION: '6.3'
};
module.exports = config;
diff --git a/docs/CHANGELOG.mdx b/docs/CHANGELOG.mdx
deleted file mode 100644
index 96aacac60..000000000
--- a/docs/CHANGELOG.mdx
+++ /dev/null
@@ -1,1016 +0,0 @@
-# Changelog
-
-All notable changes to Sourcegraph are documented in this file.
-
-## 5.3.12303
-
-### Added
-
-- Indexed-search now supports draining a replica of indexes to support zero-downtime reduction in cluster size. [#62005](https://github.com/sourcegraph/sourcegraph/pull/62005)
-
-### Fixed
-
-- Rust binaries are now built in release mode to avoid unnecessary debug checks. [#61740](https://github.com/sourcegraph/sourcegraph/pull/61740)
-- Fixed how scip-ctags reports errors to avoid failing search indexing on non-fatal errors. [#61712](https://github.com/sourcegraph/sourcegraph/pull/61712)
-- Fixed a bug in Enterprise Cody context for queries containing only stopwords. [#61848](https://github.com/sourcegraph/sourcegraph/pull/61848), [#62026](https://github.com/sourcegraph/sourcegraph/pull/62026)
-- Fixed the instance dropdown on the zoekt grafana dashboard. [#61836](https://github.com/sourcegraph/sourcegraph/pull/61836)
-
-## 5.3.11625
-
-### Changed
-
-- Notices configured in the site config now allow for specifying a style or color. [#61338](https://github.com/sourcegraph/sourcegraph/pull/61338)
-- Reduce spamming error logs when canceling symbols indexing or canceling a syntax highlighting request. [#61880](https://github.com/sourcegraph/sourcegraph/pull/61880), [#61719](https://github.com/sourcegraph/sourcegraph/pull/61719), [#61732](https://github.com/sourcegraph/sourcegraph/pull/61732)
-
-### Fixed
-
-- Fixed a bug where the `src batch preview` command could fail due to an incorrect file-not-found error. [#61984](https://github.com/sourcegraph/sourcegraph/pull/61984)
-- Fixed a bug where the Roles page in the Site Admin view was inaccessible. [#61738](https://github.com/sourcegraph/sourcegraph/pull/61738)
-- Fixed a panic in Cody Attribution in sourcegraph-frontend when reporting an error. [#60439](https://github.com/sourcegraph/sourcegraph/issues/60439)
-
-## 5.3.9104
-
-### Added
-
-- GitHub app installations can now be refreshed from the Batch Changes Site Admin page. [#60125](https://github.com/sourcegraph/sourcegraph/pull/60125)
-- The SAML auth provider configuration now supports a `usernameAttributeNames` field that can be used to specify a list of SAML attribute that should be used as the username. [#60603](https://github.com/sourcegraph/sourcegraph/pull/60603)
-- Added the GraphQL query `User.evaluateFeatureFlag` to show if a feature flag is enabled or disabled for a user. [#60828](https://github.com/sourcegraph/sourcegraph/pull/60828)
-- Search Jobs now supports diff, commit and path searches. Before, only file searches were supported. [#60883](https://github.com/sourcegraph/sourcegraph/pull/60883)
-- Auth providers now support a `noSignIn` option that, when set to true, will hide the auth provider from the sign in page, but still allow users to connect the external account from their Account Security page for permissions syncing. [#60722](https://github.com/sourcegraph/sourcegraph/pull/60722)
-- Added a "Commits" button to the folders in repos that shows commits for the items in that folder. [#60909](https://github.com/sourcegraph/sourcegraph/pull/60909)
-- The frontend Grafana dashboard has a new Prometheus metric that tracks the rate of requests that Sourcegraph issues to external services. [#61348](https://github.com/sourcegraph/sourcegraph/pull/61348)
-- Added support for the `gitURLType` setting for Gerrit, Sourcegraph now supports cloning from Gerrit via SSH. Note: Not on Cloud yet, like for all code hosts. [#61537](https://github.com/sourcegraph/sourcegraph/pull/61537)
-- Support for OpenAI chat models for enterprise customers. [#61539](https://github.com/sourcegraph/sourcegraph/pull/61539)
-- Added support for explicitly enumerating repositories to sync from Bitbucket Cloud. Previously, Sourcegraph would automatically sync all repositories from a Bitbucket Cloud workspace. [#61536](https://github.com/sourcegraph/sourcegraph/pull/61536)
-
-### Changed
-
-- GitHub apps installation records will only be deleted from the database if the GitHub App has been uninstalled or if the GitHub app has been deleted. [#60460](https://github.com/sourcegraph/sourcegraph/pull/60460)
-- The Anthropic provider for Cody has been updated to use the messages API which includes support for Claude 3 models. This is applicable to both BYOK and Cody Gateway users. The messages API does not support model identifiers which only set a major model version such as: `claude-2`, `claude-instant-v1` and `claude-instant-1`. Default values have been updated to `claude-2.0` and `claude-instant-1.2`, any legacy models identifiers in the site config will be set to the corresponding default previously mentioned. [#60953](https://github.com/sourcegraph/sourcegraph/pull/60953) [#61324](https://github.com/sourcegraph/sourcegraph/pull/61324)
-- The AWS Bedrock provider for Cody has been updated to use Anthropic's Messages API, bringing support for Claude 3 models. [#61347](https://github.com/sourcegraph/sourcegraph/pull/61347)
-- Notices configured in the site config now allow for specifying a style or color. [#61338](https://github.com/sourcegraph/sourcegraph/pull/61338)
-
-### Fixed
-
-- Code Monitors now properly ignores monitors associated with soft-deleted users, which previously would have led to an error on the overview page. [#60405](https://github.com/sourcegraph/sourcegraph/pull/60405)
-- Fixed a bug where clicking "Exclude Repo" on Azure DevOps or Gerrit repositories would not work. [#60509](https://github.com/sourcegraph/sourcegraph/pull/60509)
-- Links in codeintel popovers respect the revision from the URL. [#60545](https://github.com/sourcegraph/sourcegraph/pull/60545)
-- Fixed an issue where repositories with a name ending in `.git` failed to clone. [#60627](https://github.com/sourcegraph/sourcegraph/pull/60627)
-- Fixed an issue where Sourcegraph could lose track of repositories on gitserver, leaving behind unnecessary data and inconsistent clone status in the UI. [#60627](https://github.com/sourcegraph/sourcegraph/pull/60627)
-- The "Commits" button in repository and folder pages links to commits in the current revision instead of in the default branch. [#61408](https://github.com/sourcegraph/sourcegraph/pull/61408)
-- Fixed an issue where code insights queries would fail if there are more than 65535 restricted repositories and regular expressions. [#61580](https://github.com/sourcegraph/sourcegraph/pull/61580)
-- The "Commits" button in repository and folder pages uses Perforce language and links to `/-/changelists` for Perforce depots when the experimental feature `perforceChangelistMapping` is enabled. [#61408](https://github.com/sourcegraph/sourcegraph/pull/61408)
-- Selecting "View blame prior to this change" on a file that was moved will now correctly navigate to the old file location at the specified commit. [#61577](https://github.com/sourcegraph/sourcegraph/pull/61577)
-- Git blame performance on large files with a large number of commits has been drastically improved. [#61577](https://github.com/sourcegraph/sourcegraph/pull/61577)
-- Code Insights now properly ignores search API alerts, which previously would have led to a code insight error. [#61431](https://github.com/sourcegraph/sourcegraph/pull/61431)
-
-## 5.3.3
-
-### Added
-
-### Changed
-
-- Changed the Azure OpenAI Cody provider to use the stable 2023-05-15 api version, due to the retirement of previous preview api versions. [61005](https://github.com/sourcegraph/sourcegraph/pull/61005)
-
-### Fixed
-
-- Fixed an issue in our build process that broke tooltips and validation in the settings editors. [#60808](https://github.com/sourcegraph/sourcegraph/pull/60808)
-
-- Fixes a bug where the reference panel would not show any definitions or references for Protocol Buffers (and other languages where the name contained a space). [#60987](https://github.com/sourcegraph/sourcegraph/pull/60987)
-
-- Fixed a bug where permission syncs could be scheduled for repositories or users even when a sync is already scheduled or in progress, leading to significant delays in the permissions sync system as a whole. [#61024](https://github.com/sourcegraph/sourcegraph/pull/61024)
-
-- Fixed a bug in gitserver where it was possible to use expired Github App authorization tokens when syncing a large repository. Now, gitserver will use the latest tokens for each step of the syncing process (and refresh them if necessary). [#61179](https://github.com/sourcegraph/sourcegraph/pull/61179/)
-
-### Removed
-
-## 5.3.2
-
-### Fixed
-
-- A bug in search that could trigger a panic
-- An unintentional change to the search results when using the LineMatch API which would include surrounding lines with no matches
-- Autoupgrade only looks for open db connections from the Sourcegraph application services, and disregards other applications connected to the postgres instance. [#60771](https://github.com/sourcegraph/sourcegraph/pull/60771)
-- Fixes a bug where hovers would not show up in C++ headers with the `.hxx` extension. [#60662](https://github.com/sourcegraph/sourcegraph/pull/60662)
-
-## 5.3.1
-
-### Fixed
-
-- Updated container images to fix CVE-2023-4408, CVE-2023-50387, CVE-2023-50868, CVE-2023-5517, CVE-2023-5679, CVE-2023-6516
-
-
-## 5.3.0
-
-### Added
-
-- The search bar now supports keyword search by default, which ANDs terms together instead of searching literally as before. The behavior can be disabled through a toggle on the search results page. [#58815](https://github.com/sourcegraph/sourcegraph/issues/58815)
-- The `has.topic` filter now supports filtering by Gitlab topics. [#57649](https://github.com/sourcegraph/sourcegraph/pull/57649)
-- Batch Changes now allows changesets to be exported in CSV and JSON format. [#56721](https://github.com/sourcegraph/sourcegraph/pull/56721)
-- Supports custom ChatCompletion models in Cody clients for dotcom users. [#58158](https://github.com/sourcegraph/sourcegraph/pull/58158)
-- Topics synced from GitHub and GitLab are now displayed for repository matches in the search results and on the repository tree page. [#58927](https://github.com/sourcegraph/sourcegraph/pull/58927)
-- Added a new column "Repository metadata JSON" to the CSV export of repository search results, which includes the JSON encoded object of metadata key-value pairs. [#59334](https://github.com/sourcegraph/sourcegraph/pull/59334)
-- Expiry to access tokens. Users can now select a maximum timespan for which a token is valid. Tokens will automatically lose access after this period. Default timeframes and an override to disable access tokens without expiration can be configured in the `auth.accessTokens` section of the site configuration. [#59565](https://github.com/sourcegraph/sourcegraph/pull/59565)
-- Gerrit code host connections now support an 'exclude' field that prevents repos in this list from being synced. [#59739](https://github.com/sourcegraph/sourcegraph/pull/59739)
-- Limit the number of active access tokens for a user. By default users are able to have 25 active access tokens. This limit can be configured using the `maxTokensPerUser` setting in the `auth.accessTokens` section of the site configuration. [#59731](https://github.com/sourcegraph/sourcegraph/pull/59731)
-- Add experimental support for .cody/ignore when retrieving remote context. To enable it, set `experimentalFeatures.codyContextIgnore: true` in the site configuration. [#59836](https://github.com/sourcegraph/sourcegraph/pull/59836), [#59907](https://github.com/sourcegraph/sourcegraph/pull/59907)
-- Site admin, link to the Cody Analytics service. [#60371](https://github.com/sourcegraph/sourcegraph/pull/60371)
-- Added a reimagined filter panel to the search result page, facilitating a workflow centered around iterative refinement.
-- Search results were treated to a design refresh, improving information density of results. [#59834](https://github.com/sourcegraph/sourcegraph/pull/59834)
-- Added a preview pane to file search results so you can view the full file without navigating away from the search results. [#58311](https://github.com/sourcegraph/sourcegraph/pull/58311)
-
-### Changed
-
-- `cody.restrictUsersFeatureFlag` has been deprecated and replaced by role based access control instead. Until the old configuration value is removed from your site config, it will be respected just as before but with a warning displayed at the top of Sourcegraph. Once removed, the old feature flag will not be respected and instead the Cody access will be managed via role based access controls, see [the docs](https://docs.sourcegraph.com/cody/overview/enable-cody-enterprise#enable-cody-only-for-some-users) for more information. [#58831](https://github.com/sourcegraph/sourcegraph/pull/58831)
-- The setting `experimentalFeatures.searchQueryInput` now refers to the new query input as `v2` (not `experimental`).
-- Search-based code intel doesn't include the currently selected search context anymore. It was possible to get into a situation where search-based code intel wouldn't find any information due to being restricted by the current search context. [#58010](https://github.com/sourcegraph/sourcegraph/pull/58010)
-- The last commit which changed a file/directory is now shown in the files panel on the repo and file pages. To avoid duplicating information and confusion, the commits panel was removed. [58328](https://github.com/sourcegraph/sourcegraph/pull/58328)
-- Clicking on a search result now opens the blob view at the same commit as the search result. Before, blob views were opened at the tip of the default branch, which sometimes caused inconsistencies in line numbers if the index was out of date. [#58381](https://github.com/sourcegraph/sourcegraph/pull/58381)
-- The `exclude` configuration for code host configuration has been updated to allow chaining multiple conditions together and filtering GitHub repositories based on their size or number of GitHub stars. [#58377](https://github.com/sourcegraph/sourcegraph/pull/58377) and [#58405](https://github.com/sourcegraph/sourcegraph/pull/58405)
- - Multiple attributes on _a single_ `exclude` entry now have to be all true for a repository to be excluded. Example: `{"exclude": [{"name": "github.com/example/example"}, {"id": "my-id"}]}` will _only_ exclude repositories that have the name _and_ the id mentioned.
- - GitHub code host connections can exclude by size and stars now: `{"exclude": [{"name": "github.com/example/example"}, {"stars": "< 100", "size": ">= 1GB"}]}`
- - For `size` and `stars` the supported operators are `<`, `>`, `<=`, `>=`.
- - For `size` the supported units are `B`, `b`, `kB`, `KB`, `kiB`, `KiB`, `MiB`, `MB`, `GiB`, `GB`. No decimals points are supported.
-- Structural Search is now disabled by default. To enable it, set `experimentalFeatures.structuralSearch: "enabled"` in the site configuration. [#57584](https://github.com/sourcegraph/sourcegraph/pull/57584)
-- Search Jobs switches the format of downloaded results from CSV to JSON. [#59619](https://github.com/sourcegraph/sourcegraph/pull/59619)
-- [Search Jobs](https://docs.sourcegraph.com/code_search/how-to/search-jobs) is now in beta and enabled by default. It can be disabled in the site configuration by setting `experimentalFeatures.searchJobs: false`.
-- The search input on the search homepage is now automatically focused when the page loads.
-- gRPC is now the only method for our internal APIs, and can not be disabled. All of corresponding the REST implementations have been removed. The vast majority of customers upgrading to 5.3 don't need to take any action - the change should be invisible. However, if you have restrictions on Sourcegraph’s internal (service to service) traffic, some firewall or security configurations may be necessary. You can downgrade to Sourcegraph 5.2 and disable gRPC while you troubleshoot / reach out to our customer support team. See [https://sourcegraph.com/docs/admin/updates/grpc](https://sourcegraph.com/docs/admin/updates/grpc) for more details. [#59093](https://github.com/sourcegraph/sourcegraph/pull/59093)
-- The default `count:` for search has been increased to 10000, significantly increasing the number of searches that are exhaustive by default. [#60114](https://github.com/sourcegraph/sourcegraph/pull/60114)
-
-### Fixed
-
-- Site configuration edit history no longer breaks when the user that made the edit is deleted. [#57656](https://github.com/sourcegraph/sourcegraph/pull/57656)
-- Drilling down into an insights query no longer mangles `content:` fields in your query. [#57679](https://github.com/sourcegraph/sourcegraph/pull/57679)
-- The blame column now shows correct blame information when a hunk starts in a folded code section. [#58042](https://github.com/sourcegraph/sourcegraph/pull/58042)
-- Fixed a bug where typing in the GraphQL editor in the Site Admin API console could cause the cursor to jump to the start of the editor. [#57862](https://github.com/sourcegraph/sourcegraph/pull/57862)
-- The blame column no longer ignores whitespace-only changes by default. [#58134](https://github.com/sourcegraph/sourcegraph/pull/58134)
-- Long lines now wrap correctly in the diff view. [#58138](https://github.com/sourcegraph/sourcegraph/pull/58138)
-- Fixed an issue in the search input where pressing Enter after selecting a suggestion would sometimes insert another suggestions instead of submitting the query. [#58186](https://github.com/sourcegraph/sourcegraph/pull/58186)
-- Fixed an issue where having sub-repo permissions enabled could cause repositories with a large number of files in directories to become unviewable. [#59420](https://github.com/sourcegraph/sourcegraph/pull/59420)
-- On the search context, code monitoring, code insights, saved searches or notebook pages, when selecting a repository or file suggestion in the query input with Enter the suggestion is now properly appended to the query instead of navigating away to the corresponding repository or file page. [#59941](https://github.com/sourcegraph/sourcegraph/pull/59941)
-- Perforce email matching for user permissions is now case insensitive, matching Perforce behavior. [#60252](https://github.com/sourcegraph/sourcegraph/pull/60252)
-- A bug with syncing GitHub App installations that caused installations to be truncated after the first 30 orgs. [#60383](https://github.com/sourcegraph/sourcegraph/pull/60383)
-- Various significant performance optimizations in the search and code navigation user flows.
-
-### Removed
-
-- The experimental GraphQL query `User.invitableCollaborators`.
-- The following experimental settings in site-configuration are now deprecated and will not be read anymore: `maxReorderQueueSize`, `maxQueueMatchCount`, `maxReorderDurationMS`. [#57468](https://github.com/sourcegraph/sourcegraph/pull/57468)
-- The feature-flag `search-ranking`, which allowed to disable the improved ranking introduced in 5.1, is now deprecated and will not be read anymore. [#57468](https://github.com/sourcegraph/sourcegraph/pull/57468)
-- The GitHub Proxy service is no longer required and has been removed from deployment options. [#55290](https://github.com/sourcegraph/sourcegraph/issues/55290)
-- The VSCode search extension "Sourcegraph for VS Code" has been sunset and removed from Sourcegraph
- repository. [#58023](https://github.com/sourcegraph/sourcegraph/pull/58023)
-- The `rateLimit` configuration for Perforce code host connections has been removed to avoid confusion, it was unused. [#58188](https://github.com/sourcegraph/sourcegraph/pull/58188)
-- The feature flag `search-ranking` is now completely removed. [#58156](https://github.com/sourcegraph/sourcegraph/pull/58156)
-- The notepad UI, notebook creation feature. [#58217](https://github.com/sourcegraph/sourcegraph/pull/58217)
-- The experimental `indexRepositoryName` option for the rust packages code host connection has been removed. [#59176](https://github.com/sourcegraph/sourcegraph/pull/59176)
-- The column "Repository metadata" in the CSV export of repository search results is now deprecated and will be removed in a future release. Use "Repository metadata JSON" instead [#59334](https://github.com/sourcegraph/sourcegraph/pull/59334)
-- Remote embeddings as context source for Cody has been removed. [#59493](https://github.com/sourcegraph/sourcegraph/pull/59493)
-
-## 5.2.7
-
-### Added
-
-### Fixed
-
-- The reference panel correctly shows definition and reference information instead of a "Could not find token" error for MATLAB. [#59636](https://github.com/sourcegraph/sourcegraph/pull/59636)
-- The auto-index configuration page correctly shows any auto-inference errors instead of a nil pointer exception. [#59756](https://github.com/sourcegraph/sourcegraph/pull/59756)
-
-### Removed
-
-### Changed
-
-## 5.2.6
-
-### Added
-
-- Implement adding automatic retry support for idempotent gRPC methods [#59404](https://github.com/sourcegraph/sourcegraph/pull/59404)
-
-### Fixed
-
-- Fix executors auth header `installSrc` [#59391](https://github.com/sourcegraph/sourcegraph/pull/59391)
-- Avoid constantly rerunning failed embeddings jobs. [#58980](https://github.com/sourcegraph/sourcegraph/pull/58980)
-
-## 5.2.5
-
-### Added
-
-- Added Cody providers data to pings. [#58848](https://github.com/sourcegraph/sourcegraph/pull/58848)
-- Added the ability to proxy authentication requests when using the Azure OpenAI Cody provider. [#58862](https://github.com/sourcegraph/sourcegraph/pull/58862)
-
-### Fixed
-
-- Fixed an issue where updating a generic git code host would cause it to become unrestricted if permissions user mapping is enabled. [#58772](https://github.com/sourcegraph/sourcegraph/pull/58772)
-- Fail embeddings jobs immediately if the rate limit is exceeded. [#58869](https://github.com/sourcegraph/sourcegraph/pull/58869)
-
-### Changed
-
-- Improved the admin page for search indexing. [#58866](https://github.com/sourcegraph/sourcegraph/pull/58866)
-
-### Removed
-
-## 5.2.4
-
-### Added
-
-- Added the ability to use Workload Identity, Managed Identity and Environmental credentials when using the Azure OpenAI completions and embeddings providers [#58289](https://github.com/sourcegraph/sourcegraph/pull/58289)
-- Added support for cloning via SSH from Azure DevOps. [#58655](https://github.com/sourcegraph/sourcegraph/pull/58655)
-
-### Fixed
-
-- Fixed two issues in Zoekt that could cause out of memory errors during search indexing. [sourcegraph/zoekt#686](https://github.com/sourcegraph/zoekt/pull/686), [sourcegraph/zoekt#689](https://github.com/sourcegraph/zoekt/pull/689)
-- Fixed performance issue with embeddings job scheduling. (#58651)[https://github.com/sourcegraph/sourcegraph/pull/58651]
-
-## 5.2.3
-
-### Added
-
-- Added configurable GraphQL query cost limitations to prevent unintended resource exhaustion. Default values are now provided and enforced, replacing the previously unlimited behaviour. For more information, please refer to: [GraphQL Cost Limits Documentation](https://docs.sourcegraph.com/api/graphql#cost-limits). See details at [#58346](https://github.com/sourcegraph/sourcegraph/pull/58346).
-- Sourcegraph now supports connecting to Bitbucket Cloud using Workspace Access Tokens. [#58465](https://github.com/sourcegraph/sourcegraph/pull/58465).
-
-### Fixed
-
-- Defining file filters for embeddings jobs no longer causes all files to be skipped if `MaxFileSizeBytes` isn't defined. [#58262](https://github.com/sourcegraph/sourcegraph/pull/58262)
-
-## 5.2.2
-
-### Added
-
-- Added a new authorization configuration options to GitLab code host connections: "markInternalReposAsPublic". Setting "markInternalReposAsPublic" to true is useful for organizations that have a large amount of internal repositories that everyone on the instance should be able to access, removing the need to have permissions to access these repositories. Additionally, when configuring a GitLab auth provider, you can specify "syncInternalRepoPermissions": false, which will remove the need to sync permissions for these internal repositories. [#57858](https://github.com/sourcegraph/sourcegraph/pull/57858)
-- Experimental support for OpenAI powered autocomplete has been added. [#57872](https://github.com/sourcegraph/sourcegraph/pull/57872)
-
-### Fixed
-
-- Updated the endpoint used by the AWS Bedrock Claude provider. [#58028](https://github.com/sourcegraph/sourcegraph/pull/58028)
-
-## 5.2.1
-
-### Added
-
-- Added two new authorization configuration options to GitHub code host connections: "markInternalReposAsPublic" and "syncInternalRepoPermissions". Setting "markInternalReposAsPublic" to true is useful for organizations that have a large amount of internal repositories that everyone on the instance should be able to access, removing the need to have permissions to access these repositories. Setting "syncInternalRepoPermissions" to true adds an additional step to user permission syncs that explicitly checks for internal repositories. However, this could lead to longer user permission sync times. [#56677](https://github.com/sourcegraph/sourcegraph/pull/56677)
-- Fixed an issue with Code Monitors that could cause users to be notified multiple times for the same commit [#57546](https://github.com/sourcegraph/sourcegraph/pull/57546)
-- Fixed an issue with Code Monitors that could prevent a new code monitor from being created if it targeted multiple repos [#57546](https://github.com/sourcegraph/sourcegraph/pull/57546)
-- Sourcegraph instances will now emit a limited set of [telemetry events](https://docs.sourcegraph.com/admin/telemetry) in the background by default ([#57605](https://github.com/sourcegraph/sourcegraph/pull/57605)). Enablement will be based on the following conditions:
- - Customers with a license key created after October 3, 2023, or do not have a valid license key configured, will export all telemetry events recorded in the new system.
- - Customers with a license key created before October 3, 2023 will export only Cody-related events recorded in the new system, as covered by the [Cody Usage and Privacy Notice](https://about.sourcegraph.com/terms/cody-notice).
- - If you have a previous agreement regarding telemetry sharing, you account representative will reach out with more details.
-
-### Fixed
-
-- Fixed a user's Permissions page being inaccessible if the user has had no permission syncs with an external account connected. [#57372](https://github.com/sourcegraph/sourcegraph/pull/57372)
-- Fixed a bug where site admins could not view a user's permissions if they didn't have access to all of the repositories the user has. Admins still won't be able to see repositories they don't have access to, but they will now be able to view the rest of the user's repository permissions. [#57375](https://github.com/sourcegraph/sourcegraph/pull/57375)
-- Fixed a bug where gitserver statistics would not be properly decoded / reported when using REST (i.e. `experimentalFeatures.enableGRPC = false` in site configuration). [#57318](https://github.com/sourcegraph/sourcegraph/pull/57318)
-- Updated the `curl` and `libcurl` dependencies to `8.4.0-r0` to fix [CVE-2023-38545](https://curl.se/docs/CVE-2023-38545.html). [#57533](https://github.com/sourcegraph/sourcegraph/pull/57533)
-- Fixed a bug where commit signing failed when creating a changeset if `batchChanges.enforceFork` is set to true. [#57520](https://github.com/sourcegraph/sourcegraph/pull/57520)
-- Fixed a regression in ranking of Go struct and interface in search results. [zoekt#655](https://github.com/sourcegraph/zoekt/pull/655)
-
-## 5.2.0
-
-### Added
-
-- Experimental support for AWS Bedrock Claude for the completions provider has been added. [#56321](https://github.com/sourcegraph/sourcegraph/pull/56321)
-- Recorded command logs can now be viewed for Git operations performed by Sourcegraph. This provides auditing and debugging capabilities. [#54997](https://github.com/sourcegraph/sourcegraph/issues/54997)
-- Disk usage metrics for gitservers are now displayed on the site admin Git Servers page, showing free/total disk space. This helps site admins monitor storage capacity on GitServers. [#55958](https://github.com/sourcegraph/sourcegraph/issues/55958)
-- Overhauled Admin Onboarding UI for enhanced user experience, introducing a license key modal with validation, automated navigation to Site Configuration Page, an interactive onboarding checklist button, and direct documentation links for SMTP and user authentication setup. [56366](https://github.com/sourcegraph/sourcegraph/pull/56366)
-- New experimental feature "Search Jobs". Search Jobs allows you to run search queries across your organization's codebase (all repositories, branches, and revisions) at scale. It enhances the existing Sourcegraph's search capabilities, enabling you to run searches without query timeouts or incomplete results. Please refer to the [documentation](https://docs.sourcegraph.com/code_search/how-to/search-jobs) for more information.
-
-### Changed
-
-- OpenTelemetry Collector has been upgraded to v0.81, and OpenTelemetry packages have been upgraded to v1.16. [#54969](https://github.com/sourcegraph/sourcegraph/pull/54969), [#54999](https://github.com/sourcegraph/sourcegraph/pull/54999)
-- Bitbucket Cloud code host connections no longer automatically syncs the repository of the username used. The appropriate workspace name will have to be added to the `teams` list if repositories for that account need to be synced. [#55095](https://github.com/sourcegraph/sourcegraph/pull/55095)
-- Newly created access tokens are now hidden by default in the Sourcegraph UI. To view a token, click "show" button next to the token. [#56481](https://github.com/sourcegraph/sourcegraph/pull/56481)
-- The GitHub proxy service has been removed and is no longer required. You can safely remove it from your deployment. [#55290](https://github.com/sourcegraph/sourcegraph/issues/55290)
-- On startup, Zoekt indexserver will now delete the `/.indexserver.tmp` directory to remove leftover repository clones, possibly causing a brief delay. Due to a bug, this directory wasn't previously cleaned up and could cause unnecessary disk usage. [zoekt#646](https://github.com/sourcegraph/zoekt/pull/646).
-- gRPC is now used by default for all internal (service to service) communication. This change should be invisible to most customers. However, if you're running in an environment that places restrictions on Sourcegraph's internal traffic, some prior configuration might be required. See the ["Sourcegraph 5.2 gRPC Configuration Guide"](https://docs.sourcegraph.com/admin/updates/grpc) for more information. [#56738](https://github.com/sourcegraph/sourcegraph/pull/56738)
-
-### Fixed
-
-- Language detection for code highlighting now uses `go-enry` for all files by default, which fixes highlighting for MATLAB files. [#56559](https://github.com/sourcegraph/sourcegraph/pull/56559)
-
-### Removed
-
-- indexed-search has removed the deprecated environment variable ZOEKT_ENABLE_LAZY_DOC_SECTIONS [zoekt#620](https://github.com/sourcegraph/zoekt/pull/620)
-- The federation feature that could redirect users from their own Sourcegraph instance to public repositories on Sourcegraph.com has been removed. It allowed users to open a repository URL on their own Sourcegraph instance and, if the repository wasn't found on that instance, the user would be redirect to the repository on Sourcegraph.com, where it was possibly found. The feature has been broken for over a year though and we don't know that it was used. If you want to use it, please open a feature-request issue and tag the `@sourcegraph/source` team. [#55161](https://github.com/sourcegraph/sourcegraph/pull/55161)
-- The `applySearchQuerySuggestionOnEnter` experimental feature flag in user settings was removed, and this behavior is now always enabled. Previously, this behavior was on by default, but it was possible to disable it.
-- The feature-flag `search-hybrid`, which allowed to disable the performance improvements for unindexed search in 4.3, is now deprecated and will not be read anymore. [#56470](https://github.com/sourcegraph/sourcegraph/pull/56470)
-
-## 5.1.9
-
-### Added
-
-- Enable "Test connection" for Perforce code hosts. The "Test connection" button in the code host page UI now works for Perforce code hosts. [#56697](https://github.com/sourcegraph/sourcegraph/pull/56697)
-
-### Changed
-
-- User access to Perforce depots is sometimes denied unintentionally when using `"authorization"/"subRepoPermissions": true` in the code host config and the protects file contains exclusionary entries with the Host field filled out. Ignoring those rules (that use anything other than the wildcard (`*`) in the Host field) is now toggle-able by adding `"authorization"/"ignoreRulesWithHost"` to the code host config and setting the value to `true`. [#56450](https://github.com/sourcegraph/sourcegraph/pull/56450)
-
-### Fixed
-
-- Fixed an issue where the "gitLabProjectVisibilityExperimental" feature flag would not be respected by the permissions syncer. This meant that users on Sourcegraph that have signed in with GitLab would not see GitLab internal repositories that should be accessible to everyone on the GitLab instance, even though the feature flag was enabled [#56492](https://github.com/sourcegraph/sourcegraph/pull/56492)
-- Fixed a bug when syncing repository lists from GitHub that could lead to 404 errors showing up when running into GitHub rate limits [#56478](https://github.com/sourcegraph/sourcegraph/pull/56478)
-
-## 5.1.8
-
-### Added
-
-- Added experimental autocomplete support for Azure OpenAI [#56063](https://github.com/sourcegraph/sourcegraph/pull/56063)
-
-### Changed
-
-- Improved stability of gRPC connections [#56314](https://github.com/sourcegraph/sourcegraph/pull/56314), [#56302](https://github.com/sourcegraph/sourcegraph/pull/56302), [#56298](https://github.com/sourcegraph/sourcegraph/pull/56298), [#56217](https://github.com/sourcegraph/sourcegraph/pull/56217)
-
-## 5.1.7
-
-### Changed
-
-- Pressing `Mod-f` will always select the input value in the file view search [#55546](https://github.com/sourcegraph/sourcegraph/pull/55546)
-- Caddy has been updated to version 2.7.3 resolving a number of vulnerabilities. [#55606](https://github.com/sourcegraph/sourcegraph/pull/55606)
-- The commit message defined in a batch spec will now be passed to `git commit` on stdin using `--file=-` instead of being included inline with `git commit -m` to improve how the message is interpreted by `git` in certain edge cases, such as when the commit message begins with a dash, and to prevent extra quotes being added to the message. This may mean that previous escaping strategies will behave differently.
-
-### Fixed
-
-- Fixed a bug in the `deploy-sourcegraph-helm` deployment of Sourcegraph, for sufficiantly large scip indexes uploads will fail when the precise-code-intel worker attempts to write to `/tmp` and doesn't have a volume mounted for this purpose. See [kubernetes release notes](./admin/updates/kubernetes.md#v516-➔-v517) for more details [#342](https://github.com/sourcegraph/deploy-sourcegraph-helm/pull/343)
-
-## 5.1.6
-
-### Added
-
-- New Prometheus metrics have been added to track the response / request sizes of gRPC calls. [#55381](https://github.com/sourcegraph/sourcegraph/pull/55381)
-- A new embeddings site configuration setting `excludeChunkOnError` allows embedding jobs to complete job execution despite chunks of code or text that fail. When enabled the chunks are skipped after failed retries but the index can continue being populated. When disabled the entire job fails and the index is not saved. This setting is enabled by default. Embedding job statistics now capture `code_chunks_excluded` and `text_chunks_excluded` for successfully completed jobs. Total excluded chunks and file names for excluded chunks are logged as warnings. [#55180](https://github.com/sourcegraph/sourcegraph/pull/55180)
-- Experimental support for Azure OpenAI for the completions and embeddings provider has been added. [#55178](https://github.com/sourcegraph/sourcegraph/pull/55178)
-- Added a feature flag for alternate GitLab project visibility resolution. This may solve some weird cases with not being able to see GitLab internal projects. [#54426](https://github.com/sourcegraph/sourcegraph/pull/54426)
- - To use this feature flag, create a Boolean feature flag named "gitLabProjectVisibilityExperimental" and set the value to True.
-- It is now possible to add annotations to pods spawned by jobs created by the Kubernetes executor. [#55361](https://github.com/sourcegraph/sourcegraph/pull/55361)
-
-### Changed
-
-- Updated all packages in container images to latest versions
-- Updated Docker-in-Docker image from 23.0.1 to 23.0.6
-- The gRPC implementation for the Symbol service's `LocalCodeIntel` endpoint has been changed to stream its results. [#55242](https://github.com/sourcegraph/sourcegraph/pull/55242)
-- When using OpenAI or Azure OpenAI for Cody completions, code completions will be disabled - chat will continue to work. This is because we currently don't support code completions with OpenAI. [#55624](https://github.com/sourcegraph/sourcegraph/pull/55624)
-
-### Fixed
-
-- Fixed a bug where user account requests could not be approved even though the license would permit user creation otherwise. [#55482](https://github.com/sourcegraph/sourcegraph/pull/55482)
-- Fixed a bug where the background scheduler for embedding jobs based on policies would not schedule jobs for private repositories. [#55698](https://github.com/sourcegraph/sourcegraph/pull/55698)
-- Fixed a source of inconsistency in precise code navigation, affecting implementations and prototypes especially. [#54410](https://github.com/sourcegraph/sourcegraph/pull/54410)
-
-### Removed
-
-## 5.1.5
-
-### Known Issues
-
-- Standard and multi-version upgrades are not currently working from Sourcegraph versions 5.0.X to 5.1.5. As a temporary workaround, please upgrade 5.0.X to 5.1.0, then 5.1.0 to 5.1.5.
-
-### Fixed
-
-- Fixed an embeddings job scheduler bug where if we cannot resolve one of the repositories or its default branch then all repositories submitted will not have their respective embeddings job enqueued. Embeddings job scheduler will now continue to schedule jobs for subsequent repositories in the submitted repositories set. [#54701](https://github.com/sourcegraph/sourcegraph/pull/54701)
-- Creation of GitHub Apps will now respect system certificate authorities when specifying certificates for the tls.external site configuration. [#55084](https://github.com/sourcegraph/sourcegraph/pull/55084)
-- Passing multi-line Coursier credentials in JVM packages configuration should now work correctly. [#55113](https://github.com/sourcegraph/sourcegraph/pull/55113)
-- SCIP indexes are now ingested in a streaming fashion, eliminating out-of-memory errors in most cases, even when uploading very large indexes (1GB+ uncompressed). [#53828](https://github.com/sourcegraph/sourcegraph/pull/53828)
-- Moved the license checks to worker service. We make sure to run only 1 instance of license checks this way. [54854](https://github.com/sourcegraph/sourcegraph/pull/54854)
-- Updated base images to resolve issues in curl, OpenSSL, and OpenSSL. [55310](https://github.com/sourcegraph/sourcegraph/pull/55310)
-- The default message size limit for gRPC clients has been raised from 4MB to 90MB. [#55209](https://github.com/sourcegraph/sourcegraph/pull/55209)
-- The message printing feature for the custom gRPC internal error interceptor now supports logging all internal error types, instead of just non-utf 8 errors. [#55130](https://github.com/sourcegraph/sourcegraph/pull/55130)
-- Fixed an issue where GitHub Apps could not be set up using Firefox. [#55305](https://github.com/sourcegraph/sourcegraph/pull/55305)
-- Fixed nil panic on certain GraphQL fields when listing users. [#55322](https://github.com/sourcegraph/sourcegraph/pull/55322)
-
-### Changed
-
-- The "Files" tab of the fuzzy finder now allows you to navigate directly to a line number by appending `:NUMBER`. For example, the fuzzy query `main.ts:100` opens line 100 in the file `main.ts`. [#55064](https://github.com/sourcegraph/sourcegraph/pull/55064)
-- The gRPC implementation for the Symbol service's `LocalCodeIntel` endpoint has been changed to stream its results. [#55242](https://github.com/sourcegraph/sourcegraph/pull/55242)
-- GitLab auth providers now support an `ssoURL` option that facilitates scenarios where a GitLab group requires SAML/SSO. [#54957](https://github.com/sourcegraph/sourcegraph/pull/54957)
-
-### Added
-
-### Removed
-
-## 5.1.4
-
-### Fixed
-
-- A bug where we would temporarily use much more memory than needed during embeddings fetching. [#54972](https://github.com/sourcegraph/sourcegraph/pull/54972)
-
-### Changed
-
-- The UI for license keys now displays more information about license validity. [#54990](https://github.com/sourcegraph/sourcegraph/pull/54990)
-- Sourcegraph now supports more than one auth provider per URL. [#54289](https://github.com/sourcegraph/sourcegraph/pull/54289)
-- Site-admins can now list, view and edit all code monitors. [#54981](https://github.com/sourcegraph/sourcegraph/pull/54981)
-
-## 5.1.3
-
-### Changed
-
-- Cody source code (for the VS Code extension, CLI, and client shared libraries) has been moved to the [sourcegraph/cody repository](https://github.com/sourcegraph/cody).
-- `golang.org/x/net/trace` instrumentation, previously available under `/debug/requests` and `/debug/events`, has been removed entirely from core Sourcegraph services. It remains available for Zoekt. [#53795](https://github.com/sourcegraph/sourcegraph/pull/53795)
-
-### Fixed
-
-- Fixed an embeddings job scheduler bug where if we cannot resolve one of the repositories or its default branch then all repositories submitted will not have their respective embeddings job enqueued. Embeddings job scheduler will now continue to schedule jobs for subsequent repositories in the submitted repositories set. [#54701](https://github.com/sourcegraph/sourcegraph/pull/54701)
-
-## 5.1.2
-
-### Fixed
-
-- Fixes a crash when uploading indexes with malformed source ranges (this was a bug in scip-go). [#54304](https://github.com/sourcegraph/sourcegraph/pull/54304)
-- Fixed validation of Bitbucket Cloud configuration in site-admin create/update form. [#54494](https://github.com/sourcegraph/sourcegraph/pull/54494)
-- Fixed race condition with grpc `server.send` message. [#54500](https://github.com/sourcegraph/sourcegraph/pull/54500)
-- Fixed a configuration initialization issue that broke the outbound request in the site admin page. [#54745](https://github.com/sourcegraph/sourcegraph/pull/54745)
-- Fixed Postgres DSN construction edge-case. [#54858](https://github.com/sourcegraph/sourcegraph/pull/54858)
-
-## 5.1.1
-
-### Fixed
-
-- Fixed the default behaviour when the explicit permissions API is enabled. Repositories are no longer marked as unrestricted by default. [#54419](https://github.com/sourcegraph/sourcegraph/pull/54419)
-
-## 5.1.0
-
-> **Note**: As of 5.1.0, the limited OSS subset of Sourcegraph has been removed, and code search OSS code has been relicensed going forward. See https://github.com/sourcegraph/sourcegraph/issues/53528#issuecomment-1594967818 for more information (blog post coming soon).
-
-> **Note**: As of 5.1.0, the `rsa-sha` signature algorithm is no longer supported when connecting to code hosts over SSH. If you encounter the error `sign_and_send_pubkey: no mutual signature supported` when syncing repositories, see [Repository authentication](https://docs.sourcegraph.com/admin/repo/auth#error-sign_and_send_pubkey-no-mutual-signature-supported) for more information and steps to resolve the issue.
-
-### [Known issues](KNOWN-ISSUES.md)
-
-- There is an issue with Sourcegraph instances configured to use explicit permissions using permissions.userMapping in Site configuration, where repository permissions are not enforced. Customers using the explicit permissions API are advised to upgrade to v5.1.1 directly.
-- There is an issue with creating and updating existing Bitbucket.org (Cloud) code host connections due to problem with JSON schema validation which prevents the JSON editor from loading and surfaces as an error in the UI.
-
-### Added
-
-- Executors natively support Kubernetes environments. [#49236](https://github.com/sourcegraph/sourcegraph/pull/49236)
-- Documentation for GitHub fine-grained access tokens. [#50274](https://github.com/sourcegraph/sourcegraph/pull/50274)
-- Code Insight dashboards retain size and order of the cards. [#50301](https://github.com/sourcegraph/sourcegraph/pull/50301)
-- The LLM completions endpoint is now exposed through a GraphQL query in addition to the streaming endpoint [#50455](https://github.com/sourcegraph/sourcegraph/pull/50455)
-- Permissions center statistics pane is added. Stats include numbers of queued jobs, users/repos with failed jobs, no permissions, and outdated permissions. [#50535](https://github.com/sourcegraph/sourcegraph/pull/50535)
-- SCIM user provisioning support for Deactivate/Reactivation of users. [#50533](https://github.com/sourcegraph/sourcegraph/pull/50533)
-- Login form can now be configured with ordering and limit of auth providers. [See docs](https://docs.sourcegraph.com/admin/auth/login_form). [#50586](https://github.com/sourcegraph/sourcegraph/pull/50586), [50284](https://github.com/sourcegraph/sourcegraph/pull/50284) and [#50705](https://github.com/sourcegraph/sourcegraph/pull/50705)
-- OOM reaper events affecting `p4-fusion` jobs on `gitserver` are better detected and handled. Error (non-zero) exit status is used, and the resource (CPU, memory) usage of the job process is appended to the job output so that admins can infer possible OOM activity and take steps to address it. [#51284](https://github.com/sourcegraph/sourcegraph/pull/51284)
-- When creating a new batch change, spaces are automatically replaced with dashes in the name field. [#50825](https://github.com/sourcegraph/sourcegraph/pull/50825) and [51071](https://github.com/sourcegraph/sourcegraph/pull/51071)
-- Support for custom HTML injection behind an environment variable (`ENABLE_INJECT_HTML`). This allows users to enable or disable HTML customization as needed, which is now disabled by default. [#51400](https://github.com/sourcegraph/sourcegraph/pull/51400)
-- Added the ability to block auto-indexing scheduling and inference via the `codeintel_autoindexing_exceptions` Postgres table. [#51578](https://github.com/sourcegraph/sourcegraph/pull/51578)
-- When an admin has configured rollout windows for Batch Changes changesets, the configuration details are now visible to all users on the Batch Changes settings page. [#50479](https://github.com/sourcegraph/sourcegraph/pull/50479)
-- Added support for regular expressions in`exclude` repositories for GitLab code host connections. [#51862](https://github.com/sourcegraph/sourcegraph/pull/51862)
-- Branches created by Batch Changes will now be automatically deleted on the code host upon merging or closing a changeset if the new `batchChanges.autoDeleteBranch` site setting is enabled. [#52055](https://github.com/sourcegraph/sourcegraph/pull/52055)
-- Repository metadata now generally available for everyone [#50567](https://github.com/sourcegraph/sourcegraph/pull/50567), [#50607](https://github.com/sourcegraph/sourcegraph/pull/50607), [#50857](https://github.com/sourcegraph/sourcegraph/pull/50857), [#50908](https://github.com/sourcegraph/sourcegraph/pull/50908), [#972](https://github.com/sourcegraph/src-cli/pull/972), [#51031](https://github.com/sourcegraph/sourcegraph/pull/51031), [#977](https://github.com/sourcegraph/src-cli/pull/977), [#50821](https://github.com/sourcegraph/sourcegraph/pull/50821), [#51258](https://github.com/sourcegraph/sourcegraph/pull/51258), [#52078](https://github.com/sourcegraph/sourcegraph/pull/52078), [#51985](https://github.com/sourcegraph/sourcegraph/pull/51985), [#52150](https://github.com/sourcegraph/sourcegraph/pull/52150), [#52249](https://github.com/sourcegraph/sourcegraph/pull/52249), [#51982](https://github.com/sourcegraph/sourcegraph/pull/51982), [#51248](https://github.com/sourcegraph/sourcegraph/pull/51248), [#51921](https://github.com/sourcegraph/sourcegraph/pull/51921), [#52301](https://github.com/sourcegraph/sourcegraph/pull/52301)
-- Batch Changes for Gerrit Code Hosts [#52647](https://github.com/sourcegraph/sourcegraph/pull/52647).
-- Batch Changes now supports per-batch-change control for pushing to a fork of the upstream repository when the property `changesetTemplate.fork` is specified in the batch spec. [#51572](https://github.com/sourcegraph/sourcegraph/pull/51572)
-- Executors can now be configured to process multiple queues. [#52016](https://github.com/sourcegraph/sourcegraph/pull/52016)
-- Added `isCodyEnabled` as a new GraphQL field to `Site`. [#52941](https://github.com/sourcegraph/sourcegraph/pull/52941)
-- Enabled improved search ranking by default. This feature can be disabled through the `search-ranking` feature flag.[#53031](https://github.com/sourcegraph/sourcegraph/pull/53031)
-- Added token callback route for Cody in VS Code and VS Code insiders. [#53313](https://github.com/sourcegraph/sourcegraph/pull/53313)
-- Latest repository clone/sync output is surfaced in the "Mirroring and cloning" page (`{REPO}/-/settings/mirror`). Added primarily to enable easier debugging of issues with Perforce depots, it can also be useful for other code hosts. [#51598](https://github.com/sourcegraph/sourcegraph/pull/51598)
-- New `file:has.contributor(...)` predicate for filtering files based on contributors. [#53206](https://github.com/sourcegraph/sourcegraph/pull/53206)
-- Added multi-repo scope selector for Cody on the web supporting unified context generation API which uses combination of embeddings search and keyword search as fallback for context generation. [53046](https://github.com/sourcegraph/sourcegraph/pull/53046)
-- Batch Changes can now sign commits for changesets published on GitHub code hosts via GitHub Apps. [#52333](https://github.com/sourcegraph/sourcegraph/pull/52333)
-- Added history of changes to the site configuration page. Site admins can now see information about changes made to the site configuration, by whom and when. [#49842](https://github.com/sourcegraph/sourcegraph/pull/49842)
-- For Perforce depots, users will now see the changelist ID (CL) instead of Git commit SHAs when visiting a depot or the view changelists page [#51195](https://github.com/sourcegraph/sourcegraph/pull/51195)
-- Visiting a specific CL will now use the CL ID in the URL instead of the commit SHA. Other areas affected by this change are browsing files at a specific CL, viewing a specific file changed as part of a specific CL. To enable this behaviour, site admins should set `"perforceChangelistMapping": "enabled"` under experimentalFeatures in the site configuration. Note that currently we process only one perforce depot at a time to map the commit SHAs to their CL IDs in the backend. In a subsequent release we will add support to process multiple depots in parallel. Other areas where currently commit SHAs are used will be updated in future releases. [#53253](https://github.com/sourcegraph/sourcegraph/pull/53253) [#53608](https://github.com/sourcegraph/sourcegraph/pull/53608) [#54051](https://github.com/sourcegraph/sourcegraph/pull/54051)
-- Added autoupgrading to automatically perform multi-version upgrades, without manual `migrator` invocations, through the `frontend` deployment. Please see the [documentation](https://docs.sourcegraph.com/admin/updates/automatic) for details. [#52242](https://github.com/sourcegraph/sourcegraph/pull/52242) [#53196](https://github.com/sourcegraph/sourcegraph/pull/53196)
-
-### Changed
-
-- Access tokens now begin with the prefix `sgp_` to make them identifiable as secrets. You can also prepend `sgp_` to previously generated access tokens, although they will continue to work as-is without that prefix.
-- The commit message defined in a batch spec will now be quoted when git is invoked, i.e. `git commit -m "commit message"`, to improve how the message is interpreted by the shell in certain edge cases, such as when the commit message begins with a dash. This may mean that previous escaping strategies will behave differently.
-- 429 errors from external services Sourcegraph talks to are only retried automatically if the Retry-After header doesn't indicate that a retry would be useless. The time grace period can be configured using `SRC_HTTP_CLI_EXTERNAL_RETRY_AFTER_MAX_DURATION` and `SRC_HTTP_CLI_INTERNAL_RETRY_AFTER_MAX_DURATION`. [#51743](https://github.com/sourcegraph/sourcegraph/pull/51743)
-- Security Events NO LONGER write to database by default - instead, they will be written in the [audit log format](https://docs.sourcegraph.com/admin/audit_log) to console. There is a new site config setting `log.securityEventLogs` that can be used to configure security event logs to write to database if the old behaviour is desired. This new default will significantly improve performance for large instances. In addition, the old environment variable `SRC_DISABLE_LOG_PRIVATE_REPO_ACCESS` no longer does anything. [#51686](https://github.com/sourcegraph/sourcegraph/pull/51686)
-- Audit Logs & Security Events are written with the same severity level as `SRC_LOG_LEVEL`. This prevents a misconfiguration
- issue when `log.AuditLogs.SeverityLevel` was set below the overall instance log level. `log.AuditLogs.SeverityLevel` has
- been marked as deprecated and will be removed in a future release [#52566](https://github.com/sourcegraph/sourcegraph/pull/52566)
-- Update minimum supported Redis version to 6.2 [#52248](https://github.com/sourcegraph/sourcegraph/pull/52248)
-- The batch spec properties [`transformChanges`](https://docs.sourcegraph.com/batch_changes/references/batch_spec_yaml_reference#transformchanges) and [`workspaces`](https://docs.sourcegraph.com/batch_changes/references/batch_spec_yaml_reference#workspaces) are now generally available.
-- Cody feature flags have been simplified [#52919](https://github.com/sourcegraph/sourcegraph/pull/52919) See [the docs page for complete setup details](https://docs.sourcegraph.com/cody/explanations/enabling_cody_enterprise)
- - `cody.enabled` in site-config now controls whether Cody is on/off, default `false`.
- - When `cody.enabled` is set and no specific configuration for `completions` and `embeddings` are given, Cody will by default talk to the `sourcegraph` provider, Sourcegraphs Cody Gateway which allows access to chat completions and embeddings.
- - Enabling Cody now requires `cody.enabled` set to `true` and `completions` to be set.
- - `cody.restrictUsersFeatureFlag` replaces `experimentalFeatures.CodyRestrictUsersFeatureFlag` in site-config, default `false`.
- - `completions.enabled` has been deprecated, replaced by `cody.enabled`.
- - The feature flags for Cody in web features have been removed and the single source of truth is now `cody.enabled`.
- - The embeddings configuration now requires a `provider` field to be set.
- - Ping data now reflects whether `cody.enabled` and `completions` are set.
-- If a Sourcegraph request is traced, its trace ID and span ID are now set to the `X-Trace` and `X-Trace-Span` response headers respectively. The trace URL (if a template is configured in `observability.tracing.urlTemplate`) is now set to `X-Trace-URL` - previously, the URL was set to `X-Trace`. [#53259](https://github.com/sourcegraph/sourcegraph/pull/53259)
-- For users using the single-container server image with the default built-in database, the database must be reindexed. This process can take up to a few hours on systems with large datasets. See [Migrating to Sourcegraph 5.1.x](https://docs.sourcegraph.com/admin/migration/5_1) for full details. [#53256](https://github.com/sourcegraph/sourcegraph/pull/53256)
-- [Sourcegraph Own](https://docs.sourcegraph.com/own) is now available as a beta enterprise feature. `search-ownership` feature flag is removed and doesn't need to be used.
-- Update Jaeger to 1.45.0, and Opentelemetry-Collector to 0.75.0 [#54000](https://github.com/sourcegraph/sourcegraph/pull/54000)
-- Switched container OS to Wolfi for hardened containers [#47182](https://github.com/sourcegraph/sourcegraph/pull/47182), [#47368](https://github.com/sourcegraph/sourcegraph/pull/47368)
-- Batches changes now supports for CODEOWNERS for Github. Pull requests requiring CODEOWNERS approval, will no longer show as approved unless explicitly approved by a CODEOWNER. https://github.com/sourcegraph/sourcegraph/pull/53601
-- The insecure `rsa-sha` signature algorithm is no longer supported when connecting to code hosts over SSH. See the [Repository authentication](https://docs.sourcegraph.com/admin/repo/auth#error-sign_and_send_pubkey-no-mutual-signature-supported) page for further details.
-
-### Fixed
-
-- GitHub `repositoryQuery` searches now respect date ranges and use API requests more efficiently. #[49969](https://github.com/sourcegraph/sourcegraph/pull/49969)
-- Fixed an issue where search based references were not displayed in the references panel. [#50157](https://github.com/sourcegraph/sourcegraph/pull/50157)
-- Symbol suggestions only insert `type:symbol` filters when necessary. [#50183](https://github.com/sourcegraph/sourcegraph/pull/50183)
-- Removed an incorrect beta label on the Search Context creation page [#51188](https://github.com/sourcegraph/sourcegraph/pull/51188)
-- Multi-version upgrades to version `5.0.2` in a fully airgapped environment will not work without the command `--skip-drift-check`. [#51164](https://github.com/sourcegraph/sourcegraph/pull/51164)
-- Could not set "permissions.syncOldestUsers" or "permissions.syncOldestRepos" to zero. [#51255](https://github.com/sourcegraph/sourcegraph/pull/51255)
-- GitLab code host connections will disable repo-centric repository permission syncs when the authentication provider is set as "oauth". This prevents repo-centric permission sync from getting incorrect data. [#51452](https://github.com/sourcegraph/sourcegraph/pull/51452)
-- Code intelligence background jobs did not correctly use an internal context, causing SCIP data to sometimes be prematurely deleted. [#51591](https://github.com/sourcegraph/sourcegraph/pull/51591)
-- Slow request logs now have the correct trace and span IDs attached if a trace is present on the request. [#51826](https://github.com/sourcegraph/sourcegraph/pull/51826)
-- The braindot menu on the blob view no longer fetches data eagerly to prevent performance issues for larger monorepo users. [#53039](https://github.com/sourcegraph/sourcegraph/pull/53039)
-- Fixed an issue where commenting out redacted site-config secrets would re-add the secrets. [#53152](https://github.com/sourcegraph/sourcegraph/pull/53152)
-- Fixed an issue where SCIP packages would sometimes not be written to the database, breaking cross-repository jump to definition. [#53763](https://github.com/sourcegraph/sourcegraph/pull/53763)
-- Fixed an issue when adding a new user external account was not scheduling a new permission sync for the user. [#54144](https://github.com/sourcegraph/sourcegraph/pull/54144)
-- Adding a new user account now correctly schedules a permission sync for the user. [#54258](https://github.com/sourcegraph/sourcegraph/pull/54258)
-- Users/repos without an existing sync job in the permission_sync_jobs table are now scheduled properly. [#54278](https://github.com/sourcegraph/sourcegraph/pull/54278)
-
-### Removed
-
-- User tags are removed in favor of the newer feature flags functionality. [#49318](https://github.com/sourcegraph/sourcegraph/pull/49318)
-- Previously deprecated site config `experimentalFeatures.bitbucketServerFastPerm` has been removed. [#50707](https://github.com/sourcegraph/sourcegraph/pull/50707)
-- Unused site-config field `api.rateLimit` has been removed. [#51087](https://github.com/sourcegraph/sourcegraph/pull/51087)
-- Legacy (table-based) blob viewer. [#50915](https://github.com/sourcegraph/sourcegraph/pull/50915)
-
-## 5.0.6
-
-### Fixed
-
-- SAML assertions to get user display name are now compared case insensitively and we do not always return an error. [#52992](https://github.com/sourcegraph/sourcegraph/pull/52992)
-- Fixed an issue where `type:diff` search would not work when sub-repo permissions are enabled. [#53210](https://github.com/sourcegraph/sourcegraph/pull/53210)
-
-## 5.0.5
-
-### Added
-
-- Organization members can now administer batch changes created by other members in their organization's namespace if the setting `orgs.allMembersBatchChangesAdmin` is enabled for that organization. [#50724](https://github.com/sourcegraph/sourcegraph/pull/50724)
-- Allow instance public access mode based on `auth.public` site config and `allow-anonymous-usage` license tag [#52440](https://github.com/sourcegraph/sourcegraph/pull/52440)
-- The endpoint configuration field for completions is now supported by the OpenAI provider [#52530](https://github.com/sourcegraph/sourcegraph/pull/52530)
-
-### Fixed
-
-- MAU calculation in product analytics and pings use the same condition and UTC at all times. [#52306](https://github.com/sourcegraph/sourcegraph/pull/52306) [#52579](https://github.com/sourcegraph/sourcegraph/pull/52579) [#52581](https://github.com/sourcegraph/sourcegraph/pull/52581)
-- Bitbucket native integration: fix code-intel popovers on the pull request pages. [#52609](https://github.com/sourcegraph/sourcegraph/pull/52609)
-- `id` column of `user_repo_permissions` table was switched to `bigint` to avoid `int` overflow. [#52299](https://github.com/sourcegraph/sourcegraph/pull/52299)
-- In some circumstances filenames containing `..` either could not be read or would return a diff when viewed. We now always correctly read those files. [#52605](https://github.com/sourcegraph/sourcegraph/pull/52605)
-- Syntax highlighting for several languages including Python, Java, C++, Ruby, TypeScript, and JavaScript is now working again when using the single Docker container deployment option. Other deployment options were not affected.
-
-## 5.0.4
-
-### Fixed
-
-- Git blame lookups of repositories synced through `src serve-git` or code hosts using a custom `repositoryPathPattern` will now use the correct URL when streaming git blame is enabled. [#51525](https://github.com/sourcegraph/sourcegraph/pull/51525)
-- Code Insights scoped to a static list of repository names would fail to resolve repositories with permissions enabled, resulting in insights that would not process. [#51657](https://github.com/sourcegraph/sourcegraph/pull/51657)
-- Batches: Resolved an issue with GitHub webhooks where CI check updates fail due to the removal of a field from the GitHub webhook payload. [#52035](https://github.com/sourcegraph/sourcegraph/pull/52035)
-
-## 5.0.3
-
-### Added
-
-- Cody aggregated pings. [#50835](https://github.com/sourcegraph/sourcegraph/pull/50835)
-
-### Fixed
-
-- Bitbucket Server adding an error log if there is no account match for the user. #[51030](https://github.com/sourcegraph/sourcegraph/pull/51030)
-- Editing search context with special characters such as `/` resulted in http 404 error. [#51196](https://github.com/sourcegraph/sourcegraph/pull/51196)
-- Significantly improved performance and reduced memory usage of the embeeddings service. [#50953](https://github.com/sourcegraph/sourcegraph/pull/50953), [#51372](https://github.com/sourcegraph/sourcegraph/pull/51372)
-- Fixed an issue where a Code Insights query with structural search type received 0 search results for the latest commit of any matching repo. [#51076](https://github.com/sourcegraph/sourcegraph/pull/51076)
-
-## 5.0.2
-
-### Added
-
-- An experimental site config setting to restrict cody to users by the cody-experimental feature flag [#50668](https://github.com/sourcegraph/sourcegraph/pull/50668)
-
-### Changed
-
-- Use the Alpine 3.17 releases of cURL and Git
-
-### Fixed
-
-- For Cody, explicitly detect some cases where context is needed to avoid failed responses. [#50541](https://github.com/sourcegraph/sourcegraph/pull/50541)
-- Code Insights that are run over zero repositories will finish processing and show `"No data to display"`. #[50561](https://github.com/sourcegraph/sourcegraph/pull/50561)
-- DNS timeouts on calls to host.docker.internal from every html page load for docker-compose air-gapped instances. No more DNS lookups in jscontext.go anymore. #[50638](https://github.com/sourcegraph/sourcegraph/pull/50638)
-- Improved the speed of the embedding index by significantly decreasing the calls to Gitserver. [#50410](https://github.com/sourcegraph/sourcegraph/pull/50410)
-
-### Removed
-
--
-
-## 5.0.1
-
-### Added
-
-- The ability to exclude certain file path patterns from embeddings.
-- Added a modal to show warnings and errors when exporting search results. [#50348](https://github.com/sourcegraph/sourcegraph/pull/50348)
-
-### Changed
-
-### Fixed
-
-- Fixed CVE-2023-0464 in container images
-- Fixed CVE-2023-24532 in container images
-- Fixed an issue where Slack code monitoring notifications failed when the message was too long. [#50083](https://github.com/sourcegraph/sourcegraph/pull/50083)
-- Fixed an edge case issue with usage statistics calculations that cross over month and year boundaries.
-- Fixed the "Last incremental sync" value in user/repo permissions from displaying a wrong date if no sync had been completed yet.
-- Fixed an issue that caused search context creation to fail with error "you must provide a first or last value to properly paginate" when defining the repositories and revisions with a JSON configuration.
-- Fixed an issue where the incorrect actor was provided when searching an embeddings index.
-- Fixed multiple requests downloading the embeddings index concurrently on an empty cache leading to an out-of-memory error.
-- Fixed the encoding of embeddings indexes which caused out-of-memory errors for large indexes when uploading them from the worker service.
-- Fixed git blame decorations styles
-- CODEOWNERS rules with consecutive slashes (`//`) will no longer fail ownership searches
-- Granting pending permissions to users when experimentalFeatures.unifiedPermissions is turned ON [#50059](https://github.com/sourcegraph/sourcegraph/pull/50059)
-- The unified permissions out of band migration reported as unfinished if there were users with no permissions [#50147](https://github.com/sourcegraph/sourcegraph/pull/50147)
-- Filenames with special characters are correctly handled in Cody's embedding service [#50023](https://github.com/sourcegraph/sourcegraph/pull/50023)
-- Structural search correctly cleans up when done preventing a goroutine leak [#50034](https://github.com/sourcegraph/sourcegraph/pull/50034)
-- Fetch search based definitions in the reference panel if no precise definitions were found [#50179](https://github.com/sourcegraph/sourcegraph/pull/50179)
-
-### Removed
-
-## 5.0.0
-
-### Added
-
-- The environment variable `TELEMETRY_HTTP_PROXY` can be set on the `sourcegraph-frontend` service, to use an HTTP proxy for telemetry and update check requests. [#47466](https://github.com/sourcegraph/sourcegraph/pull/47466)
-- Kubernetes Deployments: Introduced a new Kubernetes deployment option ([deploy-sourcegraph-k8s](https://github.com/sourcegraph/deploy-sourcegraph-k8s)) to deploy Sourcegraph with Kustomize. [#46755](https://github.com/sourcegraph/sourcegraph/issues/46755)
-- Kubernetes Deployments: The new Kustomize deployment ([deploy-sourcegraph-k8s](https://github.com/sourcegraph/deploy-sourcegraph-k8s)) introduces a new base cluster that runs all Sourcegraph services as non-root users with limited privileges and eliminates the need to create RBAC resources. [#4213](https://github.com/sourcegraph/deploy-sourcegraph/pull/4213)
-- Added the `other.exclude` setting to [Other external service config](https://docs.sourcegraph.com/admin/external_service/other#configuration). It can be configured to exclude mirroring of repositories matching a pattern similar to other external services. This is useful when you want to exclude repositories discovered via `src serve-git`. [#48168](https://github.com/sourcegraph/sourcegraph/pull/48168)
-- The **Site admin > Updates** page displays the upgrade readiness information about schema drift and out-of-band migrations. [#48046](https://github.com/sourcegraph/sourcegraph/pull/48046)
-- Pings now contain ownership search and file-view activity counts. [#47062](https://github.com/sourcegraph/sourcegraph/47062)
-- Greatly improves keyboard handling and accessibility of the files and symbol tree on the repository pages. [#12916](https://github.com/sourcegraph/sourcegraph/issues/12916)
-- The file tree on the repository page now automatically expands into single-child directories. [#47117](https://github.com/sourcegraph/sourcegraph/pull/47117)
-- When encountering GitHub rate limits, Sourcegraph will now wait the recommended amount of time and retry the request. This prevents sync jobs from failing prematurely due to external rate limits. [#48423](https://github.com/sourcegraph/sourcegraph/pull/48423)
-- Added a dashboard with information about user and repository background permissions sync jobs. [#46317](https://github.com/sourcegraph/sourcegraph/issues/46317)
-- When encountering GitHub or GitLab rate limits, Sourcegraph will now wait the recommended amount of time and retry the request. This prevents sync jobs from failing prematurely due to external rate limits. [#48423](https://github.com/sourcegraph/sourcegraph/pull/48423), [#48616](https://github.com/sourcegraph/sourcegraph/pull/48616)
-- Switching between code editor, files and symbols trees using keyboard shortcuts (currently under the experimental feature flag: `blob-page-switch-areas-shortcuts`). [#46829](https://github.com/sourcegraph/sourcegraph/pull/46829).
-- Added "SCIM" badges for SCIM-controlled users on the User admin page. [#48727](https://github.com/sourcegraph/sourcegraph/pull/48727)
-- Added Azure DevOps Services as a Tier 1 Code Host, including: repository syncing, permissions syncing, and Batch Changes support. [#46265](https://github.com/sourcegraph/sourcegraph/issues/46265)
-- Added feature to disable some fields on user profiles for SCIM-controlled users. [#48816](https://github.com/sourcegraph/sourcegraph/pull/48816)
-- Native support for ingesting and searching GitHub topics with `repo:has.topic()` [#48875](https://github.com/sourcegraph/sourcegraph/pull/48875)
-- [Role-based Access Control](https://docs.sourcegraph.com/admin/access_control) is now available as an enterprise feature (in Beta). It is currently only supported for Batch Changes functionality. [#43276](https://github.com/sourcegraph/sourcegraph/issues/43276)
-- Site admins can now [restrict creation of batch changes to certain users](https://docs.sourcegraph.com/admin/access_control/batch_changes) by tailoring their roles and the permissions granted to those roles. [#34491](https://github.com/sourcegraph/sourcegraph/issues/34491)
-- Site admins can now [configure outgoing webhooks](https://docs.sourcegraph.com/admin/config/webhooks/outgoing) for Batch Changes to inform external tools of events related to Sourcegraph batch changes and their changesets. [#38278](https://github.com/sourcegraph/sourcegraph/issues/38278)
-- [Sourcegraph Own](https://docs.sourcegraph.com/own) is now available as an experimental enterprise feature. Enable the `search-ownership` feature flag to use it.
-- Gitserver supports a new `COURSIER_CACHE_DIR` env var to configure the cache location for coursier JVM package repos.
-- Pings now emit a histogram of repository sizes cloned by Sourcegraph [48211](https://github.com/sourcegraph/sourcegraph/pull/48211).
-- The search input has been redesigned to greatly improve usability. New contextual suggestions help users learn the Sourcegraph query language as they search. Suggestions have been unified across contexts and filters, and the history mode has been integrated into the input. Improved and expanded keyboard shortcuts also make navigation much easier. This functionality is in beta, and can be disabled in the user menu.
-
-### Changed
-
-- Experimental GraphQL query, `permissionsSyncJobs` is substituted with new non-experimental query which provides full information about permissions sync jobs stored in the database. [#47933](https://github.com/sourcegraph/sourcegraph/pull/47933)
-- Renders `readme.txt` files in the repository page. [#47944](https://github.com/sourcegraph/sourcegraph/pull/47944)
-- Renders GitHub pull request references in all places where a commit message is referenced. [#48183](https://github.com/sourcegraph/sourcegraph/pull/48183)
-- CodeMirror blob view (default) uses selection-driven code navigation. [#48066](https://github.com/sourcegraph/sourcegraph/pull/48066)
-- Older Code Insights data points will now be automatically archived as configured by the site configuration setting `insights.maximumSampleSize`, set to 30 by default. All points can be exported. This behaviour can be disabled using the experimental setting `insightsDataRetention`. [#48259](https://github.com/sourcegraph/sourcegraph/pull/48259)
-- The admin debug GraphQL endpoint for Code Insights will now include the series metadata in the response. [#49473](https://github.com/sourcegraph/sourcegraph/pull/49473)
-- Usage telemetry has been streamlined; there are no longer two categories (critical and non-critical), and telemetry will be streamlined and reviewed/reduced further in upcoming releases. The site admin flag `disableNonCriticalTelemetry` currently still remains but has no effect.
-
-### Fixed
-
-- The symbols service `CACHE_DIR` and `MAX_TOTAL_PATHS_LENGTH` were renamed to have a `SYMBOLS_` prefix in the last version of Sourcegraph; this version fixes a bug where the old names without the `SYMBOLS_` prefix were not respected correctly. Both names now work.
-- Fixed issues with propagating tracing configuration throughout the application. [#47428](https://github.com/sourcegraph/sourcegraph/pull/47428)
-- Enable `auto gc` on fetch when `SRC_ENABLE_GC_AUTO` is set to `true`. [#47852](https://github.com/sourcegraph/sourcegraph/pull/47852)
-- Fixes syntax highlighting and line number issues in the code preview rendered inside the references panel. [#48107](https://github.com/sourcegraph/sourcegraph/pull/48107)
-- The ordering of code host sync error messages in the notifications menu will now be persistent. Previously the order was not guaranteed on a refresh of the status messages, which would make the code host sync error messages jump positions, giving a false sense of change to the site admins. [#48722](https://github.com/sourcegraph/sourcegraph/pull/48722)
-- Fixed Detect & Track Code Insights running over all repositories when during creation a search was used to specify the repositories for the insight. [#49633](https://github.com/sourcegraph/sourcegraph/pull/49633)
-
-### Removed
-
-- The LSIF upload endpoint is no longer supported and has been replaced by a diagnostic error page. src-cli v4.5+ will translate all local LSIF files to SCIP prior to upload. [#47547](https://github.com/sourcegraph/sourcegraph/pull/47547)
-- The experimental setting `authz.syncJobsRecordsLimit` has been removed. [#47933](https://github.com/sourcegraph/sourcegraph/pull/47933)
-- Storing permissions sync jobs statuses in Redis has been removed as now all permissions sync related data is stored in a database. [#47933](https://github.com/sourcegraph/sourcegraph/pull/47933)
-- The key `shared_steps` has been removed from auto-indexing configuration descriptions. If you have a custom JSON auto-indexing configuration set for a repository that defines this key, you should inline the content into each index job's `steps` array. [#48770](https://github.com/sourcegraph/sourcegraph/pull/48770)
-
-## 4.5.1
-
-### Changed
-
-- Updated git to version 2.39.2 to address [reported security vulnerabilities](https://github.blog/2023-02-14-git-security-vulnerabilities-announced-3/) [#47892](https://github.com/sourcegraph/sourcegraph/pull/47892/files)
-- Updated curl to 7.88.1 to address [reported security vulnerabilities](https://curl.se/docs/CVE-2022-42915.html) [#48144](https://github.com/sourcegraph/sourcegraph/pull/48144)
-
-## 4.5.0
-
-### Added
-
-- Endpoint environment variables (`SEARCHER_URL`, `SYMBOLS_URL`, `INDEXED_SEARCH_SERVERS`, `SRC_GIT_SERVERS`) now can be set to replica count values in Kubernetes, Kustomize, Helm and Docker Compose environments. This avoids the need to use service discovery or generating the respective list of addresses in those environments. [#45862](https://github.com/sourcegraph/sourcegraph/pull/45862)
-- The default author and email for changesets will now be pulled from user account details when possible. [#46385](https://github.com/sourcegraph/sourcegraph/pull/46385)
-- Code Insights has a new display option: "Max number of series points to display". This setting controls the number of data points you see per series on an insight. [#46653](https://github.com/sourcegraph/sourcegraph/pull/46653)
-- Added out-of-band migration that will migrate all existing data from LSIF to SCIP (see additional [migration documentation](https://docs.sourcegraph.com/admin/how-to/lsif_scip_migration)). [#45106](https://github.com/sourcegraph/sourcegraph/pull/45106)
-- Code Insights has a new search-powered repositories field that allows you to select repositories with Sourcegraph search syntax. [#45687](https://github.com/sourcegraph/sourcegraph/pull/45687)
-- You can now export all data for a Code Insight from the card menu or the standalone page. [#46795](https://github.com/sourcegraph/sourcegraph/pull/46795), [#46694](https://github.com/sourcegraph/sourcegraph/pull/46694)
-- Added Gerrit as an officially supported code host with permissions syncing. [#46763](https://github.com/sourcegraph/sourcegraph/pull/46763)
-- Markdown files now support `` and `` elements in the rendered view. [#47074](https://github.com/sourcegraph/sourcegraph/pull/47074)
-- Batch Changes: Log outputs from execution steps are now paginated in the web interface. [#46335](https://github.com/sourcegraph/sourcegraph/pull/46335)
-- Monitoring: the searcher dashboard now contains more detailed request metrics as well as information on interactions with the local cache (via gitserver). [#47654](https://github.com/sourcegraph/sourcegraph/pull/47654)
-- Renders GitHub pull request references in the commit list. [#47593](https://github.com/sourcegraph/sourcegraph/pull/47593)
-- Added a new background permissions syncer & scheduler which is backed by database, unlike the old one that was based on an in-memory processing queue. The new system is enabled by default, but can be disabled. Revert to the in-memory processing queue by setting the feature flag `database-permission-sync-worker` to `false`. [#47783](https://github.com/sourcegraph/sourcegraph/pull/47783)
-- Zoekt introduces a new opt-in feature, "shard merging". Shard merging consolidates small index files into larger ones, which reduces Zoekt-webserver's memory footprint [documentation](https://docs.sourcegraph.com/code_search/explanations/search_details#shard-merging)
-- Blob viewer is now backed by the CodeMirror editor. Previous table-based blob viewer can be re-enabled by setting `experimentalFeatures.enableCodeMirrorFileView` to `false`. [#47563](https://github.com/sourcegraph/sourcegraph/pull/47563)
-- Code folding support for the CodeMirror blob viewer. [#47266](https://github.com/sourcegraph/sourcegraph/pull/47266)
-- CodeMirror blob keyboard navigation as experimental feature. Can be enabled in settings by setting `experimentalFeatures.codeNavigation` to `selection-driven`. [#44698](https://github.com/sourcegraph/sourcegraph/pull/44698)
-
-### Changed
-
-- Archived and deleted changesets are no longer counted towards the completion percentage shown in the Batch Changes UI. [#46831](https://github.com/sourcegraph/sourcegraph/pull/46831)
-- Code Insights has a new UI for the "Add or remove insights" view, which now allows you to search code insights by series label in addition to insight title. [#46538](https://github.com/sourcegraph/sourcegraph/pull/46538)
-- When SMTP is configured, users created by site admins via the "Create user" page will no longer have their email verified by default - users must verify their emails by using the "Set password" link they get sent, or have their emails verified by a site admin via the "Emails" tab in user settings or the `setUserEmailVerified` mutation. The `createUser` mutation retains the old behaviour of automatically marking emails as verified. To learn more, refer to the [SMTP and email delivery](https://docs.sourcegraph.com/admin/config/email) documentation. [#46187](https://github.com/sourcegraph/sourcegraph/pull/46187)
-- Connection checks for code host connections have been changed to talk to code host APIs directly via HTTP instead of doing DNS lookup and TCP dial. That makes them more resistant in environments where proxies are used. [#46918](https://github.com/sourcegraph/sourcegraph/pull/46918)
-- Expiration of licenses is now handled differently. When a license is expired promotion to site-admin is disabled, license-specific features are disabled (exceptions being SSO & permission syncing), grace period has been replaced with a 7-day-before-expiration warning. [#47251](https://github.com/sourcegraph/sourcegraph/pull/47251)
-- Searcher will now timeout searches in 2 hours instead of 10 minutes. This timeout was raised for batch use cases (such as code insights) searching old revisions in very large repositories. This limit can be tuned with the environment variable `PROCESSING_TIMEOUT`. [#47469](https://github.com/sourcegraph/sourcegraph/pull/47469)
-- Zoekt now bypasses the regex engine for queries that are common in the context of search-based code intelligence, such as `\bLITERAL\b case:yes`. This can lead to a significant speed-up for "Find references" and "Find implementations" if precise code intelligence is not available. [zoekt#526](https://github.com/sourcegraph/zoekt/pull/526)
-- The Sourcegraph Free license has undergone a number of changes. Please contact support@sourcegraph.com with any questions or concerns. [#46504](https://github.com/sourcegraph/sourcegraph/pull/46504)
- - The Free license allows for only a single private repository on the instance.
- - The Free license does not support SSO of any kind.
- - The Free license does not offer mirroring of code host user permissions.
-- Expired Sourcegraph licenses no longer allow continued use of the product. [#47251](https://github.com/sourcegraph/sourcegraph/pull/47251)
- - Licensed features are disabled once a license expires.
- - Users can no longer be promoted to Site Admins once a license expires.
-
-### Fixed
-
-- Resolved issue which would prevent Batch Changes from being able to update changesets on forks of repositories on Bitbucket Server created prior to version 4.2. [#47397](https://github.com/sourcegraph/sourcegraph/pull/47397)
-- Fixed a bug where changesets created on forks of repositories in a personal user's namespace on GitHub could not be updated after creation. [#47397](https://github.com/sourcegraph/sourcegraph/pull/47397)
-- Fixed a bug where saving default Sort & Limit filters in Code Insights did not persist [#46653](https://github.com/sourcegraph/sourcegraph/pull/46653)
-- Restored the old syntax for `repo:contains` filters that was previously removed in version 4.0.0. For now, both the old and new syntaxes are supported to allow for smooth upgrades. Users are encouraged to switch to the new syntax, since the old one may still be removed in a future version.
-- Fixed a bug where removing an auth provider would render a user's Account Security page inaccessible if they still had an external account associated with the removed auth provider. [#47092](https://github.com/sourcegraph/sourcegraph/pull/47092)
-- Fixed a bug where the `repo:has.description()` parameter now correctly shows description of a repository synced from a Bitbucket server code host connection, while previously it used to show the repository name instead [#46752](https://github.com/sourcegraph/sourcegraph/pull/46752)
-- Fixed a bug where permissions syncs consumed more rate limit tokens than required. This should lead to speed-ups in permission syncs, as well as other possible cases where a process runs in repo-updater. [#47374](https://github.com/sourcegraph/sourcegraph/pull/47374)
-- Fixes UI bug where folders with single child were appearing as child folders themselves. [#46628](https://github.com/sourcegraph/sourcegraph/pull/46628)
-- Performance issue with the Outbound requests page. [#47544](https://github.com/sourcegraph/sourcegraph/pull/47544)
-
-### Removed
-
-- The Code insights "run over all repositories" mode has been replaced with search-powered repositories filed syntax. [#45687](https://github.com/sourcegraph/sourcegraph/pull/45687)
-- The settings `search.repositoryGroups`, `codeInsightsGqlApi`, `codeInsightsAllRepos`, `experimentalFeatures.copyQueryButton`,, `experimentalFeatures.showRepogroupHomepage`, `experimentalFeatures.showOnboardingTour`, `experimentalFeatures.showSearchContextManagement` and `codeIntelligence.autoIndexRepositoryGroups` have been removed as they were deprecated and unsued. [#47481](https://github.com/sourcegraph/sourcegraph/pull/47481)
-- The site config `enableLegacyExtensions` setting was removed. It is no longer possible to enable legacy Sourcegraph extension API functionality in this version.
-
-## 4.4.2
-
-### Changed
-
-- Expiration of licenses is now handled differently. When a license is expired promotion to site-admin is disabled, license-specific features are disabled (exceptions being SSO & permission syncing), grace period has been replaced with a 7-day-before-expiration warning. [#47251](https://github.com/sourcegraph/sourcegraph/pull/47251)
-
-## 4.4.1
-
-### Changed
-
-- Connection checks for code host connections have been changed to talk to code host APIs directly via HTTP instead of doing DNS lookup and TCP dial. That makes them more resistant in environments where proxies are used. [#46918](https://github.com/sourcegraph/sourcegraph/pull/46918)
-- The search query input overflow behavior on search home page has been fixed. [#46922](https://github.com/sourcegraph/sourcegraph/pull/46922)
-
-## 4.4.0
-
-### Added
-
-- Added a button "Reindex now" to the index status page. Admins can now force an immediate reindex of a repository. [#45533](https://github.com/sourcegraph/sourcegraph/pull/45533)
-- Added an option "Unlock user" to the actions dropdown on the Site Admin Users page. Admins can unlock user accounts that wer locked after too many sign-in attempts. [#45650](https://github.com/sourcegraph/sourcegraph/pull/45650)
-- Templates for certain emails sent by Sourcegraph are now configurable via `email.templates` in site configuration. [#45671](https://github.com/sourcegraph/sourcegraph/pull/45671), [#46085](https://github.com/sourcegraph/sourcegraph/pull/46085)
-- Keyboard navigation for search results is now enabled by default. Use Arrow Up/Down keys to navigate between search results, Arrow Left/Right to collapse and expand file matches, Enter to open the search result in the current tab, Ctrl/Cmd+Enter to open the result in a separate tab, / to refocus the search input, and Ctrl/Cmd+Arrow Down to jump from the search input to the first result. Arrow Left/Down/Up/Right in previous examples can be substituted with h/j/k/l for Vim-style bindings. Keyboard navigation can be disabled by creating the `search-results-keyboard-navigation` feature flag and setting it to false. [#45890](https://github.com/sourcegraph/sourcegraph/pull/45890)
-- Added support for receiving GitLab webhook `push` events. [#45856](https://github.com/sourcegraph/sourcegraph/pull/45856)
-- Added support for receiving Bitbucket Server / Datacenter webhook `push` events. [#45909](https://github.com/sourcegraph/sourcegraph/pull/45909)
-- Monitoring: Indexed-Search's dashboard now has new graphs for search request durations and "in-flight" search request workloads [#45966](https://github.com/sourcegraph/sourcegraph/pull/45966)
-- The GraphQL API now supports listing single-file commit history across renames (with `GitCommit.ancestors(follow: true, path: "")`). [#45882](https://github.com/sourcegraph/sourcegraph/pull/45882)
-- Added support for receiving Bitbucket Cloud webhook `push` events. [#45960](https://github.com/sourcegraph/sourcegraph/pull/45960)
-- Added a way to test code host connection from the `Manage code hosts` page. [#45972](https://github.com/sourcegraph/sourcegraph/pull/45972)
-- Updates to the site configuration from the site admin panel will now also record the user id of the author in the database in the `critical_and_site_config.author_user_id` column. [#46150](https://github.com/sourcegraph/sourcegraph/pull/46150)
-- When setting and resetting passwords, if the user's primary email address is not yet verified, using the password reset link sent via email will now also verify the email address. [#46307](https://github.com/sourcegraph/sourcegraph/pull/46307)
-- Added new code host details and updated edit code host pages in site admin area. [#46327](https://github.com/sourcegraph/sourcegraph/pull/46327)
-- If the experimental setting `insightsDataRetention` is enabled, the number of Code Insights data points that can be viewed will be limited by the site configuration setting `insights.maximumSampleSize`, set to 30 by default. Older points beyond that number will be periodically archived. [#46206](https://github.com/sourcegraph/sourcegraph/pull/46206), [#46440](https://github.com/sourcegraph/sourcegraph/pull/46440)
-- Bitbucket Cloud can now be added as an authentication provider on Sourcegraph. [#46309](https://github.com/sourcegraph/sourcegraph/pull/46309)
-- Bitbucket Cloud code host connections now support permissions syncing. [#46312](https://github.com/sourcegraph/sourcegraph/pull/46312)
-- Keep a log of corruption events that happen on repositories as they are detected. The Admin repositories page will now show when a repository has been detected as being corrupt and they'll also be able to see a history log of the corruption for that repository. [#46004](https://github.com/sourcegraph/sourcegraph/pull/46004)
-- Added corrupted statistic as part of the global repositories statistics. [46412](https://github.com/sourcegraph/sourcegraph/pull/46412)
-- Added a `Corrupted` status filter on the Admin repositories page, allowing Administrators to filter the list of repositories to only those that have been detected as corrupt. [#46415](https://github.com/sourcegraph/sourcegraph/pull/46415)
-- Added “Background job dashboard” admin feature [#44901](https://github.com/sourcegraph/sourcegraph/pull/44901)
-
-### Changed
-
-- Code Insights no longer uses a custom index of commits to compress historical backfill and instead queries the repository log directly. This allows the compression algorithm to span any arbitrary time frame, and should improve the reliability of the compression in general. [#45644](https://github.com/sourcegraph/sourcegraph/pull/45644)
-- GitHub code host configuration: The error message for non-existent organizations has been clarified to indicate that the organization is one that the user manually specified in their code host configuration. [#45918](https://github.com/sourcegraph/sourcegraph/pull/45918)
-- Git blame view got a user-interface overhaul and now shows data in a more structured way with additional visual hints. [#44397](https://github.com/sourcegraph/sourcegraph/issues/44397)
-- User emails marked as unverified will no longer receive code monitors and account update emails - unverified emails can be verified from the user settings page to continue receiving these emails. [#46184](https://github.com/sourcegraph/sourcegraph/pull/46184)
-- Zoekt by default eagerly unmarshals the symbol index into memory. Previously we would unmarshal on every request for the purposes of symbol searches or ranking. This lead to pressure on the Go garbage collector. On sourcegraph.com we have noticed time spent in the garbage collector halved. In the unlikely event this leads to more OOMs in zoekt-webserver, you can disable by setting the environment variable `ZOEKT_ENABLE_LAZY_DOC_SECTIONS=t`. [zoekt#503](https://github.com/sourcegraph/zoekt/pull/503)
-- Removes the right side action sidebar that is shown on the code view page and moves the icons into the top nav. [#46339](https://github.com/sourcegraph/sourcegraph/pull/46339)
-- The `sourcegraph/prometheus` image no longer starts with `--web.enable-lifecycle --web.enable-admin-api` by default - these flags can be re-enabled by configuring `PROMETHEUS_ADDITIONAL_FLAGS` on the container. [#46393](https://github.com/sourcegraph/sourcegraph/pull/46393)
-- The experimental setting `authz.syncJobsRecordsTTL` has been changed to `authz.syncJobsRecordsLimit` - records are no longer retained based on age, but based on this size cap. [#46676](https://github.com/sourcegraph/sourcegraph/pull/46676)
-- Renders GitHub pull request references in git blame view. [#46409](https://github.com/sourcegraph/sourcegraph/pull/46409)
-
-### Fixed
-
-- Made search results export use the same results list as the search results page. [#45702](https://github.com/sourcegraph/sourcegraph/pull/45702)
-- Code insights with more than 1 year of history will correctly show 12 data points instead of 11. [#45644](https://github.com/sourcegraph/sourcegraph/pull/45644)
-- Hourly code insights will now behave correctly and will no longer truncate to midnight UTC on the calendar date the insight was created. [#45644](https://github.com/sourcegraph/sourcegraph/pull/45644)
-- Code Insights: fixed an issue where filtering by a search context that included multiple repositories would exclude data. [#45574](https://github.com/sourcegraph/sourcegraph/pull/45574)
-- Ignore null JSON objects returned from GitHub API when listing public repositories. [#45969](https://github.com/sourcegraph/sourcegraph/pull/45969)
-- Fixed issue where emails that have never been verified before would be unable to receive resent verification emails. [#46185](https://github.com/sourcegraph/sourcegraph/pull/46185)
-- Resolved issue preventing LSIF uploads larger than 2GiB (gzipped) from uploading successfully. [#46209](https://github.com/sourcegraph/sourcegraph/pull/46209)
-- Local vars in Typescript are now detected as symbols which will positively impact ranking of search results. [go-ctags#10](https://github.com/sourcegraph/go-ctags/pull/10)
-- Fix issue in Gitlab OAuth in which user group membership is set too wide - adds `min_access_level=10` to `/groups` request. [#46480](https://github.com/sourcegraph/sourcegraph/pull/46480)
-
-### Removed
-
-- The extension registry no longer supports browsing, creating, or updating legacy extensions. Existing extensions may still be enabled or disabled in user settings and may be listed via the API. (The extension API was deprecated in 2022-09 but is still available if the `enableLegacyExtensions` site config experimental features flag is enabled.)
-- User and organization auto-defined search contexts have been permanently removed along with the `autoDefinedSearchContexts` GraphQL query. The only auto-defined context now is the `global` context. [#46083](https://github.com/sourcegraph/sourcegraph/pull/46083)
-- The settings `experimentalFeatures.showSearchContext`, `experimentalFeatures.showSearchNotebook`, and `experimentalFeatures.codeMonitoring` have been removed and these features are now permanently enabled when available. [#46086](https://github.com/sourcegraph/sourcegraph/pull/46086)
-- The legacy panels on the homepage (recent searches, etc) which were turned off by default but could still be re-enabled by setting `experimentalFeatures.showEnterpriseHomePanels` to true, are permanently removed now. [#45705](https://github.com/sourcegraph/sourcegraph/pull/45705)
-- The `site { monitoringStatistics { alerts } }` GraphQL query has been deprecated and will no longer return any data. The query will be removed entirely in a future release. [#46299](https://github.com/sourcegraph/sourcegraph/pull/46299)
-- The Monaco version of the search query input and the corresponding feature flag (`experimentalFeatures.editor`) have been permanently removed. [#46249](https://github.com/sourcegraph/sourcegraph/pull/46249)
-
-## 4.3.1
-
-### Changed
-
-- A bug that broke the site-admin page when no repositories have been added to the Sourcegraph instance has been fixed. [#46123](https://github.com/sourcegraph/sourcegraph/pull/46123)
-
-## 4.3.0
-
-### Added
-
-- A "copy path" button has been added to file content, path, and symbol search results on hover or focus, next to the file path. The button copies the relative path of the file in the repo, in the same way as the "copy path" button in the file and repo pages. [#42721](https://github.com/sourcegraph/sourcegraph/pull/42721)
-- Unindexed search now use the index for files that have not changed between the unindexed commit and the indexed commit. The result is faster unindexed search in general. If you are noticing issues you can disable by setting the feature flag `search-hybrid` to false. [#37112](https://github.com/sourcegraph/sourcegraph/issues/37112)
-- The number of commits listed in the History tab can now be customized for all users by site admins under Configuration -> Global Settings from the site admin page by using the config `history.defaultPageSize`. Individual users may also set `history.defaultPagesize` from their user settings page to override the value set under the Global Settings. [#44651](https://github.com/sourcegraph/sourcegraph/pull/44651)
-- Batch Changes: Mounted files can be accessed via the UI on the executions page. [#43180](https://github.com/sourcegraph/sourcegraph/pull/43180)
-- Added "Outbound request log" feature for site admins [#44286](https://github.com/sourcegraph/sourcegraph/pull/44286)
-- Code Insights: the data series API now provides information about incomplete datapoints during processing
-- Added a best-effort migration such that existing Code Insights will display zero results instead of missing points at the start and end of a graph. [#44928](https://github.com/sourcegraph/sourcegraph/pull/44928)
-- More complete stack traces for Outbound request log [#45151](https://github.com/sourcegraph/sourcegraph/pull/45151)
-- A new status message now reports how many repositories have already been indexed for search. [#45246](https://github.com/sourcegraph/sourcegraph/pull/45246)
-- Search contexts can now be starred (favorited) in the search context management page. Starred search contexts will appear before other contexts in the context dropdown menu next to the search box. [#45230](https://github.com/sourcegraph/sourcegraph/pull/45230)
-- Search contexts now let you set a context as your default. The default will be selected every time you open Sourcegraph and will appear near the top in the context dropdown menu next to the search box. [#45387](https://github.com/sourcegraph/sourcegraph/pull/45387)
-- [search.largeFiles](https://docs.sourcegraph.com/admin/config/site_config#search-largeFiles) accepts an optional prefix `!` to negate a pattern. The order of the patterns within search.largeFiles is honored such that the last pattern matching overrides preceding patterns. For patterns that begin with a literal `!` prefix with a backslash, for example, `\!fileNameStartsWithExcl!.txt`. Previously indexed files that become excluded due to this change will remain in the index until the next reindex [#45318](https://github.com/sourcegraph/sourcegraph/pull/45318)
-- [Webhooks](https://docs.sourcegraph.com/admin/config/webhooks/incoming) have been overhauled completely and can now be found under **Site admin > Repositories > Incoming webhooks**. Webhooks that were added via code host configuration are [deprecated](https://docs.sourcegraph.com/admin/config/webhooks/incoming#deprecation-notice) and will be removed in 5.1.0.
-- Added support for receiving webhook `push` events from GitHub which will trigger Sourcegraph to fetch the latest commit rather than relying on polling.
-- Added support for private container registries in Sourcegraph executors. [Using private registries](https://docs.sourcegraph.com/admin/deploy_executors#using-private-registries)
-
-### Changed
-
-- Batch Change: When one or more changesets are selected, we now display all bulk operations but disable the ones that aren't applicable to the changesets. [#44617](https://github.com/sourcegraph/sourcegraph/pull/44617)
-- Gitserver's repository purge worker now runs on a regular interval instead of just on weekends, configurable by the `repoPurgeWorker` site configuration. [#44753](https://github.com/sourcegraph/sourcegraph/pull/44753)
-- Editing the presentation metadata (title, line color, line label) or the default filters of a scoped Code Insight will no longer trigger insight recalculation. [#44769](https://github.com/sourcegraph/sourcegraph/pull/44769), [#44797](https://github.com/sourcegraph/sourcegraph/pull/44797)
-- Indexed Search's `memory_map_areas_percentage_used` alert has been modified to alert earlier than it used to. It now issues a warning at 60% (previously 70%) and issues a critical alert at 80% (previously 90%).
-- Saving a new view of a scoped Code Insight will no longer trigger insight recalculation. [#44679](https://github.com/sourcegraph/sourcegraph/pull/44679)
-
-### Fixed
-
-- The Code Insights commit indexer no longer errors when fetching commits from empty repositories when sub-repo permissions are enabled. [#44558](https://github.com/sourcegraph/sourcegraph/pull/44558)
-- Unintended newline characters that could appear in diff view rendering have been fixed. [#44805](https://github.com/sourcegraph/sourcegraph/pull/44805)
-- Signing out doesn't immediately log the user back in when there's only one OAuth provider enabled. It now redirects the user to the Sourcegraph login page. [#44803](https://github.com/sourcegraph/sourcegraph/pull/44803)
-- An issue causing certain kinds of queries to behave inconsistently in Code Insights. [#44917](https://github.com/sourcegraph/sourcegraph/pull/44917)
-- When the setting `batchChanges.enforceForks` is enabled, Batch Changes will now prefix the name of the fork repo it creates with the original repo's namespace name in order to prevent repo name collisions. [#43681](https://github.com/sourcegraph/sourcegraph/pull/43681), [#44458](https://github.com/sourcegraph/sourcegraph/pull/44458), [#44548](https://github.com/sourcegraph/sourcegraph/pull/44548), [#44924](https://github.com/sourcegraph/sourcegraph/pull/44924)
-- Code Insights: fixed an issue where certain queries matching sequential whitespace characters would overcount. [#44969](https://github.com/sourcegraph/sourcegraph/pull/44969)
-- GitHub fine-grained Personal Access Tokens can now clone repositories correctly, but are not yet officially supported. [#45137](https://github.com/sourcegraph/sourcegraph/pull/45137)
-- Detect-and-track Code Insights will now return data for repositories without sub-repo permissions even when sub-repo permissions are enabled on the instance. [#45631](https://github.com/sourcegraph/sourcegraph/pull/45361)
-
-### Removed
-
-- Removed legacy GraphQL field `dirtyMetadata` on an insight series. `insightViewDebug` can be used as an alternative. [#44416](https://github.com/sourcegraph/sourcegraph/pull/44416)
-- Removed `search.index.enabled` site configuration setting. Search indexing is now always enabled.
-- Removed the experimental feature setting `showSearchContextManagement`. The search context management page is now available to all users with access to search contexts. [#45230](https://github.com/sourcegraph/sourcegraph/pull/45230)
-- Removed the experimental feature setting `showComputeComponent`. Any notebooks that made use of the compute component will no longer render the block. The block will be deleted from the databse the next time a notebook that uses it is saved. [#45360](https://github.com/sourcegraph/sourcegraph/pull/45360)
-
-## 4.2.1
-
-- `minio` has been replaced with `blobstore`. Please see the update notes here: https://docs.sourcegraph.com/admin/how-to/blobstore_update_notes
-
-## 4.2.0
-
-### Added
-
-- Creating access tokens is now tracked in the security events. [#43226](https://github.com/sourcegraph/sourcegraph/pull/43226)
-- Added `codeIntelAutoIndexing.indexerMap` to site-config that allows users to update the indexers used when inferring precise code intelligence auto-indexing jobs (without having to overwrite the entire inference scripts). For example, `"codeIntelAutoIndexing.indexerMap": {"go": "my.registry/sourcegraph/lsif-go"}` will cause Go projects to use the specified container (in a alternative Docker registry). [#43199](https://github.com/sourcegraph/sourcegraph/pull/43199)
-- Code Insights data points that do not contain any results will display zero instead of being omitted from the visualization. Only applies to insight data created after 4.2. [#43166](https://github.com/sourcegraph/sourcegraph/pull/43166)
-- Sourcegraph ships with node-exporter, a Prometheus tool that provides hardware / OS metrics that helps Sourcegraph scale your deployment. See your deployment update for more information:
- - [Kubernetes](https://docs.sourcegraph.com/admin/updates/kubernetes)
- - [Docker Compose](https://docs.sourcegraph.com/admin/updates/docker_compose)
-- A structural search diagnostic to warn users when a language filter is not set. [#43835](https://github.com/sourcegraph/sourcegraph/pull/43835)
-- GitHub/GitLab OAuth success/fail attempts are now a part of the audit log. [#43886](https://github.com/sourcegraph/sourcegraph/pull/43886)
-- When rendering a file which is backed by Git LFS, we show a page informing the file is LFS and linking to the file on the codehost. Previously we rendered the LFS pointer. [#43686](https://github.com/sourcegraph/sourcegraph/pull/43686)
-- Batch changes run server-side now support secrets. [#27926](https://github.com/sourcegraph/sourcegraph/issues/27926)
-- OIDC success/fail login attempts are now a part of the audit log. [#44467](https://github.com/sourcegraph/sourcegraph/pull/44467)
-- A new experimental GraphQL query, `permissionsSyncJobs`, that lists the states of recently completed permissions sync jobs and the state of each provider. The TTL of entries retrained can be configured with `authz.syncJobsRecordsTTL`. [#44387](https://github.com/sourcegraph/sourcegraph/pull/44387), [#44258](https://github.com/sourcegraph/sourcegraph/pull/44258)
-- The search input has a new search history button and allows cycling through recent searches via up/down arrow keys. [#44544](https://github.com/sourcegraph/sourcegraph/pull/44544)
-- Repositories can now be ordered by size on the repo admin page. [#44360](https://github.com/sourcegraph/sourcegraph/pull/44360)
-- The search bar contains a new Smart Search toggle. If a search returns no results, Smart Search attempts alternative queries based on a fixed set of rules, and shows their results (if there are any). Smart Search is enabled by default. It can be disabled by default with `"search.defaultMode": "precise"` in settings. [#44385](https://github.com/sourcegraph/sourcegraph/pull/44395)
-- Repositories in the site-admin area can now be filtered, so that only indexed repositories are displayed [#45288](https://github.com/sourcegraph/sourcegraph/pull/45288)
-
-### Changed
-
-- Updated minimum required version of `git` to 2.38.1 in `gitserver` and `server` Docker image. This addresses: https://github.blog/2022-04-12-git-security-vulnerability-announced/ and https://lore.kernel.org/git/d1d460f6-e70f-b17f-73a5-e56d604dd9d5@github.com/. [#43615](https://github.com/sourcegraph/sourcegraph/pull/43615)
-- When a `content:` filter is used in a query, only file contents will be searched (previously any of file contents, paths, or repos were searched). However, as before, if `type:` is also set, the `content:` filter will search for results of the specified `type:`. [#43442](https://github.com/sourcegraph/sourcegraph/pull/43442)
-- Updated [p4-fusion](https://github.com/salesforce/p4-fusion) from `1.11` to `1.12`.
-
-### Fixed
-
-- Fixed a bug where path matches on files in the root directory of a repository were not highlighted. [#43275](https://github.com/sourcegraph/sourcegraph/pull/43275)
-- Fixed a bug where a search query wouldn't be validated after the query type has changed. [#43849](https://github.com/sourcegraph/sourcegraph/pull/43849)
-- Fixed an issue with insights where a single erroring insight would block access to all insights. This is a breaking change for users of the insights GraphQL api as the `InsightViewConnection.nodes` list may now contain `null`. [#44491](https://github.com/sourcegraph/sourcegraph/pull/44491)
-- Fixed a bug where Open in Editor didn't work well with `"repositoryPathPattern" = "{nameWithOwner}"` [#43839](https://github.com/sourcegraph/sourcegraph/pull/44475)
-
-### Removed
-
-- Remove the older `log.gitserver.accessLogs` site config setting. The setting is succeeded by `log.auditLog.gitserverAccess`. [#43174](https://github.com/sourcegraph/sourcegraph/pull/43174)
-- Remove `LOG_ALL_GRAPHQL_REQUESTS` env var. The setting is succeeded by `log.auditLog.graphQL`. [#43181](https://github.com/sourcegraph/sourcegraph/pull/43181)
-- Removed support for setting `SRC_ENDPOINTS_CONSISTENT_HASH`. This was an environment variable to support the transition to a new consistent hashing scheme introduced in 3.31.0. [#43528](https://github.com/sourcegraph/sourcegraph/pull/43528)
-- Removed legacy environment variable `ENABLE_CODE_INSIGHTS_SETTINGS_STORAGE` used in old versions of Code Insights to fall back to JSON settings based storage. All data was previously migrated in version 3.35 and this is no longer supported.
-
-## 4.1.3
-
-### Fixed
-
-- Fixed a bug that caused the Phabricator native extension to not load the right CSS assets. [#43868](https://github.com/sourcegraph/sourcegraph/pull/43868)
-- Fixed a bug that prevented search result exports to load. [#43344](https://github.com/sourcegraph/sourcegraph/pull/43344)
-
-## 4.1.2
-
-### Fixed
-
-- Fix code navigation on OSS when CodeIntel is unavailable. [#43458](https://github.com/sourcegraph/sourcegraph/pull/43458)
-
-### Removed
-
-- Removed the onboarding checklist for new users that showed up in the top navigation bar, on user profiles, and in the site-admin overview page. After changes to the underlying user statistics system, the checklist caused severe performance issues for customers with large and heavily-used instances. [#43591](https://github.com/sourcegraph/sourcegraph/pull/43591)
-
-## 4.1.1
-
-### Fixed
-
-- Fixed a bug with normalizing the `published` draft value for `changeset_specs`. [#43390](https://github.com/sourcegraph/sourcegraph/pull/43390)
-
-## 4.1.0
-
-### Added
-
-- Outdated executors now show a warning from the admin page. [#40916](https://github.com/sourcegraph/sourcegraph/pull/40916)
-- Added support for better Slack link previews for private instances. Link previews are currently feature-flagged, and site admins can turn them on by creating the `enable-link-previews` feature flag on the `/site-admin/feature-flags` page. [#41843](https://github.com/sourcegraph/sourcegraph/pull/41843)
-- Added a new button in the repository settings, under "Mirroring", to delete a repository from disk and reclone it. [#42177](https://github.com/sourcegraph/sourcegraph/pull/42177)
-- Batch changes run on the server can now be created within organisations. [#36536](https://github.com/sourcegraph/sourcegraph/issues/36536)
-- GraphQL request logs are now compliant with the audit logging format. The old GraphQl logging based on `LOG_ALL_GRAPHQL_REQUESTS` env var is now deprecated and scheduled for removal. [#42550](https://github.com/sourcegraph/sourcegraph/pull/42550)
-- Mounting files now works when running batch changes server side. [#31792](https://github.com/sourcegraph/sourcegraph/issues/31792)
-- Added mini dashboard of total batch change metrics to the top of the batch changes list page. [#42046](https://github.com/sourcegraph/sourcegraph/pull/42046)
-- Added repository sync counters to the code host details page. [#43039](https://github.com/sourcegraph/sourcegraph/pull/43039)
-
-### Changed
-
-- Git server access logs are now compliant with the audit logging format. Breaking change: The 'actor' field is now nested under 'audit' field. [#41865](https://github.com/sourcegraph/sourcegraph/pull/41865)
-- All Perforce rules are now stored together in one column and evaluated on a "last rule takes precedence" basis. [#41785](https://github.com/sourcegraph/sourcegraph/pull/41785)
-- Security events are now a part of the audit log. [#42653](https://github.com/sourcegraph/sourcegraph/pull/42653)
-- "GC AUTO" is now the default garbage collection job. We disable sg maintenance, which had previously replace "GC AUTO", after repeated reports about repo corruption. [#42856](https://github.com/sourcegraph/sourcegraph/pull/42856)
-- Security events (audit log) can now optionally omit the internal actor actions (internal traffic). [#42946](https://github.com/sourcegraph/sourcegraph/pull/42946)
-- To use the optional `customGitFetch` feature, the `ENABLE_CUSTOM_GIT_FETCH` env var must be set on `gitserver`. [#42704](https://github.com/sourcegraph/sourcegraph/pull/42704)
-
-### Fixed
-
-- WIP changesets in Gitlab >= 14.0 are now prefixed with `Draft:` instead of `WIP:` to accomodate for the [breaking change in Gitlab 14.0](https://docs.gitlab.com/ee/update/removals.html#wip-merge-requests-renamed-draft-merge-requests). [#42024](https://github.com/sourcegraph/sourcegraph/pull/42024)
-- When updating the site configuration, the provided Last ID is now used to prevent race conditions when simultaneous config updates occur. [#42691](https://github.com/sourcegraph/sourcegraph/pull/42691)
-- When multiple auth providers of the same external service type is set up, there are now separate entries in the user's Account Security settings. [#42865](https://github.com/sourcegraph/sourcegraph/pull/42865)
-- Fixed a bug with GitHub code hosts that did not label archived repos correctly when using the "public" repositoryQuery keyword. [#41461](https://github.com/sourcegraph/sourcegraph/pull/41461)
-- Fixed a bug that would display the blank batch spec that a batch change is initialized with in the batch specs executions tab. [#42914](https://github.com/sourcegraph/sourcegraph/pull/42914)
-- Fixed a bug that would cause menu dropdowns to not open appropriately. [#42779](https://github.com/sourcegraph/sourcegraph/pull/42779)
-
-### Removed
-
--
-
-## 4.0.1
-
-### Fixed
-
-- Fixed a panic that can be caused by some tracing configurations. [#42027](https://github.com/sourcegraph/sourcegraph/pull/42027)
-- Fixed broken code navigation for Javascript. [#42055](https://github.com/sourcegraph/sourcegraph/pull/42055)
-- Fixed issue with empty code navigation popovers. [#41958](https://github.com/sourcegraph/sourcegraph/pull/41958)
-
-## 4.0.0
-
-### Added
-
-- A new look for Sourcegraph, previously in beta as "Simple UI", is now permanently enabled. [#41021](https://github.com/sourcegraph/sourcegraph/pull/41021)
-- A new [multi-version upgrade](https://docs.sourcegraph.com/admin/updates#multi-version-upgrades) process now allows Sourcegraph instances to upgrade more than a single minor version. Instances at version 3.20 or later can now jump directly to 4.0. [#40628](https://github.com/sourcegraph/sourcegraph/pull/40628)
-- Matching ranges in file paths are now highlighted for path results and content results. Matching paths in repository names are now highlighted for repository results. [#41296](https://github.com/sourcegraph/sourcegraph/pull/41296) [#41385](https://github.com/sourcegraph/sourcegraph/pull/41385) [#41470](https://github.com/sourcegraph/sourcegraph/pull/41470)
-- Aggregations by repository, file, author, and capture group are now provided for search results. [#39643](https://github.com/sourcegraph/sourcegraph/issues/39643)
-- Blob views and search results are now lazily syntax highlighted for better performance. [#39563](https://github.com/sourcegraph/sourcegraph/pull/39563) [#40263](https://github.com/sourcegraph/sourcegraph/pull/40263)
-- File links in both the search results and the blob sidebar and now prefetched on hover or focus. [#40354](https://github.com/sourcegraph/sourcegraph/pull/40354) [#41420](https://github.com/sourcegraph/sourcegraph/pull/41420)
-- Negation support for the search predicates `-repo:has.path()` and `-repo:has.content()`. [#40283](https://github.com/sourcegraph/sourcegraph/pull/40283)
-- Experimental clientside OpenTelemetry can now be enabled with `"observability.client": { "openTelemetry": "/-/debug/otlp" }`, which sends OpenTelemetry to the new [bundled OpenTelemetry Collector](https://docs.sourcegraph.com/admin/observability/opentelemetry). [#37907](https://github.com/sourcegraph/sourcegraph/issues/37907)
-- File diff stats are now characterized by 2 figures: lines added and lines removed. Previously, a 3rd figure for lines modified was also used. This is represented by the fields on the `DiffStat` type on the GraphQL API. [#40454](https://github.com/sourcegraph/sourcegraph/pull/40454)
-
-### Changed
-
-- [Sourcegraph with Kubernetes (without Helm)](https://docs.sourcegraph.com/admin/deploy/kubernetes): The `jaeger-agent` sidecar has been replaced by an [OpenTelemetry Collector](https://docs.sourcegraph.com/admin/observability/opentelemetry) DaemonSet + Deployment configuration. The bundled Jaeger instance is now disabled by default, instead of enabled. [#40456](https://github.com/sourcegraph/sourcegraph/issues/40456)
-- [Sourcegraph with Docker Compose](https://docs.sourcegraph.com/admin/deploy/docker-compose): The `jaeger` service has been replaced by an [OpenTelemetry Collector](https://docs.sourcegraph.com/admin/observability/opentelemetry) service. The bundled Jaeger instance is now disabled by default, instead of enabled. [#40455](https://github.com/sourcegraph/sourcegraph/issues/40455)
-- `"observability.tracing": { "type": "opentelemetry" }` is now the default tracer type. To revert to existing behaviour, set `"type": "jaeger"` instead. The legacy values `"type": "opentracing"` and `"type": "datadog"` have been removed. [#41242](https://github.com/sourcegraph/sourcegraph/pull/41242)
-- `"observability.tracing": { "urlTemplate": "" }` is now the default, and if `"urlTemplate"` is left empty, no trace URLs are generated. To revert to existing behaviour, set `"urlTemplate": "{{ .ExternalURL }}/-/debug/jaeger/trace/{{ .TraceID }}"` instead. [#41242](https://github.com/sourcegraph/sourcegraph/pull/41242)
-- Code host connection tokens are no longer supported as a fallback method for syncing changesets in Batch Changes. [#25394](https://github.com/sourcegraph/sourcegraph/issues/25394)
-- **IMPORTANT:** `repo:contains(file:foo content:bar)` has been renamed to `repo:contains.file(path:foo content:bar)`. `repo:contains.file(foo)` has been renamed to `repo:contains.path(foo)`. `repo:contains()` **is no longer a valid predicate. Saved searches using** `repo:contains()` **will need to be updated to use the new syntax.** [#40389](https://github.com/sourcegraph/sourcegraph/pull/40389)
-
-### Fixed
-
-- Fixed support for bare repositories using the src-cli and other codehost type. This requires the latest version of src-cli. [#40863](https://github.com/sourcegraph/sourcegraph/pull/40863)
-- The recommended [src-cli](https://github.com/sourcegraph/src-cli) version is now reported consistently. [#39468](https://github.com/sourcegraph/sourcegraph/issues/39468)
-- A performance issue affecting structural search causing results to not stream. It is much faster now. [#40872](https://github.com/sourcegraph/sourcegraph/pull/40872)
-- An issue where the saved search input box reports an invalid pattern type for `standard`, which is now valid. [#41068](https://github.com/sourcegraph/sourcegraph/pull/41068)
-- Git will now respect system certificate authorities when specifying `certificates` for the `tls.external` site configuration. [#38128](https://github.com/sourcegraph/sourcegraph/issues/38128)
-- Fixed a bug where setting `"observability.tracing": {}` would disable tracing, when the intended behaviour is to default to tracing with `"sampling": "selective"` enabled by default. [#41242](https://github.com/sourcegraph/sourcegraph/pull/41242)
-- The performance, stability, and latency of search predicates like `repo:has.file()`, `repo:has.content()`, and `file:has.content()` have been dramatically improved. [#418](https://github.com/sourcegraph/zoekt/pull/418), [#40239](https://github.com/sourcegraph/sourcegraph/pull/40239), [#38988](https://github.com/sourcegraph/sourcegraph/pull/38988), [#39501](https://github.com/sourcegraph/sourcegraph/pull/39501)
-- A search query issue where quoted patterns inside parenthesized expressions would be interpreted incorrectly. [#41455](https://github.com/sourcegraph/sourcegraph/pull/41455)
-
-### Removed
-
-- `CACHE_DIR` has been removed from the `sourcegraph-frontend` deployment. This required ephemeral storage which will no longer be needed. This variable (and corresponding filesystem mount) has been unused for many releases. [#38934](https://github.com/sourcegraph/sourcegraph/issues/38934)
-- Quick links will no longer be shown on the homepage or search sidebar. The `quicklink` setting is now marked as deprecated. [#40750](https://github.com/sourcegraph/sourcegraph/pull/40750)
-- Quick links will no longer be shown on the homepage or search sidebar if the "Simple UI" toggle is enabled and will be removed entirely in a future release. The `quicklink` setting is now marked as deprecated. [#40750](https://github.com/sourcegraph/sourcegraph/pull/40750)
-- `file:contains()` has been removed from the list of valid predicates. `file:has.content()` and `file:contains.content()` remain, both of which work the same as `file:contains()` and are valid aliases of each other.
-- The single-container `sourcegraph/server` deployment no longer bundles a Jaeger instance. [#41244](https://github.com/sourcegraph/sourcegraph/pull/41244)
-- The following previously-deprecated fields have been removed from the Batch Changes GraphQL API: `GitBranchChangesetDescription.headRepository`, `BatchChange.initialApplier`, `BatchChange.specCreator`, `Changeset.publicationState`, `Changeset.reconcilerState`, `Changeset.externalState`.
-
-## Older versions
-
-For older versions of Sourcegraph, see the [CHANGELOG](https://github.com/sourcegraph/sourcegraph/blob/main/CHANGELOG.md) on GitHub.
\ No newline at end of file
diff --git a/docs/admin/access_control/batch_changes.mdx b/docs/admin/access_control/batch_changes.mdx
index 3e9710b17..af54b1a84 100644
--- a/docs/admin/access_control/batch_changes.mdx
+++ b/docs/admin/access_control/batch_changes.mdx
@@ -1,6 +1,6 @@
# Access control for Batch Changes
-Granular controls for who can access [Batch Changes](/batch_changes/) can be configured by site admins by tuning the roles assigned to users and the permissions granted to those roles. This page describes the permission types available for Batch Changes, and whether they are granted by default to the **User** [system role](/admin/access_control#system-roles). All permissions are granted to the **Site Administrator** system role by default.
+Granular controls for who can access [Batch Changes](/batch-changes/) can be configured by site admins by tuning the roles assigned to users and the permissions granted to those roles. This page describes the permission types available for Batch Changes, and whether they are granted by default to the **User** [system role](/admin/access_control#system-roles). All permissions are granted to the **Site Administrator** system role by default.
Name | Description | Granted to **User** by default?
--------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-----------------------------:
diff --git a/docs/admin/access_control/index.mdx b/docs/admin/access_control/index.mdx
index 522982169..87ffa9d59 100644
--- a/docs/admin/access_control/index.mdx
+++ b/docs/admin/access_control/index.mdx
@@ -1,5 +1,12 @@
# Access control
+
+ Supported on [Enterprise](/pricing/enterprise) plans.
+
+ Available via the Web app.
+
+
+
This feature is in Beta stage.
> NOTE: This page refers to in-product permissions, which determine who can, for example, create a batch change, or who is a site admin. This is *not* the same as [repository permissions](/admin/permissions/), which enforces the same repository access on Sourcegraph as your code host.
diff --git a/docs/admin/analytics.mdx b/docs/admin/analytics.mdx
index de1e15da5..162ebcaff 100644
--- a/docs/admin/analytics.mdx
+++ b/docs/admin/analytics.mdx
@@ -1,5 +1,12 @@
# Analytics
+
+ Supported on [Enterprise](/pricing/enterprise) plans.
+
+ Available via the Web app.
+
+
+
The analytics section helps Sourcegraph administrators understand user engagement across the various Sourcegraph features, identify power users, and convey value to internal leaders. Introduced in version 3.42, the section includes analytics breakdowns for our most common features such as Batch Changes, Search Notebooks and search, while also providing basic user-level analytics.
## Data Visualizations
diff --git a/docs/admin/architecture.mdx b/docs/admin/architecture.mdx
new file mode 100644
index 000000000..af5eb56c8
--- /dev/null
+++ b/docs/admin/architecture.mdx
@@ -0,0 +1,209 @@
+# Sourcegraph Architecture
+
+This document provides a high-level overview of Sourcegraph's architecture so you can understand how our systems fit together.
+
+## Diagram
+
+
+
+## Repository syncing
+
+At its core, Sourcegraph maintains a persistent cache of all repositories that are connected to it. It is persistent because this data is critical for Sourcegraph to function. Still, it is ultimately a cache because the code host is the source of truth, and our cache is eventually consistent.
+
+- `gitserver` is the sharded service that stores repositories and makes them accessible to other Sourcegraph services
+- `repo-updater` is the singleton service responsible for ensuring all repositories in gitserver are as up-to-date as possible while respecting code host rate limits. It is also responsible for syncing repository metadata from the code host that is stored in the repo table of our Postgres database
+
+## Permission syncing
+
+Repository permissions are mirrored from code hosts to Sourcegraph by default. This builds the foundation of Sourcegraph authorization for repositories to ensure users see consistent content on code hosts. Currently, the background permissions syncer resides in the repo-updater.
+
+Learn more in the [Permission Syncing docs](/admin/permissions/syncing)
+
+## Settings cascade
+
+Sourcegraph offers the flexibility of customizing user settings. A single user's settings are generally the result of merging user settings, organization settings, and global settings. Each of these is referred to as a settings subject, which is part of the settings cascade. They are all exposed to GraphQL.
+
+## Search
+
+Developers can search for the entire codebase that is connected to their Sourcegraph instance.
+
+By default, Sourcegraph uses `zoekt` to create a trigram index of the default branch of every repository, which makes searches fast. This trigram index is why Sourcegraph search is more powerful and faster than what is usually provided by code hosts.
+
+- [zoekt-indexserver](https://sourcegraph.com/github.com/sourcegraph/zoekt/-/tree/cmd/zoekt-sourcegraph-indexserver)
+- [zoekt-webserver](https://sourcegraph.com/github.com/sourcegraph/zoekt/-/tree/cmd/zoekt-webserver)
+
+Sourcegraph also has a fast search path for code that isn't indexed yet or will never be indexed (for example, code that is not on a default branch). Indexing every branch of every repository isn't a pragmatic use of resources for most customers, so this decision balances optimizing the common case (searching all default branches) with space savings (not indexing everything).
+
+- `searcher` implements the non-indexed search
+- Syntax highlighting for any code view, including search results, is provided by `Syntect` server
+
+Learn more in the [Code Search docs](/code-search)
+
+## Code Navigation
+
+Unlike Search (which is completely text-based), Code Navigation surfaces data such as doc comments for a symbol and actions such as the "go to definition" or "find references" features based on our semantic understanding of code.
+
+By default, Sourcegraph provides [search-based code navigation](/code-search/code-navigation/search_based_code_navigation). This reuses all the architecture that makes search fast, but it can result in false positives (for example, finding two definitions for a symbol or references that aren't actually references) or false negatives (for example, not being able to find the definition or all references).
+
+This is the default because it works with no extra configuration and is good for many use cases and languages. We support many languages this way because it only requires writing a few regular expressions.
+
+With some setup, customers can enable [precise code navigation](/code-search/code-navigation/precise_code_navigation). Repositories add a step to their build pipeline that computes the index for that code revision and uploads it to Sourcegraph. We must write language-specific indexers, so adding precise code navigation support for new languages is a non-trivial task.
+
+Learn more in the [Code Navigation docs](/code-search/code-navigation)
+
+### Dependencies
+
+- Search: Symbol search is used for basic code navigation
+- Sourcegraph extension API: Hover and definition providers
+- Native integrations (for code hosts): UI of hover tooltips on code hosts
+
+## Batch Changes
+
+Batch Changes creates and manages large-scale code changes across projects, repositories, and code hosts.
+
+To create a batch change, users write a [batch spec](/batch-changes/batch-spec-yaml-reference), which is a YAML file that specifies the changes that should be performed and the repositories that they should be performed upon — either through a Sourcegraph search or by declaring them directly. This spec is then executed by [src-cli](/cli/references/batch) on the user's machine, in CI or some other environment controlled by the user, or directly within the Sourcegraph UI by enabling Server-Side Batch Changes via executors. This results in changeset specs that are sent to Sourcegraph. Sourcegraph then applies these changeset specs to create one or more changesets per repository. (Depending on the code host, a changeset is a pull request or merge request.)
+
+Once created, Sourcegraph monitors changesets, and their current review and CI status can be viewed on the batch change page. This provides a single pane of glass view of all the changesets created as part of the batch change. The batch change can be updated at any time by re-applying the original batch spec: this will transparently add or remove changesets in repositories that now match or don't match the original search as needed.
+
+Read the [Batch Changes](/batch-changes) docs to learn more.
+
+### Dependencies
+
+- src-cli: Batch changes are currently executed client-side through the `src` CLI
+- Search: Repositories in which batch specs need to be executed are resolved through the search API
+
+## Code Insights
+
+Code Insights surface higher-level, aggregated information to leaders in engineering organizations in dashboards. For example, code insights can track the number of matches of a search query over time, the number of code navigation diagnostic warnings in a codebase, or the usage of different programming languages. Sample use cases for this are tracking migrations, the usage of libraries across an organization, tech debt, code base health, and much more.
+
+Code Insights persist in a separate database called `codeinsights-db`. The web application interacts with the backend through a [GraphQL API](/api/graphql).
+
+Code Insights uses data from the `frontend` database for repository metadata and repository permissions to filter time series data.
+
+Code Insights can generate data in the background or just-in-time when viewing charts. This decision is currently enforced in the product, depending on the type and scope of the insight. For code insights being run just-in-time in the client, the performance of code insights is bound to the performance of the underlying data source. These insights are relatively fast as long as the scope doesn't include many repositories (or large monorepos), but performance degrades when trying to include a lot of repositories. Insights that are processed in the background are rate-limited and will perform approximately 28,000 queries per hour when fully saturated on default settings.
+
+There is also a feature flag left over from the original development of the early-stage product that we retained in case a customer who doesn't purchase it ever has a justified need to disable insights. You can set `"experimentalFeatures": { "codeInsights": false }` in your settings to disable insights.
+
+You can learn more in the [Code Insights](/code_insights) docs.
+
+### Dependencies
+
+- Search:
+ - GraphQL API for text search, in particular `search()`, `matchCount`, `stats.languages`
+ - Query syntax: Code insights "construct" search queries programmatically
+ - Exhaustive search (with `count:all/count:999999` operator)
+ - Historical search (= unindexed search, currently)
+ - Commit search to find historical commits to search over
+- Repository Syncing: The code insights backend has direct dependencies on `gitserver` and `repo-updater`
+- Permission syncing: The code insights backend depends on synced repository permissions for access control
+- Settings cascade:
+ - Insights and dashboard configuration are stored in user, organization, and global settings. This will change in the future and is planned to be moved to the database
+ - Insights contributed by extensions are configured through settings (this will stay the same)
+
+## Code Monitoring
+
+Code Monitoring allows users to get notified of changes to their codebase.
+
+Users can view, edit, and create code monitors through the code monitoring UI. A code monitor comprises a trigger and one or more actions.
+
+The **trigger** watches for new data; if there is new data, we call this an event. The only supported trigger is a search query of `type:diff` or `type:commit`, run every five minutes by the Go backend with an automatically added `after:` parameter narrowing down the diffs/commits that should be searched. The monitor's configured actions are run when this query returns a non-zero number of results.
+
+The actions are run in response to a trigger event. For now, the only supported action is an email notification to the primary email address of the code monitor's owner. To work, `email.address` and `email.smtp` must be configured in the site configuration. Code monitoring actions will be extended in the future to support webhooks.
+
+Learn more in the [Code Monitoring docs](/code_monitoring)
+
+### Dependencies
+
+- Search: Diff and commit search triggers
+
+## Browser extensions
+
+The [Sourcegraph browser extensions](/integration/browser_extension) bring the features of Sourcegraph directly into the UI of code hosts such as GitHub, GitLab, and Bitbucket.
+
+With the Sourcegraph browser extension installed, users get Sourcegraph features (including Code Navigation) on their code host while browsing code, viewing diffs, or reviewing pull requests.
+
+This lets users get value from Sourcegraph without leaving existing workflows on their code host. It also gives them a convenient way to jump into Sourcegraph anytime (by using the **Open in Sourcegraph** button on any repository or file). The browser extension also adds an address bar search shortcut, allowing you to search on Sourcegraph directly from the browser address bar.
+
+## Native integrations (for code hosts)
+
+Native integrations bring Sourcegraph features directly into the UI of code hosts, similar to browser extensions.
+
+Instead of requiring a browser extension, native integrations inject a script by extending the code host directly (for example, using the code host's plugin architecture). The advantage is that Sourcegraph can be enabled for all users of a code host instance without any action required from each user.
+
+Learn more in the [Code host integrations docs](/admin/code_hosts)
+
+#### Dependencies
+
+- Repository Syncing: Uses the GraphQL API to resolve repositories and revisions on code hosts
+- Search: Query transformer API hooks into search in the web app
+- Settings cascade: Which extensions are enabled, and which configurations for extensions are stored in the settings. Extensions may also change settings
+
+## src-cli
+
+`src-cli`, or `src`, is a command line tool that users can run locally to interact with Sourcegraph.
+
+`src-cli` is written in Go and distributed as a standalone binary for Windows, macOS, and Linux. Its features include running searches, managing Sourcegraph, and executing batch changes. `src-cli` is integral to the batch changes product.
+
+`src-cli` is a standalone client, maintained and released separately from Sourcegraph
+
+Learn more in the [src-cli docs](/admin/code_hosts) and [GitHub repo](https://github.com/sourcegraph/src-cli)
+
+### Dependencies
+
+- Search: GraphQL API
+- Batch Changes: GraphQL API
+- Code Intelligence: GraphQL API
+
+## Deployment
+
+Sourcegraph's recommended deployment methods are:
+
+1. Sourcegraph Cloud: This provides a fully managed solution where Sourcegraph handles all of the maintenance, monitoring, and upgrading tasks to give you an optimal Sourcegraph experience while immediately getting the latest features into your users' hands. This solution does require your code hosts to be connected to the Sourcegraph managed environment.
+2. Kubernetes Helm: Sourcegraph's Kubernetes deployment provides the most robust, scalable, and vetted self-hosted solution. This solution is ideal across many self-hosted customers capable of deploying a multi-node instance, and can be supported by all mainstream managed Kubernetes platforms.
+3. Docker Compose: Docker Compose provides the preferred single-node deployment solution for Sourcegraph. It can be a good option when the complexities and flexibility provided by Kubernetes Helm are not needed.
+4. Kubernetes Kustomize: Helm is Sourcegraph's more standardized and vetted approach to deploying with Kubernetes, but if Kustomize is your preferred deployment method it is a viable and supported approach.
+5. Machine Images: Sourcegraph can be deployed using dedicated Machine Images for specific Cloud providers. This can be a simple solution in specific circumstances, though has its own considerations. If you are considering this path, please discuss with your account team.
+
+The [resource estimator](/admin/deploy/resource_estimator#sourcegraph-resource-estimator) can guide you on the requirements for each deployment type.
+
+Learn more in the [deployment docs](/admin/deploy)
+
+## Observability
+
+Observability encapsulates the monitoring and debugging of Sourcegraph deployments. Sourcegraph is designed and ships several observability tools and out-of-the-box capabilities to enable visibility into the health and state of a Sourcegraph deployment.
+
+Monitoring includes [metrics and dashboards](/admin/observability/metrics), [alerting](/admin/observability/alerting), and [health checking](/admin/observability/health_checks) capabilities.
+
+- `grafana` is the frontend for service metrics and ships with customized dashboards for Sourcegraph services
+- prometheus handles the scraping of service metrics and ships with recording rules, alert rules, and alerting capabilities
+- `cadvisor` provides per-container performance metrics (scraped by Prometheus) in most Sourcegraph environments
+- Each Sourcegraph service provides health checks
+
+Debugging includes [tracing](/admin/observability/tracing) and [logging](/admin/observability/logs).
+
+- jaeger is the distributed tracing service used by Sourcegraph
+- Each Sourcegraph service provides logs
+
+Learn more in the [Observability docs](/admin/observability).
+
+## Cody
+
+This section covers the Enterprise architecture of our AI assistant, Cody. [Cody Enterprise](/cody/clients/enable-cody-enterprise) can be deployed via the Sourcegraph Cloud or on your self-hosted infrastructure.
+
+### Cody with Sourcegraph Cloud deployment
+
+This is a recommended deployment for Cody Enterprise. It uses the Sourcegraph Cloud infrastructure and Cody gateway.
+
+
+
+### Sourcegraph Enterprise Server (self-hosted) on Amazon Bedrock
+
+This is an example of a more complex deployment that uses Sourcegraph Enterprise Server (self-hosted) and Amazon Bedrock.
+
+
+
+### Data flow
+
+The following diagram describes the data flow between the different components of Cody Enterprise.
+
+
diff --git a/docs/admin/audit_log.mdx b/docs/admin/audit_log.mdx
index 2fe26b0bc..87b170a6b 100644
--- a/docs/admin/audit_log.mdx
+++ b/docs/admin/audit_log.mdx
@@ -2,7 +2,7 @@
## Philosophy
-The audit log will capture all critical events that affect entities of interest within Sourcegraph services. The audit log is built on top of our [logging standard](https://sourcegraph.com/docs/dev/how-to/add_logging), using structured logs as the base building block. Every captured entry is aligned with the following design mantra:
+The audit log will capture all critical events that affect entities of interest within Sourcegraph services. The audit log is built on top of our [logging standard](https://docs-legacy.sourcegraph.com/dev/how-to/add_logging), using structured logs as the base building block. Every captured entry is aligned with the following design mantra:
> Actor takes action on an entity within a context
@@ -51,9 +51,9 @@ Here's a word-by-word breakout to demonstrate how the captured entry aligns with
### What is audited?
-- [Security events](./security_event_logs)
-- [Gitserver access](https://sourcegraph.com/github.com/sourcegraph/sourcegraph/-/blob/cmd/gitserver/internal/accesslog/accesslog.go?L100-104)
-- [GraphQL requests](https://sourcegraph.com/github.com/sourcegraph/sourcegraph/-/blob/cmd/frontend/internal/httpapi/graphql.go?L226-244)
+- **Security Events** - [A list of events](./security_event_logs) such as logins, site configuration updates, code host configuration updates (_These logs can be sent to the database for easier collection as well as to the standard output_).
+- **Gitserver Access** - Requests to the [`gitserver`](./deploy/scale.mdx#gitserver) component that is responsible for brokering transactions between the git repos on disk and all other Sourcegraph components.
+- **GraphQL Requests** - Requests To The Sourcegraph [`frontend`](./deploy/scale.mdx#frontend) component that is usually named `sourcegraph-frontend-{DYNAMICALLY CREATED ALPHANUMERIC}`
This list is expected to grow in the future.
@@ -89,25 +89,21 @@ Audit logs are structured logs. As long as one can ingest logs, we assume one ca
### On Premises
+All logs mentioned are delivered to the standard output (stdout) for each individual [component](./deploy/scale.mdx#core-components).
+
+
There are two easy approaches to filtering the audit logs:
- JSON-based: look for the presence of the `Attributes.audit` node. Do not depend on the log level, as it can change based on `SRC_LOG_LEVEL`.
- Message-based: we recommend going the JSON route, but if there's no easy way of parsing JSON using your SIEM or data processing stack, you can filter based on the following string: `auditId`.
### Cloud
-[Cloud](/cloud/#audit-logs)
-
-
-Audit Logs are a default feature for Cloud instances, with a standard retention policy of 30 days. Should you wish to
-extend this period, please be aware that additional charges will apply. To request an extension, please contact
-your assigned Customer Engineer (CE) or send an email to Sourcegraph Support at support@sourcegraph.com.
-
-For requesting audit logs, please follow the above steps and contact your assigned Sourcegraph representative or our support team.
+For Sourcegraph Cloud customers, please refer to Cloud [documentations](/cloud/#audit-logs).
## Developing
-The single entry point to the audit logging API is made via the [`audit.Log`](https://sourcegraph.com/github.com/sourcegraph/sourcegraph/-/blob/internal/audit/audit.go?L19) function. This internal function can be used from any place in the app, and nothing else needs to be done for the logged entry to appear in the audit log.
+The single entry point to the audit logging API is made via the `audit.Log` function. This internal function can be used from any place in the app, and nothing else needs to be done for the logged entry to appear in the audit log.
Example call:
```
diff --git a/docs/admin/auth/builtin.mdx b/docs/admin/auth/builtin.mdx
new file mode 100644
index 000000000..9b8dc2bed
--- /dev/null
+++ b/docs/admin/auth/builtin.mdx
@@ -0,0 +1,114 @@
+# Builtin password authentication
+
+The [`builtin` auth provider](/admin/config/site_config#builtin-password-authentication) manages user accounts inside Sourcegraph. It supports user signup, login, and password reset. This is the simplest provider type to set up, and is the default auth provider on a fresh installation for the first user so they can create an account and become site admin.
+
+Use this auth provider, if you have no organizational requirements to use a SSO provider.
+
+When enabled, users will be able to login using username/password combinations from the login screen.
+
+Signup can either be allowed to all users, the site admin can provision accounts, or new users can request an account.
+
+
+
+
+If Sourcegraph is running on a free license all users will be created as site admins. Learn more about license settings on our [pricing page](https://about.sourcegraph.com/pricing).
+
+
+## Enabling this authentication provider
+
+Add the following section to your site configuration:
+
+```json
+{
+ "auth.providers": [
+ {
+ "type": "builtin",
+ "allowSignup": false
+ }
+ ]
+}
+```
+
+Users can now login using their username/password credentials. See below for how users can get an account.
+
+### Allow all new users to sign up to your Sourcegraph instance
+
+You can use the setting `allowSignup` to control if new users can create an account in your Sourcegraph instance.
+
+If set to `true`, users will see a sign-up link under the login form and will have access to the sign-up page, where they can create their accounts.
+
+Signup is unrestricted, everyone with access to the instance can create an account. Use this setting if you're running in a controlled network, or if you want to host a global instance only.
+
+If enabled, new users can create a new account through this form, and log in to Sourcegraph right away.
+
+
+
+### Allow new users to request an account
+
+When `allowSignup` is not set, or set to `false`, users will see a request account link instead.
+
+
+
+
+If you block sign-ups by using the `allowSignup` flag, note that this applies only to the builtin auth provider. Other auth providers you configure (eg., GitHub OAuth or GitLab OAuth) will still allow to create new user accounts, depending on the `allowSignup` flag on those auth provider configurations.
+
+
+New users can submit a form and site admins will see the request in the navbar on the instance, where they can approve or reject the requests.
+
+
+
+## Disable account requests from users
+
+The account request feature can be disabled by setting `"auth.accessRequest": { "enabled": false }`. When disabled, new user accounts can only be created by the site admin manually.
+
+## Creating builtin authentication users
+
+Users can be created for builtin password authentication in several ways:
+
+- through the site admin page `/site-admin/users/new`
+- through users [signing up](#allow-all-new-users-to-sign-up-to-your-sourcegraph-instance)
+- through the `createUser` mutation in the GraphQL API
+- through [`src users create`](/cli/references/users/create)
+
+When [SMTP is enabled](/admin/config/email), special behaviours apply to whether a builtin authentication user's email is marked as verified by default - refer to [email verification](/admin/config/email#user-email-verification) for more details.
+
+## Account lockout
+
+Password reset links expire after 4 hours by default - this can be configured in site configuration with the [`auth.passwordResetLinkExpiry`](/admin/config/site_config#auth-passwordResetLinkExpiry) field.
+
+Account will be locked out for 30 minutes after 5 consecutive failed sign-in attempts within one hour for the builtin authentication provider. The threshold and duration of lockout and consecutive periods can be customized via `"auth.lockout"` in the site configuration:
+
+```json
+{
+ // ...
+ "auth.lockout": {
+ // The number of seconds to be considered as a consecutive period
+ "consecutivePeriod": 3600,
+ // The threshold of failed sign-in attempts in a consecutive period
+ "failedAttemptThreshold": 5,
+ // The number of seconds for the lockout period
+ "lockoutPeriod": 1800
+ }
+}
+```
+
+To enabled self-serve account unlock through emails, add the following lines to your site configuration:
+
+```json
+{
+ // Validity expressed in minutes of the unlock account token
+ "auth.unlockAccountLinkExpiry": 30,
+ // Base64-encoded HMAC signing key to sign the JWT token for account unlock URLs
+ "auth.unlockAccountLinkSigningKey": "your-signing-key",
+}
+```
+
+The `ssh-keygen` command can be used to generate and encode the signing key, for example:
+
+```bash
+$ ssh-keygen -t ed25519 -a 128 -f auth.unlockAccountLinkSigningKey
+$ base64 auth.unlockAccountLinkSigningKey | tr -d '\n'
+LS0tLS1CRUdJTiBPUEVOU1NIIFBSSVZBVEUgS0VZLS0tLS0KYjNCbGJu...
+```
+
+Paste the result of the `base64` command as the value of `"auth.unlockAccountLinkSigningKey"`.
diff --git a/docs/admin/auth/index.mdx b/docs/admin/auth/index.mdx
index b87bd25bc..7acb7390a 100644
--- a/docs/admin/auth/index.mdx
+++ b/docs/admin/auth/index.mdx
@@ -1,19 +1,31 @@
# User authentication
-Sourcegraph supports the following ways for users to sign in:
+
+ Supported on [Enterprise](/pricing/enterprise) plans.
+
+ Available via the Web app.
+
+
-- [Builtin password authentication](#builtin-password-authentication)
-- [GitHub](#github)
-- [GitLab](#gitlab)
-- [Bitbucket Cloud](#bitbucket-cloud)
+In order to use a Sourcegraph instance, users need an account on the instance. Accounts are used to store settings and preferences, but also to identify a person to make decisions about repository visibility.
+
+For that, various authentication providers can be configured. Multiple options can be provided.
+
+If you want to make use of repository permissions, auth providers are also used to prove the identity of the user on the code hosts. For example: To be able to see private repositories from a GitHub instance, users need to tell Sourcegraph who they are on the code host. Thus, it might make sense to configure multiple auth providers, depending on your needs. For example, you might want to use your SSO provider as the main signup/signin source, but you will also want to configure a GitHub OAuth connection so that users can prove their GitHub identity to Sourcegraph.
+
+The following methods are supported for sign up and sign in:
+
+- [Builtin password authentication](/admin/auth/builtin)
+- [GitHub OAuth](#github)
+- [GitLab OAuth](#gitlab)
+- [Bitbucket Cloud OAuth](#bitbucket-cloud)
+- [Bitbucket Server OAuth](#bitbucket-server)
- [Gerrit](#gerrit) (Beta)
- [SAML](/admin/auth/saml)
- [OpenID Connect](#openid-connect)
- [Google Workspace (Google accounts)](#google-workspace-google-accounts)
- [HTTP authentication proxies](#http-authentication-proxies)
- [Username header prefixes](#username-header-prefixes)
-- [Username normalization](#username-normalization)
-- [Troubleshooting](#troubleshooting)
The authentication providers are configured in the [`auth.providers`](/admin/config/site_config#authentication-providers) site configuration option.
@@ -44,8 +56,7 @@ order:
use the [OpenID Connect provider](#openid-connect).
- If you wish to use LDAP and cannot use the GitHub/GitLab OAuth provider as described above, or if
you wish to use another authentication mechanism that is not yet supported, please [contact
- us](https://github.com/sourcegraph/sourcegraph/issues/new?template=feature_request) (we respond
- promptly).
+ us](https://sourcegraph.com/contact)
Most users will use only one auth provider, but you can use multiple auth providers if desired to
enable sign-in via multiple services. Identities from different providers will be mapped to a
@@ -54,87 +65,6 @@ external identity provider.
> NOTE: If OAuth is the only sign-in method available on sign-out, a new OAuth sign-in will be attempted immediately upon a redirect to the sign-in page. If it is necessary to sign-out and have persistent access to the sign-in page, enable `builtin` sign-in in addition to your OAuth sign-in.
-## Builtin password authentication
-
-The [`builtin` auth provider](/admin/config/site_config#builtin-password-authentication) manages user accounts internally in its own database. It supports user signup, login, and password reset (via email if configured, or else via a site admin).
-
-Password reset links expire after 4 hours by default - this can be configured in site configuration with the [`auth.passwordResetLinkExpiry`](/admin/config/site_config#auth-passwordResetLinkExpiry) field.
-
-### Creating builtin authentication users
-
-Users can be created with builtin password authentication in several ways:
-
-- through the site admin page `/site-admin/users/new`
-- through users [signing up](#how-to-control-user-sign-up)
-- through the `createUser` mutation in the GraphQL API
-- through [`src users create`](/cli/references/users/create)
-
-When [SMTP is enabled](/admin/config/email), special behaviours apply to whether a builtin authentication user's email is marked as verified by default - refer to [email verification](/admin/config/email#user-email-verification) for more details.
-
-### How to control user sign-up
-
-You can use the filter `allowSignup`, available in the builtin configuration, to control who can create an account in your Sourcegraph instance.
-
-**allowSignup**
-
- If set to `true`, users will see a sign-up link under the login form and will have access to the sign-up page, where they can create their accounts without restriction.
-
- When not set, it will default to `false` -- in this case, users will see request account link. Unauthenticated users can submit request account forms and admins will get notification on the instance which they can approve or reject. Account request feature can be disabled by setting `auth.accessRequest: {enabled: false}`, and in this case new user accounts should be created by the site admin manually.
-
- If you choose to block sign-ups by using the `allowSignup` filter available in another auth provider (eg., [GitHub](#how-to-control-user-sign-up-and-sign-in-with-github-auth-provider) or [GitLab](#how-to-control-user-sign-up-and-sign-in-with-gitlab-auth-provider)), make sure this builtin filter is removed or set to `false`. Otherwise, users will have a way to bypass the restriction.
-
- During the initial setup, the builtin sign-up will be available for the first user so they can create an account and become admin.
-
- ```json
- {
- // ...,
- "auth.providers": [{ "type": "builtin", "allowSignup": true }]
- }
-```
-> NOTE: If Sourcegraph is running on a free license all users will be created as site admins. Learn more about license settings on our [pricing page](https://about.sourcegraph.com/pricing).
-
-
-
-### Account lockout
-
-Sourcegraph 3.39+
-
-Account will be locked out for 30 minutes after 5 consecutive failed sign-in attempts within one hour for the builtin authentication provider. The threshold and duration of lockout and consecutive periods can be customized via `"auth.lockout"` in the site configuration:
-
-```json
-{
- // ...
- "auth.lockout": {
- // The number of seconds to be considered as a consecutive period
- "consecutivePeriod": 3600,
- // The threshold of failed sign-in attempts in a consecutive period
- "failedAttemptThreshold": 5,
- // The number of seconds for the lockout period
- "lockoutPeriod": 1800
- }
-}
-```
-
-To enabled self-serve account unlock through emails, add the following lines to your site configuration:
-
-```json
-{
- // Validity expressed in minutes of the unlock account token
- "auth.unlockAccountLinkExpiry": 30,
- // Base64-encoded HMAC signing key to sign the JWT token for account unlock URLs
- "auth.unlockAccountLinkSigningKey": "your-signing-key",
-}
-```
-
-The `ssh-keygen` command can be used to generate and encode the signing key, for example:
-
-```bash
-$ ssh-keygen -t ed25519 -a 128 -f auth.unlockAccountLinkSigningKey
-$ base64 auth.unlockAccountLinkSigningKey | tr -d '\n'
-LS0tLS1CRUdJTiBPUEVOU1NIIFBSSVZBVEUgS0VZLS0tLS0KYjNCbGJu...
-```
-
-Copy the result of the `base64` command as the value of the `"auth.unlockAccountLinkSigningKey"`.
## GitHub
@@ -165,7 +95,7 @@ Then add the following lines to your site configuration:
"clientSecret": "replace-with-the-oauth-client-secret",
"allowSignup": false, // CAUTION: Set to true to enable signup. If nothing is specified in `allowOrgs` or `allowOrgsMap`, any GitHub user can sign up.
"allowOrgs": ["your-org-name"], // Restrict logins and sign-ups if enabled to members of these orgs.
- "allowOrgsMap": { "orgName": ["your-team-name"]} // Restrict logins and sign-ups if enabled to members of teams that belong to a given org.
+ "allowOrgsMap": { "orgName": ["Your Team Name"]} // Restrict logins and sign-ups if enabled to members of teams that belong to a given org.
}
]
}
@@ -176,7 +106,7 @@ configuration.
Leave the `url` field empty for GitHub.com.
-Once you've configured GitHub as a sign-on provider, you may also want to [add GitHub repositories to Sourcegraph](/admin/external_service/github#repository-syncing).
+Once you've configured GitHub as a sign-on provider, you may also want to [add GitHub repositories to Sourcegraph](/admin/code_hosts/github#repository-syncing).
### How to control user sign-up and sign-in with GitHub auth provider
@@ -230,15 +160,20 @@ When combined with `"allowSignup": false` or unset, an admin should first create
Note that subteams inheritance is not supported — the name of child teams (subteams) should be informed so their members can be granted access to Sourcegraph.
+ When configuring teams in allowOrgsMap, use the team's display name. If the team names do not match exactly, users will be unable to create an account.
+
```json
{
"type": "github",
// ...
"allowOrgsMap": {
"org1": [
- "team1", "subteam1"
+ "Your Team Name"
],
"org2": [
+ "team1", "subteam1"
+ ],
+ "org3": [
"subteam2"
]
}
@@ -276,7 +211,7 @@ Then add the following lines to your site configuration:
Replace the `clientID` and `clientSecret` values with the values from your GitLab OAuth app
configuration.
-Once you've configured GitLab as a sign-on provider, you may also want to [add GitLab repositories to Sourcegraph](/admin/external_service/gitlab#repository-syncing).
+Once you've configured GitLab as a sign-on provider, you may also want to [add GitLab repositories to Sourcegraph](/admin/code_hosts/gitlab#repository-syncing).
> NOTE: Administrators on the GitLab instance who then sign in to Sourcegraph will not have access to all of the repositories on Sourcegraph as well. Administrators will only have access to repositories on GitLab for which they are assigned the Reporter role and above.
@@ -290,7 +225,7 @@ You can use the following filters to control how users can create accounts and s
When `false`, sign-up with GitLab will be blocked. In this case, new users can only sign in after an admin creates their account on Sourcegraph. The user account email should match their primary emails on GitLab (which are always verified).
- *If not set, unliked with GitHub, it defaults to `true`, allowing any GitLab user with access to your instance to sign up*.
+ *If not set, unlike with GitHub, it defaults to `true`, allowing any GitLab user with access to your instance to sign up*.
```json
@@ -345,7 +280,7 @@ The `token` parameter can be found on the **Settings > SAML SSO** page on GitLab
### Don't sync user permissions for internal repositories
-If your organization has a lot of internal repositories that should be accessible to everyone on GitLab, you may want to [mark internal repositories as public](/admin/external_service/gitlab#internal-repositories), and then configure your auth provider to not sync user permissions for internal repositories:
+If your organization has a lot of internal repositories that should be accessible to everyone on GitLab, you may want to [mark internal repositories as public](/admin/code_hosts/gitlab#internal-repositories), and then configure your auth provider to not sync user permissions for internal repositories:
```json
{
@@ -363,7 +298,7 @@ Sourcegraph instance:
- Callback URL: `https://sourcegraph.example.com/.auth/bitbucketcloud/callback`
- Permissions:
- `Account`: `Read`
- - `Repositories`: `Read` (more information in [repository permissions section](/admin/permissions/index))
+ - `Repositories`: `Read` (more information in [repository permissions section](/admin/permissions))
After the consumer is created, you will need the `Key` and the `Secret`, which can be found by expanding OAuth consumer in the list.
Then add the following lines to your [site configuration](/admin/config/site_config):
@@ -383,6 +318,34 @@ Then add the following lines to your [site configuration](/admin/config/site_con
```
Replace the `clientKey` and `clientSecret` values with the values from your Bitbucket Cloud OAuth consumer.
+## Bitbucket Server
+
+[Configure a Bitbucket Server incoming link](https://confluence.atlassian.com/bitbucketserver0720/configure-an-incoming-link-1116282013.html). Set the following values, replacing `sourcegraph.example.com` with the IP or hostname of your
+Sourcegraph instance:
+
+- Redirect URL: `https://sourcegraph.example.com/.auth/bitbucketserver/callback`
+- Permissions:
+ - `Repositories`: `Read` (more information in [repository permissions section](/admin/permissions))
+
+After the link is created, you will need to copy the `Client ID` and the `Client Secret`.
+Then add the following lines to your [site configuration](/admin/config/site_config):
+
+```json
+{
+ // ...
+ "auth.providers": [
+ {
+ "type": "bitbucketserver",
+ "url": "https://bitbucket.example.com",
+ "displayName": "Bitbucket Server",
+ "clientID": "replace-with-the-oauth-client-id",
+ "clientSecret": "replace-with-the-oauth-client-secret"
+ "allowSignup": false // This is set to false by default, which means that any bitbucket server user cannot automatically sign up to access your instance.
+ }
+ ]
+```
+Replace the `clientID` and `clientSecret` values with the values from your Bitbucket Server link.
+
## Gerrit
Beta
@@ -412,10 +375,16 @@ The [`openidconnect` auth provider](/admin/config/site_config#openid-connect-inc
- [Ping Identity](https://www.pingidentity.com/en/resources/client-library/articles/openid-connect.html)
- [Auth0](https://auth0.com/docs/protocols/oidc)
- [Salesforce Identity](https://developer.salesforce.com/page/Inside_OpenID_Connect_on_Force.com)
-- [Microsoft Entra ID](https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-protocols-openid-connect-code)
+- [Microsoft Entra ID (Azure Active Directory)](https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-protocols-openid-connect-code)
- [Google Identity Platform](https://developers.google.com/identity/)
- Known issue: [OneLogin](https://www.onelogin.com/openid-connect) OpenID Connect is not supported (use SAML for OneLogin instead)
+If the OpenID Connect provider requires specifying scopes, the following scopes are required:
+
+- `openid`
+- `email`
+- `profile`
+
To configure Sourcegraph to authenticate users via OpenID Connect:
1. Create a new OpenID Connect client in the external service (such as one of those listed above).
@@ -433,6 +402,7 @@ Example [`openidconnect` auth provider](/admin/config/site_config#openid-connect
{
"type": "openidconnect",
"issuer": "https://oidc.example.com",
+ "displayName": "Your Custom Provider Name", //This is optional
"clientID": "my-client-id",
"configID":"my-config-id", //An arbitrary value that will be used to reference to this auth provider within the site config
"clientSecret": "my-client-secret",
@@ -544,17 +514,18 @@ Let's say the email field in your Sourcegraph account was kept blank when a site
Exceptions to this rule are [HTTP Proxies](#http-authentication-proxies), where there's an option to make the link via username only.
For [Bitbucket](/admin/config/authorization_and_authentication#bitbucket-server-bitbucket-data-center-authorization), we don't support OAuth. Still, the match between the chosen auth provider used with Bitbucket and a user's Bitbucket account happens via username.
-Using only a username to match a Sourcegraph account to an auth provider account is not recommended, as you can see [here](/admin/external_service/gitlab#username), for example.
+Using only a username to match a Sourcegraph account to an auth provider account is not recommended, as you can see [here](/admin/code_hosts/gitlab#username), for example.
Usernames in Sourcegraph are mutable, so a malicious user could change a username, elevating their privileges.
## Linking accounts from multiple auth providers
+
Sourcegraph will automatically link accounts from multiple external auth providers, resulting in a single user account on Sourcegraph. That way a user can login with multiple auth methods and end up being logged in with the same Sourcegraph account. In general, to link accounts, the following condition needs to be met:
At the time of signing in with the new account, any of the email addresses configured on the user account on the auth provider must match any of the **verified** email addresses on the user account on the Sourcegraph side. If there is a match, the accounts are linked, [otherwise a new user account is created if auth provider is configured to support user sign ups](#how-to-control-user-sign-up).
## Username normalization
-Usernames on Sourcegraph are normalized according to the following rules.
+Usernames provided from external authentication providers are normalized in Sourcegraph according to the following rules:
- Any characters not in `[a-zA-Z0-9-._]` are replaced with `-`
- Usernames with exactly one `@` character are interpreted as an email address, so the username will be extracted by truncating at the `@` character.
@@ -567,4 +538,4 @@ Usernames from authentication providers are normalized before being used in Sour
For example, a user whose external username (according the authentication provider) is `alice_smith@example.com` would have the Sourcegraph username `alice-smith`.
-If multiple accounts normalize into the same username, only the first user account is created. Other users won't be able to sign in. This is a rare occurrence; contact support if this is a blocker.
+If multiple accounts normalize into the same username, separate accounts are still created, but Sourcegraph will add a randomized suffix to the username to ensure uniqueness.
diff --git a/docs/admin/auth/login_form.mdx b/docs/admin/auth/login_form.mdx
index 0c75eaa95..23c234b51 100644
--- a/docs/admin/auth/login_form.mdx
+++ b/docs/admin/auth/login_form.mdx
@@ -101,6 +101,36 @@ The example configuration above will render 2 buttons, `Login with GitHub Enterp
By default, the `displayPrefix` will be `Continue with` and `displayName` will be infered from the auth provider type.
+### Use only SSO for sign-in, but keep permissions syncing
+
+Sourcegraph requires users to connect their external accounts to Sourcegraph so that Sourcegraph can sync user permissions from code hosts.
+This is usually done by having the code host as a sign-in provider. However, in some cases, it might be desirable to use only SSO for sign-in,
+but still sync permissions from code hosts. This can be done by setting `"noSignIn": true` on the code host auth providers required for permissions syncing.
+This will hide the code host auth providers from the login form, but will still allow users to connect their external accounts from their
+User Settings > Account Security page. Users will also be presented with a modal upon sign-in, asking them to connect these external accounts.
+
+Example [site configuration](/admin/config/site_config):
+```json
+{
+ "auth.providers": [
+ {
+ // SSO sign-in provider
+ },
+ // Providers required for permissions syncing
+ {
+ "type": "github",
+ "displayName": "GitHub Enterprise",
+ "noSignIn": true
+ },
+ {
+ "type": "gitlab",
+ "displayName": "GitLab",
+ "noSignIn": true
+ }
+ ]
+}
+```
+
### Hide auth provider
> NOTE: Hiding an auth provider is mostly useful for development purposes and special cases.
diff --git a/docs/admin/auth/saml/azure_ad.mdx b/docs/admin/auth/saml/azure_ad.mdx
index 2223a68b9..e6b0c7c16 100644
--- a/docs/admin/auth/saml/azure_ad.mdx
+++ b/docs/admin/auth/saml/azure_ad.mdx
@@ -1,19 +1,20 @@
-# Configuring SAML with Microsoft Entra ID
+# Configuring SAML with Microsoft Entra ID
+Formerly known as Azure Active Directory, or Azure AD.
## 1. Add an unlisted (non-gallery) application to your Microsoft Entra ID organization
1. In Microsoft Entra ID, create an unlisted (non-gallery) application [following the official documentation](https://docs.microsoft.com/en-us/azure/active-directory/manage-apps/add-non-gallery-app).
-1. Once the application is created, follow [these instructions to enable SAML SSO](https://docs.microsoft.com/en-us/azure/active-directory/manage-apps/configure-single-sign-on-non-gallery-applications). Use these configuration values (replacing "sourcegraph.example.com" with your Sourcegraph instance URL):
- * **Identifier (Entity ID):** `https://sourcegraph.example.com/.auth/saml/metadata`
- * **Reply URL (Assertion Consumer Service URL):** `https://sourcegraph.example.com/.auth/saml/acs`
- * **Sign-on URL, Relay State, and Logout URL** can be left empty.
- * **User Attributes & Claims:** Add the following attributes.
- - `emailaddress`: user.mail (required)
- - `name`: user.userprincipalname (optional)
- - `login`: user.userprincipalname (optional)
- * **Name ID**: `email`
- * You can leave the other configuration values set to their defaults.
-1. Record the value of the "App Federation Metadata Url". You'll need this in the next section.
+2. Once the application is created, follow [these instructions to enable SAML SSO](https://docs.microsoft.com/en-us/azure/active-directory/manage-apps/configure-single-sign-on-non-gallery-applications). Use these configuration values (replacing "sourcegraph.example.com" with your Sourcegraph instance URL):
+ * **Identifier (Entity ID):** `https://sourcegraph.example.com/.auth/saml/metadata`
+ * **Reply URL (Assertion Consumer Service URL):** `https://sourcegraph.example.com/.auth/saml/acs`
+ * **Sign-on URL, Relay State, and Logout URL** can be left empty.
+ * **User Attributes & Claims:** Add the following attributes.
+ - `emailaddress`: user.mail (required)
+ - `name`: user.userprincipalname (optional)
+ - `login`: user.userprincipalname (optional)
+ * **Name ID**: `email`
+ * You can leave the other configuration values set to their defaults.
+3. Record the value of the "App Federation Metadata Url". You'll need this in the next section.
## 2. Add the SAML auth provider to Sourcegraph site config
@@ -33,4 +34,4 @@
}
```
-> NOTE: Optional, but recommended: [add automatic provisioning of users with SCIM](/admin/scim).
+Recommended: [add automatic provisioning of users with SCIM](/admin/scim).
diff --git a/docs/admin/auth/saml/index.mdx b/docs/admin/auth/saml/index.mdx
index 4c5b07198..a7afba92d 100644
--- a/docs/admin/auth/saml/index.mdx
+++ b/docs/admin/auth/saml/index.mdx
@@ -70,8 +70,8 @@ Here are some examples of what your site config might look like:
Then, confirm that there are no error messages in:
-- The `sourcegraph-frontend` deployment logs for instances using [Docker Compose](/admin/deploy/docker-compose/index) and [Kubernetes](/admin/deploy/kubernetes/index)
-- The `sourcegraph/server` container logs for instances using a [single docker container](/admin/deploy/docker-single-container/index)
+- The `sourcegraph-frontend` deployment logs for instances using [Docker Compose](/admin/deploy/docker-compose/) and [Kubernetes](/admin/deploy/kubernetes/)
+- The `sourcegraph/server` container logs for instances using a [single docker container](/admin/deploy/docker-single-container/)
The most likely error message indicating a problem is:
@@ -81,7 +81,7 @@ Error prefetching SAML service provider metadata
> NOTE: Email or NameID changes in the identity provider are not automatically reflected in Sourcegraph. Admins may manually update a users email via the admin interface at `https://example-sourcegraph.com/users//settings/emails`, or remove the user and recreate a new account.
>
-> Work is planned to support SCIM on SAML auth providers, which should automate this process. ([tracking issue](https://github.com/sourcegraph/sourcegraph/issues/22732))
+> Work is planned to support SCIM on SAML auth providers, which should automate this process.
### How to control user sign-up and sign-in
@@ -177,8 +177,8 @@ See [SAML troubleshooting](#troubleshooting) for more tips.
### Enable logging in Sourcegraph containers
Set the env var `INSECURE_SAML_LOG_TRACES=1` to log all SAML requests and responses on:
-- The `sourcegraph-frontend` deployment for instances using [Docker Compose](/admin/deploy/docker-compose/index) and [Kubernetes](/admin/deploy/kubernetes/index)
-- The `sourcegraph/server` container for instances using a [single docker container](/admin/deploy/docker-single-container/index)
+- The `sourcegraph-frontend` deployment for instances using [Docker Compose](/admin/deploy/docker-compose/) and [Kubernetes](/admin/deploy/kubernetes/)
+- The `sourcegraph/server` container for instances using a [single docker container](/admin/deploy/docker-single-container/)
### Debugging with your browser
When debugging a problem with SAML its often helpful to use the browser's developer tools to directly observe the XML assertions and their contents. Below are some general pointers on how to collect SAML communications:
@@ -197,3 +197,11 @@ The above example does not contain any sensitive information. In a real network
There are a variety of ways to decompress and decrypt XML. For an easy to use tools we recommend [samltool.com](https://www.samltool.com/), which provides a user friendly UI to accomplish these tasks.
If you're not sure why your SAML isn't working and you've collected the network request and response from your login attempts, please feel free to reach out to our support team at [support@sourcegraph.com](mailto:support@sourcegraph.com), **please redact any secret keys that may be present in your site configuration or SAML assertions before sharing with us at Sourcegraph.**
+
+## FAQ
+
+### Multiple X509 certificates
+
+Our identity provider (IdP) is configured with multiple X509 certificates. Does Sourcegraph support this?
+
+Yes, Sourcegraph will register all X509 certificates, and requests signed with any of them will be accepted.
diff --git a/docs/admin/auth/troubleshooting.mdx b/docs/admin/auth/troubleshooting.mdx
index 5f7d65f23..314cd54f9 100644
--- a/docs/admin/auth/troubleshooting.mdx
+++ b/docs/admin/auth/troubleshooting.mdx
@@ -2,7 +2,7 @@
## Basic principles
-As of 3.20, Sourcegraph supports 6 authentication methods as listed in our [User authentication (SSO)](https://docs.sourcegraph.com/admin/auth) page, details about how to configure those methods should refer to the relevant document pages.
+As of 3.20, Sourcegraph supports 6 authentication methods as listed in our [User authentication (SSO)](/admin/auth) page, details about how to configure those methods should refer to the relevant document pages.
Among these authentication methods, there are 4 that require Sourcegraph to send requests to the authentication provider, including GitHub OAuth, GitLab OAuth, OpenID Connect and SAML.
@@ -38,8 +38,8 @@ Therefore, it makes no sense to have the central SSO redirect users directly bac
Set the env var `INSECURE_OAUTH2_LOG_TRACES=1` to log all OAuth2 requests and responses on:
-* [Docker Compose](/admin/deploy/docker-compose/index) and [Kubernetes](/admin/deploy/kubernetes/index): the `sourcegraph-frontend` deployment
-* [Single-container](/admin/deploy/docker-single-container/index): the `sourcegraph/server` container
+* [Docker Compose](/admin/deploy/docker-compose/) and [Kubernetes](/admin/deploy/kubernetes/): the `sourcegraph-frontend` deployment
+* [Single-container](/admin/deploy/docker-single-container/): the `sourcegraph/server` container
### Make sure the client ID and client secret are actually correct
diff --git a/docs/admin/beta_and_experimental_features.mdx b/docs/admin/beta_and_experimental_features.mdx
index 576114e08..21720e8fe 100644
--- a/docs/admin/beta_and_experimental_features.mdx
+++ b/docs/admin/beta_and_experimental_features.mdx
@@ -1,25 +1,25 @@
# Beta and experimental features
-Sourcegraph often beta tests major features before we make them generally available.
+Sourcegraph often beta tests major features before we make them generally available.
Exposing beta and experimental features gives you an opportunity to try our newest features sooner.
-In return, your feedback helps us make sure that our new features are reliable and useful, and we appreciate any and all feedback you want to provide. You can [file an issue](https://github.com/sourcegraph/sourcegraph/issues/new/choose), email it directly to [feedback@sourcegraph.com](mailto:feedback@sourcegraph.com), or use the in-app feedback modal.
+In return, your feedback helps us make sure that our new features are reliable and useful, and we appreciate any and all feedback you want to provide. You can email us directly to [feedback@sourcegraph.com](mailto:feedback@sourcegraph.com).
-## **Both** beta and experimental features
+## Both beta and experimental features
-For both features labeled `Beta` and those labeled `Experimental`, Sourcegraph wants to be transparent that:
+For both features labeled `Beta` and those labeled `Experimental`, Sourcegraph wants to be transparent that:
- The feature is undergoing active development and your [feedback](mailto:feedback@sourcegraph.com) is especially appreciated
- The feature may have bugs
- The feature may be changed, deprecated, or removed
- The feature is excluded from our [Support SLAs](https://handbook.sourcegraph.com/support#slas)
-- The feature may have an additional cost to use once it becomes generally available
+- The feature may have an additional cost to use once it becomes generally available
- Any documentation for the feature will explicitly note the feature is in beta or experimental mode
## Experimental features
-If a feature is labeled `Experimental`, this specifically means:
+If a feature is labeled `Experimental`, this specifically means:
- The feature may be primarily supported by the product engineering team rather than our customer support team
- The feature may have limited support and no documentation in the Sourcegraph docs
@@ -29,10 +29,10 @@ If a feature is labeled `Experimental`, this specifically means:
## Beta features
-If a feature is labeled `Beta`, this specifically means:
+If a feature is labeled `Beta`, this specifically means:
-- The feature will have documentation on docs.sourcegraph.com
+- The feature will have documentation on sourcegraph.com/docs
- The feature will be primarily supported by the customer support team
-- The feature may require intentional setup, or it may be widely available to all users by default
+- The feature may require intentional setup, or it may be widely available to all users by default
- The customer engineering team is aware of this feature, but may rely on product managers to introduce it to customers
- We think there's about a 90% chance this makes it to GA
diff --git a/docs/versioned/5.2/admin/external_service/aws_codecommit.mdx b/docs/admin/code_hosts/aws_codecommit.mdx
similarity index 83%
rename from docs/versioned/5.2/admin/external_service/aws_codecommit.mdx
rename to docs/admin/code_hosts/aws_codecommit.mdx
index 07811daf0..20b087e6b 100644
--- a/docs/versioned/5.2/admin/external_service/aws_codecommit.mdx
+++ b/docs/admin/code_hosts/aws_codecommit.mdx
@@ -1,5 +1,12 @@
# AWS CodeCommit
+
+ Supported on [Enterprise](/pricing/enterprise) plans.
+
+ Available via the Web app.
+
+
+
Site admins can sync Git repositories hosted on [AWS CodeCommit](https://aws.amazon.com/codecommit/) with Sourcegraph so that users can search and navigate the repositories.
To connect AWS CodeCommit to Sourcegraph:
@@ -15,13 +22,15 @@ Since version **3.4** of Sourcegraph, the AWS CodeCommit service **requires** [G
For detailed instructions on how to create the credentials in IAM, see: [Setup for HTTPS Users Using Git Credentials](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-gc.html)
+ We don't plan to implement and support authentication roles for AWS CodeCommit such as IAM Roles, for example AssumeRole or IAM Anywhere. We encourage CodeCommit customers to continue Sourcegraph's provisions as shown in the schema below.
+
## Configuration
AWS CodeCommit connections support the following configuration options, which are specified in the JSON editor in the site admin "Manage code hosts" area.
-{/* [View page on docs.sourcegraph.com](https://docs.sourcegraph.com/admin/external_service/aws_codecommit) to see rendered content.
*/}
+{/* [View page on our docs](/admin/code_hosts/aws_codecommit) to see rendered content.
*/}
-### admin/external_service/aws_codecommit.schema.json
+### admin/code_hosts/aws_codecommit.schema.json
```json
{
@@ -81,10 +90,28 @@ AWS CodeCommit connections support the following configuration options, which ar
To add CodeCommit repositories in Docker Container:
-1. Generate a public/private rsa key pair that does not require passphrase as listed in the [Step 3.1 of the AWS SSH setup guide](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-ssh-unixes.html#setting-up-ssh-unixes-keys). Sourcegraph does not work withe key pair that requires passphrase.
+1. Generate a public/private rsa key pair that does not require passphrase as listed in the [Step 3.1 of the AWS SSH setup guide](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-ssh-unixes.html#setting-up-ssh-unixes-keys). Sourcegraph does not work with the key pair that requires passphrase.
1. Follow the rest of the steps detailed in the [AWS SSH setup guide](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-ssh-unixes.html) to make sure you can connect to the code host locally.
1. Confirm you have the connection by running the following ssh command locally: `ssh git-codecommit.us-west-1.amazonaws.com` (Update link with your server region)
1. Confirm you can clone the repository locally.
+
+### Configuring SSH credentials in the Web UI
+
+```json
+{
+ "gitURLType": "ssh",
+ "gitSSHKeyID": "",
+ "gitSSHCredential": {
+ // make sure the key is base64 encoded
+ // $ cat ~/.ssh/id_rsa | base64
+ "privateKey": "",
+ "passphrase": ""
+ }
+}
+```
+
+### Mounting SSH keys into the container
+
1. Copy all the files at your `$HOME/.ssh directory` to `$HOME/.sourcegraph/config/ssh` directory. See [docs](/admin/deploy/docker-single-container/#ssh-authentication-config-keys-knownhosts) for more information about our ssh file system.
1. Read our [guide here](/admin/deploy/docker-compose/#git-ssh-configuration) for Docker Compose deployments
1. Read our [guide here](/admin/deploy/kubernetes/configure#ssh-for-cloning) for Kubernetes deployments
diff --git a/docs/versioned/5.2/admin/external_service/azuredevops.mdx b/docs/admin/code_hosts/azuredevops.mdx
similarity index 90%
rename from docs/versioned/5.2/admin/external_service/azuredevops.mdx
rename to docs/admin/code_hosts/azuredevops.mdx
index c86ac9397..ddaaa580a 100644
--- a/docs/versioned/5.2/admin/external_service/azuredevops.mdx
+++ b/docs/admin/code_hosts/azuredevops.mdx
@@ -1,5 +1,12 @@
# Azure DevOps
+
+ Supported on [Enterprise](/pricing/enterprise) plans.
+
+ Available via the Web app.
+
+
+
Site admins can sync Git repositories hosted on [Azure DevOps](https://dev.azure.com) with Sourcegraph so that users can search and navigate the repositories.
To connect Azure DevOps to Sourcegraph, create a personal access token from your user settings page by following the below steps:
@@ -44,19 +51,19 @@ Next, configure the code host connection by following the next steps:
Currently, all repositories belonging to the configured organizations/projects will be synced.
-In addition, you may exclude one or more repositories by setting the [`exclude`](/admin/external_service/azuredevops#configuration) field in the code host connection.
+In addition, you may exclude one or more repositories by setting the [`exclude`](/admin/code_hosts/azuredevops#configuration) field in the code host connection.
### HTTPS cloning
-Sourcegraph clones repositories from Azure DevOps via HTTP(S), using the [`username`](/admin/external_service/azuredevops#configuration) and [`token`](/admin/external_service/azuredevops#configuration) required fields you provide in the configuration.
+Sourcegraph clones repositories from Azure DevOps via HTTP(S), using the [`username`](/admin/code_hosts/azuredevops#configuration) and [`token`](/admin/code_hosts/azuredevops#configuration) required fields you provide in the configuration.
## Configuration
Azure DevOps connections support the following configuration options, which are specified in the JSON editor in the site admin "Manage code hosts" area.
-{/* [View page on docs.sourcegraph.com](https://docs.sourcegraph.com/admin/external_service/azuredevops) to see rendered content.
*/}
+{/* [View page on our docs](/admin/code_hosts/azuredevops) to see rendered content.
*/}
-### admin/external_service/azuredevops.schema.json
+### admin/code_hosts/azuredevops.schema.json
```json
{
@@ -87,7 +94,7 @@ Azure DevOps connections support the following configuration options, which are
//
// If "http", Sourcegraph will access repositories using Git URLs of the form http(s)://dev.azure.com/myrepo.git.
//
- // If "ssh", Sourcegraph will access repositories using Git URLs of the form git@ssh.dev.azure.com:v3/myrepo. See the documentation for how to provide SSH private keys and known_hosts: https://docs.sourcegraph.com/admin/repo/auth#repositories-that-need-http-s-or-ssh-authentication.
+ // If "ssh", Sourcegraph will access repositories using Git URLs of the form git@ssh.dev.azure.com:v3/myrepo. See the documentation for how to provide SSH private keys and known_hosts: https://sourcegraph.com/docs/admin/repo/auth#repositories-that-need-http-s-or-ssh-authentication.
"gitURLType": "http",
// An array of organization names identifying Azure DevOps organizations whose repositories should be mirrored on Sourcegraph.
diff --git a/docs/versioned/5.2/admin/external_service/bitbucket_cloud.mdx b/docs/admin/code_hosts/bitbucket_cloud.mdx
similarity index 89%
rename from docs/versioned/5.2/admin/external_service/bitbucket_cloud.mdx
rename to docs/admin/code_hosts/bitbucket_cloud.mdx
index b6fccec34..a9f6f5bee 100644
--- a/docs/versioned/5.2/admin/external_service/bitbucket_cloud.mdx
+++ b/docs/admin/code_hosts/bitbucket_cloud.mdx
@@ -1,5 +1,12 @@
# Bitbucket Cloud
+
+ Supported on [Enterprise](/pricing/enterprise) plans.
+
+ Available via the Web app.
+
+
+
Site admins can sync Git repositories hosted on [Bitbucket Cloud](https://bitbucket.org) with Sourcegraph so that users can search and navigate the repositories.
To connect Bitbucket Cloud to Sourcegraph:
@@ -15,9 +22,9 @@ Currently, all repositories belonging to the user configured will be synced.
In addition, there is one more field for configuring which repositories are mirrored:
-- [`teams`](/admin/external_service/bitbucket_cloud#configuration)
+- [`teams`](/admin/code_hosts/bitbucket_cloud#configuration)
A list of teams (workspaces) that the configured user has access to whose repositories should be synced.
-- [`exclude`](/admin/external_service/bitbucket_cloud#configuration)
+- [`exclude`](/admin/code_hosts/bitbucket_cloud#configuration)
A list of repositories to exclude, which takes precedence over the `teams` field.
## Configuration options
@@ -65,7 +72,7 @@ Use the newly created access token to configure the Bitbucket Cloud connection:
### HTTPS cloning
-Sourcegraph clones repositories from your Bitbucket Cloud via HTTP(S), using the [`username`](/admin/external_service/bitbucket_cloud#configuration) and [`appPassword`](/admin/external_service/bitbucket_cloud#configuration) required fields you provide in the configuration.
+Sourcegraph clones repositories from your Bitbucket Cloud via HTTP(S), using the [`username`](/admin/code_hosts/bitbucket_cloud#configuration) and [`appPassword`](/admin/code_hosts/bitbucket_cloud#configuration) required fields you provide in the configuration.
## Rate limits
@@ -75,7 +82,7 @@ When Sourcegraph encounters rate limits on Bitbucket Cloud, it will retry the re
### Internal rate limits
-See [Internal rate limits](/admin/external_service/rate_limits#internal-rate-limits)
+See [Internal rate limits](/admin/code_hosts/rate_limits#internal-rate-limits)
## User authentication
@@ -105,9 +112,9 @@ Then, add or edit a Bitbucket Cloud connection as described above and include th
Bitbucket Cloud connections support the following configuration options, which are specified in the JSON editor in the site admin "Manage code hosts" area.
-{/* [View page on docs.sourcegraph.com](https://docs.sourcegraph.com/admin/external_service/bitbucket_cloud) to see rendered content.
*/}
+{/* [View page on our docs](/admin/code_hosts/bitbucket_cloud) to see rendered content.
*/}
-### admin/external_service/bitbucket_cloud.schema.json
+### admin/code_hosts/bitbucket_cloud.schema.json
```json
{
@@ -122,7 +129,7 @@ Bitbucket Cloud connections support the following configuration options, which a
// The app password to use when authenticating to the Bitbucket Cloud. Also set the corresponding "username" field.
"appPassword": null,
- // If non-null, enforces Bitbucket Cloud repository permissions. This requires that there is an item in the [site configuration json](https://docs.sourcegraph.com/admin/config/site_config#auth-providers) `auth.providers` field, of type "bitbucketcloud" with the same `url` field as specified in this `BitbucketCloudConnection`.
+ // If non-null, enforces Bitbucket Cloud repository permissions. This requires that there is an item in the [site configuration json](https://sourcegraph.com/docs/admin/config/site_config#auth-providers) `auth.providers` field, of type "bitbucketcloud" with the same `url` field as specified in this `BitbucketCloudConnection`.
"authorization": null,
// A list of repositories to never mirror from Bitbucket Cloud. Takes precedence over "teams" configuration.
@@ -154,7 +161,7 @@ Bitbucket Cloud connections support the following configuration options, which a
//
// If "http", Sourcegraph will access Bitbucket Cloud repositories using Git URLs of the form https://bitbucket.org/myteam/myproject.git.
//
- // If "ssh", Sourcegraph will access Bitbucket Cloud repositories using Git URLs of the form git@bitbucket.org:myteam/myproject.git. See the documentation for how to provide SSH private keys and known_hosts: https://docs.sourcegraph.com/admin/repo/auth#repositories-that-need-http-s-or-ssh-authentication.
+ // If "ssh", Sourcegraph will access Bitbucket Cloud repositories using Git URLs of the form git@bitbucket.org:myteam/myproject.git. See the documentation for how to provide SSH private keys and known_hosts: https://sourcegraph.com/docs/admin/repo/auth#repositories-that-need-http-s-or-ssh-authentication.
"gitURLType": "http",
// Other example values:
// - "ssh"
diff --git a/docs/admin/external_service/bitbucket_server.mdx b/docs/admin/code_hosts/bitbucket_server.mdx
similarity index 87%
rename from docs/admin/external_service/bitbucket_server.mdx
rename to docs/admin/code_hosts/bitbucket_server.mdx
index 36872d121..e0c81dbd9 100644
--- a/docs/admin/external_service/bitbucket_server.mdx
+++ b/docs/admin/code_hosts/bitbucket_server.mdx
@@ -1,4 +1,11 @@
-# Bitbucket Server / Bitbucket Data Center
+# Bitbucket Server/Bitbucket Data Center
+
+
+ Supported on [Enterprise](/pricing/enterprise) plans.
+
+ Available via the Web app.
+
+
Site admins can sync Git repositories hosted on [Bitbucket Server](https://www.atlassian.com/software/bitbucket/server) or [Bitbucket Data Center](https://www.atlassian.com/enterprise/data-center/bitbucket) with Sourcegraph so that users can search and navigate their repositories.
@@ -15,7 +22,7 @@ Also consider installing the [Sourcegraph Bitbucket Server plugin](/integration/
Sourcegraph requires a Bitbucket Server / Bitbucket Data Center personal access token with **read** permissions to sync repositories.
-When using [batch changes](/batch_changes/) the access token needs **write** permissions on the project and repository level. See "[Code host interactions in batch changes](/batch_changes/explanations/permissions_in_batch_changes#code-host-interactions-in-batch-changes)" for details.
+When using [batch changes](/batch-changes/) the access token needs **write** permissions on the project and repository level. See "[Code host interactions in batch changes](/batch-changes/permissions-in-batch-changes#code-host-interactions-in-batch-changes)" for details.
You can create a personal access token at `https://[your-bitbucket-hostname]/plugins/servlet/access-tokens/add`. Also set the corresponding `username` field.
@@ -25,13 +32,13 @@ For Bitbucket Server instances that don't support personal access tokens (Bitbuc
There are four fields for configuring which repositories are mirrored:
-- [`repos`](/admin/external_service/bitbucket_server#configuration)
+- [`repos`](/admin/code_hosts/bitbucket_server#configuration)
- A list of repositories in `projectKey/repositorySlug` format. The order determines the order in which we sync repository metadata and is safe to change.
-- [`repositoryQuery`](/admin/external_service/bitbucket_server#configuration)
+- [`repositoryQuery`](/admin/code_hosts/bitbucket_server#configuration)
- A list of strings with some pre-defined options (`none`, `all`), and/or a [Bitbucket Server / Bitbucket Data Center Repo Search Request Query Parameters](https://docs.atlassian.com/bitbucket-server/rest/6.1.2/bitbucket-rest.html#idp355).
-- [`exclude`](/admin/external_service/bitbucket_server#configuration)
+- [`exclude`](/admin/code_hosts/bitbucket_server#configuration)
- A list of repositories to exclude which takes precedence over the `repos`, and `repositoryQuery` fields.
-- [`excludePersonalRepositories`](/admin/external_service/bitbucket_server#configuration)
+- [`excludePersonalRepositories`](/admin/code_hosts/bitbucket_server#configuration)
- With this enabled, Sourcegraph will exclude any personal repositories from being imported, even if it has access to them.
## Webhooks
@@ -46,6 +53,8 @@ Enforcing Bitbucket Server / Bitbucket Data Center permissions can be configured
> NOTE: It can take some time to complete full cycle of repository permissions sync if you have a large number of users or repositories. [See sync duration time](/admin/permissions/syncing#sync-duration) for more information.
+> NOTE: Sourcegraph can only sync permissions for personal repositories on Bitbucket Server / Bitbucket Data Center when the Sourcegraph [Bitbucket Server plugin](/integration/bitbucket_server) is installed.
+
### Prerequisites
1. You have the exact same user accounts, **with matching usernames**, in Sourcegraph and Bitbucket Server / Bitbucket Data Center. This can be accomplished by configuring an [external authentication provider](/admin/auth/) that mirrors user accounts from a central directory like LDAP or Active Directory. The same should be done on Bitbucket Server / Bitbucket Data Center with [external user directories](https://confluence.atlassian.com/bitbucketserver/external-user-directories-776640394.html).
@@ -54,14 +63,33 @@ Enforcing Bitbucket Server / Bitbucket Data Center permissions can be configured
### Setup
+Repository permissions for Bitbucket Server / Bitbucket Data Center can be configured via OAuth1 or OAuth2. OAuth2 is the recommended method.
+
+#### OAuth2
+
+You'll first need to [configure Bitbucket Server as an auth provider](/admin/auth/#bitbucket-server). Next, in your Bitbucket Server code host connection, add the following `authorization` settings:
+
+ ```json
+ {
+ // Other config goes here
+ "authorization": {
+ "oauth2": true
+ }
+ }
+ ```
+
+Once a user has connected their Bitbucket Server account, either by signing-in via Bitbucket Server or by connecting the account on their **Settings** > **Account security** page, their OAuth token will be used to sync their repository permissions.
+
+#### OAuth1
+
This section walks you through the process of setting up an *Application Link between Sourcegraph and Bitbucket Server / Bitbucket Data Center* and configuring the Sourcegraph Bitbucket Server / Bitbucket Data Center configuration with `authorization` settings. It assumes the above prerequisites are met.
As an admin user, go to the "Application Links" page. You can use the sidebar navigation in the admin dashboard, or go directly to [https://bitbucketserver.example.com/plugins/servlet/applinks/listApplicationLinks](https://bitbucketserver.example.com/plugins/servlet/applinks/listApplicationLinks).
> NOTE: There has been some [changes to the flow in Bitbucket v7.20](https://confluence.atlassian.com/bitbucketserver/bitbucket-data-center-and-server-7-20-release-notes-1101934428.html). Depending on your Bitbucket version, the setup is slightly different. Please follow the instructions for the correct version of Bitbucket below:
-- [Bitbucket v7.20 and above](#bitbucket-v7-20-and-above)
-- [Bitbucket v7.19 and below](#bitbucket-v7-19-and-below)
+- [Bitbucket v7.20 and above](#bitbucket-v720-and-above)
+- [Bitbucket v7.19 and below](#bitbucket-v719-and-below)
#### Bitbucket v7.20 and above
@@ -80,7 +108,7 @@ Write Sourcegraph's external URL in the **Application URL** field and click **Co

1. Generate an RSA key pair in your terminal with `ssh-keygen -t rsa -b 4096 -o -a 100 -f sourcegraph.pem -m PEM && openssl rsa -in sourcegraph.pem -pubout > sourcegraph.pub`. Note that the private key must be in PKCS#1 format. Copy the contents of `sourcegraph.pub` and paste them in the *Public Key* field.

-1. Scroll to the bottom and check the *Allow 2-Legged OAuth* checkbox, then write your admin account's username (this **must** match the `username` used in the external service configuration) in the *Execute as* field and, lastly, check the *Allow user impersonation through 2-Legged OAuth* checkbox. Press **Save**.
+1. Scroll to the bottom and check the ***Allow 2-Legged OAuth*** checkbox, then write your admin account's username (this **must** match the `username` used in the external service configuration. In an instance where you may choose to use a service account, make sure that it has admin privileges.) in the *Execute as* field and, lastly, check the ***Allow user impersonation through 2-Legged OAuth*** checkbox. Press **Save**.

1. Go to your Sourcegraph's *Manage code hosts* page (i.e. `https://sourcegraph.example.com/site-admin/external-services`) and either edit or create a new *Bitbucket Server / Bitbucket Data Center* connection. Add the following settings:
```json
@@ -161,7 +189,7 @@ Bitbucket Server / Bitbucket Data Center versions older than v5.5 require specif
### HTTPS cloning
-Sourcegraph by default clones repositories from your Bitbucket Server / Bitbucket Data Center via HTTP(S), using the access token or account credentials you provide in the configuration. The [`username`](/admin/external_service/bitbucket_server#configuration) field is always used when cloning, so it is required.
+Sourcegraph by default clones repositories from your Bitbucket Server / Bitbucket Data Center via HTTP(S), using the access token or account credentials you provide in the configuration. The [`username`](/admin/code_hosts/bitbucket_server#configuration) field is always used when cloning, so it is required.
## Repository labels
@@ -169,15 +197,15 @@ Sourcegraph will mark repositories as archived if they have the `archived` label
## Internal rate limits
-See [Internal rate limits](/admin/external_service/rate_limits#internal-rate-limits).
+See [Internal rate limits](/admin/code_hosts/rate_limits#internal-rate-limits).
## Configuration
Bitbucket Server / Bitbucket Data Center connections support the following configuration options, which are specified in the JSON editor in the site admin "Manage code hosts" area.
-{/* [View page on docs.sourcegraph.com](https://docs.sourcegraph.com/admin/external_service/bitbucket_server) to see rendered content.
*/}
+{/* [View page on our docs](/admin/code_hosts/bitbucket_server) to see rendered content.
*/}
-### admin/external_service/bitbucket_server.schema.json
+### admin/code_hosts/bitbucket_server.schema.json
```json
{
@@ -217,14 +245,14 @@ Bitbucket Server / Bitbucket Data Center connections support the following confi
// }
// ]
- // Whether or not personal repositories should be excluded or not. When true, Sourcegraph will ignore personal repositories it may have access to. See https://docs.sourcegraph.com/integration/bitbucket_server#excluding-personal-repositories for more information.
+ // Whether or not personal repositories should be excluded or not. When true, Sourcegraph will ignore personal repositories it may have access to. See https://sourcegraph.com/docs/integration/bitbucket_server#excluding-personal-repositories for more information.
"excludePersonalRepositories": false,
// The type of Git URLs to use for cloning and fetching Git repositories on this Bitbucket Server / Bitbucket Data Center instance.
//
// If "http", Sourcegraph will access Bitbucket Server / Bitbucket Data Center repositories using Git URLs of the form http(s)://bitbucket.example.com/scm/myproject/myrepo.git (using https: if the Bitbucket Server / Bitbucket Data Center instance uses HTTPS).
//
- // If "ssh", Sourcegraph will access Bitbucket Server / Bitbucket Data Center repositories using Git URLs of the form ssh://git@example.bitbucket.org/myproject/myrepo.git. See the documentation for how to provide SSH private keys and known_hosts: https://docs.sourcegraph.com/admin/repo/auth#repositories-that-need-http-s-or-ssh-authentication.
+ // If "ssh", Sourcegraph will access Bitbucket Server / Bitbucket Data Center repositories using Git URLs of the form ssh://git@example.bitbucket.org/myproject/myrepo.git. See the documentation for how to provide SSH private keys and known_hosts: https://sourcegraph.com/docs/admin/repo/auth#repositories-that-need-http-s-or-ssh-authentication.
"gitURLType": "http",
// Other example values:
// - "ssh"
diff --git a/docs/admin/external_service/gerrit.mdx b/docs/admin/code_hosts/gerrit.mdx
similarity index 77%
rename from docs/admin/external_service/gerrit.mdx
rename to docs/admin/code_hosts/gerrit.mdx
index 6221f9305..ce27b961a 100644
--- a/docs/admin/external_service/gerrit.mdx
+++ b/docs/admin/code_hosts/gerrit.mdx
@@ -1,12 +1,23 @@
# Gerrit
- This feature is in beta and might change in the future.
+
+ Supported on [Enterprise](/pricing/enterprise) plans.
+
+ Available via the Web app.
+
+
+
+This feature is in beta and might change in the future.
A Gerrit instance can be connected to Sourcegraph as follows:
-1. [Configure Gerrit as a code host connection](#configure-gerrit-as-a-code-host-connection)
-1. (Optional) [Add Gerrit as an authentication provider](#add-gerrit-as-an-authentication-provider)
-1. (Optional) [Have users authenticate their Sourcegraph accounts using their Gerrit HTTP credentials](#have-users-authenticate-their-sourcegraph-accounts-using-their-gerrit-http-credentials)
+- [Gerrit](#gerrit)
+ - [Configure Gerrit as a code host connection](#configure-gerrit-as-a-code-host-connection)
+ - [Clone using SSH](#clone-using-ssh)
+ - [Add Gerrit as an authentication provider](#add-gerrit-as-an-authentication-provider)
+ - [Have users authenticate their Sourcegraph accounts using their Gerrit HTTP credentials](#have-users-authenticate-their-sourcegraph-accounts-using-their-gerrit-http-credentials)
+ - [Configuration](#configuration)
+ - [admin/code\_hosts/gerrit.schema.json](#admincode_hostsgerritschemajson)
## Configure Gerrit as a code host connection
@@ -18,8 +29,8 @@ A Gerrit instance can be connected to Sourcegraph as follows:
```json
{
"url": "https://gerrit.example.com/", // Be sure to add a trailing slash
- "username": "",
- "password": "",
+ "username": "",
+ "password": "",
"projects": [ // If not set, all projects on the Gerrit instance will be mirrored
"docs",
"kubernetes/kubernetes"
@@ -30,8 +41,7 @@ A Gerrit instance can be connected to Sourcegraph as follows:
"authorization": {} // Marks all repositories as private. Users will be required to present valid Gerrit HTTP credentials in order to view repositories
}
```
-4. The provided `username` and `password` must be the HTTP credentials of an admin account on Gerrit. See [the Gerrit HTTP documentation](https://gerrit-documentation.storage.googleapis.com/Documentation/2.14.2/user-upload.html#http) for details on how to generate HTTP credentials.
-The Gerrit instance has to have HTTPS clones enabled (the default). [`download.scheme=http`](https://gerrit-review.googlesource.com/Documentation/config-gerrit.html#download). Sourcegraph cannot clone Gerrit repos via SSH.
+4. The provided `username` and `password` must be the HTTP credentials of an account on Gerrit that has access to all the repositories that need to be cloned. See [the Gerrit HTTP documentation](https://gerrit-documentation.storage.googleapis.com/Documentation/2.14.2/user-upload.html#http) for details on how to generate HTTP credentials.
5. Select **Add Repositories** to create the connection. Sourcegraph will start mirroring the specified projects.
If you added the `"authorization": {}` option to the configuration, and this is the first Gerrit code host connection you have created for this Gerrit instance, you might see a warning like this:
@@ -39,6 +49,26 @@ If you added the `"authorization": {}` option to the configuration, and this is
Simply follow the steps in the next section to configure a Gerrit authentication provider.
+### Clone using SSH
+
+To clone using SSH, provide `"gitSSHCredential"` in the configuration:
+
+```json
+{
+ "url": "https://gerrit.example.com/",
+ "username": "",
+ "password": "",
+ "projects": [
+ "docs",
+ "kubernetes/kubernetes"
+ ],
+ "gitSSHCredential": {
+ "privateKey": "..." // base64 encoded private key that will be used for cloning
+ },
+ "authorization": {}
+}
+```
+
## Add Gerrit as an authentication provider
If the `"authorization": {}` option has been set on a Gerrit code host connection, a Gerrit authentication provider will be required so that authroized users are able to search for and browse the code mirrored by that code host connection.
@@ -74,13 +104,13 @@ As a user:
Gerrit connections support the following configuration options, which are specified in the JSON editor in the site admin "Manage code hosts" area.
-{/* [View page on docs.sourcegraph.com](https://docs.sourcegraph.com/admin/external_service/gerrit) to see rendered content.
*/}
+{/* [View page on our docs](/admin/code_hosts/gerrit) to see rendered content.
*/}
-### admin/external_service/gerrit.schema.json
+### admin/code_hosts/gerrit.schema.json
```json
{
- // If non-null, enforces Gerrit repository permissions. This requires that there is an item in the [site configuration json](https://docs.sourcegraph.com/admin/config/site_config#auth-providers) `auth.providers` field, of type "gerrit" with the same `url` field as specified in this `GerritConnection`.
+ // If non-null, enforces Gerrit repository permissions. This requires that there is an item in the [site configuration json](https://sourcegraph.com/docs/admin/config/site_config#auth-providers) `auth.providers` field, of type "gerrit" with the same `url` field as specified in this `GerritConnection`.
"authorization": null,
// The password associated with the Gerrit username used for authentication.
diff --git a/docs/admin/external_service/github.mdx b/docs/admin/code_hosts/github.mdx
similarity index 88%
rename from docs/admin/external_service/github.mdx
rename to docs/admin/code_hosts/github.mdx
index b4eabe2d0..17ae78852 100644
--- a/docs/admin/external_service/github.mdx
+++ b/docs/admin/code_hosts/github.mdx
@@ -1,5 +1,9 @@
# GitHub
+
+ Supported on all Sourcegraph [pricing](https://sourcegraph.com/pricing) plans.
+
+
Site admins can sync Git repositories hosted on [GitHub.com](https://github.com) and [GitHub Enterprise](https://enterprise.github.com) with Sourcegraph so that users can search and navigate the repositories.
There are 2 ways to connect with GitHub:
@@ -62,7 +66,9 @@ To create a GitHub App and connect it to Sourcegraph:
9. (Optional) If you want to sync repositories from other organization or user namespaces and your GitHub App is set to public visibility, you can create additional installations with **Add installation**.
-> NOTE: If you are using [Batch Changes](/batch_changes/), you can create a GitHub App to perform [commit signing](/admin/config/batch_changes#commit-signing-for-github) (Beta).
+> NOTE: When you create a GitHub App, Sourcegraph automatically sets up an [incoming webhook](/admin/config/webhooks/incoming) for the app. This webhook subscribes to events for any repository or organization the app has access to, allowing Sourcegraph to keep repository and permission data in sync with GitHub.
+
+> NOTE: If you are using [Batch Changes](/batch-changes/), you can create a GitHub App to perform [commit signing](/admin/config/batch_changes#commit-signing-for-github) (Beta).
### Multiple installations
@@ -105,6 +111,11 @@ Once public, App can be installed in additional namespaces either from Sourcegra
5. To sync repositories from this installation, click **Add connection** under your new installation.
+### Configuring Multiple Private GitHub Apps for Sourcegraph
+If you prefer not to make your GitHub App public and instead create separate private GitHub Apps for each organizations, users will need to authorize each GitHub App individually to ensure proper repository access and permissions syncing. This is because GitHub Apps have narrowly scoped permissions and do not share authentication across multiple installations. To streamline this process, users can go to `User Settings` > `Account Security` in Sourcegraph and connect all necessary GitHub Apps from there. Once authorized, Sourcegraph will use the user's GitHub identity to determine access across all configured GitHub Apps.
+
+For customers using GitHub Enterprise Cloud, an alternative approach is to create an Enterprise GitHub App, which can be installed across multiple organizations within an enterprise account while maintaining private visibility. More details on this approach can be found in [GitHub's documentation](https://docs.github.com/en/enterprise-cloud@latest/admin/managing-your-enterprise-account/creating-github-apps-for-your-enterprise).
+
### Uninstalling an App
You can uninstall a GitHub App from a namespace or remove it altogether at any time.
@@ -188,7 +199,7 @@ No [token scopes](https://docs.github.com/en/developers/apps/building-oauth-apps
[permissions]: #repository-permissions
[permissions-caching]: #teams-and-organizations-permissions-caching
-[batch-changes]: /batch_changes/
+[batch-changes]: /batch-changes/
[batch-changes-interactions]: /batch_changes/explanations/permissions_in_batch_changes#code-host-interactions-in-batch-changes
@@ -220,16 +231,18 @@ When creating your fine-grained access token, select the following permissions d
To clone and search private repositories, we need [a GitHub access token](#github-api-access) with the required scopes and at least read access to the relevant private repositories.
+Due to GitHub limitations, non-admins of an outside organization must use a [Classic personal access token](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#types-of-personal-access-tokens) to provision the appropriate permissions for Sourcegraph to index that organization's private repositories.
+
For more details, see [GitHub API access](#github-api-access).
## Selecting repositories to sync
There are four fields for configuring which repositories are mirrored/synchronized:
-- [`repos`](/admin/external_service/github#repos)A list of repositories in `owner/name` format. The order determines the order in which we sync repository metadata and is safe to change.
-- [`orgs`](/admin/external_service/github#orgs)A list of organizations (every repository belonging to the organization will be cloned).
-- [`repositoryQuery`](/admin/external_service/github#repositoryQuery)A list of strings with three pre-defined options (`public`, `affiliated`, `none`, none of which are subject to result limitations), and/or a [GitHub advanced search query](https://github.com/search/advanced). Note: There is an existing limitation that requires the latter, GitHub advanced search queries, to return [less than 1000 results](#repositoryquery-returns-first-1000-results-only). See [this issue](https://github.com/sourcegraph/sourcegraph/issues/2562) for ongoing work to address this limitation.
-- [`exclude`](/admin/external_service/github#exclude)A list of repositories to exclude which takes precedence over the `repos`, `orgs`, and `repositoryQuery` fields.
+- [`repos`](/admin/code_hosts/github#repos)A list of repositories in `owner/name` format. The order determines the order in which we sync repository metadata and is safe to change.
+- [`orgs`](/admin/code_hosts/github#orgs)A list of organizations (every repository belonging to the organization will be cloned).
+- [`repositoryQuery`](/admin/code_hosts/github#repositoryQuery)A list of strings with three pre-defined options (`public`, `affiliated`, `none`, none of which are subject to result limitations), and/or a [GitHub advanced search query](https://github.com/search/advanced). Note: There is an existing limitation that requires the latter, GitHub advanced search queries, to return [less than 1000 results](#repositoryquery-returns-first-1000-results-only).
+- [`exclude`](/admin/code_hosts/github#exclude)A list of repositories to exclude which takes precedence over the `repos`, `orgs`, and `repositoryQuery` fields.
## Rate limits
@@ -251,7 +264,7 @@ $ curl -s https:///api/v3/rate_limit -H "Authorization: B
### Internal rate limits
-See [Internal rate limits](/admin/external_service/rate_limits#internal-rate-limits).
+See [Internal rate limits](/admin/code_hosts/rate_limits#internal-rate-limits).
## Repository permissions
@@ -384,13 +397,13 @@ Please consult [this page](/admin/config/webhooks/incoming) in order to configur
GitHub connections support the following configuration options, which are specified in the JSON editor in the site admin "Manage code hosts" area.
-{/* [View page on docs.sourcegraph.com](https://docs.sourcegraph.com/admin/external_service/github) to see rendered content.
*/}
+{/* [View page on our docs](/admin/code_hosts/github) to see rendered content.
*/}
-### admin/external_service/github.schema.json
+### admin/code_hosts/github.schema.json
```json
{
- // If non-null, enforces GitHub repository permissions. This requires that there is an item in the [site configuration json](https://docs.sourcegraph.com/admin/config/site_config#auth-providers) `auth.providers` field, of type "github" with the same `url` field as specified in this `GitHubConnection`.
+ // If non-null, enforces GitHub repository permissions. This requires that there is an item in the [site configuration json](https://sourcegraph.com/docs/admin/config/site_config#auth-providers) `auth.providers` field, of type "github" with the same `url` field as specified in this `GitHubConnection`.
"authorization": null,
// TLS certificate of the GitHub Enterprise instance. This is only necessary if the certificate is self-signed or signed by an internal CA. To get the certificate run `openssl s_client -connect HOST:443 -showcerts < /dev/null 2> /dev/null | openssl x509 -outform PEM`. To escape the value into a JSON string, you may want to use a tool like https://json-escape-text.now.sh.
@@ -445,7 +458,7 @@ GitHub connections support the following configuration options, which are specif
//
// If "http", Sourcegraph will access GitHub repositories using Git URLs of the form http(s)://github.com/myteam/myproject.git (using https: if the GitHub instance uses HTTPS).
//
- // If "ssh", Sourcegraph will access GitHub repositories using Git URLs of the form git@github.com:myteam/myproject.git. See the documentation for how to provide SSH private keys and known_hosts: https://docs.sourcegraph.com/admin/repo/auth#repositories-that-need-http-s-or-ssh-authentication.
+ // If "ssh", Sourcegraph will access GitHub repositories using Git URLs of the form git@github.com:myteam/myproject.git. See the documentation for how to provide SSH private keys and known_hosts: https://sourcegraph.com/docs/admin/repo/auth#repositories-that-need-http-s-or-ssh-authentication.
"gitURLType": "http",
// DEPRECATED: The installation ID of the GitHub App.
@@ -494,6 +507,8 @@ GitHub connections support the following configuration options, which are specif
//
// - `public` mirrors all public repositories for GitHub Enterprise and is the equivalent of `none` for GitHub
//
+ // - `internal` mirrors all internal repositories for GitHub Enterprise and is the equivalent of `none` for GitHub
+ //
// - `affiliated` mirrors all repositories affiliated with the configured token's user:
// - Private repositories with read access
// - Public repositories owned by the user or their orgs
@@ -510,7 +525,7 @@ GitHub connections support the following configuration options, which are specif
"none"
],
- // A GitHub personal access token. Create one for GitHub.com at https://github.com/settings/tokens/new?description=Sourcegraph (for GitHub Enterprise, replace github.com with your instance's hostname). See https://docs.sourcegraph.com/admin/external_service/github#github-api-token-and-access for which scopes are required for which use cases.
+ // A GitHub personal access token. Create one for GitHub.com at https://github.com/settings/tokens/new?description=Sourcegraph (for GitHub Enterprise, replace github.com with your instance's hostname). See https://sourcegraph.com/docs/admin/code_host_connection/github#github-api-token-and-access for which scopes are required for which use cases.
"token": null,
// URL of a GitHub instance, such as https://github.com or https://github-enterprise.example.com.
@@ -533,14 +548,14 @@ GitHub connections support the following configuration options, which are specif
## Default branch
-Sourcegraph displays search results from the default branch of a repository when no `revision:` [parameter](https://docs.sourcegraph.com/code-search/queries#repository-revisions) is specified. If you'd like the search results to be displayed from another branch by default, you may [change a repo's default branch on the github repo settings page](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-branches-in-your-repository/changing-the-default-branch). If this is not an option, consider using [search contexts](/code-search/working/search_contexts) instead.
+Sourcegraph displays search results from the default branch of a repository when no `revision:` [parameter](/code-search/queries#repository-revisions) is specified. If you'd like the search results to be displayed from another branch by default, you may [change a repo's default branch on the github repo settings page](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-branches-in-your-repository/changing-the-default-branch). If this is not an option, consider using [search contexts](/code-search/working/search_contexts) instead.
## Troubleshooting
### Hitting GitHub Search API rate limit with repositoryQuery
-When Sourcegraph syncs repositories configured via `repositoryQuery`, it consumes GitHub API search rate limit, which is lower than the normal rate limit. The `affiliated`, `public` and `none` special values, however, trigger normal API requests instead of search API requests.
+When Sourcegraph syncs repositories configured via `repositoryQuery`, it consumes GitHub API search rate limit, which is lower than the normal rate limit. The `affiliated`, `public`, and `none` special values, however, trigger normal API requests instead of search API requests. `internal` is also a special value that uses the GitHub Search API to list all internal repositories.
-When the search rate limit quota is exhausted, an error like `failed to list GitHub repositories for search: page=..., searchString=\"...\"` can be found in logs. To work around this try reducing the frequency with which repository syncing happens by setting a higher value (in minutes) of `repoListUpdateInterval` in your Sourcegraph [site config](https://docs.sourcegraph.com/admin/config/site_config).
+When the search rate limit quota is exhausted, an error like `failed to list GitHub repositories for search: page=..., searchString=\"...\"` can be found in logs. To work around this try reducing the frequency with which repository syncing happens by setting a higher value (in minutes) of `repoListUpdateInterval` in your Sourcegraph [site config](/admin/config/site_config).
`repositoryQuery` is the only repo syncing method that consumes GitHub search API quota, so if setting `repoListUpdateInterval` doesn't work consider switching your syncing method to use another option, like `orgs`, or using one of the special values described above.
diff --git a/docs/admin/external_service/gitlab.mdx b/docs/admin/code_hosts/gitlab.mdx
similarity index 90%
rename from docs/admin/external_service/gitlab.mdx
rename to docs/admin/code_hosts/gitlab.mdx
index 7e3aab557..1d09a130d 100644
--- a/docs/admin/external_service/gitlab.mdx
+++ b/docs/admin/code_hosts/gitlab.mdx
@@ -1,5 +1,9 @@
# GitLab
+
+ Supported on Sourcegraph [Free](/pricing/free) and [Enterprise](/pricing/enterprise) plans.
+
+
Site admins can sync Git repositories hosted on [GitLab](https://gitlab.com) (GitLab.com and GitLab CE/EE) with Sourcegraph so that users can search and navigate the repositories.
To connect GitLab to Sourcegraph:
@@ -43,9 +47,12 @@ Example config:
There are three fields for configuring which projects are mirrored/synchronized:
-- [`projects`](/admin/external_service/gitlab#configuration): A list of projects in `{"name": "group/name"}` or `{"id": id}` format. The order determines the order in which we sync project metadata and is safe to change.
-- [`projectQuery`](/admin/external_service/gitlab#configuration): A list of strings with one pre-defined option (`none`), and/or an URL path and query that targets the [GitLab Projects API endpoint](https://docs.gitlab.com/ee/api/projects.html), returning a list of projects.
-- [`exclude`](/admin/external_service/gitlab#configuration): A list of projects to exclude which takes precedence over the `projects`, and `projectQuery` fields. It has the same format as `projects`.
+- [`projects`](/admin/code_hosts/gitlab#configuration): A list of projects in `{"name": "group/name"}` or `{"id": id}` format. The order determines the order in which we sync project metadata and is safe to change.
+- [`projectQuery`](/admin/code_hosts/gitlab#configuration): A list of strings. Accepted values include:
+ - The special value `none`, which will sync no repositories.
+ - Query parameters for the [GitLab Projects API endpoint](https://docs.gitlab.com/ee/api/projects.html). For example, `?archived=false`.
+ - A path and set of query parameters for any GitLab API endpoint that returns a list of repos. For example, `groups/mygroup/projects?visibility=public`.
+- [`exclude`](/admin/code_hosts/gitlab#configuration): A list of projects to exclude which takes precedence over the `projects`, and `projectQuery` fields. It has the same format as `projects`.
### Troubleshooting
@@ -170,13 +177,13 @@ When Sourcegraph hits a rate limit imposed by GitLab, Sourcegraph waits the appr
### Internal rate limits
-See [Internal rate limits](/admin/external_service/rate_limits#internal-rate-limits).
+See [Internal rate limits](/admin/code_hosts/rate_limits#internal-rate-limits).
## Configuration
-{/* [View page on docs.sourcegraph.com](https://docs.sourcegraph.com/admin/external_service/gitlab) to see rendered content.
*/}
+{/* [View page on our docs](/admin/code_hosts/gitlab) to see rendered content.
*/}
-### admin/external_service/gitlab.schema.json
+### admin/code_hosts/gitlab.schema.json
```json
{
@@ -221,7 +228,7 @@ See [Internal rate limits](/admin/external_service/rate_limits#internal-rate-lim
//
// If "http", Sourcegraph will access GitLab repositories using Git URLs of the form http(s)://gitlab.example.com/myteam/myproject.git (using https: if the GitLab instance uses HTTPS).
//
- // If "ssh", Sourcegraph will access GitLab repositories using Git URLs of the form git@example.gitlab.com:myteam/myproject.git. See the documentation for how to provide SSH private keys and known_hosts: https://docs.sourcegraph.com/admin/repo/auth#repositories-that-need-http-s-or-ssh-authentication.
+ // If "ssh", Sourcegraph will access GitLab repositories using Git URLs of the form git@example.gitlab.com:myteam/myproject.git. See the documentation for how to provide SSH private keys and known_hosts: https://sourcegraph.com/docs/admin/repo/auth#repositories-that-need-http-s-or-ssh-authentication.
"gitURLType": "http",
// Deprecated and ignored field which will be removed entirely in the next release. GitLab repositories can no longer be enabled or disabled explicitly.
@@ -314,7 +321,7 @@ See [Internal rate limits](/admin/external_service/rate_limits#internal-rate-lim
## Native integration
-To provide out-of-the-box code navigation features to your users on GitLab, you will need to [configure your GitLab instance](https://docs.gitlab.com/ee/integration/sourcegraph.html). If you are using an HTTPS connection to GitLab, you will need to [configure HTTPS](https://docs.sourcegraph.com/admin/http_https_configuration) for your Sourcegraph instance.
+To provide out-of-the-box code navigation features to your users on GitLab, you will need to [configure your GitLab instance](https://docs.gitlab.com/ee/integration/sourcegraph.html). If you are using an HTTPS connection to GitLab, you will need to [configure HTTPS](/admin/http_https_configuration) for your Sourcegraph instance.
The Sourcegraph instance's site admin must [update the `corsOrigin` site config property](/admin/config/site_config) to allow the GitLab instance to communicate with the Sourcegraph instance. For example:
@@ -340,7 +347,7 @@ We are actively collaborating with GitLab to improve our integration (e.g. the [
| [`GET /users/:id`](https://docs.gitlab.com/ee/api/users.html#single-user) | `read_user`, `api` or `read_api` | If using GitLab OAuth, used to fetch user metadata during the OAuth sign in process. |
| [`GET /projects/:id`](https://docs.gitlab.com/ee/api/projects.html#get-single-project) | `api` or `read_api` | (1) If using GitLab OAuth and repository permissions, used to determine if a user has access to a given _project_; (2) Used to query repository metadata (e.g. description) for display on Sourcegraph. |
| [`GET /projects/:id/repository/tree`](https://docs.gitlab.com/ee/api/repositories.html#list-repository-tree) | `api` or `read_api` | If using GitLab OAuth and repository permissions, used to verify a given user has access to the file contents of a repository within a project (i.e. does not merely have `Guest` permissions). |
-| Batch Changes requests | `api` or `read_api`, `read_repository`, `write_repository` | [Batch Changes](/batch_changes/) require write access to push commits and create, update and close merge requests on GitLab repositories. See "[Code host interactions in batch changes](/batch_changes/explanations/permissions_in_batch_changes#code-host-interactions-in-batch-changes)" for details. |
+| Batch Changes requests | `api` or `read_api`, `read_repository`, `write_repository` | [Batch Changes](/batch-changes/) require write access to push commits and create, update and close merge requests on GitLab repositories. See "[Code host interactions in batch changes](/batch-changes/permissions-in-batch-changes#code-host-interactions-in-batch-changes)" for details. |
## Webhooks
diff --git a/docs/admin/external_service/gitolite.mdx b/docs/admin/code_hosts/gitolite.mdx
similarity index 83%
rename from docs/admin/external_service/gitolite.mdx
rename to docs/admin/code_hosts/gitolite.mdx
index cfbf3b088..c5fd71490 100644
--- a/docs/admin/external_service/gitolite.mdx
+++ b/docs/admin/code_hosts/gitolite.mdx
@@ -1,5 +1,12 @@
# Gitolite
+
+ Supported on [Enterprise](/pricing/enterprise) plans.
+
+ Available via the Web app.
+
+
+
> NOTE: While it is possible to connect Gitolite repositories to Sourcegraph, we currently do not recommend it. If you have specific questions, please discuss with your account team.
Site admins can link and sync Git repositories on [Gitolite](https://gitolite.com) with Sourcegraph so that users can search and navigate the repositories.
@@ -14,9 +21,9 @@ To connect Gitolite to Sourcegraph:
## Configuration
-{/* [View page on docs.sourcegraph.com](https://docs.sourcegraph.com/admin/external_service/gitolite) to see rendered content.
*/}
+{/* [View page on sourcegraph.com/docs](/admin/code_hosts/gitolite) to see rendered content.
*/}
-### admin/external_service/gitolite.schema.json
+### admin/code_hosts/gitolite.schema.json
```json
{
diff --git a/docs/admin/external_service/index.mdx b/docs/admin/code_hosts/index.mdx
similarity index 78%
rename from docs/admin/external_service/index.mdx
rename to docs/admin/code_hosts/index.mdx
index 267690927..24eea5e8a 100644
--- a/docs/admin/external_service/index.mdx
+++ b/docs/admin/code_hosts/index.mdx
@@ -1,5 +1,14 @@
# Code host connections
+
+ [Enterprise Starter](/pricing/enterprise-starter) only supports GitHub. [Enterprise](/pricing/enterprise) supports all listed code hosts.
+
+ Available via the Web app.
+
+
+
+Sourcegraph Enterprise Starter supports only GitHub as a code host connection. Enterprise plan can connect to all supported code hosts listed on this page.
+
Sourcegraph can sync repositories from code hosts and other similar services. We designate code hosts between Tier 1 and Tier 2 based on Sourcegraph's capabilities when used with those code hosts.
## Tier 1 code hosts
@@ -24,40 +33,35 @@ Tier 1 code hosts are our highest level of support for code hosts. When leveragi
| Bitbucket Server | Tier 1 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Gerrit | Tier 1 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Azure DevOps | Tier 1 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
+| AWS CodeCommit | Tier 2 | ✓ | ✗ | ✗ | ✓ | ✓ | ✓ | ✗ |
| Perforce | Tier 2 | ✓ | ✓ | ✗ | ✓ | ✓ | ✗ | ✗ |
-| Plastic SCM (Enterprise) | Tier 2 | ✓ | ✗ | ✗ | ✓ | ✓ | ✓ | ✗ |
+| Plastic SCM (Enterprise) | Tier 2 | ✓ | ✗ | ✗ | ✓ | ✓ | ✓ | ✗ |
## Tier 2: Code Hosts
-We recognize there are other code hosts including CVS, SVN, and many more. Today, we do not offer native integrations with these code hosts and customers are advised to leverage [Src-srv-git](/admin/external_service/non-git) and the [explicit permissions API](/admin/permissions/api) as a way to ingest code and permissions respectively into Sourcegraph.
+We recognize there are other code hosts including CVS, SVN, and many more. Today, we do not offer native integrations with these code hosts and customers are advised to leverage [Src-srv-git](/admin/code_hosts/non-git) and the [explicit permissions API](/admin/permissions/api) as a way to ingest code and permissions respectively into Sourcegraph.
-[Src-srv-git](/admin/external_service/non-git) and the [explicit permissions API](/admin/permissions/api) follow the same scale guidance shared above (up to 100k repos and 10k users).
+[Src-srv-git](/admin/code_hosts/non-git) and the [explicit permissions API](/admin/permissions/api) follow the same scale guidance shared above (up to 100k repos and 10k users).
## Configure a code host connection
**Site admins** can configure Sourcegraph to sync code from the following code hosts:
-- [GitHub](/admin/external_service/github)
-- [GitLab](/admin/external_service/gitlab)
-- [Bitbucket Cloud](/admin/external_service/bitbucket_cloud)
-- [Bitbucket Server / Bitbucket Data Center](/admin/external_service/bitbucket_server)
-- [Azure DevOps](/admin/external_service/azuredevops)
-- [Gerrit](/admin/external_service/gerrit)
-- [Other Git code hosts (using a Git URL)](/admin/external_service/other)
-- [Non-Git code hosts](/admin/external_service/non-git)
+- [GitHub](/admin/code_hosts/github)
+- [GitLab](/admin/code_hosts/gitlab)
+- [Bitbucket Cloud](/admin/code_hosts/bitbucket_cloud)
+- [Bitbucket Server / Bitbucket Data Center](/admin/code_hosts/bitbucket_server)
+- [Azure DevOps](/admin/code_hosts/azuredevops)
+- [Gerrit](/admin/code_hosts/gerrit)
+- [AWS CodeCommit](/admin/code_hosts/aws_codecommit)
+- [Other Git code hosts (using a Git URL)](/admin/code_hosts/other)
+- [Non-Git code hosts](/admin/code_hosts/non-git)
- [Perforce](/admin/repo/perforce)
- [Plastic SCM](/admin/repo/plasticscm)
- - [Package repository hosts](/admin/external_service/package-repos)
- - [JVM dependencies](/admin/external_service/jvm)
- - [Go dependencies](/admin/external_service/go)
- - [npm dependencies](/admin/external_service/npm)
- - [Python dependencies](/admin/external_service/python)
- - [Ruby dependencies](/admin/external_service/ruby)
- - [Rust dependencies](/admin/external_service/rust)
## Rate limits
-For information on code host-related rate limits, see [rate limits](/admin/external_service/rate_limits).
+For information on code host-related rate limits, see [rate limits](/admin/code_hosts/rate_limits).
## Temporarily disabling requests to code hosts
diff --git a/docs/admin/external_service/non-git.mdx b/docs/admin/code_hosts/non-git.mdx
similarity index 91%
rename from docs/admin/external_service/non-git.mdx
rename to docs/admin/code_hosts/non-git.mdx
index 9f346091b..47cc9901d 100644
--- a/docs/admin/external_service/non-git.mdx
+++ b/docs/admin/code_hosts/non-git.mdx
@@ -1,12 +1,19 @@
# Non-Git code hosts (Perforce, Mercurial, Subversion, raw text, etc.)
+
+ Supported on [Enterprise](/pricing/enterprise) plans.
+
+ Available via the Web app.
+
+
+
Sourcegraph natively supports all Git-based Version Control Systems (VCSs) and code hosts. For non-Git code hosts, Sourcegraph provides a CLI tool called `src-expose` to periodically sync and continuously serve local directories as Git repositories over HTTP.
>NOTE: If using Perforce, see the [Perforce repositories with Sourcegraph guide](/admin/repo/perforce).
## Use `src serve-git`
-Since Sourcegraph 3.19 we recommend users to use [`src serve-git`](/admin/external_service/src_serve_git). `src serve-git` only provides the serving of git repositories (no snapshotting). We found users generally wanted to control the git repos and snapshotting complicated the setup. Additionally `src serve-git` uses a fast and modern git transfer protocol.
+Since Sourcegraph 3.19 we recommend users to use [`src serve-git`](/admin/code_hosts/src_serve_git). `src serve-git` only provides the serving of git repositories (no snapshotting). We found users generally wanted to control the git repos and snapshotting complicated the setup. Additionally `src serve-git` uses a fast and modern git transfer protocol.
## Installing `src-expose`
@@ -114,4 +121,4 @@ For more complex setups, configure your `src-expose` by providing a local config
src-expose -snapshot-config config.yaml
```
-See [an example YAML file containing available configuration options](https://github.com/sourcegraph/sourcegraph/blob/main/dev/src-expose/examples/example.yaml).
+See [an example YAML file containing available configuration options](https://github.com/sourcegraph/sourcegraph-public-snapshot/blob/main/dev/src-expose/examples/example.yaml).
diff --git a/docs/admin/external_service/other.mdx b/docs/admin/code_hosts/other.mdx
similarity index 89%
rename from docs/admin/external_service/other.mdx
rename to docs/admin/code_hosts/other.mdx
index f4fb49f5f..98bdb04c8 100644
--- a/docs/admin/external_service/other.mdx
+++ b/docs/admin/code_hosts/other.mdx
@@ -1,6 +1,13 @@
# Other Git repository hosts
-Site admins can sync Git repositories on any Git repository host (by Git clone URL) with Sourcegraph so that users can search and navigate the repositories. Use this method only when your repository host is not named as a supported [code host](/admin/external_service/).
+
+ Supported on [Enterprise](/pricing/enterprise) plans.
+
+ Available via the Web app.
+
+
+
+Site admins can sync Git repositories on any Git repository host (by Git clone URL) with Sourcegraph so that users can search and navigate the repositories. Use this method only when your repository host is not named as a supported [code host](/admin/code_hosts/).
To connect generic Git host to Sourcegraph:
@@ -57,9 +64,9 @@ Repositories must be listed individually:
## Configuration
-{/* [View page on docs.sourcegraph.com](https://docs.sourcegraph.com/admin/external_service/other) to see rendered content.
*/}
+{/* [View page on our docs](/admin/code_hosts/other) to see rendered content.
*/}
-### admin/external_service/other_external_service.schema.json
+### admin/code_hosts/other_external_service.schema.json
```json
{
diff --git a/docs/versioned/5.2/admin/external_service/phabricator.mdx b/docs/admin/code_hosts/phabricator.mdx
similarity index 91%
rename from docs/versioned/5.2/admin/external_service/phabricator.mdx
rename to docs/admin/code_hosts/phabricator.mdx
index 20513ee6f..fdc50cc78 100644
--- a/docs/versioned/5.2/admin/external_service/phabricator.mdx
+++ b/docs/admin/code_hosts/phabricator.mdx
@@ -1,5 +1,12 @@
# Phabricator
+
+ Supported on [Enterprise](/pricing/enterprise) plans.
+
+ Available via the Web app.
+
+
+
Site admins can associate Git repositories on [Phabricator](https://phabricator.org) with Sourcegraph so that users can jump to the Phabricator repository from Sourcegraph and use the [Phabricator extension](#native-extension) and [browser extension](/integration/browser_extension) with Phabricator.
> ⚠️ NOTE: Sourcegraph support of Phabricator is limited ([learn more](/integration/phabricator)), and not expected to evolve due to the [announced](https://admin.phacility.com/phame/post/view/11/phacility_is_winding_down_operations/) cease of support for Phabricator.
@@ -66,9 +73,9 @@ The Sourcegraph instance's site admin must [update the `corsOrigin` site config
## Configuration
-{/* [View page on docs.sourcegraph.com](https://docs.sourcegraph.com/admin/external_service/phabricator) to see rendered content.
*/}
+{/* [View page on our docs](/admin/code_hosts/phabricator) to see rendered content.
*/}
-### admin/external_service/phabricator.schema.json
+### admin/code_hosts/phabricator.schema.json
```json
diff --git a/docs/admin/external_service/rate_limits.mdx b/docs/admin/code_hosts/rate_limits.mdx
similarity index 82%
rename from docs/admin/external_service/rate_limits.mdx
rename to docs/admin/code_hosts/rate_limits.mdx
index be5048a85..c93f14ba4 100644
--- a/docs/admin/external_service/rate_limits.mdx
+++ b/docs/admin/code_hosts/rate_limits.mdx
@@ -20,10 +20,10 @@ No configuration is necessary to enable external rate limit monitoring.
If working with a self-hosted code host, consult the code host documentation to learn how to configure rate limits on your code host.
Sourcegraph monitors external rate limits for the following code hosts:
-- [GitHub](/admin/external_service/github#rate-limits)
-- [GitLab](/admin/external_service/gitlab#rate-limits)
-- [Bitbucket Cloud](/admin/external_service/bitbucket_cloud#rate-limits)
-- [Azure DevOps](/admin/external_service/azuredevops#rate-limits)
+- [GitHub](/admin/code_hosts/github#rate-limits)
+- [GitLab](/admin/code_hosts/gitlab#rate-limits)
+- [Bitbucket Cloud](/admin/code_hosts/bitbucket_cloud#rate-limits)
+- [Azure DevOps](/admin/code_hosts/azuredevops#rate-limits)
## Internal rate limits
@@ -67,14 +67,8 @@ To see the status of configured internal rate limits, visit **Site admin > Instr
This entry tells us that a rate limit is configured for a GitHub external service. `Burst` means that a maximum of 10 requests can be made in quick succession. After that, requests will be limited to 2 (the `Limit` value) per second. If `Infinite` is `true`, no internal rate limiting is applied for this connection.
Sourcegraph supports internal rate limit configuration for the following connections:
-- [GitHub](/admin/external_service/github#rateLimit)
-- [GitLab](/admin/external_service/gitlab#rateLimit)
-- [Bitbucket Cloud](/admin/external_service/bitbucket_cloud#rateLimit)
-- [Bitbucket Server](/admin/external_service/bitbucket_server#rateLimit)
+- [GitHub](/admin/code_hosts/github#rateLimit)
+- [GitLab](/admin/code_hosts/gitlab#rateLimit)
+- [Bitbucket Cloud](/admin/code_hosts/bitbucket_cloud#rateLimit)
+- [Bitbucket Server](/admin/code_hosts/bitbucket_server#rateLimit)
- [Perforce](/admin/repo/perforce#rateLimit)
-- [Go Modules](/admin/external_service/go#rateLimit)
-- [JVM Packages](/admin/external_service/jvm#rateLimit)
-- [NPM Packages](/admin/external_service/npm#rateLimit)
-- [Python Packages](/admin/external_service/python#rateLimit)
-- [Ruby Packages](/admin/external_service/ruby#rateLimit)
-- [Rust Packages](/admin/external_service/rust#rateLimit)
diff --git a/docs/admin/external_service/src_serve_git.mdx b/docs/admin/code_hosts/src_serve_git.mdx
similarity index 88%
rename from docs/admin/external_service/src_serve_git.mdx
rename to docs/admin/code_hosts/src_serve_git.mdx
index e2147a192..73abc5f91 100644
--- a/docs/admin/external_service/src_serve_git.mdx
+++ b/docs/admin/code_hosts/src_serve_git.mdx
@@ -2,11 +2,11 @@
Sourcegraph is designed to abstract away all repository management operations from the user. However, we still often get the question: "how do I load local repositories?"
-The instructions below (using the Sourcegraph CLI to act as a pseudo-code host for Sourcegraph to interact with) do enable this, but they can be quite complex. The root of the challenge is that Sourcegraph assumes that code will change over time. It has been intentionally designed to save the user from the manual effort of keeping repositories up to date (i.e., re-cloning or fetching the latest changes every time you want to search) by [automatically keeping repositories updated](https://docs.sourcegraph.com/admin/repo/update_frequency), keeping the updated content indexed, and making the change history visible and explorable to users.
+The instructions below (using the Sourcegraph CLI to act as a pseudo-code host for Sourcegraph to interact with) do enable this, but they can be quite complex. The root of the challenge is that Sourcegraph assumes that code will change over time. It has been intentionally designed to save the user from the manual effort of keeping repositories up to date (i.e., re-cloning or fetching the latest changes every time you want to search) by [automatically keeping repositories updated](/admin/repo/update_frequency), keeping the updated content indexed, and making the change history visible and explorable to users.
And, practically, Sourcegraph was built with the assumption that certain tasks, such as getting a list of repositories and running git operations like clones, would be accessible over a network rather than on the same disk (i.e., that there would be HTTP API and git endpoints).
-In both the short-term and the long-term, it is far easier for users to [connect Sourcegraph to a code host](https://docs.sourcegraph.com/admin/external_service) than to try to load code from a local disk, and we strongly encourage users, where possible, to connect to their code host of choice instead of trying to follow the instructions below.
+In both the short-term and the long-term, it is far easier for users to [connect Sourcegraph to a code host](/admin/code_hosts) than to try to load code from a local disk, and we strongly encourage users, where possible, to connect to their code host of choice instead of trying to follow the instructions below.
When Sourcegraph is connected to a code host, none of that code is ever sent off of your local Sourcegraph deployment, and nobody that you haven't given access to (whether at Sourcegraph or anywhere else) has access to your code. Sourcegraph only maintains a local clone, and does all code analysis and indexing operations locally. Read more specifics about our policies and what we do collect in [our security overview](https://about.sourcegraph.com/security/#Sourcegraph-on-premise).
@@ -52,4 +52,4 @@ To confirm this is working visit http://localhost:3434
## src-expose
-Before Sourcegraph 3.19 we recommend users to still use [`src-expose`](/admin/external_service/non-git).
+Before Sourcegraph 3.19 we recommend users to still use [`src-expose`](/admin/code_hosts/non-git).
diff --git a/docs/admin/config/advanced_config_file.mdx b/docs/admin/config/advanced_config_file.mdx
index d9ac4c5c7..cfefb3dc2 100644
--- a/docs/admin/config/advanced_config_file.mdx
+++ b/docs/admin/config/advanced_config_file.mdx
@@ -4,7 +4,7 @@ Some teams require Sourcegraph configuration to be stored in version control as
UI.
As of Sourcegraph v3.4+, this is possible for [site configuration](/admin/config/site_config)
-, [code host configuration](/admin/external_service/), and [global settings](/admin/config/settings). As of Sourcegraph v3.34+, Sourcegraph
+, [code host configuration](/admin/code_hosts/), and [global settings](/admin/config/settings). As of Sourcegraph v3.34+, Sourcegraph
supports merging multiple site config files.
## Benefits
@@ -90,8 +90,6 @@ Where `extsvc.json` contains a JSON object that specifies _all_ of your code hos
}
```
-You can find a full list of [valid top-level keys here](https://sourcegraph.com/github.com/sourcegraph/sourcegraph@b7ebb9024e3a95109fdedfb8057795b9a7c638bc/-/blob/cmd/frontend/graphqlbackend/schema.graphql#L1104-1110).
-
If you want to _allow_ edits to be made through the web UI (which will be overwritten with what is in the file on a subsequent restart), you may additionally set `EXTSVC_CONFIG_ALLOW_EDITS=true`. **Note** that if you do enable this, it is your responsibility to ensure the configuration on your instance and in the file remain in sync.
## Global settings
@@ -119,7 +117,7 @@ When you upgrade Sourcegraph, you should do the following to ensure your configu
It is essential to follow the above steps after **every** Sourcegraph version update, because we only guarantee migrations remain valid across two minor versions. If you fail to apply a migration and later upgrade Sourcegraph twice more, you may effectively "skip" an important migration.
-We're planning to improve this by having Sourcegraph notify you as a site admin when you should do the above, since today it is not actually required in most upgrades. See https://github.com/sourcegraph/sourcegraph/issues/4650 for details. In the meantime, we will do our best to communicate when this is needed to you through the changelog.
+We're planning to improve this by having Sourcegraph notify you as a site admin when you should do the above, since today it is not actually required in most upgrades. In the meantime, we will do our best to communicate when this is needed to you through the changelog.
## Kubernetes ConfigMap
@@ -135,9 +133,9 @@ metadata:
deploy: sourcegraph
name: frontend-config-files
data:
- # IMPORTANT: see https://docs.sourcegraph.com/admin/config/advanced_config_file for details on how this works.
+ # IMPORTANT: see https://sourcegraph.com/docs/admin/config/advanced_config_file for details on how this works.
- # Global user settings, see: https://docs.sourcegraph.com/admin/config/advanced_config_file#global-settings
+ # Global user settings, see: https://sourcegraph.com/docs/admin/config/advanced_config_file#global-settings
global-settings.json: |
{
"search.scopes": [
@@ -155,7 +153,7 @@ data:
}
}
- # Site configuration, see: https://docs.sourcegraph.com/admin/config/advanced_config_file#site-configuration
+ # Site configuration, see: https://sourcegraph.com/docs/admin/config/advanced_config_file#site-configuration
site.json: |
{
"auth.providers": [
@@ -169,7 +167,7 @@ data:
}
}
- # Code host configuration, see: https://docs.sourcegraph.com/admin/config/advanced_config_file#code-host-configuration
+ # Code host configuration, see: https://sourcegraph.com/docs/admin/config/advanced_config_file#code-host-configuration
extsvc.json: |
{
"GITHUB": [
diff --git a/docs/admin/config/authorization_and_authentication.mdx b/docs/admin/config/authorization_and_authentication.mdx
index 2b25a1f43..d0c318292 100644
--- a/docs/admin/config/authorization_and_authentication.mdx
+++ b/docs/admin/config/authorization_and_authentication.mdx
@@ -64,7 +64,7 @@ In this way, access to Sourcegraph will still be managed by your identity provid
Follow these steps to [configure authentication with GitHub via OAuth](/admin/auth/#github).
-Once authentication with GitHub via OAuth is configured, follow [these steps to configure access permissions](/admin/external_service/github#repository-permissions). Users will log into Sourcegraph using Github OAuth, and permissions will be synced in the background.
+Once authentication with GitHub via OAuth is configured, follow [these steps to configure access permissions](/admin/code_hosts/github#repository-permissions). Users will log into Sourcegraph using Github OAuth, and permissions will be synced in the background.
### GitLab Enterprise or GitLab Cloud authentication and authorization
@@ -75,13 +75,13 @@ We support both authentication and permissions syncing (through OAuth) for GitLa
1. Use SAML (or another auth mechanism) to log in to GitLab
2. Use GitLab OAuth to log in to Sourcegraph
-In this way, access to Sourcegraph will still be managed by your identity provider, using the code host as a middle step. This option is the simplest to configure. To do so, [set up GitLab as an authentication option](/admin/auth/#gitlab), and then [enable permissions syncing](/admin/external_service/gitlab#oauth-application).
+In this way, access to Sourcegraph will still be managed by your identity provider, using the code host as a middle step. This option is the simplest to configure. To do so, [set up GitLab as an authentication option](/admin/auth/#gitlab), and then [enable permissions syncing](/admin/code_hosts/gitlab#oauth-application).
#### Option 2
Alternatively, you can configure SAML authentication in Sourcegraph, and use GitLab permissions syncing in the background to control access permissions. To implement this method, you will need to make sure that GitLab is able to return a value in `identities.provider` for the `GET /users` endpoint ([GitLab documentation](https://docs.gitlab.com/ee/api/users.html#for-admins)) that your identity provider is able to pass as the `nameID` in the SAML response. If that isn’t possible, you will need to use the first option.
-To configure SAML auth with GitLab permissions, you will need to first [configure permissions from GitLab](/admin/external_service/gitlab#administrator-sudo-level-access-token). Then, [configure SAML authentication](/admin/auth/saml/). The `nameID` passed by the identity provider will need to match the value of `identities.provider`.
+To configure SAML auth with GitLab permissions, you will need to first [configure permissions from GitLab](/admin/code_hosts/gitlab#administrator-sudo-level-access-token). Then, [configure SAML authentication](/admin/auth/saml/). The `nameID` passed by the identity provider will need to match the value of `identities.provider`.
For example, if the GitLab API returns:
@@ -112,51 +112,41 @@ And configure the identity provider to pass the email address as the `nameID`.
### Bitbucket Server / Bitbucket Data Center authorization
-We do not currently support OAuth for Bitbucket Server or Bitbucket Data Center. You will need to combine permissions syncing from Bitbucket Server / Bitbucket Data Center with another authentication mechanism (SAML, built-in auth, HTTP authentication proxies). Bitbucket Server and Bitbucket Data Center only pass usernames to Sourcegraph, so you’ll need to make sure that those usernames are matched by whatever mechanism you choose to use for access.
-
-Follow the steps to [sync Bitbucket Server / Bitbucket Data Center permissions](/admin/external_service/bitbucket_server#repository-permissions). Then, do one of the following:
-
-1. Create the user accounts in Sourcegraph with matching usernames. (Access using `builtin` auth.)
-2. [Configure SAML authentication](/admin/auth/saml/). If you are using Bitbucket Server / Bitbucket Data Center, the `login` attribute is _not_ optional. You need to pass the Bitbucket Server username as the `login` attribute.
-3. [Configure an HTTP authentication proxy](/admin/auth/#http-authentication-proxies), passing the Bitbucket Server username value as the `usernameHeader`.
+We support authentication through OAuth for Bitbucket Server / Bitbucket Data Center. See the [Bitbucket Server auth provider docs](/admin/auth/#bitbucket-server).
### Azure DevOps Services
We support authentication through OAuth for [Azure DevOps Services (dev.azure.com)](https://dev.azure.com) and it is also a prerequisite for [permissions syncing](/admin/permissions/).
-#### Register a new OAuth application
+#### Register a new Entra OAuth application
-[Create a new Azure DevOps OAuth application](https://app.vsaex.visualstudio.com/app/register) and follow the instructions below:
+[Create a new Entra OAuth application](https://portal.azure.com/#view/Microsoft_AAD_RegisteredApps/CreateApplicationBlade/quickStartType~/null/isMSAApp~/false) and follow the instructions below:
-1. In the `Application website` field set the URL of your Sourcegraph instance, for example if the instance is https://sourcegraph.com, then use `https://sourcegraph.com` as the value of this field
-2. Similarly, set the `Authorization callback URL` field to `https://sourcegraph.com/.auth/azuredevops/callback` if your Sourcegraph instance URL is https://sourcegraph.com
-3. Add the following scopes:
- - `User profile (read)`
- - `Identity (read)`
- - `Code (read)`
- - `Project and team (read)`
+1. In the `Name` field pick a descriptive name for this connection
+2. For `Supported account types` select `Accounts in this organizational directory only`
+3. For `Redirect URI` pick `Web`(!) for the type and set the URL field to `https:///.auth/azuredevops/callback` if your Sourcegraph instance URL is https://myinstance.sourcegraph.com
+4. Click **Register**
+5. Now go to the [Microsoft Entra admin center](https://entra.microsoft.com/) as at least an **Application Developer**.
+6. Go to **App registrations** and select the one you just created.
+7. Go to **Manage > Certificates & secrets** and generate a new client secret. Keep the secret value.
+8. Go to **Manage > API Permissions** and click **+ Add a permission**. Select Azure DevOps, then `vso.code`, `vso.identity`, and `vso.project`. Confirm with **Add permissions**.
+9. Go back to **Overview** from the sidebar. Now find the **Endpoints** button at the top center of the page, and take note of the value for **Authority URL (Accounts in this organizational directory only)** (which will look something like _https://login.microsoftonline.com/00000002-0000-0000-c000-000000000000_)
+10. The final value we need to get is the **Application (client) ID** from the **Overview** page. Take note of this UUID as well.
#### Configuring Sourcegraph auth.providers
-Before you add the configuration please ensure that:
-
-1. The value of `App ID` from your OAuth application is set as the value of the `clientID` field in the config
-2. The value of `Client Secret` (and not the `App secret`) from your OAuth application is set as the value of the `clientSecret` field
-3. The value of `apiScope` string is a comma separated string and reflects the scopes from your OAuth application accurately
-4. The `type` field has no typos and is **exactly** the same as the example below
-
-Add the following to the `auth.providers` key in the site config:
+With all the values acquired above, you can now add the following to the `auth.providers` key in the site config:
```json
{
"auth.providers": [
// Other auth providers may also be here.
{
- "type": "azureDevOps",
+ "type": "azureDevOps", // Casing is important!
"displayName": "Azure DevOps",
- "clientID": "replace-with-app-id-of-your-oauth-application",
- "clientSecret": "replace-with-client-secret-of-your-oauth-application",
- "apiScope": "vso.code,vso.identity,vso.project"
+ "url": "",
+ "clientID": "",
+ "clientSecret": ""
}
]
}
@@ -187,9 +177,9 @@ The final and complete `auth.providers` configuration may look like this:
{
"type": "azureDevOps",
"displayName": "Azure DevOps",
+ "url": "https://login.microsoftonline.com/00000002-0000-0000-c000-000000000000",
"clientID": "your-client-id-here",
"clientSecret": "a-strong-client-secret-here",
- "apiScope": "vso.code,vso.identity,vso.project",
"allowOrgs": ["your-org-1", "your-org-2"],
"allowSignup": false
}
diff --git a/docs/admin/config/batch_changes.mdx b/docs/admin/config/batch_changes.mdx
index d57f6ae02..16ae529d3 100644
--- a/docs/admin/config/batch_changes.mdx
+++ b/docs/admin/config/batch_changes.mdx
@@ -1,6 +1,6 @@
# Batch Changes site admin configuration reference
-Batch Changes is generally configured through the same [site configuration](/admin/config/site_config) and [code host configuration](/admin/external_service/) as the rest of Sourcegraph. However, Batch Changes features may require specific configuration, and those are documented here.
+Batch Changes is generally configured through the same [site configuration](/admin/config/site_config) and [code host configuration](/admin/code_hosts/) as the rest of Sourcegraph. However, Batch Changes features may require specific configuration, and those are documented here.
## Access control
@@ -30,11 +30,11 @@ To restore the default behavior, you can either delete the `batchChanges.rollout
Or, to put it another way:
-| `batchChanges.rolloutWindows` configuration | Behavior |
-|---------------------------------------------|-----------|
-| Omitted, or set to `null` | Changesets will be reconciled as fast as the code host allows; essentially the same as setting a single `{"rate": "unlimited"}` window. |
+| `batchChanges.rolloutWindows` configuration | Behavior |
+| ------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| Omitted, or set to `null` | Changesets will be reconciled as fast as the code host allows; essentially the same as setting a single `{"rate": "unlimited"}` window. |
| Set to an array (even if empty) | Changesets will be reconciled using the rate limit in the current window using [the leaky bucket behavior described below](#leaky-bucket-rate-limiting). If no window covers the current period, then no changesets will be reconciled until a window with a non-zero [`rate`](#rate) opens. |
-| Any other value | The configuration is invalid, and an error will appear. |
+| Any other value | The configuration is invalid, and an error will appear. |
#### Leaky bucket rate limiting
@@ -50,7 +50,7 @@ Keep in mind that if you configure a rollout window that is too aggressive, you
* [GitLab](https://docs.gitlab.com/ee/user/gitlab_com/.html#gitlabcom-specific-rate-limits)
* [Bitbucket Cloud](https://support.atlassian.com/bitbucket-cloud/docs/api-request-limits/)
-When using a [global service account token](/batch_changes/how-tos/configuring_credentials#global-service-account-tokens) with Batch Changes, keep in mind that this token will also be used for other Batch Changes with code host interactions, too.
+When using a [global service account token](/batch-changes/configuring-credentials#global-service-account-tokens) with Batch Changes, keep in mind that this token will also be used for other Batch Changes with code host interactions, too.
You may encounter this error when publishing changesets to GitHub:
@@ -60,7 +60,7 @@ You may encounter this error when publishing changesets to GitHub:
In addition to their normal API rate limits, GitHub also has an internal _content creation_ limit (also called [secondary rate limit](https://docs.github.com/en/rest/guides/best-practices-for-integrators?apiVersion=2022-11-28#dealing-with-secondary-rate-limits)), which is an [intentional](https://github.com/cli/cli/issues/4801#issuecomment-1029207971) restriction on the platform to combat abuse by automated actors. At the time of writing, the specifics of this limit remain undocumented, due largely to the fact that it is dynamically determined (see [this GitHub issue](https://github.com/cli/cli/issues/4801)). However, the behavior of the limit is that it only permits a fixed number of resources to be created per minute and per hour, and exceeding this limit triggers a temporary hour-long suspension during which time no additional resources of this type can be created.
-Presently, Batch Changes does not automatically work around this limit feature request tracked [here](https://github.com/sourcegraph/sourcegraph/issues/44631). The current guidance if you do encounter this issue is to wait an hour and then try again, setting a less frequent `rolloutWindows` rate until this issue is no longer encountered.
+Presently, Batch Changes does not automatically work around this limit feature request. The current guidance if you do encounter this issue is to wait an hour and then try again, setting a less frequent `rolloutWindows` rate until this issue is no longer encountered.
### Rollout window object
@@ -141,9 +141,9 @@ Sourcegraph can track incoming webhooks from code hosts to more easily debug iss
Feature supported only in Sourcegraph versions 3.36 or more.
-Sourcegraph can be configured to push branches created by Batch Changes to a fork of the repository, rather than the repository itself, for example if users of your code host typically do not have push access to the original repository. You can enable pushing to forks globally with the `batchChanges.enforceForks` site configuration option. Users can also indicate they do or do not want to push to forks for an individual batch change by specifying the property `changesetTemplate.fork` in their batch spec. If the batch spec property is present, it will override the site configuration option. See the [batch spec YAML reference](/batch_changes/references/batch_spec_yaml_reference#changesettemplate-fork) for more information.
+Sourcegraph can be configured to push branches created by Batch Changes to a fork of the repository, rather than the repository itself, for example if users of your code host typically do not have push access to the original repository. You can enable pushing to forks globally with the `batchChanges.enforceForks` site configuration option. Users can also indicate they do or do not want to push to forks for an individual batch change by specifying the property `changesetTemplate.fork` in their batch spec. If the batch spec property is present, it will override the site configuration option. See the [batch spec YAML reference](/batch-changes/batch-spec-yaml-reference#changesettemplatefork) for more information.
-The fork will be created in the namespace of the user publishing the changeset, or the namespace of the service account if [global service account](/batch_changes/how-tos/configuring_credentials#global-service-account-tokens) is in use. The name of the fork Sourcegraph creates will be prefixed with the name of the original repo's namespace in order to prevent potential repo name collisions. For example, a batch spec targeting `github.com/my-org/project` would create or use any existing fork by the name `github.com/user/my-org-project`.
+The fork will be created in the namespace of the user publishing the changeset, or the namespace of the service account if [global service account](/batch-changes/configuring-credentials#global-service-account-tokens) is in use. The name of the fork Sourcegraph creates will be prefixed with the name of the original repo's namespace in order to prevent potential repo name collisions. For example, a batch spec targeting `github.com/my-org/project` would create or use any existing fork by the name `github.com/user/my-org-project`.
### Examples
@@ -171,24 +171,61 @@ For those that require a separate API call, Batch Changes will only be able to d
Refer to the table below to see the levels with which each code host is supported:
-Code Host | Changeset property or separate API call? | Support on merge | Support on close | Note
---------- | --------- | :-: | :-: | ----
-Azure DevOps | Changeset property | ✓ | ✗ |
-Bitbucket Cloud | Changeset property | ✓ | ✓ |
-Bitbucket Server | API call | ✓ | ✓ |
-GitHub | API call | ✓ | ✓ |
-GitLab | Changeset property | ✓ | ✓ |
-Gerrit | API call | ✗ | ✓ | Requires ["delete own changes" permission](https://gerrit-review.googlesource.com/Documentation/access-control.html#category_delete_own_changes) at minimum
+ Code Host | Changeset property or separate API call? | Support on merge | Support on close | Note
+---------------- | ---------------------------------------- | :--------------: | :--------------: | -----------------------------------------------------------------------------------------------------------------------------------------------------------
+Azure DevOps | Changeset property | ✓ | ✗ |
+Bitbucket Cloud | Changeset property | ✓ | ✓ |
+Bitbucket Server | API call | ✓ | ✓ |
+GitHub | API call | ✓ | ✓ |
+GitLab | Changeset property | ✓ | ✓ |
+Gerrit | API call | ✗ | ✓ | Requires ["delete own changes" permission](https://gerrit-review.googlesource.com/Documentation/access-control.html#category_delete_own_changes) at minimum
-## Commit signing for GitHub
+## Commit signing
- The feature is currently in Beta stage and supported on Sourcegraph versions 5.1 or more.
+Batch Changes supports commit signing with both GitHub apps and with SSH keys.
+
+### Commit signing with SSH keys (GitLab and GitHub)
+
+Commit signing with SSH keys is currently Experimental and is supported only with Sourcegraph v6.2 or more.
+
+Commit signing with SSH keys can only be combined with a personal or fine-grained access token.
+
+Sourcegraph can be configured to sign commits using SSH keys with user and site admin credentials.
+
+To enable **commit signing for your Batch Changes user**, navigate to **Settings > Batch Changes** and click **Add credentials** for a GitHub or GitLab code host.
+
+
+
+If you already have a credential for the given code host, remove it first.
+
+Enter your personal access token, and check the "Sign commits on this code host" box. This will add a step to the setup flow. Click "Next" and wait for Batch Changes to verify the access token.
+
+
+
+Once the credential is added, you can copy the public SSH key Batch Changes will use to sign commits. You can view the public key anytime by clicking **View Credentials**.
+
+
+
+Add this public SSH key to your [GitHub](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account) or [GitLab](https://docs.gitlab.com/user/ssh/#add-an-ssh-key-to-your-gitlab-account) account.
+Make sure you add it as a signing key.
+
+
+
+To enable **commit signing as a site admin**, navigate to **Site Admin > Section: Batch Changes > Settings** and click **Add credentials** for a GitHub or GitLab code host. The rest of the setup is the same as above.
+
+
+
+### Commit signing with GitHub apps
+
+Commit signing with GitHub apps is currently in Beta and is supported with Sourcegraph v5.1 or more.
Sourcegraph can be configured to [sign commits pushed to GitHub](https://docs.github.com/en/authentication/managing-commit-signature-verification/about-commit-signature-verification) using a GitHub App. Commit signing prevents tampering by unauthorized parties and provides a way to ensure that commits pushed to branches created by Batch Changes actually do come from Sourcegraph. Enabling commit signing for Batch Changes can also help pass checks in build systems or CI/CD pipelines that require that all commits are signed and verified before they can be merged.
At present, only GitHub code hosts (both Cloud and Enterprise) are supported, and only GitHub App signing is supported. Support for other code hosts and signing methods may be added in the future.
-GitHub Apps are also the recommended way to [sync repositories on GitHub](/admin/external_service/github#using-a-github-app). However, **they are not a replacement for [PATs](/batch_changes/how-tos/configuring_credentials#personal-access-tokens) in Batch Changes**. It is **also** necessary to create a separate GitHub App for Batch Changes commit signing even if you already have an App connected for the same code host for repository syncing because the Apps require different permissions. The process for creating each type of GitHub App is almost identical.
+ Commit signing on GitHub Enterprise requires [web commit signing](https://docs.github.com/en/enterprise-server@3.14/admin/configuring-settings/configuring-user-applications-for-your-enterprise/configuring-web-commit-signing#enabling-web-commit-signing) to be enabled. Otherwise commits from GitHub apps will be unverified.
+
+GitHub Apps are also the recommended way to [sync repositories on GitHub](/admin/code_hosts/github#using-a-github-app). However, **they are not a replacement for [PATs](/batch-changes/configuring-credentials#personal-access-tokens) in Batch Changes**. It is **also** necessary to create a separate GitHub App for Batch Changes commit signing even if you already have an App connected for the same code host for repository syncing because the Apps require different permissions. The process for creating each type of GitHub App is almost identical.
To create a GitHub App for commit signing and connect it to Sourcegraph:
@@ -304,3 +341,32 @@ When a user is deleted, their Batch Changes become inaccessible in the UI but th
This allows recovering the Batch Changes if the user is restored.
However, if the user deletion is permanent, deleting both account and data, then the associated Batch Changes are also permanently deleted from the database. This frees storage space and removes dangling references.
+
+## Batch Spec Library
+
+ Batch Spec Library is currently in Experimental.
+
+The Batch Spec Library is a collection of Batch Specs that can be used to create Batch Changes. Sourcegraph provides a few Batch Specs out of the box.
+
+Site admins can manage the library through the GraphQL mutations `createBatchSpecLibraryRecord`, `updateBatchSpecLibraryRecord`, and `deleteBatchSpecLibraryRecord`. Use the query `batchSpecLibrary` to list all available Batch Spec examples.
+
+```graphql
+createBatchSpecLibraryRecord(name: "example", spec: "version: 2\nname: example") {
+ id
+}
+
+updateBatchSpecLibraryRecord(id: "QmF0Y2hTcGVjTGlicmFyeVJlY29yZDo4", name: "example-2", spec: "version: 2\nname: example-2") {
+ id
+}
+
+deleteBatchSpecLibraryRecord(id: "QmF0Y2hTcGVjTGlicmFyeVJlY29yZDo4") {
+ alwaysNil
+}
+
+batchSpecLibrary(first: 100) {
+ nodes {
+ id
+ name
+ }
+}
+```
diff --git a/docs/admin/config/index.mdx b/docs/admin/config/index.mdx
index a66dff7f7..66cc4af3e 100644
--- a/docs/admin/config/index.mdx
+++ b/docs/admin/config/index.mdx
@@ -1,10 +1,17 @@
# Configuring Sourcegraph
+
+ Supported on [Enterprise](/pricing/enterprise) plans.
+
+ Available via the Web app.
+
+
+
This page documents how to configure a Sourcegraph instance. For deployment configuration, please refer to the [relevant deployment docs for your deployment type](/admin/deploy/#deployment-types).
- [Site configuration](/admin/config/site_config)
- [Global and user settings](/admin/config/settings)
-- [Code host configuration](/admin/external_service/) (GitHub, GitLab, and the [Nginx HTTP server](/admin/http_https_configuration).)
+- [Code host configuration](/admin/code_hosts/) (GitHub, GitLab, and the [Nginx HTTP server](/admin/http_https_configuration).)
- [Search configuration](/admin/search)
- [Configuring Authorization and Authentication](/admin/config/authorization_and_authentication)
- [Batch Changes configuration](/admin/config/batch_changes)
@@ -22,9 +29,9 @@ This page documents how to configure a Sourcegraph instance. For deployment conf
- [Configure email sending / SMTP server](/admin/config/email)
- [Update Sourcegraph](/admin/updates/)
- [Using external services (PostgreSQL, Redis, S3/GCS)](/admin/external_services)
-- [PostgreSQL Config](/admin/postgres-conf)
-- [Configuring webhooks](/admin/webhooks/)
-- [Configuring rate limits](/admin/external_service/rate_limits)
+- [PostgreSQL Config](/admin/config/postgres-conf)
+- [Configuring webhooks](/admin/config/webhooks/)
+- [Configuring rate limits](/admin/code_hosts/rate_limits)
- [Configuring command recording](/admin/repo/recording)
## Advanced tasks
@@ -33,3 +40,4 @@ This page documents how to configure a Sourcegraph instance. For deployment conf
- [Restore postgres database from snapshot](/admin/config/restore/)
- [Enabling database encryption for sensitive data](/admin/config/encryption)
- [Configuring Sourcegraph in private networks](/admin/config/private-network)
+- [Restricting outgoing connections](/admin/config/network-filtering)
diff --git a/docs/admin/config/network-filtering.mdx b/docs/admin/config/network-filtering.mdx
new file mode 100644
index 000000000..10c0075c1
--- /dev/null
+++ b/docs/admin/config/network-filtering.mdx
@@ -0,0 +1,32 @@
+# Outoing Connection Filtering
+Sourcegraph supports outbound connection filtering. Both for regular external connections and so-called "untrusted" connections, where a regular user can provide a URL to make an outbound connection to.
+
+The allow- and denylist support a comma separated list of IP ranges, hostnames and keywords. To block or allow all the internal connections use the “private” keyword, this would block all RFC 1918 (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) and RFC 4193 (FC00::/7) IP addresses. Keywords can be combined with ranges and IP addresses so it's very customizable.
+
+## Trusted External Connections
+It’s possible for the Sourcegraph instance to deny access to external hosts by setting the environment variable `EXTERNAL_DENY_LIST` on the deployment.
+
+The default denylist is set up to only block localhost and the Cloud metadata service IP address. Expanding the denylist could interfere with internal authentication providers, and they might need to be excluded from the denylist.
+
+### Example Configuration
+
+Adding a denylist can be done by setting the environment variable `EXTERNAL_DENY_LIST` on the deployment.
+
+```
+EXTERNAL_DENY_LIST="private,github.com"
+```
+
+This would deny all connections to hosts in the private network and github.com.
+
+## Untrusted External Connections
+Codemonitors, webhooks and Cody URL context are limited to only be able to access public IP addresses by default. This behavior can be changed with the `UNTRUSTED_EXTERNAL_ALLOW_LIST` environment variable, which configures the allowlist.
+
+### Example Configuration
+If you want Cody to use context from an internal server in addition to internet access, you can add the internal server's IP address to the allowlist:
+
+```
+UNTRUSTED_EXTERNAL_ALLOW_LIST="external,192.168.1.53"
+```
+
+## Implementation Details
+To achieve this, we use [gitea's hostmatcher](https://github.com/go-gitea/gitea/blob/v1.22.6/modules/hostmatcher/hostmatcher.go#L39). This is configured by default for the `ExternalClient`, which is used for all external requests. The common options and configuration can be found [here](https://github.com/sourcegraph/sourcegraph-public-snapshot/blob/main/internal/httpcli/client.go#L406C1-L423C2).
diff --git a/docs/admin/config/private-network.mdx b/docs/admin/config/private-network.mdx
index 4aee69c99..c2517daee 100644
--- a/docs/admin/config/private-network.mdx
+++ b/docs/admin/config/private-network.mdx
@@ -1,74 +1,225 @@
# Private network configuration
-A **private network** refers to a secure network environment segregated from the public internet, designed to facilitate internal communications and operations within an organization. This network setup restricts external access, enhancing security and control over data flow by limiting exposure to external threats and unauthorized access.
-When deploying self-hosted Sourcegraph instances in private networks with specific compliance and policy requirements, additional configuration may be required to ensure all networking features function correctly. The reasons for applying the following configuration options depend on the specific functionality of the Sourcegraph service and the unique network and infrastructure requirements of the organization.
+## Overview
+A private network is your organization's secure, internal network space - separated from the public internet.
+Think of it as your company's own protected environment where internal systems can communicate safely,
+keeping your sensitive data and operations shielded from external access.
-The following is a list of Sourcegraph services and how and when each initiates outbound connections to external services:
-- **frontend**: The frontend service communicates externally when connecting to external [auth providers](../auth), sending [telemetry data](../pings), testing code host connections, and connecting to [externally hosted](../external_services) Sourcegraph services
+When deploying self-hosted Sourcegraph instances in private networks with specific compliance and policy requirements,
+additional configuration may be required to ensure all networking features function correctly. The reasons for applying the following configuration options depend on the specific functionality of the Sourcegraph service and the unique network and infrastructure requirements of the organization.
+
+The following is a list of Sourcegraph services that initiate outbound connections to external services. Sourcegraph services not included in this list can be assumed to only connect to services within the Sourcegraph deployment's network segment:
+- **executor**: Sourcegraph [Executor](../executors) batch change or precise indexing jobs may need to connect to
+services hosted within an organization's private network
+- **frontend**: The frontend service communicates externally when connecting to:
+ * External [auth providers](../auth)
+ * Sending [telemetry data](../pings)
+ * Testing [code host connections](../code_hosts)
+ * Connecting to [externally hosted](../external_services) Sourcegraph services
+ * Connecting to external [LLM providers](../../cody/capabilities/supported-models) with Cody
- **gitserver**: Executes git commands against externally hosted [code hosts](../external_service)
-- **repo-updater**: Communicates with [code hosts](../external_service) APIs to coordinate repository synchronization
- **migrator**: Connects to Postgres instances (which may be [externally hosted](../external_services/postgres)) to process database migrations
-- **executor**: Sourcegraph [Executor](../executors) batch change or precise indexing jobs may need to connect to services hosted within an organization's private network
+- **repo-updater**: Communicates with [code hosts](../external_service) APIs to coordinate repository synchronization
+- **worker**: Sourcegraph [Worker](../workers) run various background jobs that may require establishing connections to
+services hosted within an organization's private network
## HTTP proxy configuration
-All Sourcegraph services respect the conventional `HTTP_PROXY`, `HTTPS_PROXY`, and `NO_PROXY` environment variables for routing Sourcegraph client application HTTP traffic through a proxy server. The steps for configuring proxy environment variables will depend on your Sourcegraph deployment method.
+
+All Sourcegraph services respect the conventional `HTTP_PROXY`, `HTTPS_PROXY`, and `NO_PROXY` environment variables for
+routing Sourcegraph client application HTTP traffic through a proxy server. The steps for configuring proxy environment
+variables will depend on your Sourcegraph deployment method.
### Kubernetes Helm
+
Add the proxy environment variables to your Sourcegraph Helm chart [override file](https://github.com/sourcegraph/deploy-sourcegraph-helm/blob/main/charts/sourcegraph/values.yaml):
```yaml
-frontend|gitserver|repo-updater:
+executor|frontend|gitserver|migrator|repo-updater|worker:
env:
- - name: HTTP_PROXY
+ - name: HTTP_PROXY
value: http://proxy.example.com:8080
- name: HTTPS_PROXY
value: http://proxy.example.com:8080
- name: NO_PROXY
- value: "*.cluster.local,blobstore,codeinsights-db,codeintel-db,sourcegraph-frontend-internal,sourcegraph-frontend,github-proxy,gitserver,grafana,indexed-search-indexer,indexed-search,jaeger-query,pgsql,precise-code-intel-worker,prometheus,redis-cache,redis-store,repo-updater,searcher,symbols,syntect-server,worker-executors,worker"
+ value: "blobstore,codeinsights-db,codeintel-db,sourcegraph-frontend-internal,sourcegraph-frontend,github-proxy,gitserver,grafana,indexed-search-indexer,indexed-search,jaeger-query,pgsql,precise-code-intel-worker,prometheus,redis-cache,redis-store,repo-updater,searcher,symbols,syntect-server,worker-executors,worker,cloud-sql-proxy,localhost,127.0.0.1,.svc,.svc.cluster.local,kubernetes.default.svc"
```
-Failure to configure `NO_PROXY` correctly can cause the proxy configuration to interfere with local networking between internal Sourcegraph services.
+
+If the updated Sourcegraph pods fail to pass their readiness or health checks after configuring the HTTP proxy environment variables, you may also need to add your k8s cluster pod & service CIDR ranges to the `NO_PROXY` environment variable. Example:
-## Using private CA root certificates
-Some organizations maintain a private Certificate Authority (CA) for issuing certificates within their private network. When Sourcegraph connects to TLS encrypted service using a self-signed certificate that it does not trust, you will observe an `x509: certificate signed by unknown authority` error message in logs.
-
-In order for Sourcegraph to respect an organization's self-signed certificates, the private CA root certificate(s) will need to be appended to Sourcegraph's trusted CA root certificate list in `/etc/ssl/certs/ca-certificates.crt`.
+```yaml
+- name: NO_PROXY
+ value: "blobstore,codeinsights-db,codeintel-db,sourcegraph-frontend-internal,sourcegraph-frontend,github-proxy,gitserver,grafana,indexed-search-indexer,indexed-search,jaeger-query,pgsql,precise-code-intel-worker,prometheus,redis-cache,redis-store,repo-updater,searcher,symbols,syntect-server,worker-executors,worker,cloud-sql-proxy,localhost,127.0.0.1,.svc,.svc.cluster.local,kubernetes.default.svc,10.10.0.0/16,10.20.0.0/16"
+```
+
-### Configuring sourcegraph-frontend to recognize private CA root certificates
-The following details the process for setting up the sourcegraph-frontend to acknowledge and trust a private CA root certificate for Sourcegraph instances deployed using [Helm](../deploy/kubernetes/helm). For any other Sourcegraph service that needs to trust an organization's private CA root certificate (including gitserver, repo-updater, or migrator), similar steps will need to be followed.
+### Docker Compose
-1. Copy out the existing `ca-certificates.crt` file from the sourcegraph-frontend container:
-```sh
-kubectl cp $(kubectl get pod -l app=sourcegraph-frontend -o jsonpath='{.items[0].metadata.name}'):/etc/ssl/certs/ca-certificates.crt sourcegraph-frontend-ca-certificates.crt
+Add the proxy environment variables your docker compose override file.
+```yaml
+services:
+ :
+ environment:
+ - HTTP_PROXY=http://proxy.example.com:8080
+ - HTTPS_PROXY=http://proxy.example.com:8080
+ - NO_PROXY='blobstore,caddy,cadvisor,codeintel-db,codeintel-db-exporter,codeinsights-db,codeinsights-db-exporter,sourcegraph-frontend-0,sourcegraph-frontend-internal,gitserver-0,grafana,migrator,node-exporter,otel-collector,pgsql,pgsql-exporter,precise-code-intel-worker,prometheus,redis-cache,redis-store,repo-updater,searcher-0,symbols-0,syntect-server,worker,zoekt-indexserver-0,zoekt-webserver-0,localhost,127.0.0.1'
```
-2. Concatenate the private CA root certificate to the `sourcegraph-frontend-ca-certificates.crt` file:
-```sh
-cat sourcegraph-frontend-ca-certificates.crt {private-ca-certificate.crt file} > ca-certificates.crt
+
+Failure to configure `NO_PROXY` correctly can cause the proxy configuration to interfere with
+local networking between internal Sourcegraph services.
+
+## Docker networking configuration
+If there is an IP conflict on between the host network and the Docker network, you may need to configure the docker CIDR
+range in the docker-compose override file.
+
+Additional information on docker networking can be found here:
+* [Docker networking overview](https://docs.docker.com/network/)
+* [Networking in Compose](https://docs.docker.com/compose/how-tos/networking/)
+
+## Trusting TLS certificates using internal PKI
+
+If your organization uses internal Public Key Infrastructure to manage TLS certificates, you may need to configure your
+Sourcegraph instance to trust your internal Root Certificate Authorities, so your instance can connect to other internal
+services, ex. code hosts, authentication providers, etc.
+
+This method offers several advantages:
+- Works consistently across both Cloud and self-hosted deployments
+- Requires minimal configuration changes
+- Can be managed entirely through the web UI
+- Maintains certificates in a centralized location
+- Aligns with enterprise PKI best practices
+
+The configuration process involves identifying and adding the public key of your organization's root Certificate
+Authority (CA) to Sourcegraph's site configuration. This approach is particularly efficient because:
+* Root CA certificates typically have long expiration periods (often measured in years)
+* A single root CA certificate usually covers multiple internal services
+* The configuration can be managed without container modifications or filesystem changes
+
+### Obtain the certificate chain
+Use the OpenSSL command to extract the certificate chain from your code host.
+Replace the domain and port with your internal code host's values:
+
+```bash
+openssl s_client -showcerts -connect example.com:8443 \
+-nameopt lname < /dev/null > certs.log 2>&1
```
-3. Create a new Kubernetes ConfigMap containing the concatenated `ca-certificates.crt` file:
-```sh
-kubectl create configmap sourcegraph-frontend-ca-certificates --from-file=ca-certificates.crt
+
+### Identify the root certificate
+In the generated `certs.log` file, locate the root CA certificate:
+
+Certificate chains typically include 3 certificates:
+
+* Root certificate authority (depth=2)
+* Intermediate certificate authority (depth=1)
+* Server (leaf) certificate (depth=0)
+
+The last certificate in the chain will be the root CA certificate and will typically have:
+
+* A long expiration period (years)
+* A descriptive common name (e.g., "Enterprise Root CA 2023")
+
+Example root CA certificate for github.com:
+
+```text
+Connecting to 140.82.114.3
+depth=2 countryName=US, stateOrProvinceName=New Jersey, localityName=Jersey City, organizationName=The USERTRUST Network, commonName=USERTrust ECC Certification Authority
+verify return:1
+depth=1 countryName=GB, stateOrProvinceName=Greater Manchester, localityName=Salford, organizationName=Sectigo Limited, commonName=Sectigo ECC Domain Validation Secure Server CA
+verify return:1
+depth=0 commonName=github.com
+verify return:1
+CONNECTED(00000005)
+---
+...
+ 2 s:countryName=US, stateOrProvinceName=New Jersey, localityName=Jersey City, organizationName=The USERTRUST Network, commonName=USERTrust ECC Certification Authority
+ i:countryName=GB, stateOrProvinceName=Greater Manchester, localityName=Salford, organizationName=Comodo CA Limited, commonName=AAA Certificate Services
+ a:PKEY: id-ecPublicKey, 384 (bit); sigalg: RSA-SHA384
+ v:NotBefore: Mar 12 00:00:00 2019 GMT; NotAfter: Dec 31 23:59:59 2028 GMT
+-----BEGIN CERTIFICATE-----
+MII...c=
+-----END CERTIFICATE-----
```
-4. Mount the `sourcegraph-frontend-ca-certificates` ConfigMap to the sourcegraph-frontend Deployment:
-```yaml
-frontend:
- extraVolumes:
- - name: ca-certificates
- configMap:
- name: sourcegraph-frontend-ca-certificates
- extraVolumeMounts:
- - name: ca-certificates
- mountPath: /etc/ssl/certs/
+
+### Format the certificate
+Once you've identified the root CA certificate:
+
+* Extract the certificate content including the BEGIN and END markers.
+* Format the certificate for the site configuration:
+ * Replace newlines with \n characters
+ * Enclose the entire certificate in double quotes
+ * Add a trailing comma
+
+
+The following command can be used to easily obtain, extract, and format the root certificate from a 3 certificate chain.
+Be sure to adjust the hostname and port to match your internal code host. If your certificate chain is of a different
+depth, adjust the awk command accordingly. `awk '/BEGIN CERTIFICATE/{i++} i==X'`
+ ```bash
+openssl s_client -showcerts -connect example.com:8443 \
+-nameopt lname < /dev/null 2>&1 \
+| awk '/BEGIN CERTIFICATE/,/END CERTIFICATE/' \
+| awk '/BEGIN CERTIFICATE/{i++} i==2' \
+| awk '{printf "%s\\n", $0}' | sed 's/\\n$//' \
+| awk '{print "\"" $0 "\","}'
```
-Once deployed, you should see the private CA root certificate in the sourcegraph-frontend container's `/etc/ssl/certs/ca-certificates.crt` file.
-```sh
-kubectl exec -it $(kubectl get pod -l app=sourcegraph-frontend -o jsonpath='{.items[0].metadata.name}') -- tail /etc/ssl/certs/ca-certificates.crt
+### Add the certificate to the site configuration
+Add the formatted certificate to your Sourcegraph site configuration.
+
+```json
+{
+ "experimentalFeatures": {
+ "tls.external": {
+ "certificates": [
+ "-----BEGIN CERTIFICATE-----\naZ...==\n-----END CERTIFICATE-----"
+ ]
+ }
+ }
+}
```
-You can verify that the self-signed certificate is trusted using `curl`:
-```sh
-kubectl exec -it $(kubectl get pod -l app=sourcegraph-frontend -o jsonpath='{.items[0].metadata.name}') -- curl -v {https://internal.service.example.com} > /dev/null
+For organizations with multiple root CAs (uncommon), additional certificates can be added to the array:
+```json
+{
+ "experimentalFeatures": {
+ "tls.external": {
+ "certificates": [
+ "-----BEGIN CERTIFICATE-----\naZ...==\n-----END CERTIFICATE-----",
+ "-----BEGIN CERTIFICATE-----\nMI...I7\n-----END CERTIFICATE-----"
+ ]
+ }
+ }
+}
```
-It is recommended to repeat these steps on a regular cadence to ensure that Sourcegraph's CA root certificate list stays up to date.
+### Validation of certificate configuration
+These steps confirms that configuring the root CA certificate through `tls.external` is sufficient for all standard
+Sourcegraph operations that require secure connections to internal services.
+
+ 1. **Code host connectivity**
+ - Verify using the UI "Test Connection" button
+ - Trigger validate completed sync jobs
+ Executed by: frontend service
+
+ 2. **Repository operations**
+ - Verify individual repository synchronization
+ - Verify cloning operations
+ Executed by: gitserver service
+
+ 3. **Permission synchronization**
+ - Verify user-centric permission sync jobs
+ Executed by: worker service
+
+
+Repository-centric permission sync jobs are expected to behave identically, as they use the same underlying TLS configuration mechanisms.
+
+
+### Recommended best practices
+* Only include root CA certificates, not intermediate or server certificates.
+* Avoid using `insecureSkipVerify: true` and add TLS certificates if needed, as it bypasses important security checks.
+* Document certificate sources and expiration dates in your organization's runbooks.
+* Plan for certificate rotation well before root CA expiration.
+* Most enterprises use a single root CA, so adding one certificate often covers all internal services.
+* Keep the certificate list minimal and well-maintained.
+
+
+
diff --git a/docs/admin/config/settings.mdx b/docs/admin/config/settings.mdx
index b743e6ae5..1eec49777 100644
--- a/docs/admin/config/settings.mdx
+++ b/docs/admin/config/settings.mdx
@@ -109,9 +109,12 @@ Settings options and their default values are shown below.
// Defines default properties for search behavior. The default is `smart`, which provides query assistance that automatically runs alternative queries when appropriate. When `precise`, search behavior strictly searches for the precise meaning of the query.
"search.defaultMode": null,
- // The default pattern type that search queries will be intepreted as. `lucky` is an experimental mode that will interpret the query in multiple ways.
+ // The default pattern type for search queries. Note: to disable keyword search and use the previous behavior, set "search.defaultPatternType: standard".
"search.defaultPatternType": null,
+ // The number of results we send down during a search. Note: this is different to the count: in the query. The search will continue once we hit displayLimit and updated filters and statistics will continue to stream down. Defaults to 1500.
+ "search.displayLimit": 1500,
+
// Disable search suggestions below the search bar when constructing queries. Defaults to false.
"search.hideSuggestions": false,
diff --git a/docs/admin/config/site_config.mdx b/docs/admin/config/site_config.mdx
index 0b7927d2b..96b81e370 100644
--- a/docs/admin/config/site_config.mdx
+++ b/docs/admin/config/site_config.mdx
@@ -226,9 +226,7 @@ All site configuration options and their default values are shown below.
// - {
// "level": "warning",
// "notifier": {
- // "addresses": [
- // "alerts@example.com"
- // ],
+ // "address": "alerts@example.com",
// "type": "email"
// }
// }
@@ -258,7 +256,7 @@ All site configuration options and their default values are shown below.
// "warning_high_load"
// ]
- // Configures distributed tracing within Sourcegraph. To learn more, refer to https://docs.sourcegraph.com/admin/observability/tracing
+ // Configures distributed tracing within Sourcegraph. To learn more, refer to https://sourcegraph.com/docs/admin/observability/tracing
"observability.tracing": null,
// Other example values:
// - {
@@ -270,7 +268,7 @@ All site configuration options and their default values are shown below.
// - {
// "debug": true,
// "sampling": "all",
- // "type": "jaeger",
+ // "type": "opentelemetry", // Jaeger now uses the OpenTelemetry format, the old jaeger format is deprecated
// "urlTemplate": "{{ .ExternalURL }}/-/debug/jaeger/trace/{{ .TraceID }}"
// }
@@ -306,9 +304,12 @@ All site configuration options and their default values are shown below.
// Don't sync a user's permissions if they have synced within the last n seconds.
"permissions.syncUsersBackoffSeconds": 60,
- // The maximum number of user-centric permissions syncing jobs that can be spawned concurrently. Service restart is required to take effect for changes.
+ // The maximum number of user-centric permissions syncing jobs that can be spawned concurrently. Server restart is required for changes to take effect.
"permissions.syncUsersMaxConcurrency": 1,
+ // The maximum number of repo-centric permissions syncing jobs that can be spawned concurrently. Server restart is required for changes to take effect.
+ "permissions.syncReposMaxConcurrency": 5,
+
"rateLimits": null,
// Enables redacting sensitive information from outbound requests. Important: We only respect this setting in development environments. In production, we always redact outbound requests.
@@ -555,7 +556,7 @@ All site configuration options and their default values are shown below.
// Enable or disable Cody instance-wide. When Cody is disabled, all Cody endpoints and GraphQL queries will return errors, Cody will not show up in the site-admin sidebar, and Cody in the global navbar will only show a call-to-action for site-admins to enable Cody.
"cody.enabled": false,
- // Restrict Cody to only be enabled for users that have a feature flag labeled "cody" set to true. You must create a feature flag with this ID after enabling this setting: https://docs.sourcegraph.com/dev/how-to/use_feature_flags#create-a-feature-flag. This setting only has an effect if cody.enabled is true.
+ // Restrict Cody to only be enabled for users that have a feature flag labeled "cody" set to true. You must create a feature flag with this ID after enabling this setting: https://sourcegraph.com/docs/dev/how-to/use_feature_flags#create-a-feature-flag. This setting only has an effect if cody.enabled is true.
"cody.restrictUsersFeatureFlag": false,
//////////////////////////////////////////////////////////////
@@ -587,7 +588,7 @@ All site configuration options and their default values are shown below.
//////////////////////////////////////////////////////////////
// The "from" address for emails sent by this server.
- // Please see https://docs.sourcegraph.com/admin/config/email
+ // Please see https://sourcegraph.com/docs/admin/config/email
"email.address": null,
// Other example values:
// - "noreply@sourcegraph.example.com"
@@ -599,7 +600,7 @@ All site configuration options and their default values are shown below.
// - "Example Inc Sourcegraph"
// The SMTP server used to send transactional emails.
- // Please see https://docs.sourcegraph.com/admin/config/email
+ // Please see https://sourcegraph.com/docs/admin/config/email
"email.smtp": null,
// Other example values:
// - {
@@ -803,7 +804,6 @@ All site configuration options and their default values are shown below.
// - {
// "commitDiffMaxRepos": 50,
// "commitDiffWithTimeFilterMaxRepos": 5000,
- // "displayLimit": 1500,
// "maxRepos": 200,
// "maxTimeoutSeconds": 60
// }
@@ -923,7 +923,7 @@ You can check the container logs to see if you have made any typos or mistakes i
// The builtin auth provider with signup disallowed (shown below) means that
// after the initial site admin signs in, all other users must be invited.
//
- // Other providers are documented at https://docs.sourcegraph.com/admin/auth.
+ // Other providers are documented at https://sourcegraph.com/docs/admin/auth.
"auth.providers": [
{
"type": "builtin",
diff --git a/docs/admin/config/webhooks/incoming.mdx b/docs/admin/config/webhooks/incoming.mdx
index a5459dc23..0158f7b7c 100644
--- a/docs/admin/config/webhooks/incoming.mdx
+++ b/docs/admin/config/webhooks/incoming.mdx
@@ -1,29 +1,43 @@
# Incoming webhooks
-Incoming webhooks can be configured on a Sourcegraph instance in order to receive webhook events from code hosts. This allows Sourcegraph to react more quickly to events that occur outside the instance instead of polling for changes.
+A Sourcegraph instance can be configured to receive events from code hosts via incoming webhooks. This allows Sourcegraph to react more quickly to events outside the instance and decreases the polling required for changes.
-Webhooks are currently implemented to speed up two types of external events:
+Webhooks currently serve three purposes for reacting to external events:
-* Keeping batch changes changeset details up to date
* Keeping code on Sourcegraph fresh by responding to new code being pushed to a repository
+* Keeping batch changes changeset details up to date
+* Speed up Sourcegraph reacting to permission changes on the code host
See the table below for code host compatibility:
- Code host | [Batch changes](/batch_changes) | Code push | User permissions
+ Code host | Code push | [Batch changes](/batch_changes) | User permissions
----------------------------- | :----------------------------------------------: | :-------: | :--------------:
-GitHub | 🟢 | 🟢 | 🟢
-GitLab | 🟢 | 🟢 | 🔴
-Bitbucket Server / Datacenter | 🟢 | 🟢 | 🔴
-Bitbucket Cloud | 🟢 | 🟢 | 🔴
-Azure DevOps | 🟢 | 🔴 | 🔴
+GitHub | 🟢 | 🟢 | 🟢
+GitLab | 🟢 | 🟢 | 🔴
+Bitbucket Server / Datacenter | 🟢 | 🟢 | 🔴
+Bitbucket Cloud | 🟢 | 🟢 | 🔴
+Azure DevOps | 🔴 | 🟢 | 🔴
To receive webhooks both Sourcegraph and the code host need to be configured. To configure Sourcegraph, [add an incoming webhook](#adding-an-incoming-webhook). Then [configure webhooks on your code host](#configuring-webhooks-on-the-code-host)
+## Deprecation notice
+
+As of Sourcegraph 4.3.0 webhooks added via code host configuration are deprecated and support will be removed in release 5.1.0.
+
+This includes any webhooks pointed at URLs starting with the following:
+
+* `.api/github-webhooks`
+* `.api/gitlab-webhooks`
+* `.api/bitbucket-server-webhooks`
+* `.api/bitbucket-cloud-webhooks`
+
+In order to continue using webhooks you need to follow the steps below to [add an incoming webhook](#adding-an-incoming-webhook) and then update the webhook configured on your code host with the new webhook url which will look something like `https://sourcegraph-instance/.api/webhooks/{UUID}`
+
## Adding an incoming webhook
-Before adding an incoming webhook you should ensure that you have at least one [code host connection](/admin/external_services/) configured.
+Before adding an incoming webhook you should ensure that you have at least one [code host connection](/admin/code_hosts/) configured for the code host you want to set up incoming webhooks for.
-The incoming webhook will be configured to accept events from a specific code host connection based on its type and URN.
+The incoming webhook will be configured to accept events from a specific code host based on its type and URN.
1. Navigate to **Site Admin > Configuration > Incoming webhooks**

@@ -34,136 +48,203 @@ The incoming webhook will be configured to accept events from a specific code ho
1. **Code host type**: Select from the dropdown. This will be filtered based on code host connections added on your instance.
1. **Code host URN**: The URN for the code host. Again, this will be filtered by code host connections added on your instance.
1. **Secret**: An arbitrary shared secret between Sourcegraph and the code host. A default value is provided, but you are free to change it.
- > NOTE: Secrets are not supported for Bitbucket cloud
4. Click **Create**
The incoming webhook will now be created, and you will be redirected to a page showing more details.

-Use the unique URL present on the details page to configure [the webhook on your code host](#configuring-webhooks-on-the-code-host).
+Use the Webhook endpoint from the details page to configure [the webhook on your code host](#configuring-webhooks-on-the-code-host).
## Configuring webhooks on the code host
-The instructions for setting up webhooks on the code host are specific to each code host type.
+Follow these instructions for setting up webhooks on the code host are specific to each code host type.
### GitHub
-#### Batch changes
+GitHub webhooks can be created at the repository level, or at the organization level. We strongly recommend using organization level webhooks, to decrease the amount of work needed to add webhooks to every repository, and ensure new repositories have the webhooks added as well.
-1. Copy the webhook URL displayed after adding the incoming webhook as mentioned [above](#adding-an-incoming-webhook)
+If you use multiple organizations, make sure to configure the webhooks in all of them. The same webhook in Sourcegraph can be connected to multiple organizations.
+
+1. Copy the **webhook endpoint** displayed after adding the incoming webhook as mentioned [above](#adding-an-incoming-webhook)
1. On GitHub, go to the settings page of your organization. From there, click **Settings**, then **Webhooks**, then **Add webhook**.
1. Fill in the webhook form:
- * **Payload URL**: the URL you copied above from Sourcegraph.
- * **Content type**: this must be set to `application/json`.
- * **Secret**: the secret token you configured Sourcegraph to use above.
- * **Which events**: select **Let me select individual events**, and then enable:
- - Issue comments
- - Pull requests
- - Pull request reviews
- - Pull request review comments
- - Check runs
- - Check suites
- - Statuses
- * **Active**: ensure this is enabled.
+ * **Payload URL**: the URL you copied above from Sourcegraph.
+ * **Content type**: this must be set to `application/json`.
+ * **Secret**: the secret token you configured Sourcegraph to use above.
+ * **Which events**: select **Let me select individual events**, and then enable:
+ * **For repo changes**:
+ * `push`
+ * **For Batch Changes**:
+ * `Issue comments`
+ * `Pull requests`
+ * `Pull request reviews`
+ * `Pull request review comments`
+ * `Check runs`
+ * `Check suites`
+ * `Statuses`
+ * **For repository permissions**:
+ * `Collaborator add, remove, or changed`
+ * `Memberships`
+ * `Organizations`
+ * `Repositories`
+ * `Teams`
+ * **Active**: ensure this is enabled.
1. Click **Add webhook**.
1. Confirm that the new webhook is listed.
-Done! Sourcegraph will now receive webhook events from GitHub and use them to sync pull request events, used by [batch changes](/batch_changes/index), faster and more efficiently.
-
-#### Code push
-
-Follow the same steps as above, but ensure you include the `push` event under **Let me select individual events**
+Permission changes can take a few seconds to reflect on GitHub. To prevent syncing permissions before the change reflects on GitHub, the permissions sync will only occur 10 seconds after the relevant event is received.
-#### Repository permissions
+Done! Sourcegraph will now receive webhook events to sync data with lower latency and more efficiently.
-Follow the same steps as above, but ensure you include the following events under **Let me select individual events**:
-- `Collaborator add, remove, or changed`
-- `Memberships`
-- `Organizations`
-- `Repositories`
-- `Teams`
-
-When one of these events occur, a permissions sync will trigger for the relevant user or repository.
+### GitLab
-> NOTE: Permission changes can take a few seconds to reflect on GitHub. To prevent syncing permissions before the change reflects on GitHub, the permissions sync will only occur 10 seconds after the relevant event is received.
+GitLab webhooks can be installed at the repository or project level. We strongly recommend using project-level webhooks to decrease the amount of work needed to add webhooks to every repository and ensure that new repositories have them added as well.
-### GitLab
+If you use multiple projects, make sure to configure the webhooks in all of them. The same webhook in Sourcegraph can be connected to multiple projects.
-#### Batch changes
+We currently do not support [system webhooks](https://docs.gitlab.com/ee/administration/system_hooks.html), these do not provide the data needed for Sourcegraph.
-1. Copy the webhook URL displayed after adding the incoming webhook as mentioned [above](#adding-an-incoming-webhook)
+1. Copy the **webhook endpoint** displayed after adding the incoming webhook as mentioned [above](#adding-an-incoming-webhook)
1. On GitLab, go to your project, and then **Settings > Webhooks** (or **Settings > Integration** on older GitLab versions that don't have the **Webhooks** option).
1. Fill in the webhook form:
- * **URL**: the URL you copied above from Sourcegraph.
- * **Secret token**: the secret token you configured Sourcegraph to use above.
- * **Trigger**: select **Merge request events** and **Pipeline events**.
- * **Enable SSL verification**: ensure this is enabled if you have configured SSL with a valid certificate in your Sourcegraph instance.
+ * **URL**: the URL you copied above from Sourcegraph.
+ * **Secret token**: the secret token you configured Sourcegraph to use above.
+ * **Trigger**:
+ * **For repo changes**:
+ * `Push events`
+ * **For Batch Changes**:
+ * `Merge request events`
+ * `Pipeline events`
+ * **For repository permissions**:
+ * _Not supported_
+ * **Enable SSL verification**: ensure this is enabled if you have configured SSL with a valid certificate in your Sourcegraph instance.
1. Click **Add webhook**.
1. Confirm that the new webhook is listed below **Project Hooks**.
-Done! Sourcegraph will now receive webhook events from GitLab and use them to sync merge request events, used by [batch changes](/batch_changes/index), faster and more efficiently.
-
-**NOTE:** We currently do not support [system webhooks](https://docs.gitlab.com/ee/administration/system_hooks.html) as these provide a different set of payloads.
-
-#### Code push
-
-Follow the same steps as above, but ensure you include the `Push events` trigger.
+Done! Sourcegraph will now receive webhook events to sync data with lower latency and more efficiently.
### Bitbucket server
-#### Batch changes
-
The [Sourcegraph Bitbucket Server plugin](/integration/bitbucket_server#sourcegraph-bitbucket-server-plugin) enables the Bitbucket Server / Bitbucket Data Center instance to send webhooks to Sourcegraph.
-1. Install the [Sourcegraph Bitbucket Server plugin](/integration/bitbucket_server#sourcegraph-bitbucket-server-plugin) on your Bitbucket Server / Bitbucket Data Center instance.
+Webhooks with the plugin can be installed globally, which is recommended to cover for all repositories.
+
+1. Install the latest version of the [Sourcegraph Bitbucket Server plugin](/integration/bitbucket_server#sourcegraph-bitbucket-server-plugin) on your Bitbucket Server / Bitbucket Data Center instance.
1. On your Bitbucket Server / Bitbucket Data Center instance, go to **Administration > Add-ons > Sourcegraph**
1. Fill in the **Add a webhook** form
- * **Name**: A unique name representing your Sourcegraph instance.
- * **Scope**: `global`.
- * **Endpoint**: The URL found after creating an incoming webhook.
- * **Events**: `repo:build_status`, `pr:activity:status`, `pr:activity:event`, `pr:activity:rescope`, `pr:activity:merge`, `pr:activity:comment`, `pr:activity:reviewers`, `pr:participant:status`
- * **Secret**: The secret you configured when creating the incoming webhook.
+ * **Name**: A unique name representing your Sourcegraph instance.
+ * **Scope**: `global`.
+ * **Endpoint**: The URL found after creating an incoming webhook.
+ * **Events**:
+ * **For repo changes**:
+ * `repo:refs_changed`
+ * **For Batch Changes**:
+ * `repo:build_status`
+ * `pr:activity:status`
+ * `pr:activity:event`
+ * `pr:activity:rescope`
+ * `pr:activity:merge`
+ * `pr:activity:comment`
+ * `pr:activity:reviewers`
+ * `pr:participant:status`
+ * **For repository permissions**:
+ * _Not supported_
+ * **Secret**: The secret you configured when creating the incoming webhook.
1. Confirm that the new webhook is listed under **All webhooks** with a timestamp in the **Last successful** column.
-Done! Sourcegraph will now receive webhook events from Bitbucket Server / Bitbucket Data Center and use them to sync pull request events, used by [batch changes](/batch_changes/index), faster and more efficiently.
+Done! Sourcegraph will now receive webhook events to sync data with lower latency and more efficiently.
-#### Code push
+### Bitbucket cloud
-Follow the same steps as above, but ensure you tick the `Push` option. If asked for a specific event, use `repo:refs_changed`.
+Bitbucket Cloud webhooks can be installed at the repository or workspace level. While we recommend installing them at the workspace level, the setup for them on the Bitbucket side [is unfortunately a bit more involved](https://community.atlassian.com/t5/Bitbucket-questions/How-can-you-create-Workspace-webhooks/qaq-p/2200142).
+
+Using workspace level webhooks is the recommended way to add webhooks to all repositories in a workspace.
+
+To install a webhook at the workspace level, you have to [use the REST API](https://developer.atlassian.com/cloud/bitbucket/rest/api-group-workspaces/#api-workspaces-workspace-hooks-post). Bitbucket does not expose a UI to create those.
+
+Follow the REST API docs from Bitbucket. To create a workspace webhook via the API, you need to temporarily create an [app password](https://bitbucket.org/account/settings/app-passwords/).
+
+This password requires **webhook read & write** and **repo read** scope, and you must be a workspace owner. You can then use the following command to create the webhook, and fill in the JSON properties as follows:
+
+* **Description**: A unique name representing your Sourcegraph instance.
+* **URL**: The URL found after creating an incoming webhook.
+* **Events**:
+ * **For repo changes**:
+ * `repo:push`
+ * **For Batch Changes**:
+ * `pullrequest:created`
+ * `pullrequest:updated`
+ * `pullrequest:changes_request_created`
+ * `pullrequest:changes_request_removed`
+ * `pullrequest:approved`
+ * `pullrequest:unapproved`
+ * `pullrequest:fulfilled`
+ * `pullrequest:rejected`
+ * `pullrequest:comment_created`
+ * `pullrequest:comment_updated`
+ * `pullrequest:comment_deleted`
+ * `pullrequest:comment_resolved`
+ * `pullrequest:comment_reopened`
+ * **For repository permissions**:
+ * _Not supported_
+* **Secret**: The secret you configured when creating the incoming webhook.
+
+```bash
+$ curl -vf -X POST -u -H 'Content-Type: application/json' https://api.bitbucket.org/2.0/workspaces//hooks -d '
+ {
+ "description": "",
+ "url": "",
+ "active": true,
+ "secret": "",
+ "events": [
+
+ ]
+ }'
+```
-### Bitbucket cloud
+Once created, you can verify it is correctly configured through the UI, by going to any repository in the workspace, then go to **Repository settings** in the sidebar, and then select **Webhooks**. The webhook should appear under workspace hooks:
-#### Batch changes
+
-> NOTE: Experimental webhook support for Bitbucket Cloud was added in Sourcegraph 3.40. Please contact us with any issues found while using webhooks.
+Done! Sourcegraph will now receive webhook events to sync data with lower latency and more efficiently.
+
+#### Alternative: Creating a repository level webhook from the UI
1. On Bitbucket Cloud, go to each repository, and then **Repository settings > Webhooks**.
1. Click **Add webhook**.
1. Fill in the webhook form:
* **Title**: Any title.
* **URL**: The URL found after creating an incoming webhook.
- * **Triggers**: Select **Build status created** and **Build status updated** under **Repository**, and every item under **Pull request**.
+ * **Triggers**:
+ * **For repo changes**:
+ * `Push`
+ * **For Batch Changes**:
+ * `Repository > Build status created`
+ * `Repository > Build status updated`
+ * `Pull request > All events`
+ * **For repository permissions**:
+ * _Not supported_
1. Click **Save**.
1. Confirm that the new webhook is listed below **Repository hooks**.
-Done! Sourcegraph will now receive webhook events from Bitbucket Cloud and use them to sync pull request events, used by [batch changes](/batch_changes/index), faster and more efficiently.
-
-#### Code push
-
-Follow the same steps as above, but ensure you tick the `Push` option.
+Done! Sourcegraph will now receive webhook events to sync data with lower latency and more efficiently.
### Azure DevOps
-#### Batch changes
-
-> NOTE: Experimental webhook support for Azure DevOps was added in Sourcegraph 5.0, and does not currently support secrets. Please contact us with any issues found while using webhooks.
+Experimental webhook support for Azure DevOps was added in Sourcegraph 5.0, and does not currently support secrets. Please contact us with any issues found while using webhooks.
1. On Azure DevOps, go to each project, and then **Project settings > General > Service hooks**.
2. Click **Create subscription**.

3. Select **Web Hooks** and click **Next** .

-4. From the **Trigger on this type of event** drop-down, choose: **Pull request updated**.
+4. From the **Trigger on this type of event** drop-down, choose:
+ * **For repo changes**:
+ * _Not supported_
+ * **For Batch Changes**:
+ * `Pull request updated`
+ * **For repository permissions**:
+ * _Not supported_

5. Set the filters how you like, or leave them at the default: **[Any]** and click **Next**.
6. Fill in the webhook form:
@@ -172,7 +253,7 @@ Follow the same steps as above, but ensure you tick the `Push` option.
7. Click **Test** to verify the webhook works. Then click **Finish**.
8. Repeat the steps above, this time choosing **Pull request merged** as your event type.
-Done! Sourcegraph will now receive webhook events from Azure DevOps and use them to sync pull request events, used by [batch changes](/batch_changes/index), faster and more efficiently.
+Done! Sourcegraph will now receive webhook events to sync data with lower latency and more efficiently.
## Webhook logging
@@ -210,7 +291,7 @@ To retain webhook logs for one day:
```json
{
"webhook.logging": {
- "enabled": false,
+ "enabled": true,
"retention": "24h"
}
}
@@ -219,16 +300,3 @@ To retain webhook logs for one day:
### Encrypting webhook logs
Webhook logs can be encrypted by specifying a `webhookLogKey` in the [on-disk database encryption site configuration](/admin/config/encryption).
-
-## Deprecation notice
-
-As of Sourcegraph 4.3.0 webhooks added via code host configuration are deprecated and support will be removed in release 5.1.0.
-
-This includes any webhooks pointed at URLs starting with the following:
-
-* `.api/github-webhooks`
-* `.api/gitlab-webhooks`
-* `.api/bitbucket-server-webhooks`
-* `.api/bitbucket-cloud-webhooks`
-
-In order to continue using webhooks you need to follow the steps below to [add an incoming webhook](#adding-an-incoming-webhook) and then update the webhook configured on your code host with the new webhook url which will look something like `https://sourcegraph-instance/.api/webhooks/{UUID}`
diff --git a/docs/admin/config/webhooks/index.mdx b/docs/admin/config/webhooks/index.mdx
index c95cab178..2cbc3aff4 100644
--- a/docs/admin/config/webhooks/index.mdx
+++ b/docs/admin/config/webhooks/index.mdx
@@ -1,4 +1,4 @@
# Webhooks
- [Incoming webhooks](/admin/config/webhooks/incoming)
-- [Outgoing webhooks](/admin/config/webhooks/outgoing) (Beta)
+- [Outgoing webhooks](/admin/config/webhooks/outgoing)
diff --git a/docs/admin/config/webhooks/outgoing.mdx b/docs/admin/config/webhooks/outgoing.mdx
index 21a39595f..71bb15842 100644
--- a/docs/admin/config/webhooks/outgoing.mdx
+++ b/docs/admin/config/webhooks/outgoing.mdx
@@ -1,10 +1,10 @@
# Outgoing webhooks
- This feature is currently in beta and supported on Sourcegraph versions 5.0 or more.
+ This feature is supported on Sourcegraph versions 5.0 or more.
Outgoing webhooks can be configured on a Sourcegraph instance in order to send Sourcegraph events to external tools and services. This allows for deeper integrations between Sourcegraph and other applications.
-Currently, webhooks are only implemented for events related to [Batch Changes](/batch_changes/). They also cannot yet be scoped to specific entities, meaning that they will be triggered for all events of the specified type across Sourcegraph. Expanded support for more event types and scoped events is planned for the future. Please [let us know](mailto:feedback@sourcegraph.com) what types of events you would like to see implemented next, or if you have any other feedback!
+Currently, webhooks are only implemented for events related to [Batch Changes](/batch-changes/). They also cannot yet be scoped to specific entities, meaning that they will be triggered for all events of the specified type across Sourcegraph. Expanded support for more event types and scoped events is planned for the future. Please [let us know](mailto:feedback@sourcegraph.com) what types of events you would like to see implemented next, or if you have any other feedback!
> WARNING: Outgoing webhooks have the potential to send sensitive information about your repositories and code to other untrusted services. When configuring outgoing webhooks, be sure to only send events to trusted service URLs and to use the shared secret to verify any requests received.
diff --git a/docs/admin/deploy/docker-compose/aws.mdx b/docs/admin/deploy/docker-compose/aws.mdx
index 74fedc10e..e11264a0f 100644
--- a/docs/admin/deploy/docker-compose/aws.mdx
+++ b/docs/admin/deploy/docker-compose/aws.mdx
@@ -1,13 +1,7 @@
# Install Sourcegraph on Amazon Web Services (AWS)
-> ⚠️ We recommend new users use our [AWS AMI](/admin/deploy/machine-images/aws-oneclick) or [script-install](/admin/deploy/single-node/script) instructions, which are easier and offer more flexibility when configuring Sourcegraph. Existing customers can reach out to our Customer Engineering team support@sourcegraph.com if they wish to migrate to these deployment models.
-
-
-
This guide will take you through how to deploy Sourcegraph with [Docker Compose](https://docs.docker.com/compose/) to a single EC2 instance on Amazon Web Services (AWS).
-Deploy a Sourcegraph instance with an [AWS AMI](/admin/deploy/machine-images/aws-ami) or [AWS One-Click](/admin/deploy/machine-images/aws-oneclick). (Recommended)
-
## Configure
@@ -25,7 +19,7 @@ Click **Launch Instance** from the [EC2 dashboard](https://console.aws.amazon.co
#### Instance type
-1. Select an appropriate instance type using our [resource estimator](https://docs.sourcegraph.com/admin/deploy/resource_estimator) as reference
+1. Select an appropriate instance type using our [resource estimator](/admin/deploy/resource_estimator) as reference
#### Key pair (login)
@@ -68,7 +62,7 @@ set -euxo pipefail
###############################################################################
# Please read the notes below the script if you are cloning a private repository
DEPLOY_SOURCEGRAPH_DOCKER_FORK_CLONE_URL='https://github.com/sourcegraph/deploy-sourcegraph-docker.git'
-DEPLOY_SOURCEGRAPH_DOCKER_FORK_REVISION='v5.3.9104'
+DEPLOY_SOURCEGRAPH_DOCKER_FORK_REVISION={CURRENT_VERSION}
##################### NO CHANGES REQUIRED BELOW THIS LINE #####################
DEPLOY_SOURCEGRAPH_DOCKER_CHECKOUT='/home/ec2-user/deploy-sourcegraph-docker'
DOCKER_COMPOSE_VERSION='1.29.2'
diff --git a/docs/admin/deploy/docker-compose/azure.mdx b/docs/admin/deploy/docker-compose/azure.mdx
index dc9340d85..f30d1c7e4 100644
--- a/docs/admin/deploy/docker-compose/azure.mdx
+++ b/docs/admin/deploy/docker-compose/azure.mdx
@@ -1,7 +1,5 @@
# Install Sourcegraph on Azure
-> ⚠️ We recommend new users use our [machine image](/admin/deploy/machine-images/index) or [script-install](/admin/deploy/single-node/script) instructions, which are easier and offer more flexibility when configuring Sourcegraph. Existing customers can reach out to our Customer Engineering team support@sourcegraph.com if they wish to migrate to these deployment models.
-
This guide will take you through how to set up a Sourcegraph instance on an Azure virtual machine with [Docker Compose](https://docs.docker.com/compose/).
@@ -16,7 +14,7 @@ In the [Azure Quickstart Center](https://portal.azure.com/?quickstart=true#view/
* `Availability options:` No infrastructure redundancy required
* `Image:` Ubuntu Server 18.04 LTS - Gen2
* `VM architecture:` x64
-* `Size:` Select an appropriate instance type using our [resource estimator](https://docs.sourcegraph.com/admin/deploy/resource_estimator) as reference
+* `Size:` Select an appropriate instance type using our [resource estimator](/admin/deploy/resource_estimator) as reference
* `Authentication type:` Select one that works best for you. SSH Key is recommended.
* `Inbound port rules:` Allowed selected ports
* `Select inbound ports:` HTTP (80), HTTPS (443), SSH (22)
@@ -77,7 +75,7 @@ set -euxo pipefail
###############################################################################
# Please read the notes below the script if you are cloning a private repository
DEPLOY_SOURCEGRAPH_DOCKER_FORK_CLONE_URL='https://github.com/sourcegraph/deploy-sourcegraph-docker.git'
-DEPLOY_SOURCEGRAPH_DOCKER_FORK_REVISION='v5.3.9104'
+DEPLOY_SOURCEGRAPH_DOCKER_FORK_REVISION={CURRENT_VERSION}
##################### NO CHANGES REQUIRED BELOW THIS LINE #####################
DEPLOY_SOURCEGRAPH_DOCKER_CHECKOUT='/root/deploy-sourcegraph-docker'
DOCKER_COMPOSE_VERSION='1.29.2'
diff --git a/docs/admin/deploy/docker-compose/configuration.mdx b/docs/admin/deploy/docker-compose/configuration.mdx
index 0972e1098..ffb3b7fc9 100644
--- a/docs/admin/deploy/docker-compose/configuration.mdx
+++ b/docs/admin/deploy/docker-compose/configuration.mdx
@@ -1,105 +1,171 @@
# Configuration
-> ⚠️ We recommend new users use our [machine image](/admin/) or [script-install](/admin/deploy/single-node/script) instructions, which are easier and offer more flexibility when configuring Sourcegraph. Existing customers can reach out to our Customer Engineering team support@sourcegraph.com if they wish to migrate to these deployment models.
+> ⚠️ We recommend using our [machine image](/admin/deploy/machine-images/), which is much easier and offers more flexibility when configuring Sourcegraph. Existing customers can reach out to our Customer Support Engineering team support@sourcegraph.com for assistance with migrating.
-You can find the default [docker-compose.yaml](https://github.com/sourcegraph/deploy-sourcegraph-docker/blob/master/docker-compose/docker-compose.yaml) file inside the deployment repository.
+You can find the default base [docker-compose.yaml](https://github.com/sourcegraph/deploy-sourcegraph-docker/blob/master/docker-compose/docker-compose.yaml) file inside the [deploy-sourcegraph-docker](https://github.com/sourcegraph/deploy-sourcegraph-docker/blob/master/docker-compose) repository. We strongly recommend using an override file, instead of modifying the base docker-compose.yaml file.
-If you would like to make changes to the default configurations, we highly recommend you to create a new file called `docker-compose.override.yaml` in the same directory where the base file ([docker-compose.yaml](https://github.com/sourcegraph/deploy-sourcegraph-docker/blob/master/docker-compose/docker-compose.yaml)) is located, and make your customizations inside the `docker-compose.override.yaml` file.
-
->WARNING: For configuration of Sourcegraph, see Sourcegraph's [configuration](/admin/config/) docs.
+To configure your Sourcegraph instance, see Sourcegraph's [configuration](/admin/config/) docs.
## What is an override file?
-Docker Compose allows you to customize configuration settings using an override file called `docker-compose.override.yaml`, which allows customizations to persist through upgrades without needing to manage merge conflicts as changes are not made directly to the base `docker-compose.yaml` file.
-
-When you run the `docker-compose up` command, the override file will be automatically merged over the base [docker-compose.yaml](https://github.com/sourcegraph/deploy-sourcegraph-docker/blob/master/docker-compose/docker-compose.yaml) file.
+Docker Compose allows you to customize configurations using an override file, ex. `docker-compose.override.yaml`, which enables you to persist your configurations through upgrades, without having to manage merge conflicts when we update our base docker-compose.yaml file, as your changes are not made directly to the base file.
-The [official Docker Compose docs](https://docs.docker.com/compose/extends/) provide details about override files.
+When you run docker compose commands, we recommend that you specify the compose files in the order of precedence. In this example, the values in the override file override any conflicting values in the base file. You can also provide multiple override files in a command, to help you manage multiple instances / environments / test configurations, etc.
-## Examples
+```bash
+docker compose -f docker-compose.yaml -f docker-compose.override.yaml up -d --remove-orphans
+```
-In order to make changes to the configuration settings defined in the base file [docker-compose.yaml](https://github.com/sourcegraph/deploy-sourcegraph-docker/blob/master/docker-compose/docker-compose.yaml), create an empty `docker-compose.override.yaml` file in the same directory as the [docker-compose.yaml](https://github.com/sourcegraph/deploy-sourcegraph-docker/blob/master/docker-compose/docker-compose.yaml) file, using the same version number, and then add the customizations under the `services` field.
+See the [Docker Compose](https://docs.docker.com/compose/extends/) docs for details.
-### Adjust resources
+## Adjust resources
-Note that you will only need to list the fragments that you would like to change from the base file.
+You only need to specify the services and configurations which you need to override from the base file.
```yaml
# docker-compose.override.yaml
-version: '2.4'
services:
gitserver-0:
cpus: 8
- mem_limit: '26g'
+ mem_limit: '32g'
```
-### Add replica endpoints
+## Use external databases
-When adding a new replica for `gitserver`, `searcher`, `symbols`, and `indexed-search`, you must list the endpoints for each replica individually in order for frontend to communicate with them.
+The Docker Compose configuration has its own internal PostgreSQL and Redis databases.
-To do that, add or modify the environment variables to all of the sourcegraph-frontend-* services and the sourcegraph-frontend-internal service in the [Docker Compose YAML file](https://github.com/sourcegraph/deploy-sourcegraph-docker/blob/master/docker-compose/docker-compose.yaml).
+You can alternatively configure Sourcegraph to [use external services](/admin/external_services/).
-#### version older than 4.5.0
+## Set environment variables
-The following configuration in a docker-compose.override.yaml file shows how to list the endpoints for each replica service individually when the replica count for gitserver, searcher, symbols, and indexed-search has been increased to 2. This is done by using the environment variables specified for each service:
+Add / override an environment variable on the sourcegraph-frontend-0 service:
```yaml
# docker-compose.override.yaml
-version: '2.4'
services:
sourcegraph-frontend-0:
environment:
- # List all replica endpoints for gitserver
- - 'SRC_GIT_SERVERS=gitserver-0:3178 gitserver-1:3178'
- # List all replica endpoints for indexed-search/zoekt-webserver
- - 'INDEXED_SEARCH_SERVERS=zoekt-webserver-0:6070 zoekt-webserver-1:6070'
- # List all replica endpoints for searcher
- - 'SEARCHER_URL=http://searcher-0:3181 http://searcher-1:3181'
- # List all replica endpoints for symbols
- - 'SYMBOLS_URL=http://symbols-0:3184 http://symbols-1:3184'
+ - EXAMPLE_ENV_VAR=example_value
+```
+
+See ["Environment variables in Compose"](https://docs.docker.com/compose/environment-variables/) for other ways to pass these environment variables to the relevant services (command line, .env file, etc.).
+
+## Enable HTTP tracing
+
+Sourcegraph supports HTTP tracing to help troubleshoot issues. See [Tracing](/admin/observability/tracing) for details.
+
+The base docker-compose.yaml file enables the bundled [otel-collector](https://sourcegraph.com/search?q=repo:%5Egithub%5C.com/sourcegraph/deploy-sourcegraph-docker$+file:docker-compose/docker-compose.yaml+content:%22++otel-collector:%22&patternType=keyword) by default, but a tracing backend needs to be deployed or configured to see HTTP traces.
+
+To enable tracing on your instance, you'll need to either:
+
+1. Deploy our bundled Jaeger backend, or
+2. Configure an external tracing backend
+
+Once a tracing backend has been deployed, see our [Tracing](/admin/observability/tracing) page for next steps, including required changes to your Site Configuration to enable traces.
+
+### Deploy the bundled Jaeger
+
+To deploy the bundled Jaeger web UI to see HTTP trace data, add [Jaeger's docker-compose.yaml override file](https://github.com/sourcegraph/deploy-sourcegraph-docker/blob/main/docker-compose/jaeger/docker-compose.yaml) to your deployment command.
+
+```bash
+docker compose \
+ -f docker-compose/docker-compose.yaml \
+ -f docker-compose/jaeger/docker-compose.yaml \
+ -f docker-compose/docker-compose.override.yaml \
+ up -d --remove-orphans
+```
+
+### Configure an external tracing backend
+
+The bundled otel-collector can be configured to export HTTP traces to an OTel-compatible backend of your choosing.
+
+To customize the otel-collector config file:
+
+- Create a copy of the default config in [otel-collector/config.yaml](https://github.com/sourcegraph/deploy-sourcegraph-docker/blob/main/otel-collector/config.yaml)
+- Follow the [OpenTelemetry collector configuration guidance](/admin/observability/opentelemetry)
+- Edit your `docker-compose.override.yaml` file to mount your custom config file to the `otel-collector` container:
+
+```yaml
+services:
+ otel-collector:
+ command: ['--config', '/etc/otel-collector/config.yaml']
+ volumes:
+ - '~/deploy-docker-compose/otel-collector/custom-config.yaml:/etc/otel-collector/config.yaml'
```
-The above configuration uses the environment variables SRC_GIT_SERVERS, INDEXED_SEARCH_SERVERS, SEARCHER_URL, and SYMBOLS_URL to specify the individual endpoints for each replica service. This is done by listing the hostname and port number for each replica, separated by a space.
+## Git configuration
+
+### Git SSH configuration
-#### version 4.5.0 or above
+Provide your `gitserver` container with SSH / Git configuration needed to connect to some code hosts, by mounting a directory that contains the needed config files into the `gitserver` container, ex.
-In version 4.5.0 or above of Sourcegraph, it is possible to update the environment variables in the docker-compose.override.yaml file to automatically generate the endpoints based on the number of replicas provided. This eliminates the need to list each replica endpoint individually as in the previous example.
+- `.ssh/config`
+- `.ssh/id_rsa.pub`
+- `.ssh/id_rsa`
+- `.ssh/known_hosts`
+
+You can also provide other files like `.netrc`, `.gitconfig`, etc. at their respective paths, if needed.
```yaml
# docker-compose.override.yaml
-version: '2.4'
services:
+ gitserver-0:
+ volumes:
+ - 'gitserver-0:/data/repos'
+ - '~/sg/volume-maps/gitserver/.ssh:/home/sourcegraph/.ssh'
+```
+
+> WARNING: The permissions on your SSH / Git configuration must be set to be readable by the user in the `gitserver` container. For example, run `chmod -v -R 600 ~/sg/volume-maps/gitserver/.ssh` in the folder on the host machine.
+
+### Git HTTP(S) basic username + password authentication
+
+The easiest way to specify basic authentication usernames and passwords code hosts which require basic authentication, is to include them in the clone URL itself, ex. `https://user:password@example.com/my/repo`. These credentials won't be displayed to non-admin users.
+
+If you must use a `.netrc` file to store these credentials instead, follow the previous example for mounting SSH configuration, to mount a `.netrc` file from the host to `/home/sourcegraph/.netrc` in the `gitserver` container.
+
+## Add replicas
+
+When adding replicas for `gitserver`, `searcher`, `symbols`, `zoekt-indexserver`, or `zoekt-webserver`, you must update the corresponding environment variable on each of the frontend services in your docker-compose.override.yaml file to the number of replicas for the respective service. Sourcegraph will then automatically infer the containers' endpoints for each replica.
+
+```yaml
+# docker-compose.override.yaml
+services:
+
sourcegraph-frontend-0:
environment:
- # To generate replica endpoints for gitserver
- - 'SRC_GIT_SERVERS=2'
- # To generate replica endpoints for indexed-search/zoekt-webserver
- - 'INDEXED_SEARCH_SERVERS=2'
- # To generate replica endpoints for searcher
+ - 'INDEXED_SEARCH_INDEXERS=1'
+ - 'INDEXED_SEARCH_SERVERS=1'
+ - 'SEARCHER_URL=1'
+ - 'SRC_GIT_SERVERS=1'
+ - 'SYMBOLS_URL=1'
+
+ sourcegraph-frontend-internal:
+ environment:
+ - 'INDEXED_SEARCH_INDEXERS=1'
+ - 'INDEXED_SEARCH_SERVERS=1'
- 'SEARCHER_URL=1'
- # To generate replica endpoints for symbols
+ - 'SRC_GIT_SERVERS=1'
- 'SYMBOLS_URL=1'
```
-In the above example, the value of the environment variables `SRC_GIT_SERVERS`, `INDEXED_SEARCH_SERVERS`, `SEARCHER_URL`, and `SYMBOLS_URL` are set to the number of replicas for each respective service. This allows Sourcegraph to automatically generate the endpoints for each replica, eliminating the need to list them individually. This can be a useful feature when working with large numbers of replicas.
+## Shard gitserver
-### Create multiple gitserver shards
+If you find that your gitserver container is performing poorly, you can shard it into multiple containers. This is especially helpful when your Docker Compose host can mount multiple storage volumes, and each gitserver shard can use its own storage IOPS limit.
-Split gitserver across multiple shards:
+To split gitserver across multiple shards:
```yaml
# docker-compose.override.yaml
-version: '2.4'
services:
# Adjust resources for gitserver-0
# And then create an anchor to share with the replica
gitserver-0: &gitserver
cpus: 8
- mem_limit: '26g'
+ mem_limit: '32g'
# Create a new service called gitserver-1,
# which is an extension of gitserver-0
gitserver-1:
- # Extend the original gitserver-0 to get the image values etc
+ # Extend the original gitserver-0 to reuse most values
extends:
file: docker-compose.yaml
service: gitserver-0
@@ -120,8 +186,6 @@ services:
# Set the following environment variables to generate the replica endpoints
environment: &env_gitserver
- 'SRC_GIT_SERVERS=2'
- # IMPORTANT: For version below 4.3.1, you must list the endpoints individually
- # - &env_gitserver 'SRC_GIT_SERVERS=gitserver-0:3178 gitserver-1:3178'
# Use the same override values as sourcegraph-frontend-0 above
sourcegraph-frontend-internal:
<<: *frontend
@@ -134,103 +198,30 @@ volumes:
gitserver-1:
```
-### Disable a service
+## Disable a service
-You can "disable services" by assigning them to one or more [profiles](https://docs.docker.com/compose/profiles/), so that when running the `docker compose up` command, services assigned to profiles will not be started unless explicitly specified in the command (e.g., `docker compose --profile disabled up`).
+You can disable services by assigning them to one or more [profiles](https://docs.docker.com/compose/profiles/), so that when running the `docker compose up` command, services assigned to profiles will not be started unless explicitly specified in the command (e.g., `docker compose --profile disabled up`).
-For example, when you need to disable the internal codeintel-db in order to use an external database, you can assign `codeintel-db` to a profile called `disabled`:
+For example, when you need to disable the bundled databases to use external databases, you can assign the bundled database containers to a profile called `disabled`:
```yaml
# docker-compose.override.yaml
-version: '2.4'
services:
codeintel-db:
profiles:
- disabled
```
-### Enable tracing
-
-Tracing should be enabled in the `docker-compose.yaml` file by default.
-
-If not, you can enable it by setting the environment variable to `SAMPLING_STRATEGIES_FILE=/etc/jaeger/sampling_strategies.json` in the `jaeger` container:
-
-```yaml
-# docker-compose.override.yaml
-version: '2.4'
-services:
- jaeger:
- environment:
- - 'SAMPLING_STRATEGIES_FILE=/etc/jaeger/sampling_strategies.json'
-```
-
-### Enabling Embeddings service
-
-The Embeddings service handles searching embeddings for Cody context. It can be enabled using the [override file](https://sourcegraph.com/github.com/sourcegraph/deploy-sourcegraph-docker/-/blob/docker-compose/embeddings/embeddings.docker-compose.yaml)
-
-#### Configuring the Embeddings service
-By default the Embeddings service uses the `blobstore` service for storing embeddings indexes.
-To configure an external [object store](/cody/core-concepts/embeddings/manage-embeddings#store-embedding-indexes) the override file can modified by setting environment variables. These variables **must** be set on both the `worker` and `embeddings` services.
-
-### Git configuration
-
-#### Git SSH configuration
-
-Provide your `gitserver` instance with your SSH / Git configuration (e.g. `.ssh/config`, `.ssh/id_rsa`, `.ssh/id_rsa.pub`, and `.ssh/known_hosts`. You can also provide other files like `.netrc`, `.gitconfig`, etc. if needed) by mounting a directory that contains this configuration into the `gitserver` container.
-
-For example, in the `gitserver-0` container configuration in your `docker-compose.yaml` file or `docker-compose.override.yaml`, add the volume listed in the following example, while replacing `~/path/on/host/` with the path on the host machine to the `.ssh` directory:
-
-```yaml
-# docker-compose.override.yaml
-version: '2.4'
-services:
- gitserver-0:
- volumes:
- - 'gitserver-0:/data/repos'
- - '~/path/on/host/.ssh:/home/sourcegraph/.ssh'
-```
-
-> WARNING: The permissions on your SSH / Git configuration must be set to be readable by the user in the `gitserver` container. For example, run `chmod -v -R 600 ~/path/to/.ssh` in the folder on the host machine.
-
-#### Git HTTP(S) authentication
-
-The easiest way to specify HTTP(S) authentication for repositories is to include the username and password in the clone URL itself, such as `https://user:password@example.com/my/repo`. These credentials won't be displayed to non-admin users.
-
-Otherwise, follow the previous steps for mounting SSH configuration to mount a host directory containing the desired `.netrc` file to `/home/sourcegraph/` in the `gitserver` container.
+## Expose debug port
-### Expose debug port
-
-To [generate pprof profiling data](/admin/pprof), you must configure your deployment to expose port 6060 on one of your frontend containers, for example:
+To generate [pprof profiling data](/admin/pprof), you must configure your deployment to expose port 6060 on one of your frontend containers, for example:
```yaml
# docker-compose.override.yaml
-version: '2.4'
services:
sourcegraph-frontend-0:
ports:
- '0.0.0.0:6060:6060'
```
-For specific ports that can be exposed, see the [debug ports section](/admin/pprof#debug-ports) of Sourcegraphs's [generate pprof profiling data](/admin/pprof) docs.
-
-### Set environment variables
-
-Add/modify the environment variables to all of the sourcegraph-frontend-* services and the sourcegraph-frontend-internal service in the [Docker Compose YAML file](https://github.com/sourcegraph/deploy-sourcegraph-docker/blob/master/docker-compose/docker-compose.yaml):
-
-```yaml
-# docker-compose.override.yaml
-version: '2.4'
-services:
- sourcegraph-frontend-0:
- environment:
- - (YOUR CODE)
-```
-
-See ["Environment variables in Compose"](https://docs.docker.com/compose/environment-variables/) for other ways to pass these environment variables to the relevant services (including from the command line, a .env file, etc.).
-
-
-### Use an external database
-
-The Docker Compose configuration has its own internal PostgreSQL and Redis databases.
-
-You can alternatively configure Sourcegraph to [use external services](/admin/external_services/).
+For specific ports that can be exposed, see the [debug ports](/admin/pprof#debug-ports) section of the [pprof profiling data](/admin/pprof) page.
diff --git a/docs/admin/deploy/docker-compose/digitalocean.mdx b/docs/admin/deploy/docker-compose/digitalocean.mdx
index 83148beac..66096d1ad 100644
--- a/docs/admin/deploy/docker-compose/digitalocean.mdx
+++ b/docs/admin/deploy/docker-compose/digitalocean.mdx
@@ -1,7 +1,5 @@
# Install Sourcegraph on DigitalOcean
-> ⚠️ We recommend new users use our [machine image](/admin/deploy/machine-images/) or [script-install](/admin/deploy/single-node/script) instructions, which are easier and offer more flexibility when configuring Sourcegraph. Existing customers can reach out to our Customer Engineering team support@sourcegraph.com if they wish to migrate to these deployment models.
-
---
This guide will take you through how to deploy a Sourcegraph instance to a single DigitalOcean Droplet with [Docker Compose](https://docs.docker.com/compose/).
@@ -18,7 +16,7 @@ This guide will take you through how to deploy a Sourcegraph instance to a singl
#### Choose a plan
-1. Select an appropriate droplet size using our [resource estimator](https://docs.sourcegraph.com/admin/deploy/resource_estimator) as reference
+1. Select an appropriate droplet size using our [resource estimator](/admin/deploy/resource_estimator) as reference
#### Add block storage
@@ -56,7 +54,7 @@ set -euxo pipefail
###############################################################################
# Please read the notes below the script if you are cloning a private repository
DEPLOY_SOURCEGRAPH_DOCKER_FORK_CLONE_URL='https://github.com/sourcegraph/deploy-sourcegraph-docker.git'
-DEPLOY_SOURCEGRAPH_DOCKER_FORK_REVISION='v5.3.9104'
+DEPLOY_SOURCEGRAPH_DOCKER_FORK_REVISION={CURRENT_VERSION}
##################### NO CHANGES REQUIRED BELOW THIS LINE #####################
DEPLOY_SOURCEGRAPH_DOCKER_CHECKOUT='/root/deploy-sourcegraph-docker'
DOCKER_DATA_ROOT='/mnt/docker-data'
diff --git a/docs/admin/deploy/docker-compose/google_cloud.mdx b/docs/admin/deploy/docker-compose/google_cloud.mdx
index 612d79dd2..f0bd60ed8 100644
--- a/docs/admin/deploy/docker-compose/google_cloud.mdx
+++ b/docs/admin/deploy/docker-compose/google_cloud.mdx
@@ -1,7 +1,5 @@
# Install Sourcegraph on Google Cloud
-> ⚠️ We recommend new users use our [GCE machine image](/admin/deploy/machine-images/gce) or [script-install](/admin/deploy/single-node/script) instructions, which are easier and offer more flexibility when configuring Sourcegraph. Existing customers can reach out to our Customer Engineering team support@sourcegraph.com if they wish to migrate to these deployment models.
-
This guide will take you through how to deploy Sourcegraph with [Docker Compose](https://docs.docker.com/compose/) to a single node running on Google Cloud.
## Configure
@@ -9,7 +7,7 @@ This guide will take you through how to deploy Sourcegraph with [Docker Compose]
Click **Create Instance** in your [Google Cloud Compute Engine Console](https://console.cloud.google.com/compute/instances) to create a new VM instance, then configure the instance following the instructions below for each section:
#### Machine configuration
-1. Select an appropriate machine type using our [resource estimator](https://docs.sourcegraph.com/admin/deploy/resource_estimator) as reference
+1. Select an appropriate machine type using our [resource estimator](/admin/deploy/resource_estimator) as reference
#### Boot disk
1. Click **CHANGE** to update the boot disk:
@@ -27,14 +25,14 @@ Click **Create Instance** in your [Google Cloud Compute Engine Console](https://
1. Expand the **Advanced options** section and the **Disks** section within to add an additional disk to store data from the Sourcegraph Docker instance.
1. Click **+ ADD NEW DISK** to setup the new disk with the following settings:
- * `Name`: "sourcegraph-docker-disk" (or something similarly descriptive)
+ * `Name`: "sourcegraph-docker-data" (or something similarly descriptive)
* `Description`: "Disk for storing Docker data for Sourcegraph" (or something similarly descriptive)
* `Disk source type`: Blank disk
* `Disk type`: SSD persistent disk
* `Size`: `250GB` minimum
- * Sourcegraph needs at least as much space as all your repositories combined take up
- * Allocating as much disk space as you can upfront minimize the need for [resizing this disk](https://cloud.google.com/compute/docs/disks/add-persistent-disk#resize_pd) later on
- * `(optional, recommended) Snapshot schedule`: The most straightfoward way of automatically backing Sourcegraph's data is to set up a [snapshot schedule](https://cloud.google.com/compute/docs/disks/scheduled-snapshots) for this disk. We strongly recommend that you take the time to do so here.
+ * Sourcegraph recommends 3x the storage space of all your repos combined, as it needs to store the repos, indexes, databases, etc.
+ * Allocate as much disk space as you can upfront to reduce the need to later [resize this disk](https://cloud.google.com/compute/docs/disks/add-persistent-disk#resize_pd)
+ * `(Recommended) Snapshot schedule`: We strongly recommend that you configure a [snapshot schedule](https://cloud.google.com/compute/docs/disks/scheduled-snapshots) for this disk.
* `Attachment settings - Mode`: Read/write
* `Attachment settings - Deletion rule`: Keep disk
@@ -54,7 +52,7 @@ set -euxo pipefail
###############################################################################
# Please read the notes below the script if you are cloning a private repository
DEPLOY_SOURCEGRAPH_DOCKER_FORK_CLONE_URL='https://github.com/sourcegraph/deploy-sourcegraph-docker.git'
-DEPLOY_SOURCEGRAPH_DOCKER_FORK_REVISION='v5.3.9104'
+DEPLOY_SOURCEGRAPH_DOCKER_FORK_REVISION={CURRENT_VERSION}
##################### NO CHANGES REQUIRED BELOW THIS LINE #####################
# IMPORTANT: DO NOT MAKE ANY CHANGES FROM THIS POINT ONWARD
DEPLOY_SOURCEGRAPH_DOCKER_CHECKOUT='/root/deploy-sourcegraph-docker'
@@ -155,9 +153,9 @@ Please refer to the [Docker Compose upgrade docs](/admin/deploy/docker-compose/u
Data is persisted within a [Docker volume](https://docs.docker.com/storage/volumes/) as defined in the [deployment repository](https://github.com/sourcegraph/deploy-sourcegraph-docker/blob/master/docker-compose/docker-compose.yaml). The startup script configures Docker using a [daemon configuration file](https://docs.docker.com/engine/reference/commandline/dockerd/#daemon-configuration-file) to store all the data on the attached data volume, which is mounted at `/mnt/docker-data`, where volumes are stored within `/mnt/docker-data/volumes`.
-The most straightforward method to backup the data is to [snapshot the entire `/mnt/docker-data` volume](https://cloud.google.com/compute/docs/disks/create-snapshots) automatically using a [snapshot schedule](https://cloud.google.com/compute/docs/disks/scheduled-snapshots). You can also [set up a snapshot snapshot schedule](https://cloud.google.com/compute/docs/disks/scheduled-snapshots) after your instance has been created.
+The most straightforward method to backup the data is to [snapshot the entire `/mnt/docker-data` volume](https://cloud.google.com/compute/docs/disks/create-snapshots) automatically using a [snapshot schedule](https://cloud.google.com/compute/docs/disks/scheduled-snapshots).
-RECOMMENDED Using an external Postgres service such as [AWS RDS for PostgreSQL](https://aws.amazon.com/rds/) takes care of backing up all the user data for you. If the Sourcegraph instance ever dies or gets destroyed, creating a fresh new instance connected to the old external Postgres service will get Sourcegraph back to its previous state.
+RECOMMENDED Using an external Postgres service such as Google Cloud SQL takes care of backing up user data for you. If the Sourcegraph instance ever dies or gets destroyed, creating a fresh new instance connected to the old external Postgres service will get Sourcegraph back to its previous state.
---
diff --git a/docs/admin/deploy/docker-compose/index.mdx b/docs/admin/deploy/docker-compose/index.mdx
index 087cf5031..da6c41673 100644
--- a/docs/admin/deploy/docker-compose/index.mdx
+++ b/docs/admin/deploy/docker-compose/index.mdx
@@ -1,4 +1,4 @@
-# Sourcegraph with Docker Compose
+# Docker Compose
Setting up Docker applications with [multiple containers](https://www.docker.com/resources/what-container) like Sourcegraph using Docker Compose allows us to start all the applications with a single command. It also makes configuring the applications easier through updating the docker-compose.yaml and docker-compose.override.yaml files. Please see the [official Docker Compose docs](https://docs.docker.com/compose/) to learn more about Docker Compose.
@@ -18,7 +18,7 @@ This guide will take you through how to install Sourcegraph with Docker Compose
- Install [Docker Compose](https://docs.docker.com/compose/) on the server
- Minimum Docker [v20.10.0](https://docs.docker.com/engine/release-notes/#20100) and Docker Compose [v1.29.0](https://docs.docker.com/compose/release-notes/#1290)
- Docker Swarm mode is **not** supported
- - Check the [resource estimator](https://docs.sourcegraph.com/admin/deploy/resource_estimator) for resource requirements
+ - Check the [resource estimator](/admin/deploy/resource_estimator) for resource requirements
- Obtain a [Sourcegraph license](https://about.sourcegraph.com/pricing/)
- License is required for instances with **more than 10 users**
- optional Configure ingress firewall rules to enable secure access to the server
@@ -33,7 +33,7 @@ A step by step guide to install Sourcegraph with Docker Compose.
### Overview
- 1. [Fork the deployment repository] (recommended)(#step-1-fork-the-deployment-repository)
+ 1. [Fork the deployment repository (recommended)](#step-1-fork-the-deployment-repository)
2. [Customize the instance](#step-2-configure-the-instance)
3. [Clone the release branch](#step-3-clone-the-release-branch)
4. [Build and start the Sourcegraph containers](#step-4-start-sourcegraph)
@@ -115,9 +115,10 @@ Continue with the following steps *after* you have created a public or private c
- This branch will be used to [upgrade Sourcegraph](/admin/deploy/docker-compose/upgrade) and install your Sourcegraph instance.
- It also allows us to track all of the customizations made to your Sourcegraph instance.
-```bash
+
+```
# Specify the version you want to install
- export SOURCEGRAPH_VERSION="v5.3.9104"
+ export SOURCEGRAPH_VERSION={CURRENT_VERSION}
# Check out the selected version for use, in a new branch called "release"
git checkout $SOURCEGRAPH_VERSION -b release
```
@@ -136,7 +137,6 @@ If you would like to make changes to the default configurations, we highly recom
- Expose debug port
- Git SSH configuration
- Update or add new environment variables
- - Enable the Embeddings service
- And more!
Please make sure to commit any changes to your `release` branch.
@@ -163,9 +163,9 @@ On the production server, run the following command inside the [./docker-compose
# Go to the docker-compose configuration directory
cd docker-compose
# Start Sourcegraph with Docker Compose
- docker-compose up
+ docker compose up
# OR you can start Sourcegraph with Docker Compose in a detached mode
- docker-compose up -d
+ docker compose up -d
```
To check if the server is ready, the `sourcegraph-frontend-0` service must be displayed as healthy:
diff --git a/docs/admin/deploy/docker-compose/migrate.mdx b/docs/admin/deploy/docker-compose/migrate.mdx
index 46f0e5965..0cffbf236 100644
--- a/docs/admin/deploy/docker-compose/migrate.mdx
+++ b/docs/admin/deploy/docker-compose/migrate.mdx
@@ -1,6 +1,6 @@
# Migrate from the single Docker image to Docker Compose
-> ⚠️ We recommend new users use our [machine image](/admin/deploy/machine-images/index) or [script-install](/admin/deploy/single-node/script) instructions, which are easier and offer more flexibility when configuring Sourcegraph. Existing customers can reach out to our Customer Engineering team support@sourcegraph.com if they wish to migrate to these deployment models.
+> ⚠️ We recommend new users use our [machine image](/admin/deploy/machine-images/) or [script-install](/admin/deploy/single-node/script) instructions, which are easier and offer more flexibility when configuring Sourcegraph. Existing customers can reach out to our Customer Engineering team support@sourcegraph.com if they wish to migrate to these deployment models.
Since Sourcegraph 3.13, deploying via Docker Compose is the recommended method for production deployments as it provides resource isolation between Sourcegraph services which makes it more scalable and stable. This page describes how to migrate from a single Docker image deployment to the Docker Compose deployment method.
diff --git a/docs/admin/deploy/docker-compose/operations.mdx b/docs/admin/deploy/docker-compose/operations.mdx
index cab3a2185..54ba1aa00 100644
--- a/docs/admin/deploy/docker-compose/operations.mdx
+++ b/docs/admin/deploy/docker-compose/operations.mdx
@@ -1,7 +1,7 @@
# Management Operations
-> ⚠️ We recommend new users use our [machine image](/admin/deploy/machine-images/) or [script-install](/admin/deploy/single-node/script) instructions, which are easier and offer more flexibility when configuring Sourcegraph. Existing customers can reach out to our Customer Engineering team support@sourcegraph.com if they wish to migrate to these deployment models.
+> ⚠️ We recommend using our [machine image](/admin/deploy/machine-images/), which is much easier and offers more flexibility when configuring Sourcegraph. Existing customers can reach out to our Customer Support Engineering team support@sourcegraph.com for assistance with migrating.
---
@@ -21,6 +21,7 @@ The following command allows a user to shell into the Sourcegraph database conta
```bash
docker exec -it pgsql psql -U sg #access pgsql container and run psql
docker exec -it codeintel-db psql -U sg #access codeintel-db container and run psql
+docker exec -it codeinsights-db psql -U postgres #access codeinsights-db container and run psql
```
## Database Migrations
@@ -43,7 +44,7 @@ The following instructions are specific to backing up and restoring the Sourcegr
### Back up Sourcegraph databases
-These instructions will back up the primary `sourcegraph` database and the [codeintel](/code-search/code-navigation/) database.
+These instructions will back up the primary `sourcegraph` database, the [codeintel](/code-search/code-navigation/) database, and the [codeinsights](/code_insights/) database.
1\. `ssh` from your local machine into the machine hosting the `sourcegraph` deployment
@@ -89,10 +90,11 @@ docker-compose -f db-only-migrate.docker-compose.yaml up -d
```bash
docker exec pgsql sh -c 'pg_dump -C --clean --if-exists --username sg sg' > sourcegraph_db.out
-docker exec codeintel-db -c 'pg_dump -C --clean --if-exists --username sg sg' > codeintel_db.out
+docker exec codeintel-db sh -c 'pg_dump -C --clean --if-exists --username sg sg' > codeintel_db.out
+docker exec codeinsights-db sh -c 'pg_dump -C --clean --if-exists --username postgres postgres' > codeinsights_db.out
```
-6\. Ensure the `sourcegraph_db.out` and `codeintel_db.out` files are moved to a safe and secure location.
+6\. Ensure the `sourcegraph_db.out`, `codeintel_db.out` and `codeinsights_db.out` files are moved to a safe and secure location.
### Restore Sourcegraph databases into a new environment
@@ -111,6 +113,7 @@ docker-compose -f db-only-migrate.docker-compose.yaml up -d
```bash
docker cp sourcegraph_db.out pgsql:/tmp/sourcegraph_db.out
docker cp codeintel_db.out codeintel-db:/tmp/codeintel_db.out
+docker cp codeinsights_db.out codeinsights-db:/tmp/codeinsights_db.out
```
4\. Restore the databases
@@ -118,6 +121,7 @@ docker cp codeintel_db.out codeintel-db:/tmp/codeintel_db.out
```bash
docker exec pgsql sh -c 'psql -v ERROR_ON_STOP=1 --username sg -f /tmp/sourcegraph_db.out sg'
docker exec codeintel-db sh -c 'psql -v ERROR_ON_STOP=1 --username sg -f /tmp/condeintel_db.out sg'
+docker exec codeinsights-db sh -c 'psql -v ERROR_ON_STOP=1 --username postgres -f /tmp/codeinsights_db.out postgres'
```
5\. Start the remaining Sourcegraph services
@@ -165,6 +169,7 @@ zoekt-webserver-0 /sbin/tini -- /bin/sh -c z ... Up (healthy)> docke
docker-compose down
docker volume rm docker-compose_pgsql
docker volume rm docker-compose_codeintel-db
+docker volume rm docker-compose_codeinsights-db
```
2\. Start the databases services only
@@ -178,6 +183,7 @@ docker-compose -f db-only-migrate.docker-compose.yaml up -d
```bash
docker cp sourcegraph_db.out pgsql:/tmp/sourcegraph_db.out
docker cp codeintel_db.out codeintel-db:/tmp/codeintel_db.out
+docker cp codeinsights_db.out codeinsights-db:/tmp/codeinsights_db.out
```
4\. Restore the databases
@@ -185,6 +191,7 @@ docker cp codeintel_db.out codeintel-db:/tmp/codeintel_db.out
```bash
docker exec pgsql sh -c 'psql -v ERROR_ON_STOP=1 --username sg -f /tmp/sourcegraph_db.out sg'
docker exec codeintel-db sh -c 'psql -v ERROR_ON_STOP=1 --username sg -f /tmp/condeintel_db.out sg'
+docker exec codeinsights-db sh -c 'psql -v ERROR_ON_STOP=1 --username postgres -f /tmp/codeinsights_db.out postgres'
```
5\. Start the remaining Sourcegraph services
@@ -232,35 +239,3 @@ You can monitor the health of a deployment in several ways:
- Using [Sourcegraph's built-in observability suite](/admin/observability/), which includes dashboards and alerting for Sourcegraph services.
- Using [`docker ps`](https://docs.docker.com/engine/reference/commandline/ps/) to check on the status of containers within the deployment (any tooling designed to work with Docker containers and/or Docker Compose will work too).
- This requires direct access to your instance's host machine.
-
-## OpenTelemetry Collector
-
-Learn more about Sourcegraph's integrations with the [OpenTelemetry Collector](https://opentelemetry.io/docs/collector/) in our [OpenTelemetry documentation](/admin/observability/opentelemetry).
-
-### Configure a tracing backend
-
-[Tracing](/admin/observability/tracing) export can be configured via the [OpenTelemetry collector](/admin/observability/opentelemetry) deployed by default in all Sourcegraph docker-compose deployments.
-To get started, edit the mounted configuration file in `otel-collector/config.yaml` based on the [OpenTelemetry collector configuration guidance](/admin/observability/opentelemetry) and edit your `docker-compose.yaml` file to have the `otel-collector` service use the mounted configuration:
-
-```yaml
-services:
- # ...
- otel-collector:
- # ...
- command: ['--config', '/etc/otel-collector/config.yaml']
- volumes:
- - '/admin/deploy/otel-collector/config.yaml:/etc/otel-collector/config.yaml'
-```
-
-#### Enable the bundled Jaeger deployment
-
-Alternatively, you can use the `jaeger` overlay to easily deploy Sourcegraph with some default configuration that exports traces to a standalone Jaeger instance:
-
-```sh
-docker-compose \
- -f docker-compose/docker-compose.yaml \
- -f docker-compose/jaeger/docker-compose.yaml \
- up
-```
-
-Once a tracing backend has been set up, refer to the [tracing guidance](/admin/observability/tracing) for more details.
diff --git a/docs/admin/deploy/docker-compose/upgrade.mdx b/docs/admin/deploy/docker-compose/upgrade.mdx
index 954015378..d951d65a4 100644
--- a/docs/admin/deploy/docker-compose/upgrade.mdx
+++ b/docs/admin/deploy/docker-compose/upgrade.mdx
@@ -1,14 +1,18 @@
+import { CURRENT_VERSION_STRING } from 'src/components/PreCodeBlock'
+
# Upgrade Sourcegraph on Docker Compose
This document describes the process to update a Docker Compose Sourcegraph instance. If you are unfamiliar with sourcegraph versioning or releases see our [general concepts documentation](/admin/updates/).
-> ***⚠️ Attention: Always consult the [release notes](/admin/updates/docker_compose) for the versions your upgrade will pass over and end on.***
+> Always consult the [release notes](/admin/updates/docker_compose) for the versions your upgrade will pass over and end on.
### Standard upgrades
A [standard upgrade](/admin/updates/#upgrade-types) occurs between a Sourcegraph version and the minor or major version released immediately after it. If you would like to jump forward several versions, you must perform a [multi-version upgrade](#multi-version-upgrades) instead.
-If you've [configured Docker Compose with a release branch](/admin/deploy/docker-compose/#step-1-prepare-the-deployment-repository), please merge the upstream release tag for the next minor version into your `release` branch. In the following example, the release branch is being upgraded to v3.43.2.
+If you've [configured Docker Compose with a release branch](/admin/deploy/docker-compose/#step-1-prepare-the-deployment-repository), please merge the upstream release tag for the next minor version into your `release` branch.
+
+In the following example, the release branch is being upgraded to {CURRENT_VERSION_STRING()}.
```sh
# first, checkout the release branch
@@ -17,16 +21,16 @@ git checkout release
git fetch upstream
# merge the upstream release tag into your release branch
git checkout release
-git merge v3.43.2
+git merge {CURRENT_VERSION}
```
#### Address any merge conflicts you might have
For each conflict, you need to reconcile any customizations you made with the updates from the new version. Use the information you gathered earlier from the change log and changes list to interpret the merge conflict and to ensure that it doesn't over-write your customizations. You may need to update your customizations to accommodate the new version.
-> NOTE: If you have made no changes or only very minimal changes to your configuration, you can also ask git to always select incoming changes in the event of merge conflicts. In the following example merges will be accepted from the upstream version v3.43.2:
+> NOTE: If you have made no changes or only very minimal changes to your configuration, you can also ask git to always select incoming changes in the event of merge conflicts. In the following example merges will be accepted from the upstream version {CURRENT_VERSION_STRING()}:
>
-> `git merge -X theirs v3.43.2`
+> `git merge -X theirs {CURRENT_VERSION_STRING}`
>
> If you do this, make sure your configuration is correct before proceeding because it may have made changes to your docker-compose YAML file.
@@ -55,70 +59,84 @@ $ docker-compose up -d --remove-orphans
### Multi-version upgrades
-If you are upgrading to **Sourcegraph 5.1 or later**, we encourage you to perform an [**automatic multi-version upgrade**](/admin/updates/automatic). The following procedure has been automated, but is still applicable should errors occur in an automated upgrade.
-
----
+> Multiversion upgrades **require downtime**, please see our [cautionary note](/admin/updates/#best-practices) on upgrades, if you have any concerns about running a multiversion upgrade, please reach out to us at [support@sourcegraph.com](mailto:support@sourcegraph.com) for advisement.
-> **⚠️ Attention:** please see our [cautionary note](/admin/updates/#best-practices) on upgrades, if you have any concerns about running a multiversion upgrade, please reach out to us at [support@sourcegraph.com](mailto:support@sourcegraph.com) for advisement.
-
-To perform a **manual** multi-version upgrade on a Sourcegraph instance running on Docker compose follow the procedure below:
+To perform a multi-version upgrade via migrators [upgrade](/admin/updates/migrator/migrator-operations#upgrade) command on a Sourcegraph instance running on Docker compose follow the procedure below:
1. **Check Upgrade Readiness**:
- Check the [upgrade notes](/admin/updates/docker_compose#docker-compose-upgrade-notes) for the version range you're passing through.
- Check the `Site Admin > Updates` page to determine [upgrade readiness](/admin/updates/#upgrade-readiness).
-2. **Disable Connections to the Database**:
- - Run the following command in the directory containing your `docker-compose.yaml` file.
- ```sh
- $ docker-compose stop && docker-compose up -d pgsql codeintel-db codeinsights-db
- ```
-3. **Run Migrator with the `upgrade` command**:
- - The following procedure describes running migrator in brief, for more detailed instructions and available command flags see our [migrator docs](/admin/updates/migrator/migrator-operations#docker-compose).
- 1. Set the migrator `image:` in your `docker-compose.yaml` to the **latest** release of `migrator`. **Example:**
+2. **Pull and merge upstream changes**:
+ - Follow the [standard upgrade procedure](#standard-upgrades) to pull and merge upstream changes from the version you are upgrading to your `release` branch.
+
+3. **Disable Connections to the Database**:
+ - Stop running containers connected to the databases and the databases:
+ ```
+ $ docker-compose down --remove-orphans
+ ```
+
+4. **Run Migrator with the `upgrade` command**:
+ - *For more detailed instructions and available command flags see our [migrator docs](/admin/updates/migrator/migrator-operations#upgrade).*
+ 1. If the migrator `image:` in your `docker-compose.yaml` wasn't updated to in the **latest** release of `migrator` in step 2 set migrator's image to the latest release.
+ **Example:**
```yaml
migrator:
container_name: migrator
- image: 'index.docker.io/sourcegraph/migrator:5.0.4'
+ image: 'index.docker.io/sourcegraph/migrator:6.0.0'
```
- > *Note: Always use the latest image version of migrator for migrator commands, except the startup command `up`*
- 2. Set the migrator `command:` to `upgrade` you'll need to supply a `--to=` argument. **Example:**
+ 2. Set the migrator `command:` to `upgrade` you'll need to supply a `--to=` argument to the version you're upgrading to.
+ **Example:**
```yaml
- command: ['upgrade', '--from=v4.1.2', '--to=v4.4.0']
+ command: ['upgrade', '--from=v5.9.0', '--to=v6.0.0']
```
> *Note: you may add the `--dry-run` flag to the `command:` to test things out before altering the dbs*
- 3. Run migrator with `docker-compose up migrator` **Example:**
+ 3. Run migrator with `docker-compose up migrator`
+
+ - Migrator `depends_on:` will ensure the databases are ready before attempting to run the migrator. Ensuring that database entry point scripts are run before the migrator attempts to connect to the databases. For users upgrading from a version earlier than `5.10.0`, a PostgreSQL version is required and will be performed automatically here. For more details, see [Upgrading PostgreSQL](/admin/postgresql#upgrading-postgresql).
+
+ **Example:**
```sh
$ ~/deploy-sourcegraph-docker/docker-compose/ docker-compose up migrator
- codeintel-db is up-to-date
- codeinsights-db is up-to-date
- pgsql is up-to-date
- Recreating migrator ... done
+ ✔ Network docker-compose_sourcegraph Create... 0.1s
+ ✔ Container pgsql Created 0.1s
+ ✔ Container codeinsights-db Created 0.1s
+ ✔ Container codeintel-db Created 0.1s
+ ! codeinsights-db The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested 0.0s
+ ! pgsql The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested 0.0s
+ ! codeintel-db The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested 0.0s
+ ✔ Container migrator Created 0.0s
+ ! migrator The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested 0.0s
Attaching to migrator
- migrator | ❗️ An error was returned when detecting the terminal size and capabilities:
- migrator |
- migrator | GetWinsize: inappropriate ioctl for device
- migrator |
- migrator | Execution will continue, but please report this, along with your operating
- migrator | system, terminal, and any other details, to:
- migrator | https://github.com/sourcegraph/sourcegraph/issues/new
- migrator |
- migrator | ✱ Sourcegraph migrator 4.4.0
- migrator | 👉 Migrating to v4.3 (step 1 of 2)
- migrator | 👉 Running schema migrations
- migrator | ✅ Schema migrations complete
- migrator | 👉 Running out of band migrations [17 18]
- ✅ Out of band migrations complete
- migrator | 👉 Migrating to v4.4 (step 2 of 2)
- migrator | 👉 Running schema migrations
- migrator | ✅ Schema migrations complete
- migrator | migrator exited with code 0
+ migrator | ✱ Sourcegraph migrator 6.0.0
+ migrator | ⚠️ Failed to check for migrator update: unexpected status code 404. Continuing...
+ migrator | Attempting connection to frontend...
+ migrator | ✅ Connection to frontend succeeded
+ migrator | Attempting connection to frontend...
+ migrator | ✅ Connection to frontend succeeded
+ migrator | Attempting connection to codeintel...
+ migrator | ✅ Connection to codeintel succeeded
+ migrator | Attempting connection to codeinsights...
+ migrator | ✅ Connection to codeinsights succeeded
+ migrator | 👉 Migrating to v6.0 (step 1 of 1)
+ migrator | 👉 Running schema migrations
+ migrator | ✅ Schema migrations complete
+ migrator exited with code 0
```
+5. **Run Migrator with the `up` command**
+ - Set your migrator `command:` to `up`
+ > *Note: If you aren't upgrading to the latest release remember to set the migrator image back to the version you are upgrading to.*
+ **Example:**
+ ```yaml
+ migrator:
+ container_name: migrator
+ image: 'index.docker.io/sourcegraph/migrator:6.0.0@sha256:ec295eb0b743da6bf56777ca6524972267a5c442b0288095e2fe12fce38ebacc'
+ cpus: 0.5
+ mem_limit: '500m'
+ command: ['up']
+ ```
-4. **Pull and merge upstream changes**:
- - Follow the [standard upgrade procedure](#standard-upgrades) to pull and merge upstream changes from the version you are upgrading to to your `release` branch.
- - **⚠️ Attention:** *merging upstream changes should set the migrator `image:` version back to the release you are upgrading to, and the `command:` should be set back to `up`, this is necessary to start your instance again.*
-
-5. **Start your containers again**:
+6. **Start your containers again**:
- run `docker-compose up -d` in the folder containing your `docker-compose.yaml` file.
```sh
$ docker-compose up -d
diff --git a/docs/admin/deploy/docker-single-container/aws.mdx b/docs/admin/deploy/docker-single-container/aws.mdx
index 89ce0ab1e..7ee8cecbf 100644
--- a/docs/admin/deploy/docker-single-container/aws.mdx
+++ b/docs/admin/deploy/docker-single-container/aws.mdx
@@ -1,3 +1,5 @@
+import { CURRENT_VERSION_STRING_NO_V, CURRENT_VERSION_STRING } from 'src/components/PreCodeBlock'
+
# Install single-container Sourcegraph with Docker on AWS
This tutorial shows you how to deploy [single-container Sourcegraph with Docker](/admin/deploy/docker-single-container/) to a single EC2 instance on AWS.
@@ -33,7 +35,7 @@ This tutorial shows you how to deploy [single-container Sourcegraph with Docker]
- usermod -a -G docker ec2-user
# Install and run Sourcegraph. Restart the container upon subsequent reboots
- - [ sh, -c, 'docker run -d --publish 80:7080 --publish 443:7080 --publish 127.0.0.1:3370:3370 --restart unless-stopped --volume /home/ec2-user/.sourcegraph/config:/etc/sourcegraph --volume /home/ec2-user/.sourcegraph/data:/var/opt/sourcegraph sourcegraph/server:5.3.9104' ]
+ - [ sh, -c, 'docker run -d --publish 80:7080 --publish 443:7080 --publish 127.0.0.1:3370:3370 --restart unless-stopped --volume /home/ec2-user/.sourcegraph/config:/etc/sourcegraph --volume /home/ec2-user/.sourcegraph/data:/var/opt/sourcegraph sourcegraph/server:{CURRENT_VERSION_NO_V}' ]
```
- Select **Next: ...** until you get to the **Configure Security Group** page. Then add the following rules:
diff --git a/docs/admin/deploy/docker-single-container/digitalocean.mdx b/docs/admin/deploy/docker-single-container/digitalocean.mdx
index 08e8896a7..ba8f3305d 100644
--- a/docs/admin/deploy/docker-single-container/digitalocean.mdx
+++ b/docs/admin/deploy/docker-single-container/digitalocean.mdx
@@ -1,3 +1,5 @@
+import { CURRENT_VERSION_STRING_NO_V, CURRENT_VERSION_STRING } from 'src/components/PreCodeBlock'
+
# Install single-container Sourcegraph with Docker on DigitalOcean
This tutorial shows you how to deploy [single-container Sourcegraph with Docker](/admin/deploy/docker-single-container/) to a single node running on DigitalOcean.
@@ -17,7 +19,7 @@ This tutorial shows you how to deploy [single-container Sourcegraph with Docker]
1. Run the Sourcegraph Docker image as a daemon:
```
- docker run -d --publish 80:7080 --publish 443:7443 --restart unless-stopped --volume /root/.sourcegraph/config:/etc/sourcegraph --volume /root/.sourcegraph/data:/var/opt/sourcegraph sourcegraph/server:5.3.9104
+ docker run -d --publish 80:7080 --publish 443:7443 --restart unless-stopped --volume /root/.sourcegraph/config:/etc/sourcegraph --volume /root/.sourcegraph/data:/var/opt/sourcegraph sourcegraph/server:{CURRENT_VERSION_NO_V}
```
1. Navigate to the droplet's IP address to finish initializing Sourcegraph. If you have configured a
DNS entry for the IP, configure `externalURL` to reflect that.
diff --git a/docs/admin/deploy/docker-single-container/google_cloud.mdx b/docs/admin/deploy/docker-single-container/google_cloud.mdx
index 1d981f3a7..0c83b31c4 100644
--- a/docs/admin/deploy/docker-single-container/google_cloud.mdx
+++ b/docs/admin/deploy/docker-single-container/google_cloud.mdx
@@ -1,3 +1,5 @@
+import { CURRENT_VERSION_STRING_NO_V, CURRENT_VERSION_STRING } from 'src/components/PreCodeBlock'
+
# Install single-container Sourcegraph with Docker on Google Cloud
This tutorial shows you how to deploy [single-container Sourcegraph with Docker](/admin/deploy/docker-single-container/) to a single node running on Google Cloud.
@@ -23,7 +25,7 @@ This tutorial shows you how to deploy [single-container Sourcegraph with Docker]
sudo apt-get install -y docker-ce
mkdir -p /root/.sourcegraph/config
mkdir -p /root/.sourcegraph/data
- docker run -d --publish 80:7080 --publish 443:7443 --restart unless-stopped --volume /root/.sourcegraph/config:/etc/sourcegraph --volume /root/.sourcegraph/data:/var/opt/sourcegraph sourcegraph/server:5.3.9104
+ docker run -d --publish 80:7080 --publish 443:7443 --restart unless-stopped --volume /root/.sourcegraph/config:/etc/sourcegraph --volume /root/.sourcegraph/data:/var/opt/sourcegraph sourcegraph/server:{CURRENT_VERSION_NO_V}
```
- Create your VM, then navigate to its public IP address.
diff --git a/docs/admin/deploy/docker-single-container/index.mdx b/docs/admin/deploy/docker-single-container/index.mdx
index 0e9698db6..1f2d54b9a 100644
--- a/docs/admin/deploy/docker-single-container/index.mdx
+++ b/docs/admin/deploy/docker-single-container/index.mdx
@@ -1,3 +1,5 @@
+import { CURRENT_VERSION_STRING_NO_V, CURRENT_VERSION_STRING } from 'src/components/PreCodeBlock'
+
# Docker Single Container Deployment
The Docker Single Container deployment type is a way to very quickly get an instance of Sourcegraph set up locally to experiment with many of its features. However, it is **not recommended** for a production instance, and **has limitations** depending on the OS you are deploying to, as well as the associated resources. See the [troubleshooting section](#troubleshooting) for additional information.
@@ -13,7 +15,7 @@ docker run
--publish 7080:7080 --publish 127.0.0.1:3370:3370 --rm
--volume ~/.sourcegraph/config:/etc/sourcegraph
--volume ~/.sourcegraph/data:/var/opt/sourcegraph
-sourcegraph/server:5.3.9104
+sourcegraph/server:{CURRENT_VERSION_NO_V}
```
Once the server is ready (logo is displayed in the terminal), navigate to the hostname or IP address on port `7080`. Create the admin account, then you'll be guided through setting up Sourcegraph for code searching and navigation.
@@ -46,7 +48,7 @@ For example, to mount a `.gitconfig`, create a file `/mnt/sourcegraph/config/git
Alternatively you can create a new Docker image which inherits from Sourcegraph and then mutates the environment:
```dockerfile
-FROM sourcegraph/server:5.3.9104
+FROM sourcegraph/server:{CURRENT_VERSION_NO_V}
COPY gitconfig /etc/gitconfig
COPY ssh /root/.ssh
@@ -87,7 +89,7 @@ This is required to [collect debug data](/admin/pprof).
The docker run command for single-container Sourcegraph needs an additional publish flag to expose the debug port:
```sh
-$ docker run --publish 7080:7080 --publish 127.0.0.1:3370:3370 --publish 127.0.0.1:6060:6060 --rm --volume ~/.sourcegraph/config:/etc/sourcegraph --volume ~/.sourcegraph/data:/var/opt/sourcegraph sourcegraph/server:5.3.9104
+$ docker run --publish 7080:7080 --publish 127.0.0.1:3370:3370 --publish 127.0.0.1:6060:6060 --rm --volume ~/.sourcegraph/config:/etc/sourcegraph --volume ~/.sourcegraph/data:/var/opt/sourcegraph sourcegraph/server:{CURRENT_VERSION_NO_V}
```
If Sourcegraph is deployed to a remote server, then access via an SSH tunnel using a tool
@@ -105,7 +107,7 @@ Add the following to your docker run command:
```sh
$ docker run [...]
-e (YOUR CODE)
-sourcegraph/server:5.3.9104
+sourcegraph/server:{CURRENT_VERSION_NO_V}
```
## Operation
@@ -136,6 +138,35 @@ SELECT * FROM users;
## Upgrade
+### Postgresql 16
+> Warning: The 5.11 release updates the database container images from Postgres 12 to Postgres 16. Customers are advised to have a database backup before upgrading! See our [postgres 12 end of life](https://sourcegraph.com/docs/admin/postgres12_end_of_life_notice#postgres-12-end-of-life) notice!
+
+From sourcegraph version 5.11 onwards, the Sourcegraph single container Docker image uses Postgresql 16. Upgrading from Postgresql 12 to Postgresql 16 is a manual process, that is similar to the one outlined below for multi-version upgrades, but migrator has been merged into the container, allowing for a simpler upgrade.
+
+> NOTE: It is highly recommended to **take an up-to-date snapshot of your databases** prior to starting a multi-version upgrade. The upgrade process aggressively mutates the shape and contents of your database, and undiscovered errors in the migration process or unexpected environmental differences may cause an unusable instance or data loss.
+>
+> We recommend performing the entire upgrade procedure on an idle clone of the production instance and switch traffic over on success, if possible. This may be low-effort for installations with a canary environment or a blue/green deployment strategy.
+>
+> **If you do not feel confident running this process solo**, contact customer support team to help guide you thorough the process.
+
+**Before performing a multi-version upgrade**:
+
+- Read our [update policy](/admin/updates/#update-policy) to learn about Sourcegraph updates.
+- Find the entries that apply to the version range you're passing through in the [update notes for Sourcegraph with Docker Single Container](/admin/updates/server#multi-version-upgrade-procedure).
+
+0. You must first shutdown the container instance via `docker stop [CONTAINER]`.
+1. Start a temporary Postgres container on top of the Postgres data directory used by the old `sourcegraph/server` image. You must use the *new* postgresql-16-codeinsights image, which is based on the new Postgresql 16 image, and provides an automatic upgrade script to move from Postgresql 12 to Postgresql 16.
+
+`docker run --rm -it -v ~/.sourcegraph/data/postgresql:/data/pgdata-12 -e POSTGRES_USER=postgres -p 5432:5432 sourcegraph/postgresql-16-codeinsights:{CURRENT_VERSION_NO_V}`
+
+2. Once that temporary container marks that Postgresql has started, the migration is complete and you can stop the temporary container.
+3. Start the new `sourcegraph/server` container.
+
+`docker run --publish 7080:7080 --publish 127.0.0.1:3370:3370 --rm --volume ~/.sourcegraph/config:/etc/sourcegraph --volume ~/.sourcegraph/data:/var/opt/sourcegraph sourcegraph/server:{CURRENT_VERSION_NO_V}`
+
+You now have a single server Sourcegraph container image running on Postgresql 16.
+
+
### Standard upgrades
A [standard upgrade](/admin/updates/#standard-upgrades) occurs between two minor versions of Sourcegraph. If you are looking to jump forward several versions, you must perform a [multi-version upgrade](#multi-version-upgrades) instead.
@@ -145,10 +176,20 @@ A [standard upgrade](/admin/updates/#standard-upgrades) occurs between two minor
- Read our [update policy](/admin/updates/#update-policy) to learn about Sourcegraph updates.
- Find the relevant entry for your update in the [update notes for single-container Sourcegraph with Docker](/admin/updates/server).
-To update, just use the newer `sourcegraph/server:N.N.N` Docker image (where `N.N.N` is a patch or single minor release away your current version) in place of the older one, using the same Docker volumes. Your server's data will be migrated automatically if needed. You can always find the version number details of the latest release via the [changelog](https://docs.sourcegraph.com/CHANGELOG).
+To update, just use the newer `sourcegraph/server:N.N.N` Docker image (where `N.N.N` is a patch or single minor release away your current version) in place of the older one, using the same Docker volumes. Your server's data will be migrated automatically if needed. You can always find the version number details of the latest release via the [technical changelog](/technical-changelog).
### Multi-version upgrades
+> NOTE: It is no longer necessary to run Migrator outside of the single instance container. Migrator is now built into the container, and will be run via the `sourcegraph/server` image.
+>
+> We **still** recommend performing the entire upgrade procedure on an idle clone of the production instance and switch traffic over on success, if possible. This may be low-effort for installations with a canary environment or a blue/green deployment strategy.
+>
+> The below docs are kept for posterity for users on older versions of Sourcegraph that are looking to upgrade or run the migrator tool.
+
+To update, just use the newer `sourcegraph/server:N.N.N` Docker image in place of the older one, using the same Docker volumes. Your server's data will be migrated automatically if needed. You can always find the version number details of the latest release via the [technical changelog](/technical-changelog).
+
+### (Legacy) Multi-version upgrades
+
A [multi-version upgrade](/admin/updates/#multi-version-upgrades) is a downtime-incurring upgrade from version 3.20 or later to any future version. Multi-version upgrades will run both schema and data migrations to ensure the data available from the instance remains available post-upgrade.
> NOTE: It is highly recommended to **take an up-to-date snapshot of your databases** prior to starting a multi-version upgrade. The upgrade process aggressively mutates the shape and contents of your database, and undiscovered errors in the migration process or unexpected environmental differences may cause an unusable instance or data loss.
@@ -211,25 +252,26 @@ For example, `${PATH}` is `~/.sourcegraph/data` in `-v ~/.sourcegraph/data:/var/
```sh
$ docker run --rm -it \
- -v ${PATH}/postgresql:/data/pgdata-${PG_VERSION} \
+ -v ${PATH}/postgresql:/data/pgdata-12 \
-u 70 \
-p 5432:5432 \
--entrypoint bash \
- sourcegraph/postgres-${PG_VERSION_TAG}:${SG_VERSION} \
- -c 'echo "host all all 0.0.0.0/0 trust" >> /data/pgdata-${PG_VERSION}/pg_hba.conf && postgres -c l listen_addresses="*" -D /data/pgdata-${PG_VERSION}'
+ sourcegraph/${PG_VERSION_TAG}:${SG_VERSION} \
+ -c 'echo "host all all 0.0.0.0/0 trust" >> /data/pgdata-12/pg_hba.conf && postgres -c l listen_addresses="*" -D /data/pgdata-12'
```
The version of this Postgres container is dependent on the version of the instance prior to upgrade.
-| `${SG_VERSION}` | `${PG_VERSION}` | `${PG_VERSION_TAG}` |
-| ------------------- | --------------- | ------------------- |
-| `3.20.X` - `3.29.X` | `12` | `12.6` |
-| `3.30.X` - `3.37.X` | `12` | `12.6-alpine` |
-| `3.38.X` - | `12` | `12-alpine` |
+| `${SG_VERSION}` | `${PG_VERSION_TAG}` |
+| ------------------- | ------------------- |
+| `3.20.X` - `3.29.X` | `postgres-12.6` |
+| `3.30.X` - `3.37.X` | `postgres-12.6-alpine`|
+| `3.38.X` - `5.9.X` | `postgres-12-alpine` |
+| `5.10.X` - | `postgresql-16` |
## Troubleshooting
-If you get stuck or need help, [file an issue](https://github.com/sourcegraph/sourcegraph/issues/new?&title=Improve+Sourcegraph+quickstart+guide), [tweet (@sourcegraph)](https://twitter.com/sourcegraph) or [email](mailto:support@sourcegraph.com?subject=Sourcegraph%20quickstart%20guide).
+If you get stuck or need help, please reach out to [Sourcegraph support](https://help.sourcegraph.com/hc/en-us/requests/new).
### Mac Computers with Apple silicon
@@ -254,7 +296,7 @@ Sourcegraph can be **tested** on Windows 10 using roughly the same steps provide
1. [Install Docker for Windows](https://docs.docker.com/docker-for-windows/install/)
2. Using a command prompt, follow the same [installation steps provided above](#install-sourcegraph-with-docker) but remove the `--volume` arguments. For example by pasting this:
-docker run --publish 7080:7080 --publish 127.0.0.1:3370:3370 --rm sourcegraph/server:5.3.9104
+docker run --publish 7080:7080 --publish 127.0.0.1:3370:3370 --rm sourcegraph/server:{CURRENT_VERSION_STRING_NO_V()}
### Low resource environments
diff --git a/docs/admin/deploy/index.mdx b/docs/admin/deploy/index.mdx
index 1b6b99f04..86b3babf4 100644
--- a/docs/admin/deploy/index.mdx
+++ b/docs/admin/deploy/index.mdx
@@ -1,14 +1,28 @@
# Deployment Overview
-Sourcegraph offers multiple deployment options to meet your needs. The best option for your organization depends on your goals, requirements, technical expertise, and resources available. The following sections provide an overview of the options, their associated investments, and technical requirements.
+
+ Supported on [Enterprise](/pricing/enterprise) plans.
+
+ Available via the Web app.
+
+
+
+Sourcegraph is a powerful code intelligence platform that can be deployed in various ways to suit your organization's needs. This guide will help you understand the available deployment options and choose the best one for your use case.
## Deployment types
-Carefully consider your organization's needs and technical expertise when selecting a Sourcegraph deployment method. The method you choose cannot be changed for a running instance. The available methods have different capabilities, and the following sections provide recommendations to help you choose.
+Carefully consider your organization's needs and technical expertise when selecting a Sourcegraph deployment method. Each option has different capabilities, resource requirements, and levels of technical expertise needed. Changing deployment methods in the future requires a complete redeployment and database migration.
+
+Sourcegraph's recommended deployment methods are, in order:
+1. [Sourcegraph Cloud](#sourcegraph-cloud) - This provides a fully managed solution where Sourcegraph handles all of the maintenance, monitoring, and upgrading tasks to give you an optimal Sourcegraph experience while immediately getting the latest features into your users' hands. This solution does require your code hosts to be connected to the Sourcegraph managed environment.
+2. [Kubernetes Helm](#kubernetes) - Sourcegraph's Kubernetes deployment provides the most robust, scalable, and vetted self-hosted solution. This solution is ideal across many self-hosted customers capable of deploying a multi-node instance, and can be supported by all mainstream managed Kubernetes platforms.
+3. [Docker Compose](#docker-compose) - Docker Compose provides the preferred single-node deployment solution for Sourcegraph. It can be a good option when the complexities and flexibility provided by Kubernetes Helm are not needed.
+4. [Kubernetes Kustomize](#kubernetes) - Helm is Sourcegraph's more standardized and vetted approach to deploying with Kubernetes, but if Kustomize is your preferred deployment method it is a viable and supported approach.
+5. [Machine Images](#machine-images) - Sourcegraph can be deployed using dedicated Machine Images for specific Cloud providers. This can be a simple solution in specific circumstances, though has its own considerations. If you are considering this path, please discuss with your account team.
### Sourcegraph Cloud
-Best for enterprises looking for a managed [Sourcegraph Cloud](https://about.sourcegraph.com/get-started?t=enterprise) solution. Sourcegraph Cloud is hosted and maintained by Sourcegraph.
+Best for a wide range of customers open to a Sourcegraph managed [Sourcegraph Cloud](https://about.sourcegraph.com/get-started?t=enterprise) solution. Sourcegraph Cloud is hosted and maintained by Sourcegraph.
@@ -18,25 +32,31 @@ Best for enterprises looking for a managed [Sourcegraph Cloud](https://about.sou
### Kubernetes
-Best for large enterprises that require a multi-node, self-hosted solution.
+Multi-node, self hosted solution great for large enterprises and/or other orgs looking for the recommended, robust, and scalable deployment method
-- **Helm** utilizes pre-packaged charts for templating Sourcegraph deployments
+- **Helm** (Preferred) utilizes pre-packaged charts for templating Sourcegraph deployments
- **Kustomize** utilizes built-in features of kubectl for configuring Sourcegraph deployments
-
-
-Given the technical knowledge required to deploy and maintain a deployment on Kubernetes, teams without these resources should contact their Sourcegraph representative at [sales@sourcegraph.com](mailto:sales@sourcegraph.com) to discuss alternative deployment options
+Kubernetes is the recommended self hosted deployment method, though it can require specific technical knowledge required to deploy and maintain a deployment on Kubernetes. Teams without in-house Kubernetes expertise should contact their Sourcegraph account representative or [sales@sourcegraph.com](mailto:sales@sourcegraph.com) to discuss in further detail.
+
+### Docker Compose
+
+Single-node, self hosted solution for enterprises looking for a simpler, non-Kubernetes solution. Docker Compose can support Sourcegraph at a large range of scales, though this deployment solution tends to be less flexible and robust in comparison to our Kubernetes solution.
+
+
+
+
### Machine Images
Best for enterprises looking for a self-hosted solution on the Cloud provider of their choice.
-Customized machine images allow you to spin up a preconfigured Sourcegraph instance with just a few clicks, all in less than 10 minutes. Currently available in the following hosts:
+Machine images provide a pre-configured Sourcegraph instance that can be deployed in minutes with minimal effort. While they offer simplicity, they are designed as a standardized solution and do not support customization. Currently available on the following hosts:
@@ -49,11 +69,7 @@ See [Sourcegraph Machine Images](/admin/deploy/machine-images) for more informat
### On-premises
-Best for enterprises looking for a fully self-hosted solution.
-
- - [Docker Compose](/admin/deploy/docker-compose/) - Install Sourcegraph on Docker Compose
-
-For setting up **non-production** environments on-premises.
+For setting up quick **non-production** environments on-premises.
- [Docker Single Container](/admin/deploy/docker-single-container/) - Install Sourcegraph using a single Docker container
diff --git a/docs/admin/deploy/instance-size.mdx b/docs/admin/deploy/instance-size.mdx
index 774c66911..9e6d97427 100644
--- a/docs/admin/deploy/instance-size.mdx
+++ b/docs/admin/deploy/instance-size.mdx
@@ -42,11 +42,10 @@ table.
Sourcegraph can run most standard Kubernetes clusters, so if your infrastructure provider is not listed, see the "Other" row.
+If you are deploying on Azure, you **must** ensure that your cluster is created with support for CSI storage driver(https://docs.microsoft.com/en-us/azure/aks/csi-storage-drivers). This **can not** be enabled after the fact.
-If you are deploying on Azure, you **must** ensure that [your cluster is created with support for CSI storage driver(https://docs.microsoft.com/en-us/azure/aks/csi-storage-drivers). This **can not** be enabled after the fact.
-
-If you intend to set this up as a production instance, we recommend you create the cluster in a VPC or other secure network that restricts unauthenticated access from the public Internet. You can later expose the necessary ports via an [Internet Gateway](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Internet_Gateway.html) or an equivalent mechanism. Note that Sourcegraph must expose port 443 for outbound traffic to code hosts and to enable [telemetry](https://docs.sourcegraph.com/admin/pings) with Sourcegraph.com. Additionally, port 22 may be opened to enable git SSH cloning by Sourcegraph. Take care to secure your cluster in a manner that meets your organization's security requirements.
+If you intend to set this up as a production instance, we recommend you create the cluster in a VPC or other secure network that restricts unauthenticated access from the public Internet. You can later expose the necessary ports via an [Internet Gateway](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Internet_Gateway.html) or an equivalent mechanism. Note that Sourcegraph must expose port 443 for outbound traffic to code hosts and to enable [telemetry](/admin/pings) with Sourcegraph.com. Additionally, port 22 may be opened to enable git SSH cloning by Sourcegraph. Take care to secure your cluster in a manner that meets your organization's security requirements.
## Resources
-Please refer to our [resource estimator](https://docs.sourcegraph.com/admin/deploy/resource_estimator) for more information regarding resources allocation for your Sourcegraph deployment.
+Please refer to our [resource estimator](/admin/deploy/resource_estimator) for more information regarding resources allocation for your Sourcegraph deployment.
diff --git a/docs/admin/deploy/kubernetes/azure.mdx b/docs/admin/deploy/kubernetes/azure.mdx
index 4e0df7873..1bce0e9b7 100644
--- a/docs/admin/deploy/kubernetes/azure.mdx
+++ b/docs/admin/deploy/kubernetes/azure.mdx
@@ -1,7 +1,7 @@
# Sourcegraph with Kubernetes on Azure
> WARNING: This guide applies exclusively to a Kubernetes deployment **without** Helm.
-> If you have not deployed Sourcegraph yet, it is higly recommended to use Helm as it simplifies the configuration and greatly simplifies the later upgrade process. See our guidance on [using Helm to deploy to Azure AKS](/admin/deploy/kubernetes#configure-sourcegraph-on-azure-managed-kubernetes-service-aks).
+> If you have not deployed Sourcegraph yet, it is highly recommended to use Helm as it simplifies the configuration and greatly simplifies the later upgrade process. See our guidance on [using Helm to deploy to Azure AKS](/admin/deploy/kubernetes#configure-sourcegraph-on-azure-managed-kubernetes-service-aks).
Install the [Azure CLI tool](https://docs.microsoft.com/en-us/cli/azure/install-azure-cli?view=azure-cli-latest) and log in:
@@ -63,5 +63,5 @@ az aks browse --resource-group sourcegraphResourceGroup --name sourcegraphCluste
Set up a load balancer to make the main web server accessible over the network to external users:
```
-kubectl expose deployment sourcegraph-frontend --type=LoadBalancer --name=sourcegraphloadbalancer --port=80 --target-port=3080
+kubectl expose deployment sourcegraph-frontend --type=LoadBalancer --name=sourcegraph-load-balancer --port=80 --target-port=3080
```
diff --git a/docs/admin/deploy/kubernetes/configure.mdx b/docs/admin/deploy/kubernetes/configure.mdx
index 08417a64f..4f31da053 100644
--- a/docs/admin/deploy/kubernetes/configure.mdx
+++ b/docs/admin/deploy/kubernetes/configure.mdx
@@ -82,13 +82,7 @@ RBAC must be enabled in your cluster for the frontend to communicate with other
This will allow the frontend service to discover endpoints for each service replica and communicate with them through the Kubernetes API. Note that this component should only be added if RBAC is enabled in your cluster.
-### Embeddings Service
-By default, the Embeddings service which is used to handle embeddings searches is disabled. To enable it the following must be commented out. By default, the Embeddings service stores indexes in `blobstore`. Use the [embeddings-backend](/admin/deploy/kubernetes/configure#external-embeddings-object-storage) patch to configure an external object store.
-```yaml
-# instances/$INSTANCE_NAME/kustomization.yaml
-components:
- - ../../components/remove/embeddings # -- Disable Embeddings service by default
-```
+If you are not using Kubernetes service discovery (for example, if you are running without RBAC or outside Kubernetes), you must manually configure service endpoints for the frontend. See [Running Sourcegraph Without Kubernetes Service Discovery](/admin/deploy/without_service_discovery) for instructions.
---
@@ -182,30 +176,20 @@ Following these steps will allow Prometheus to successfully scrape metrics from
## Tracing
-Sourcegraph exports traces in OpenTelemetry format. The OpenTelemetry collector, which must be configured as part of the deployment using the [otel component](#deploy-opentelemetry-collector), [collects and exports traces](https://sourcegraph.com/github.com/sourcegraph/sourcegraph/-/blob/docker-images/opentelemetry-collector/configs/logging.yaml).
-
-By default, Sourcegraph supports exporting traces to multiple backends including Jaeger.
-
-### Deploy OpenTelemetry Collector
-
-Include the `otel` component to deploy OpenTelemetry Collector:
+Sourcegraph supports HTTP tracing to help troubleshoot issues. See [Tracing](/admin/observability/tracing) for details.
-```yaml
-# instances/$INSTANCE_NAME/kustomization.yaml
- components:
- # Deploy OpenTelemetry Collector
- - ../../components/monitoring/otel
-```
+To enable tracing on your Kustomize instance, you'll need to either:
-Learn more about Sourcegraph's integrations with the [OpenTelemetry Collector](https://opentelemetry.io/docs/collector/) in our [OpenTelemetry documentation](/admin/observability/opentelemetry).
+1. Deploy our bundled OpenTelemetry Collector with our bundled Jaeger backend, or
+2. Deploy our bundled OpenTelemetry Collector and configure an external tracing backend
-### Deploy OpenTelemetry Collector with Jaeger as tracing backend
+Once a tracing backend has been deployed, see our [Tracing](/admin/observability/tracing) page for next steps, including required changes to your Site Configuration to enable traces.
-If you do not have an external backend available for the OpenTelemetry Collector to export tracing data to, you can deploy the Collector with the Jaeger backend to store and view traces using the `tracing component` as described below.
+### Deploy the bundled OpenTelemetry Collector and Jaeger
-#### Enable the bundled Jaeger deployment
+The quickest way to get started with HTTP tracing is by deploying our bundled OTel and Jaeger containers together.
-**Step 1**: Include the `tracing` component to deploy both OpenTelemetry and Jaeger. The component also configures the following services:
+Include the `tracing` component to deploy both OpenTelemetry and Jaeger together. This component also configures the following services:
- `otel-collector` to export to this Jaeger instance
- `grafana` to get metrics from this Jaeger instance
@@ -217,28 +201,22 @@ If you do not have an external backend available for the OpenTelemetry Collector
- ../../components/monitoring/tracing
```
-**Step 2**: In your Site configuration, add the following to:
+### Deploy OpenTelemetry Collector to use an external tracing backend
-- sends Sourcegraph traces to OpenTelemetry Collector
-- send traces from OpenTelemerty to Jaeger
+#### Deploy OpenTelemetry Collector
-```json
-{
- "observability.client": {
- "openTelemetry": {
- "endpoint": "/-/debug/otlp"
- }
- },
- "observability.tracing": {
- "type": "opentelemetry",
- "urlTemplate": "{{ .ExternalURL }}/-/debug/jaeger/trace/{{ .TraceID }}"
- }
-}
+Include the `otel` component to deploy OpenTelemetry Collector:
+
+```yaml
+# instances/$INSTANCE_NAME/kustomization.yaml
+ components:
+ # Deploy OpenTelemetry Collector
+ - ../../components/monitoring/otel
```
-### Configure a tracing backend
+#### Configure a tracing backend
-Follow these steps to add configure OpenTelementry to use a different backend:
+Follow these steps to configure the otel-collector to export traces to an external OTel-compatible backend:
1. Create a subdirectory called 'patches' within the directory of your overlay
2. Copy and paste the [base/otel-collector/otel-collector.ConfigMap.yaml file](https://sourcegraph.com/github.com/sourcegraph/deploy-sourcegraph-k8s@master/-/tree/base/otel-collector/otel-collector.ConfigMap.yaml) to the new [patches subdirectory](/admin/deploy/kubernetes/kustomize/#patches-directory)
@@ -255,7 +233,7 @@ Follow these steps to add configure OpenTelementry to use a different backend:
The component will update the `command` for the `otel-collector` container to `"--config=/etc/otel-collector/conf/config.yaml"`, which is now pointing to the mounted config.
-Please refer to [OpenTelemetry](/admin/observability/opentelemetry) for detailed descriptions on how to configure your backend of choice.
+See the [OpenTelemetry](/admin/observability/opentelemetry) page for details on how to configure your backend of choice.
---
@@ -1060,6 +1038,38 @@ For example, to update the value for `SYMBOLS_CACHE_SIZE_MB`:
You can use an external or managed version of PostgreSQL and Redis with your Sourcegraph instance. For detailed information as well as the requirements for each service, please see our docs on [using external services with Sourcegraph](/admin/external_services/).
+### External Secrets
+
+For ensuring password protection, it is recommended to use [External Secrets](https://kubernetes.io/docs/concepts/configuration/secret/) to manage your secrets.
+
+To create a kubernetes secret you can use the following command:
+
+```shell
+kubectl create secret generic pgsql-secret --from-literal=password=YOUR_SECURE_PASSWORD_HERE
+```
+
+Then replace the password in the yaml files it's located in, based on the deployment method you are using.
+Below is the example Helm deployment files modified to reference this secret.
+
+```yaml
+# sourcegraph-frontend.Deployment.yaml
+spec:
+ template:
+ spec:
+ containers:
+ - name: frontend
+ env:
+ - name: PGPASSWORD
+ valueFrom:
+ secretKeyRef:
+ name: pgsql-secret
+ key: password
+```
+
+You can then drop the environment variable `PGPASSWORD` from the default deployment.
+
+Similar changes will be required for other pods and services, depending on the secret being used. It's recommended to read the [official documentation](https://kubernetes.io/docs/concepts/configuration/secret/) to understand how Kubernetes secrets work.
+
### External Postgres
For optimal performance and resilience, it is recommended to use an external database when deploying Sourcegraph. For more information on database requirements, please refer to the [Postgres guide](/admin/postgres).
@@ -1119,35 +1129,6 @@ This adds the new environment variables for redis to the services listed above.
```
> WARNING: You must restart frontend for the updated values to be activated
-
-### External Embeddings Object Storage
-
-Sourcegraph supports specifying an external Object Store for embeddings indexes.
-
-**Step 1**: Create a subdirectory called 'patches' within the directory of your overlay
-
-```bash
-$ mkdir instances/$INSTANCE_NAME/patches
-```
-
-**Step 2**: Copy the `embeddings-backend.yaml` patch file from the components/patches directory to the new [patches subdirectory](kustomize/#patches-directory)
-
-```bash
-$ cp components/patches/embeddings-backend.yaml instances/$INSTANCE_NAME/patches/embeddings-backend.yaml
-```
-
-**Step 3**: Configure the external object store [backend](/cody/core-concepts/embeddings/manage-embeddings#store-embedding-indexes)
-
-**Step 4**: Include the patch file in your overlay under `patches`:
-
- ```yaml
- # instances/$INSTANCE_NAME/kustomization.yaml
- components:
- - ../../components/...
- # ...
- patches:
- - patch: patches/embeddings-backend.yaml
- ```
---
## SSH for cloning
@@ -1158,7 +1139,7 @@ Sourcegraph will clone repositories using SSH credentials when the `id_rsa` and
To mount the files through Kustomize:
-**Step 1:** Copy the required files to the `configs` folder at the same level as your overylay's kustomization.yaml file
+**Step 1:** Copy the required files to the `configs` folder at the same level as your overlay's kustomization.yaml file
**Step 2:** Include the following in your overlay to [generate secrets](https://kubernetes.io/docs/tasks/configmap-secret/managing-secret-using-kustomize/) that base64 encoded the values in those files
@@ -1186,7 +1167,7 @@ To mount the files through Kustomize:
**Step 4:** Update code host configuration
-Update your [code host configuration file](/admin/external_service/#full-code-host-docs) to enable ssh cloning. For example, set [gitURLType](/admin/external_service/github#gitURLType) to `ssh` for [GitHub](/admin/external_service/github). See the [external service docs](/admin/external_service/) for the correct setting for your code host.
+Update your [code host configuration file](/admin/code_hosts/#full-code-host-docs) to enable ssh cloning. For example, set [gitURLType](/admin/code_hosts/github#gitURLType) to `ssh` for [GitHub](/admin/code_hosts/github). See the [external service docs](/admin/code_hosts/) for the correct setting for your code host.
---
@@ -1209,14 +1190,14 @@ The `utils/uid` component bind-mount `/etc/passwd` as read-only through hostpath
Sourcegraph's Kubernetes deployment [requires an Enterprise license key](https://about.sourcegraph.com/pricing).
-Once you have a license key, add it to your [site configuration](https://docs.sourcegraph.com/admin/patches/site_config).
+Once you have a license key, add it to your [site configuration](/admin/config/site_config).
---
## Filtering cAdvisor metrics
cAdvisor can pick up metrics for services unrelated to the Sourcegraph deployment running on the same nodes
-([Learn more](/dev/background-information/observability/cadvisor#identifying-containers)) **when running with privileges**. To work around this:
+([Learn more](https://docs-legacy.sourcegraph.com/dev/background-information/observability/cadvisor#known-issues)) **when running with privileges**. To work around this:
1\. Create a subdirectory called 'patches' within the directory of your overlay
@@ -1343,7 +1324,7 @@ After transferring ownerships, you can redeploy the instance with non-privileged
## Outbound Traffic
-When working with an [Internet Gateway](http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Internet_Gateway.html) or VPC it may be necessary to expose ports for outbound network traffic. Sourcegraph must open port 443 for outbound traffic to code hosts, and to enable [telemetry](https://docs.sourcegraph.com/admin/pings) with Sourcegraph.com. Port 22 must also be opened to enable git SSH cloning by Sourcegraph. In addition, please make sure to apply other required changes to secure your cluster in a manner that meets your organization's security requirements.
+When working with an [Internet Gateway](http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Internet_Gateway.html) or VPC it may be necessary to expose ports for outbound network traffic. Sourcegraph must open port 443 for outbound traffic to code hosts, and to enable [telemetry](/admin/pings) with Sourcegraph.com. Port 22 must also be opened to enable git SSH cloning by Sourcegraph. In addition, please make sure to apply other required changes to secure your cluster in a manner that meets your organization's security requirements.
---
diff --git a/docs/admin/deploy/kubernetes/index.mdx b/docs/admin/deploy/kubernetes/index.mdx
index 1353c93e8..b1b1b1dd9 100644
--- a/docs/admin/deploy/kubernetes/index.mdx
+++ b/docs/admin/deploy/kubernetes/index.mdx
@@ -1,4 +1,6 @@
-# Sourcegraph on Kubernetes
+import { CURRENT_VERSION_STRING_NO_V, CURRENT_VERSION_STRING } from 'src/components/PreCodeBlock'
+
+# Sourcegraph on Kubernetes with Helm
Best for large enterprises that require a multi-node, self-hosted solution.
Helm offers a simple deployment process on Kubernetes using well known and standard tooling.
@@ -19,8 +21,6 @@ Helm offers a simple deployment process on Kubernetes using well known and stand
-Sourcegraph currently does not support migration from an existing Sourcegraph deployment without Helm to a Sourcegraph deployment using Helm. The information you are looking at is currently recommended for a new install of Sourcegraph. We are currently working to provide migration guidance from a non-Helm deployment. If you are inquiring about performing such a migration please email `support@sourcegraph.com`.
-
## Why use Helm
Our Helm chart has a lot of sensible defaults baked into the values.yaml so that when an override file is used to make the changes, you _never_ have to deal with merge conflicts during upgrades (see more about customizations in the [configuration](#configuration) section).
@@ -28,11 +28,11 @@ Our Helm chart has a lot of sensible defaults baked into the values.yaml so that
## High-level overview of how to use Helm with Sourcegraph
1. Prepare any required customizations
-- Most environments are likely to need changes from the defaults—use the guidance in [Configuration](#configuration).
-- These changes are inclusive of updates to resourcing for each service. See our [resource estimator](https://docs.sourcegraph.com/admin/deploy/resource_estimator) for more information.
-2. Review the changes
+- Most environments will likely require some customizations to the default Helm chart values. See _[Configuration](#configuration)_ for more information.
+- Additionally, resource allocations for individual services may need to be adjusted. See our _[Resource Estimator](/admin/deploy/resource_estimator)_ for more information.
+2. Review the customized Helm chart
- There are [three mechanisms](#reviewing-changes) that can be used to review any customizations made, this is an optional step, but may be useful the first time you deploy Sourcegraph, for peace of mind.
-3. Select your deployment method and follow the guidance:
+3. Follow the relevant platform-specific guide below to deploy Sourcegraph to your environment:
- [Google GKE](#configure-sourcegraph-on-google-kubernetes-engine-gke)
- [AWS EKS](#configure-sourcegraph-on-elastic-kubernetes-service-eks)
- [Azure AKS](#configure-sourcegraph-on-azure-managed-kubernetes-service-aks)
@@ -52,7 +52,7 @@ $ helm repo add sourcegraph https://helm.sourcegraph.com/release
Install the Sourcegraph chart using default values:
```sh
-$ helm install --version 5.3.9104 sourcegraph sourcegraph/sourcegraph
+$ helm install --version {CURRENT_VERSION_NO_V} sourcegraph sourcegraph/sourcegraph
```
Sourcegraph should now be available via the address set. Browsing to the url should now provide access to the Sourcegraph UI to create the initial administrator account.
@@ -79,7 +79,7 @@ Example overrides can be found in the [examples](https://github.com/sourcegraph/
Providing the override file to Helm is done with the inclusion of the values flag and the name of the file:
```sh
-$ helm upgrade --install --values ./override.yaml --version 5.3.9104 sourcegraph sourcegraph/sourcegraph
+$ helm upgrade --install --values ./override.yaml --version {CURRENT_VERSION_NO_V} sourcegraph sourcegraph/sourcegraph
```
When making configuration changes, it's recommended to review the changes that will be applied—see [Reviewing Changes](#reviewing-changes).
@@ -87,7 +87,7 @@ When making configuration changes, it's recommended to review the changes that w
#### Using external PostgreSQL databases
-To use external PostgreSQL databases, first review our [general recommendations](https://docs.sourcegraph.com/admin/external_services/postgres#using-your-own-postgresql-server) and [required postgres permissions](https://docs.sourcegraph.com/admin/external_services/postgres#postgres-permissions-and-database-migrations).
+To use external PostgreSQL databases, first review our [general recommendations](/admin/external_services/postgres#using-your-own-postgresql-server) and [required postgres permissions](/admin/external_services/postgres#postgres-permissions-and-database-migrations).
We recommend storing the credentials in [Secrets] created outside the helm chart and managed in a secure manner. Each database requires its own Secret and should follow the following format. The Secret name can be customized as desired:
@@ -103,6 +103,7 @@ data:
password: ""
port: ""
user: ""
+ sslmode: "require" # optional, enable if using SSL
---
apiVersion: v1
kind: Secret
@@ -115,6 +116,7 @@ data:
password: ""
port: ""
user: ""
+ sslmode: "require" # optional, enable if using SSL
---
apiVersion: v1
kind: Secret
@@ -127,6 +129,7 @@ data:
password: ""
port: ""
user: ""
+ sslmode: "require" # optional, enable if using SSL
```
The above Secrets should be deployed to the same namespace as the existing Sourcegraph deployment.
@@ -156,18 +159,19 @@ Although not recommended, credentials can also be configured directly in the hel
```yaml
pgsql:
- enabled: false # disable internal pgsql database
+ enabled: false # Disable internal pgsql database
auth:
- database: "customdb"
- host: pgsql.database.company.com # external pgsql host
- user: "newuser"
- password: "newpassword"
+ database: "custom-db"
+ host: pgsql.database.company.com # External pgsql host
+ user: "new-user"
+ password: "new-password"
port: "5432"
+ sslmode: "require" # optional, enable if using SSL
```
#### Using external Redis instances
-To use external Redis instances, first review our [general recommendations](https://docs.sourcegraph.com/admin/external_services/redis).
+To use external Redis instances, first review our [general recommendations](/admin/external_services/redis).
If your external Redis instances do not require authentication, you can configure access in your [override.yaml](https://github.com/sourcegraph/deploy-sourcegraph-helm/blob/main/charts/sourcegraph/examples/external-redis/override.yaml) with the `endpoint` settings:
@@ -222,9 +226,9 @@ The [using your own Redis](https://github.com/sourcegraph/deploy-sourcegraph-hel
#### Using external Object Storage
-To use an external Object Storage service (S3-compatible services, or GCS), first review our [general recommendations](https://docs.sourcegraph.com/admin/external_services/object_storage). Then review the following example and adjust to your use case.
+To use an external Object Storage service (S3-compatible services, or GCS), first review our [general recommendations](/admin/external_services/object_storage). Then review the following example and adjust to your use case.
-See [override.yaml](https://github.com/sourcegraph/deploy-sourcegraph-helm/tree/main/charts/sourcegraph/examples/external-object-storage/override.yaml) for an example override file. The example assumes the use of AWS S3. You may configure the environment variables accordingly for your own use case based on our [general recommendations](https://docs.sourcegraph.com/admin/external_services/object_storage).
+See [override.yaml](https://github.com/sourcegraph/deploy-sourcegraph-helm/tree/main/charts/sourcegraph/examples/external-object-storage/override.yaml) for an example override file. The example assumes the use of AWS S3. You may configure the environment variables accordingly for your own use case based on our [general recommendations](/admin/external_services/object_storage).
If you provide credentials with an access key / secret key, we recommend storing the credentials in [Secrets] created outside the helm chart and managed in a secure manner. An example Secret is shown here:
@@ -273,64 +277,6 @@ preciseCodeIntel:
<<: *objectStorageEnv
```
-#### Enabling the Embeddings Service
-To enable the Embeddings Service using the built-in `blobstore` storage specify the following in your override file.
-```yaml
-embeddings:
- enabled: true
-```
-
-#### Using external Object Storage for Embeddings Indexes
-To use an external Object Storage service (S3-compatible services, or GCS), first review our [general recommendations](https://docs.sourcegraph.com/cody/explanations/code_graph_context#storing-embedding-indexes). Then review the following example and adjust to your use case.
-
-The example assumes the use of AWS S3. You may configure the environment variables accordingly for your own use case based on our [general recommendations](https://docs.sourcegraph.com/cody/explanations/code_graph_context#storing-embedding-indexes).
-
-If you provide credentials with an access key / secret key, we recommend storing the credentials in [Secrets] created outside the helm chart and managed in a secure manner. An example Secret is shown here:
-
-```yaml
-apiVersion: v1
-kind: Secret
-metadata:
- name: sourcegraph-s3-credentials
-data:
- # notes: secrets data has to be base64-encoded
- EMBEDDINGS_UPLOAD_AWS_ACCESS_KEY_ID: ""
- EMBEDDINGS_UPLOAD_AWS_SECRET_ACCESS_KEY: ""
-```
-
-In your [override.yaml](https://github.com/sourcegraph/deploy-sourcegraph-helm/tree/main/charts/sourcegraph/examples/external-object-storage-embeddings/override.yaml), reference this Secret and the necessary environment variables:
-
-```yaml
-# we use YAML anchors and alias to keep override file clean
-objectStorageEnv: &objectStorageEnv
- EMBEDDINGS_UPLOAD_BACKEND:
- value: S3 # external object storage type, one of "S3" or "GCS"
- EMBEDDINGS_UPLOAD_BUCKET:
- value: embeddings-uploads # external object storage bucket name
- EMBEDDINGS_UPLOAD_AWS_ENDPOINT:
- value: https://s3.us-east-1.amazonaws.com
- EMBEDDINGS_UPLOAD_AWS_REGION:
- value: us-east-1
- EMBEDDINGS_UPLOAD_AWS_ACCESS_KEY_ID:
- secretKeyRef: # Pre-existing secret, not created by this chart
- name: sourcegraph-s3-credentials
- key: EMBEDDINGS_UPLOAD_AWS_ACCESS_KEY_ID
- EMBEDDINGS_UPLOAD_AWS_SECRET_ACCESS_KEY:
- secretKeyRef: # Pre-existing secret, not created by this chart
- name: sourcegraph-s3-credentials
- key: EMBEDDINGS_UPLOAD_AWS_SECRET_ACCESS_KEY
-
-embeddings:
- enabled: true # Enable the Embeddings service
- env:
- <<: *objectStorageEnv
-
-worker:
- env:
- <<: *objectStorageEnv
-```
-
-
#### Using SSH to clone repositories
Create a [Secret](https://kubernetes.io/docs/concepts/configuration/secret/) that contains the base64 encoded contents of your SSH private key (make sure it doesn't require a passphrase) and known_hosts file. The [Secret] will be mounted in the `gitserver` deployment to authenticate with your code host.
@@ -396,15 +342,31 @@ An example of a subchart is shown in the [examples/subchart](https://github.com/
More details on how to create and configure a subchart can be found in the [helm documentation](https://helm.sh/docs/chart_template_guide/subcharts_and_globals).
-### OpenTelemetry Collector
+### Tracing
-Learn more about Sourcegraph's integrations with the [OpenTelemetry Collector](https://opentelemetry.io/docs/collector/) in our [OpenTelemetry documentation](/admin/observability/opentelemetry).
+Sourcegraph supports HTTP tracing to help troubleshoot issues. See [Tracing](/admin/observability/tracing) for details.
-#### Configure a tracing backend
+To enable tracing on your Helm instance, you'll need to either:
-Sourcegraph currently supports exporting tracing data to several backends. Refer to [OpenTelemetry](/admin/observability/opentelemetry) for detailed descriptions on how to configure your backend of choice.
+1. Deploy our bundled Jaeger backend, or
+2. Configure an external tracing backend
-You can add the following values in your `override.yaml` to configure trace exporting:
+Once a tracing backend has been deployed, see our [Tracing](/admin/observability/tracing) page for next steps, including required changes to your Site Configuration to enable traces.
+
+#### Enable the bundled Jaeger deployment
+
+Sourcegraph bundles a Jaeger instance, but it is disabled by default. You can enable it by either adding this to your Helm values override file, or by appending the [jaeger/override.yaml](https://github.com/sourcegraph/deploy-sourcegraph-helm/blob/main/charts/sourcegraph/examples/jaeger/override.yaml) file to your Helm upgrade command.
+
+```yaml
+jaeger:
+ enabled: true
+```
+
+#### Configure OpenTelemetry Collector to use an external tracing backend
+
+To configure the bundled otel-collector to export traces to an external OTel-compatible backend, you you can customize the otel-collector's config file directly in your Helm values `override.yaml` file.
+
+For the specific configurations to set, see our [OpenTelemetry](/admin/observability/opentelemetry) page.
```yaml
openTelemetry:
@@ -412,13 +374,12 @@ openTelemetry:
config:
traces:
exporters:
- ...
-
+ # Your exporter configuration here
processors:
- ...
+ # Your processor configuration here
```
-As an example, to configure the collector to export to an external Jaeger instance, add the following to your [override.yaml](https://github.com/sourcegraph/deploy-sourcegraph-helm/tree/main/charts/sourcegraph/examples/opentelemetry-exporter/override.yaml):
+To use an external Jaeger instance, copy and customize the configs from the [opentelemetry-exporter/override.yaml](https://github.com/sourcegraph/deploy-sourcegraph-helm/tree/main/charts/sourcegraph/examples/opentelemetry-exporter/override.yaml) file, and add them to your Helm values override file:
```yaml
openTelemetry:
@@ -437,9 +398,9 @@ openTelemetry:
#### Configure a tracing backend with TLS enabled
-If you require a TLS connection to export trace data, you need to first add the certificate data to a Secret. The following snippet demonstrates how you can achieve this:
+If you require a TLS connection to export trace data, you need to first add the certificate data to a secret. The following snippet demonstrates how you can achieve this:
-Do NOT commit the secret manifest into your Git repository unless you are okay with storing sensitive information in plaintext and your repository is private.
+> Do NOT commit the secret manifest into your Git repository unless you are okay with storing sensitive information in plaintext and your repository is private.
```yaml
apiVersion: v1
@@ -451,7 +412,7 @@ data:
file.key: "<.key data>"
```
-After applying the secret to your cluster, you can [override](https://github.com/sourcegraph/deploy-sourcegraph-helm/tree/main/charts/sourcegraph/examples/opentelemetry-exporter/override-tls.yaml) the value `openTelemetry.gateway.config.traces.exportersTlsSecretName` to mount the certificate data in the Collector and instruct the exporter to use TLS:
+After applying the secret to your cluster, you can use the [opentelemetry-exporter/override-tls.yaml](https://github.com/sourcegraph/deploy-sourcegraph-helm/tree/main/charts/sourcegraph/examples/opentelemetry-exporter/override-tls.yaml) example, and configure the value `openTelemetry.gateway.config.traces.exportersTlsSecretName` in your Helm values override file to mount the certificate data in the otel-collector, and instruct the exporter to use TLS:
```yaml
openTelemetry:
@@ -472,9 +433,7 @@ openTelemetry:
#### Configure trace sampling
-Review the [trace sampling documentation](/admin/observability/opentelemetry#sampling-traces) to understand how to configure sampling.
-
-Add your config to your [override.yaml](https://github.com/sourcegraph/deploy-sourcegraph-helm/tree/main/charts/sourcegraph/examples/opentelemetry-exporter/override-processor.yaml) as follows:
+Review the [trace sampling](/admin/observability/opentelemetry#sampling-traces) documentation, and the [opentelemetry-exporter/override-processor.yaml](https://github.com/sourcegraph/deploy-sourcegraph-helm/tree/main/charts/sourcegraph/examples/opentelemetry-exporter/override-processor.yaml) example, then add the configs to your Helm values override file:
```yaml
openTelemetry:
@@ -487,17 +446,6 @@ openTelemetry:
sampling_percentage: 10.0 # (default = 0): Percentage at which traces are sampled; >= 100 samples all traces
```
-#### Enable the bundled Jaeger deployment
-
-Sourcegraph ships with a bundled Jaeger instance that is disabled by default. If you do not wish to make use of an external observability backend, you can enable this instance by adding the following to your overrides:
-
-```yaml
-jaeger:
- enabled: true
-```
-
-This will also configure the OpenTelemetry Collector to export trace data to this instance. No further configuration is required.
-
## Cloud providers guides
This section is aimed at providing high-level guidance on deploying Sourcegraph via Helm on major Cloud providers. In general, you need the following to get started:
@@ -516,6 +464,8 @@ This section is aimed at providing high-level guidance on deploying Sourcegraph
3. Connect to your cluster (via either the console or the command line using `gcloud`) and ensure the cluster is up and running by running: `kubectl get nodes` (several `ready` nodes should be listed)
4. Have the [Helm CLI](https://helm.sh/docs/intro/install/) installed and run the following command to link to the Sourcegraph helm repository (on the machine used to interact with your cluster):
+> Please note that Autopilot clusters are not supported. Google managed clusters have security constraints that prevent the setup of the Sourcegraph services.
+
```sh
$ helm repo add sourcegraph https://helm.sourcegraph.com/release
```
@@ -571,7 +521,7 @@ The override file includes a [BackendConfig] CRD. This is necessary to instruct
**Step 2:** – Install the chart
```sh
-$ helm upgrade --install --values ./override.yaml --version 5.3.9104 sourcegraph sourcegraph/sourcegraph
+$ helm upgrade --install --values ./override.yaml --version {CURRENT_VERSION_NO_V} sourcegraph sourcegraph/sourcegraph
```
It will take around 10 minutes for the load balancer to be fully ready, you may check on the status and obtain the load balancer IP using the following command:
@@ -692,7 +642,7 @@ storageClass:
**Step 2:** – Install the chart
```sh
-$ helm upgrade --install --values ./override.yaml --version 5.3.9104 sourcegraph sourcegraph/sourcegraph
+$ helm upgrade --install --values ./override.yaml --version {CURRENT_VERSION_NO_V} sourcegraph sourcegraph/sourcegraph
```
It will take some time for the load balancer to be fully ready, use the following to check on the status and obtain the load balancer address (once available):
@@ -779,7 +729,7 @@ storageClass:
**Step 2:** – Install the chart
```sh
-$ helm upgrade --install --values ./override.yaml --version 5.3.9104 sourcegraph sourcegraph/sourcegraph
+$ helm upgrade --install --values ./override.yaml --version {CURRENT_VERSION_NO_V} sourcegraph sourcegraph/sourcegraph
```
It will take some time for the load balancer to be fully ready, you can check on the status and obtain the load balancer address (when ready) using:
@@ -865,7 +815,7 @@ storageClass:
**Step 2:** – Install the chart
```sh
-$ helm upgrade --install --values ./override.yaml --version 5.3.9104 sourcegraph sourcegraph/sourcegraph
+$ helm upgrade --install --values ./override.yaml --version {CURRENT_VERSION_NO_V} sourcegraph sourcegraph/sourcegraph
```
It may take some time before your ingress is up and ready to proceed. Depending on how your Ingress Controller works, you may be able to check on its status and obtain the public address of your Ingress using:
@@ -965,7 +915,7 @@ $ helm repo update sourcegraph
**Step 4:** Install the new version:
```sh
-$ helm upgrade --install -f override.yaml --version 5.3.9104 sourcegraph sourcegraph/sourcegraph
+$ helm upgrade --install -f override.yaml --version {CURRENT_VERSION_NO_V} sourcegraph sourcegraph/sourcegraph
```
**Step 5:** Verify the installation has started:
@@ -974,14 +924,10 @@ $ helm upgrade --install -f override.yaml --version 5.3.9104 sourcegraph sourceg
$ kubectl get pods --watch
```
-When all pods have restarted and show as Running, you can browse to your Sourcegraph deployment and login to verify the instance is working as expected. For troubleshooting, refer to the [Operations guide](https://docs.sourcegraph.com/admin/install/kubernetes/operations) for common commands to gather more information about failures.
+When all pods have restarted and show as Running, you can browse to your Sourcegraph deployment and login to verify the instance is working as expected. For troubleshooting, refer to the [Operations guide](/admin/install/kubernetes/operations) for common commands to gather more information about failures.
### Multi-version upgrades
-If you are upgrading to **Sourcegraph 5.1 or later**, we encourage you to perform an [**automatic multi-version upgrade**](/admin/updates/automatic). The following instructions are still applicable, just the manual version of what automatic multi-version upgrade do for you now (and therefore is valuable information during a bumpy upgrade).
-
----
-
Please see our [cautionary note](/admin/updates/#best-practices) on upgrades, if you have any concerns about running a multi-version upgrade, please reach out to us at [support@sourcegraph.com](mailto:support@sourcegraph.com) for advisement.
### Multi-version upgrade procedure
@@ -992,6 +938,8 @@ If you are upgrading to **Sourcegraph 5.1 or later**, we encourage you to perfor
- Check the `Site Admin > Updates` page to determine [upgrade readiness](/admin/updates/#upgrade-readiness).
**Step 2:**
+> The Kubernetes Helm deployment type does not support MVU from Sourcegraph `v5.9.45` versions and earlier to ANY version `v6.0.x` or later. Admins seeking to upgrade to any Sourcegraph version `v6.0.x` or later (including `v6.1.x`, `v6.2.x`, etc.) must first upgrade to `v5.10.3940` or `v5.11.6271` and then use the standard upgrade procedure to get to their target version. This is because migrator in all versions from `v6.0.0` onwards will no longer connect to Postgres 12 databases. For more info see our [PostgreSQL upgrade docs](/admin/postgres#requirements).
+
Scale down `deployments` and `statefulSets` that access the database, _this step prevents services from accessing the database while schema migrations are in process._
The following services must have their replicas scaled to 0:
- Deployments (e.g., `kubectl scale deployment --replicas=0`)
@@ -1031,7 +979,7 @@ $ helm upgrade --install -n --set "migrator.args={upgrade,--fro
**Example:**
```sh
-$ helm upgrade --install -n sourcegraph --set "migrator.args={upgrade,--from=3.41.0,--to=4.5.1}" sourcegraph-migrator sourcegraph/sourcegraph-migrator --version 5.3.9104
+$ helm upgrade --install -n sourcegraph --set "migrator.args={upgrade,--from=3.41.0,--to=4.5.1}" sourcegraph-migrator sourcegraph/sourcegraph-migrator --version {CURRENT_VERSION_NO_V}
Release "sourcegraph-migrator" has been upgraded. Happy Helming!
NAME: sourcegraph-migrator
LAST DEPLOYED: Tue Mar 7 18:23:56 2023
@@ -1159,7 +1107,7 @@ Some Persistent Volumes may be retained after the uninstall phase is complete. I
[AWS EBS CSI driver]: https://docs.aws.amazon.com/eks/latest/userguide/managing-ebs-csi.html
[NGINX Ingress Controller]: https://github.com/kubernetes/ingress-nginx
[Helm Changelog]: https://github.com/sourcegraph/deploy-sourcegraph-helm/blob/main/charts/sourcegraph/CHANGELOG
-[Sourcegraph Changelog]: https://github.com/sourcegraph/sourcegraph/blob/main/CHANGELOG
+[Sourcegraph Changelog]: https://sourcegraph.com/changelog
[Sourcegraph Migrator]: https://github.com/sourcegraph/deploy-sourcegraph-helm/blob/main/charts/sourcegraph-migrator
[Helm Diff]: https://github.com/databus23/helm-diff
[Secrets]: https://kubernetes.io/docs/concepts/configuration/secret/
diff --git a/docs/admin/deploy/kubernetes/kustomize.mdx b/docs/admin/deploy/kubernetes/kustomize.mdx
index 453d742e4..c48893640 100644
--- a/docs/admin/deploy/kubernetes/kustomize.mdx
+++ b/docs/admin/deploy/kubernetes/kustomize.mdx
@@ -1,4 +1,4 @@
-# Sourcegraph on Kubernetes
+# Sourcegraph on Kubernetes with Kustomize
Best for large enterprises that require a multi-node, self-hosted solution and prefer to use the Kustomize deployment type.
@@ -37,7 +37,7 @@ See the [docs on reference repository](/admin/deploy/repositories) for detailed
# Recommended: replace the URL with your private fork
$ git clone https://github.com/sourcegraph/deploy-sourcegraph-k8s.git
$ cd deploy-sourcegraph-k8s
- $ git checkout v5.3.9104 && git checkout -b release
+ $ git checkout {CURRENT_VERSION} && git checkout -b release
```
### **Step 2**: Set up a directory for your instance
@@ -85,7 +85,7 @@ A storage class must be created and configured before deploying Sourcegraph. SSD
#### Option 1: Create a new storage class
-We recommend using a preconfigured storage class component for your cloud provider if you can create cluster-wide resources:
+We recommend using a pre-configured storage class component for your cloud provider if you can create cluster-wide resources:
```yaml
# instances/my-sourcegraph/kustomization.yaml
@@ -196,7 +196,6 @@ Common configurations that are strongly recommended for all Sourcegraph deployme
- [Adjust storage sizes](/admin/deploy/kubernetes/configure#adjust-storage-sizes)
- [Configure ingress](/admin/deploy/kubernetes/configure#ingress)
- [Enable TLS](/admin/deploy/kubernetes/configure#tls)
-- [Enable Embeddings Service](/admin/deploy/kubernetes/configure#enable-embeddings-service)
Other common configurations include:
diff --git a/docs/admin/deploy/kubernetes/operations.mdx b/docs/admin/deploy/kubernetes/operations.mdx
index c69020f60..ef345578a 100644
--- a/docs/admin/deploy/kubernetes/operations.mdx
+++ b/docs/admin/deploy/kubernetes/operations.mdx
@@ -236,7 +236,7 @@ The following instructions are specific to backing up and restoring the sourcegr
### Back up Sourcegraph databases
-These instructions will back up the primary `sourcegraph` database and the [codeintel](/code-search/code-navigation/) database.
+These instructions will back up the primary `sourcegraph` database, the [codeintel](/code-search/code-navigation/) database, and the [codeinsights](/code_insights/) database.
A. Verify deployment running
diff --git a/docs/admin/deploy/kubernetes/scale.mdx b/docs/admin/deploy/kubernetes/scale.mdx
index f50068638..cd7d16580 100644
--- a/docs/admin/deploy/kubernetes/scale.mdx
+++ b/docs/admin/deploy/kubernetes/scale.mdx
@@ -6,7 +6,7 @@ Increase resources according to the [Scaling Overview per Service](/admin/deploy
## Cluster resource guidelines
-For production environments, we recommend allocate resources based on your [instance size](/admin/deploy/instance-size). See our [resource estimator](https://docs.sourcegraph.com/admin/deploy/resource_estimator) for estimates.
+For production environments, we recommend allocate resources based on your [instance size](/admin/deploy/instance-size). See our [resource estimator](/admin/deploy/resource_estimator) for estimates.
---
@@ -26,7 +26,7 @@ Notes:
- If your change requires restarting `gitserver` pods and they are rescheduled to other nodes, they may go offline briefly (showing a `Multi-Attach` error). This is due to volume detach/reattach. [Contact us](https://about.sourcegraph.com/contact/) for mitigation steps depending on your cloud provider.
- See the docs to understand each service's role:
- - [Sourcegraph Architecture Overview](/dev/background-information/architecture/)
+ - [Sourcegraph Architecture Overview](https://docs-legacy.sourcegraph.com/dev/background-information/architecture)
- [Scaling Overview per Service](/admin/deploy/scale)
---
diff --git a/docs/admin/deploy/kubernetes/upgrade.mdx b/docs/admin/deploy/kubernetes/upgrade.mdx
index ceb4f9bc5..65c39c685 100644
--- a/docs/admin/deploy/kubernetes/upgrade.mdx
+++ b/docs/admin/deploy/kubernetes/upgrade.mdx
@@ -120,46 +120,41 @@ For example, if you use [overlays to make changes to the manifests](https://gith
## Multi-version upgrades
-If you are upgrading to **Sourcegraph 5.1 or later**, we encourage you to perform an [**automatic multi-version upgrade**](/admin/updates/automatic). The following procedure has been automated, but is still applicable should errors occur in an automated upgrade.
-
----
-
> **⚠️ Attention:** please see our [cautionary note](/admin/updates/#best-practices) on upgrades, if you have any concerns about running a multiversion upgrade, please reach out to us at [support@sourcegraph.com](mailto:support@sourcegraph.com) for advisement.
-To perform a **manual** multi-version upgrade on a Sourcegraph instance running on our **kubernetes** repo follow the procedure below:
+To perform a multi-version upgrade via migrators [upgrade](/admin/updates/migrator/migrator-operations#upgrade) command on a Sourcegraph instance deployed with our [kustomize repo](https://github.com/sourcegraph/deploy-sourcegraph-k8s) follow the procedure below:
1. **Check Upgrade Readiness**:
- Check the [upgrade notes](/admin/updates/kubernetes#kubernetes-upgrade-notes) for the version range you're passing through.
- Check the `Site Admin > Updates` page to determine [upgrade readiness](/admin/updates/#upgrade-readiness).
-2. **Disable Connections to the Database**:
- - The following services must have their replicas scaled to 0:
- - Deployments (e.g., `kubectl scale deployment --replicas=0`)
- - precise-code-intel-worker
- - repo-updater
- - searcher
- - sourcegraph-frontend
- - sourcegraph-frontend-internal
- - symbols
- - worker
- - Stateful sets (e.g., `kubectl scale sts --replicas=0`):
- - gitserver
- - indexed-search
-
- *convenience command:*
- ```sh
- $ kubectl scale deployment precise-code-intel-worker repo-updater searcher sourcegraph-frontend sourcegraph-frontend-internal symbols worker --replicas=0 && kubectl scale sts gitserver indexed-search --replicas=0
- ```
-
-3. **Run Migrator with the `upgrade` command**:
- - The following procedure describes running migrator in brief, for more detailed instructions and available command flags see our [migrator docs](/admin/updates/migrator/migrator-operations#kubernetes-kustomize).
- 1. In the `configure/migrator/migrator.Job.yaml` manifest ([kustomize](https://github.com/sourcegraph/deploy-sourcegraph/blob/master/configure/migrator/migrator.Job.yaml) or [legacy](https://github.com/sourcegraph/deploy-sourcegraph/blob/master/configure/migrator/migrator.Job.yaml)):
+2. **Pull and merge upstream changes**:
+ - Follow the [standard legacy upgrade procedure](#upgrade-with-legacy-kubernetes) to pull and merge upstream changes from the version you are upgrading to to your `release` branch.
+
+3. **Update cluster.yaml and scale down non-database deployments and replicas**:
+ - In your cluster kustomization file (`instances/my-sourcegraph/kustomize.yaml`), uncomment the [multi-version-upgrade util](https://github.com/sourcegraph/deploy-sourcegraph-k8s/blob/main/instances/template/kustomization.template.yaml#L155). This will scale down all non-database deployments and statefulSets replicas to 0.
+ ```yaml
+ # - ../../components/utils/uid # -- Run all Postgres database with valid users on host
+ - ../../components/utils/multi-version-upgrade # -- Scale down non-database pods to 0 for multi-version upgrade
+ # - ../../components/utils/migrate-to-nonprivileged # -- Component for migrating from privileged to non-privileged
+ #
+ ```
+ - Generate and apply a new cluster.yaml file.
+ ```sh
+ kubectl kustomize instances/my-sourcegraph -o cluster.yaml
+ kubectl apply --prune -l deploy=sourcegraph -f cluster.yaml
+ ```
+ > Note: This step will ensure that any PostgreSQL upgrade performed as an entrypoint script will have a chance to execute before the migrator is run. For more information see [Upgradeing PostgreSQL](/admin/postgres#upgrading-postgresql).
+
+4. **Run Migrator with the `upgrade` command**:
+ - *For more detailed instructions and available command flags see our [migrator docs](/admin/updates/migrator/migrator-operations#upgrade).*
+ 1. In the `configure/migrator/migrator.Job.yaml` [manifest](https://github.com/sourcegraph/deploy-sourcegraph-k8s/blob/main/components/utils/migrator/resources/migrator.Job.yaml):
- set the `image:` to the **latest** release of `migrator`
- set the `args:` value to `upgrade`. **Example:**
```yaml
- - name: migrator
- image: "index.docker.io/sourcegraph/migrator:5.0.3"
- args: ["upgrade", "--from=v3.41.0", "--to=v4.5.1"]
+ - name: migrator
+ image: "index.docker.io/sourcegraph/migrator:6.0.0" // here we use a later version of migrator than the version we're upgrading too.
+ args: ["upgrade", "--from=v5.9.0", "--to=5.11.0"]
env:
```
> *Note:*
@@ -168,11 +163,11 @@ To perform a **manual** multi-version upgrade on a Sourcegraph instance running
2. Run the following commands to schedule the migrator job with the upgrade command and monitor its progress:
```sh
# To ensure no previous job invocations will conflict with our current invocation
- kubectl delete -f configure/migrator/migrator.Job.yaml
+ kubectl delete job migrator
# Start the migrator job
- kubectl apply -f configure/migrator/migrator.Job.yaml
+ kubectl apply -f components/utils/migrator/resources/migrator.Job.yaml
# Stream the migrator's stdout logs for progress
- kubectl logs job.batch/migrator -f
+ kubectl logs job/migrator -f
```
**Example:**
```sh
@@ -188,7 +183,7 @@ To perform a **manual** multi-version upgrade on a Sourcegraph instance running
Execution will continue, but please report this, along with your operating
system, terminal, and any other details, to:
- https://github.com/sourcegraph/sourcegraph/issues/new
+ https://sourcegraph.com/contact
✱ Sourcegraph migrator 4.5.1
👉 Migrating to v3.43 (step 1 of 3)
@@ -209,14 +204,19 @@ To perform a **manual** multi-version upgrade on a Sourcegraph instance running
migrator 1/1 9s 35s
```
-4. **Pull and merge upstream changes**:
- - Follow the [standard legacy upgrade procedure](#upgrade-with-legacy-kubernetes) to pull and merge upstream changes from the version you are upgrading to to your `release` branch.
-
-5. **Scale your replicas back up and apply new manifests**:
- - The [legacy kubernetes upgrade procedure](#upgrade-with-legacy-kubernetes) describes this step in more detail.
- - Ensure that the replica counts adjusted in the previous steps are turned back up.
- - Run `./kubectl-apply-all.sh` to deploy the new pods to the Kubernetes cluster.
- - Monitor the status of the deployment via `kubectl get pods -o wide --watch`.
+5. **Generate and apply a new cluster.yaml file**:
+ 1. Comment out the [multi-version-upgrade util](https://github.com/sourcegraph/deploy-sourcegraph-k8s/blob/main/instances/template/kustomization.template.yaml#L155) in your cluster kustomization file (`instances/my-sourcegraph/kustomize.yaml`).
+ ```yaml
+ # - ../../components/utils/uid # -- Run all Postgres database with valid users on host
+ # - ../../components/utils/multi-version-upgrade # -- Scale down non-database pods to 0 for multi-version upgrade
+ # - ../../components/utils/migrate-to-nonprivileged # -- Component for migrating from privileged to non-privileged
+ ```
+ 2. Generate and apply a new cluster.yaml with the new images from Step 2.
+ ```sh
+ kubectl kustomize instances/my-sourcegraph -o cluster.yaml
+ kubectl apply --prune -l deploy=sourcegraph -f cluster.yaml
+ ```
+ Your instance should now be up and running in the new version!
---
diff --git a/docs/admin/deploy/machine-images/aws-ami.mdx b/docs/admin/deploy/machine-images/aws-ami.mdx
index 505da791c..a485b70b9 100644
--- a/docs/admin/deploy/machine-images/aws-ami.mdx
+++ b/docs/admin/deploy/machine-images/aws-ami.mdx
@@ -8,34 +8,32 @@ Following these docs will provision the following resources:
- A root EBS volume with 50GB of storage
- An additional EBS volume with 500GB of storage for storing code and search indices
-### Instance size chart
+### Sourcegraph AMI account ID
-Select an AMI according and instance type to the number of users and repositories you have using this table. If you fall between two sizes, choose the larger of the two.
+All Sourcegraph AMIs are published from one of the following AWS accounts:
-For example, if you have 8,000 users with 80,000 repositories, your instance size would be **L**. If you have 1,000 users with 80,000 repositories, you should still go with size **M**.
+- Account ID: `840044800169`
+- Account ID: `870751268155`
-| | **XS** | **S** | **M** | **L** | **XL** |
-|----------------------|---------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------|
-| **Users** | greater than or equal to 500 | greater than or equal to 1,000 | greater than or equal to 5,000 | greater than or equal to 10,000 | greater than or equal to 20,000 |
-| **Repositories** | greater than or equal to 5,000 | greater than or equal to 10,000 | greater than or equal to 50,000 | greater than or equal to 100,000 | greater than or equal to 250,000 |
-| **Recommended Type** | m6a.2xlarge | m6a.4xlarge | m6a.8xlarge | m6a.12xlarge | m6a.24xlarge |
-| **Minimum Type** | m6a.2xlarge | m6a.2xlarge | m6a.4xlarge | m6a.8xlarge | m6a.12xlarge |
-| **AMIs List** | [size-XS AMIs](https://console.aws.amazon.com/ec2/v2/home#Images:visibility=public-images;imageName=Sourcegraph-XS) | [size-S AMIs](https://console.aws.amazon.com/ec2/v2/home#Images:visibility=public-images;imageName=Sourcegraph-S) | [size-M AMIs](https://console.aws.amazon.com/ec2/v2/home#Images:visibility=public-images;imageName=Sourcegraph-M) | [size-L AMIs](https://console.aws.amazon.com/ec2/v2/home#Images:visibility=public-images;imageName=Sourcegraph-L) | [size-XL AMIs](https://console.aws.amazon.com/ec2/v2/home#Images:visibility=public-images;imageName=Sourcegraph-XL) |
+
+### Instance sizing
+
+Refer to our [AWS Instance Sizing](/how-to/aws-instance-sizing) guide to determine the appropriate EC2 instance type for your Sourcegraph deployment based on the number of users and repositories.
Click [here](https://github.com/sourcegraph/deploy#amazon-ec2-amis) to see the completed list of AMI IDs published in each region.
**The default AMI username is `ec2-user`.**
-AMIs are optimized for the specific set of resources provided by the instance type, please ensure you use the correct AMI for the associated EC2 instance type. You can [resize your EC2 instance anytime](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-resize.html), but your Sourcegraph AMI must match accordingly. If needed, follow the [upgrade steps](#upgrade) to switch to the correct AMI image that is optimized for your EC2 instance type.
-
---
## Deploy Sourcegraph
-1. In the [instance size chart](#instance-size-chart), click the link for the AMI that matches your deployment size.
+
+
+1. Search for Sourcegraph in the AWS Marketplace or AMI catalog (see screenshot in the introduction).
2. Choose **Launch instance from AMI**.
3. Name your instance.
-4. Select an **instance type** according to [the sizing chart](#instance-size-chart).
+4. Select an **instance type** according to [our sizing guide](/how-to/aws-instance-sizing) or your specific requirements.
5. **Key pair (login)**: Select or create a new Key Pair for connecting to your instance securely (this may be required in the event you need support).
6. **Network settings**:
- Under "Auto-assign public IP" select "Enable".
@@ -57,24 +55,30 @@ To configure SSL, and lock down the instance from the public internet, see the [
If you cannot access the Sourcegraph homepage after 10 minutes, please try reboot your instance.
### Executors
+
Executors are supported using [native kubernetes executors](/admin/executors/deploy_executors_kubernetes).
-Executors support [auto-indexing](/code-search/code-navigation/auto_indexing) and [server-side batch changes](/batch_changes/explanations/server_side).
+Executors support [auto-indexing](/code-search/code-navigation/auto_indexing) and [server-side batch changes](/batch-changes/server-side).
To enable executors you must do the following:
+
1. Connect to the AMI instance using `ssh`
2. Run `cd /home/ec2-user/deploy/install/`
3. Replace the placeholder `executor.frontendPassword` in `override.yaml`
4. Run the following command to update the executor
+
```
helm upgrade -i -f ./override.yaml --version "$(cat /home/ec2-user/.sourcegraph-version)" executor ./sourcegraph-executor-k8s-charts.tgz
```
+
1. Add the following to the site-admin config using the password you chose previously
+
```
"executors.accessToken": "",
"executors.frontendURL": "http://sourcegraph-frontend:30080",
"codeIntelAutoIndexing.enabled": true
```
+
1. Check `Site-Admin > Executors > Instances` to verify the executor connected successfully. If it does not appear try reboot the instance
To use server-side batch changes you will need to enable the `native-ssbc-execution` [feature flag](/admin/executors/native_execution#enable).
@@ -164,12 +168,13 @@ Now that your instance is confirmed to be working, and you have HTTPS working th
This upgrade process works with **Sourcegraph AWS AMI instances only**. Do not use these if you deployed Sourcegraph through other means.
+Please be aware that our AMI deployment types do not support multi-version upgrades at this time, nor do they support Automatic Upgrade State. The Automatic Upgrade State toggle can be found on your Sourcegraph instance's `site-admin/updates` screen.
+
Please take time to review the following before proceeding with the upgrades:
-- [Changelog](https://docs.sourcegraph.com/CHANGELOG)
-- [Update policy](https://docs.sourcegraph.com/admin/updates#update-policy)
-- [Update notes](https://docs.sourcegraph.com/admin/updates/kubernetes)
-- [Multi-version upgrade procedure](https://docs.sourcegraph.com/admin/updates/kubernetes#multi-version-upgrade-procedure)
+- [Technical changelog](/technical-changelog)
+- [Update policy](/admin/updates#update-policy)
+- [Update notes](/admin/updates/kubernetes)
Back up your volumes before each upgrade!
diff --git a/docs/admin/deploy/machine-images/aws-oneclick.mdx b/docs/admin/deploy/machine-images/aws-oneclick.mdx
index 4b577b4d8..2d10a4290 100644
--- a/docs/admin/deploy/machine-images/aws-oneclick.mdx
+++ b/docs/admin/deploy/machine-images/aws-oneclick.mdx
@@ -2,14 +2,14 @@
This page describes how to launch a verified and pre-configured Sourcegraph instance in just ~10 minutes using our one-click CloudFormation template and standard AMIs.
-Prefer manually installing on AWS yourself? See our [AMI](/admin/deploy/machine-images/aws-ami) installation options or our [script-install](/admin/deploy/single-node/script) installation options.
+Prefer manually installing on AWS yourself? See our [AMI](/admin/deploy/machine-images/aws-ami) installation options.
## Prerequisites
* An AWS account (most regions are supported, see our [Launcher](#deploy-sourcegraph) below for a complete list)
* General familiarity with AWS
* An [EC2 keypair](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-key-pairs.html) for SSH access
-* (optional) A Sourcegraph license to unlock features ([view plans](https://sourcegraph.com/pricing) or [learn how licenses work](/admin/subscriptions/index))
+* (optional) A Sourcegraph license to unlock features ([view plans](https://sourcegraph.com/pricing) or [learn how licenses work](/admin/licensing/))
## What will be created
@@ -58,7 +58,7 @@ Find the URL of your Sourcegraph instance in the **Outputs** section of the AWS
Executors are supported using [native kubernetes executors](/admin/executors/deploy_executors_kubernetes).
-Executors support [auto-indexing](/code-search/code-navigation/auto_indexing) and [server-side batch changes](/batch_changes/explanations/server_side).
+Executors support [auto-indexing](/code-search/code-navigation/auto_indexing) and [server-side batch changes](/batch-changes/server-side).
To enable executors you must do the following:
diff --git a/docs/admin/deploy/machine-images/gce.mdx b/docs/admin/deploy/machine-images/gce.mdx
index 1a829a9e1..1f2126c19 100644
--- a/docs/admin/deploy/machine-images/gce.mdx
+++ b/docs/admin/deploy/machine-images/gce.mdx
@@ -1,3 +1,5 @@
+import { CURRENT_VERSION_STRING_NO_V, CURRENT_VERSION_STRING } from 'src/components/PreCodeBlock'
+
# Sourcegraph Google Compute Instances
Sourcegraph [Google Compute Engine (GCE) Images](https://cloud.google.com/compute/docs/images) allow you to quickly deploy a production-ready Sourcegraph instance tuned to your organization's scale in just a few clicks.
@@ -94,7 +96,7 @@ $ sudo su sourcegraph
### Executors
Executors are supported using [native kubernetes executors](/admin/executors/deploy_executors_kubernetes).
-Executors support [auto-indexing](/code-search/code-navigation/auto_indexing) and [server-side batch changes](/batch_changes/explanations/server_side).
+Executors support [auto-indexing](/code-search/code-navigation/auto_indexing) and [server-side batch changes](/batch-changes/server-side).
To enable executors you must do the following:
1. Connect to the instance using `ssh` as described above.
@@ -104,13 +106,13 @@ To enable executors you must do the following:
```
helm upgrade -i -f ./override.yaml --version "$(cat /home/sourcegraph/.sourcegraph-version)" executor sourcegraph/sourcegraph-executor-k8s
```
-5. Add the following to the site-admin config using the password you chose previously:
+1. Add the following to the site-admin config using the password you chose previously:
```
"executors.accessToken": "",
"executors.frontendURL": "http://sourcegraph-frontend:30080",
"codeIntelAutoIndexing.enabled": true
```
-6. Check `Site-Admin > Executors > Instances` to verify the executor connected successfully. If it does not appear try reboot the instance.
+1. Check `Site-Admin > Executors > Instances` to verify the executor connected successfully. If it does not appear try reboot the instance.
To use server-side batch changes you will need to enable the `native-ssbc-execution` [feature flag](/admin/executors/native_execution#enable).
@@ -126,12 +128,14 @@ As a result, setting up a static IP for your Sourcegraph instance is strongly re
This upgrade process works with **Sourcegraph instances set up with GCE Images only**. Do not follow this upgrade procedure if you deployed Sourcegraph through other means.
+Please be aware that our machine image deployment types do not support multi-version upgrades at this time.
+
Please take time to review the following before proceeding with the upgrades:
-- [Changelog](https://docs.sourcegraph.com/CHANGELOG)
-- [Update policy](https://docs.sourcegraph.com/admin/updates#update-policy)
-- [Update notes](https://docs.sourcegraph.com/admin/updates/kubernetes)
-- [Multi-version upgrade procedure](https://docs.sourcegraph.com/admin/updates/kubernetes#multi-version-upgrade-procedure)
+- [Technical changelog](/technical-changelog)
+- [Update policy](/admin/updates#update-policy)
+- [Update notes](/admin/updates/kubernetes)
+- [Multi-version upgrade procedure](/admin/updates/kubernetes#multi-version-upgrade-procedure)
IMPORTANT: **Back up your volumes before each upgrade**
@@ -141,7 +145,7 @@ SSH into the VM as user `sourcegraph` and run the following command:
```bash
# Please update the version number according to the upgrade notes
-helm upgrade -i -f /home/sourcegraph/deploy/install/override.yaml --version 5.3.9104 sourcegraph sourcegraph/sourcegraph
+helm upgrade -i -f /home/sourcegraph/deploy/install/override.yaml --version {CURRENT_VERSION_NO_V} sourcegraph sourcegraph/sourcegraph
# Note: /home/sourcegraph/deploy/install/override.yaml is the override file for your instance size
```
@@ -181,7 +185,8 @@ helm upgrade -i -f /home/sourcegraph/deploy/install/override.yaml --version 5.3.
You can terminate the stopped Sourcegraph Google Image instance once you have confirmed the new instance is up and running.
-You must follow the [multi-version upgrade procedure](https://docs.sourcegraph.com/admin/updates/kubernetes#multi-version-upgrade-procedure) if you are attempting a multi-version upgrade.
+You must follow the [multi-version upgrade procedure](/admin/updates/kubernetes#multi-version-upgrade-procedure) if you are attempting a multi-version upgrade.
+
## Downgrade
Please refer to the upgrade procedure above if you wish to roll back your instance. The processes are identical, aside from a downgrade targeting a previous version of Sourcegraph.
diff --git a/docs/admin/deploy/machine-images/index.mdx b/docs/admin/deploy/machine-images/index.mdx
index ef4052fde..dec27b2f7 100644
--- a/docs/admin/deploy/machine-images/index.mdx
+++ b/docs/admin/deploy/machine-images/index.mdx
@@ -29,6 +29,8 @@ All Sourcegraph machine images are free to download, and we encourage you to spi
The use of [external services](../external_services/) such as managed Postgres databases or third party object storage services is not supported when using Sourcegraph Machine Images.
+Please be aware that our machine image deployment types do not support multi-version upgrades at this time.
+
### Amazon Machine Images (AMIs)
All AMI instances are currently pinned with a Sourcegraph version that the instance is launched with to ensure restarting the instance will not cause upgrades accidentally. The version number is saved into a text file on both the root (file path: `/home/ec2-user/.sourcegraph-version`) and data volumes (file path: `/mnt/data/.sourcegraph-version`) where it will be read by the [reboot script](https://sourcegraph.com/github.com/sourcegraph/deploy@v5.2.5/-/blob/install/reboot.sh) on each reboot. Upgrades will only happen on reboot if the version numbers from both volumes are different.
diff --git a/docs/admin/deploy/migrate-backup.mdx b/docs/admin/deploy/migrate-backup.mdx
index f71229782..1f4726993 100644
--- a/docs/admin/deploy/migrate-backup.mdx
+++ b/docs/admin/deploy/migrate-backup.mdx
@@ -19,7 +19,7 @@ These files are the most essential pieces of information required for a migratio
| Data | Can it be recreated without a backup? | Notes |
|-----------------------------------------------------------------------------------|---------------------------------------|-----------------------------------------------------------------------------------|
| [Site configuration](/admin/config/site_config) | No | This file contains key configuration that defines how the product works. |
-| [Code host connection configuration(s)](/admin/external_service/) | No | Each connection to an external code host has its own short configuration file. |
+| [Code host connection configuration(s)](/admin/code_hosts/) | No | Each connection to an external code host has its own short configuration file. |
| [Global settings](/admin/config/settings#editing-global-settings-for-site-admins) | No | Default settings can be set by administrators for all users by editing this file. |
Backing up this data is as simple as copy-pasting the text from the files described above on the old Sourcegraph instance into the new one.
@@ -39,7 +39,7 @@ This list is not guaranteed to be complete, but rather representative of the typ
| [User and org settings](/admin/config/settings) | No | Global settings can be backed up as described above, but user-level and org-level settings cannot. |
| [Saved searches](/code-search/working/saved_searches) | No | |
| User-generated access tokens | No | |
-| [Batch Changes](/batch_changes/) | No | |
+| [Batch Changes](/batch-changes/) | No | |
| [Code graph metadata](/code-search/code-navigation/precise_code_navigation) | Yes (if manually regenerated) | This can be regenerated by re-running the indexing and upload process for affected repositories and revisions, but will not be regenerated by default. |
| [User survey responses](/admin/user_surveys) | No | |
| [Usage statistics and event logs](/admin/usage_statistics) | No | Event logs allow admins to track and audit usage, but are not necessary for Sourcegraph to work. |
diff --git a/docs/admin/deploy/repositories.mdx b/docs/admin/deploy/repositories.mdx
index d1b165a0b..803874004 100644
--- a/docs/admin/deploy/repositories.mdx
+++ b/docs/admin/deploy/repositories.mdx
@@ -1,3 +1,5 @@
+import { CURRENT_VERSION_STRING } from 'src/components/PreCodeBlock'
+
# Reference Repositories
Sourcegraph provides reference repositories with branches corresponding to the version of Sourcegraph you wish to deploy for each supported deployment type. The reference repository contains everything you need to spin up and configure your instance depending on your deployment type.
@@ -31,7 +33,7 @@ Update the environment variables in the command below before running it in your
export SG_DEPLOY_GITHUB_USERNAME="YOUR_USERNAME"
export SG_DEPLOY_REPO_NAME="deploy-sourcegraph-k8s"
export SG_PRIVATE_DEPLOY_REPO_NAME="$SG_DEPLOY_REPO_NAME"
-export SG_DEPLOY_VERSION="v5.3.0"
+export SG_DEPLOY_VERSION={CURRENT_VERSION}
```
### Step 3: Create remote and local copies
@@ -62,7 +64,7 @@ You can now deploy using your private copy of the repository you've just created
Before you can upgrade Sourcegraph, you will first update your private copy with the upstream branch, and then merge the upstream release tag for the next minor version into your release branch.
-In the following example, the release branch is being upgraded to v5.3.9104.
+In the following example, the release branch is being upgraded to {CURRENT_VERSION_STRING()}.
```bash
export YOUR_RELEASE_BRANCH=release-$SG_DEPLOY_VERSION
@@ -72,7 +74,7 @@ git checkout $YOUR_RELEASE_BRANCH
git fetch upstream
# merge the upstream release tag into your release branch
git checkout $YOUR_RELEASE_BRANCH
-git merge v5.3.9104
+git merge {CURRENT_VERSION}
```
A [standard upgrade](/admin/updates#standard-upgrades) occurs between two minor versions of Sourcegraph. If you are looking to jump forward several versions, you must perform a [multi-version upgrade](/admin/updates#multi-version-upgrades) instead.
diff --git a/docs/admin/deploy/resource_estimator.mdx b/docs/admin/deploy/resource_estimator.mdx
new file mode 100644
index 000000000..a4ec9894f
--- /dev/null
+++ b/docs/admin/deploy/resource_estimator.mdx
@@ -0,0 +1,35 @@
+# Sourcegraph Resource Estimator
+
+Updating the form below will recalculate an estimate for the resources you can use to configure your Sourcegraph deployment.
+
+
+
+For any questions or issues [get help from an engineer](mailto:support@sourcegraph.com).
+
+## Additional information
+
+### Limitations
+
+- The estimator does not support instances with more than **50,000 users or 5,000,000 repositories**.
+
+### How to update a resource in your deployment?
+
+- For docker-compose deployments, edit your [docker-compose.yml file](https://github.com/sourcegraph/deploy-sourcegraph-docker/blob/master/docker-compose/docker-compose.yaml) and set `cpus` and `mem_limit` to the limits shown above
+- For Helm deployments, create an [override file](https://github.com/sourcegraph/deploy-sourcegraph-helm/blob/main/charts/sourcegraph/examples/common-modifications/override.yaml) (or update your existing override file) with the new values shown above
+- For non-Helm Kubernetes deployments, we recommend using Kustomize to generate manifests with the values shown above. Please refer to our [Kustomize overlay for resources update](https://github.com/sourcegraph/deploy-sourcegraph/tree/master/overlays/resources-update) for detail
+
+### What is engagement rate?
+
+(*Deprecated*) Engagement rate refers to the percentage of users who use Sourcegraph regularly. It is generally used for existing deployments to estimate resources.
+
+### If you plan to enforce repository permissions on Sourcegraph
+
+Repository permissions on Sourcegraph can have a noticeable impact on search performance if you have a large number of users and/or repositories on your code host. We suggest setting your authorization ttl values as high as you are comfortable setting it in order to reduce the chance of this (e.g. to 72h) in the repository permission configuration.
+
+### What kind of data can be regenerated without backup?
+
+See our docs on [Persistent data backup in Kubernetes](/admin/deploy/migrate-backup#persistent-data-backup-in-kubernetes) for more detail.
+
+#### How does Sourcegraph scale?
+
+[Click here to learn more about how each Sourcegraph service scales.](/admin/deploy/scale)
diff --git a/docs/admin/deploy/scale.mdx b/docs/admin/deploy/scale.mdx
index 47b76422d..0d674b73d 100644
--- a/docs/admin/deploy/scale.mdx
+++ b/docs/admin/deploy/scale.mdx
@@ -36,7 +36,7 @@ Here is a list of components you can find in a typical Sourcegraph deployment:
### External Services
-A list of services that can be externalized. See our docs on [Using external services with Sourcegraph](/admin/external_service/) for detailed instruction.
+A list of services that can be externalized. See our docs on [Using external services with Sourcegraph](/admin/code_hosts/) for detailed instruction.
| | |
|:---------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
@@ -76,7 +76,7 @@ It exports container monitoring metrics scraped by Prometheus and visualized in
|:------------|:------------------------------------------------------------------------------------------------------------------------------------------------|
| `Overview` | Scaling is not necessary as it is designed to be a small footprint service |
| `Factors` | Its primary traffic are the requests coming from Prometheus |
-| `Guideline` | Read [the list of known issues](/dev/background-information/observability/cadvisor#known-issues) that can cause performance issues for cAdvisor |
+| `Guideline` | Read [the list of known issues](https://docs-legacy.sourcegraph.com/dev/background-information/observability/cadvisor#known-issues) that can cause performance issues for cAdvisor |
---
@@ -276,7 +276,7 @@ A Jaeger instance for end-to-end distributed tracing
| `Factors` | Number of Site Admins |
| `Guideline` | Memory depends on the size of buffers, like the number of traces and the size of the queue for example |
- The jaeger service does not have to be enabled for Sourcegraph work, however, the ability to troubleshoot the system will be disabled.
+ The Jaeger service is not mandatory for basic Sourcegraph functionality, however, the ability to troubleshoot issues is vastly improved with it.
---
diff --git a/docs/admin/deploy/single-node/script.mdx b/docs/admin/deploy/single-node/script.mdx
index e04c32254..810dc9454 100644
--- a/docs/admin/deploy/single-node/script.mdx
+++ b/docs/admin/deploy/single-node/script.mdx
@@ -72,10 +72,10 @@ Sourcegraph will be available on ports 80 and 443 (using a self signed certifica
We recommend deploying your own reverse proxy to terminate TLS connections with a properly signed certificate.
## Upgrade
-- [Changelog](https://docs.sourcegraph.com/CHANGELOG)
-- [Update policy](https://docs.sourcegraph.com/admin/updates#update-policy)
-- [Update notes](https://docs.sourcegraph.com/admin/updates/kubernetes)
-- [Multi-version upgrade procedure](https://docs.sourcegraph.com/admin/updates/kubernetes#multi-version-upgrade-procedure)
+- [Technical changelog](/technical-changelog)
+- [Update policy](/admin/updates#update-policy)
+- [Update notes](/admin/updates/kubernetes)
+- [Multi-version upgrade procedure](/admin/updates/kubernetes#multi-version-upgrade-procedure)
> Important: Back up your volumes before each upgrade
diff --git a/docs/admin/deploy/without_service_discovery.mdx b/docs/admin/deploy/without_service_discovery.mdx
new file mode 100644
index 000000000..4c9d930ca
--- /dev/null
+++ b/docs/admin/deploy/without_service_discovery.mdx
@@ -0,0 +1,15 @@
+# Running Sourcegraph Without Kubernetes Service Discovery
+
+Not settting these environment variables might prevent pods from starting when running without service discovery.
+
+If you are deploying Sourcegraph in an environment **without Kubernetes service discovery** (for example, using Docker Compose or single-container Docker), you must manually configure the frontend service to know about the other service replicas. This is typically required when you are not using RBAC, or when running outside Kubernetes entirely.
+
+## Required Environment Variables
+
+- INDEXED_SEARCH_INDEXER
+- INDEXED_SEARCH_SERVERS
+- SEARCHER_URL
+- SRC_GIT_SERVERS
+- SYMBOLS_URL
+
+For detailed instructions on how to set these environment variables in a Docker Compose deployment, see the [Docker Compose configuration guide](/admin/deploy/docker-compose/configuration#set-environment-variables).
diff --git a/docs/admin/deployment_best_practices.mdx b/docs/admin/deployment_best_practices.mdx
index f315a45da..729f5b9d2 100644
--- a/docs/admin/deployment_best_practices.mdx
+++ b/docs/admin/deployment_best_practices.mdx
@@ -2,7 +2,7 @@
## What does "best practice" mean to us?
-Sourcegraph is a highly scalable and configurable application. As an open source company we hope our customers will feel empowered to customize Sourcegraph to meet their unique needs, but we cannot guarantee whether deviations from the below guidelines will work or be supportable by Sourcegraph. If in doubt, please contact your Customer Engineer or [reach out to support](/#get-help).
+Sourcegraph is a highly scalable and configurable application. As an open source company we hope our customers will feel empowered to customize Sourcegraph to meet their unique needs, but we cannot guarantee whether deviations from the below guidelines will work or be supportable by Sourcegraph. If in doubt, please contact your Customer Engineer or [reach out to support](https://sourcegraph.com/contact).
## Sourcegraph Performance Dependencies
@@ -10,22 +10,16 @@ Sourcegraph is a highly scalable and configurable application. As an open source
- user's engagement level
- number and size of code repositories synced to Sourcegraph.
-_To get a better idea of your resource requirements for your instance use our [resource estimator](https://docs.sourcegraph.com/admin/deploy/resource_estimator).
+_To get a better idea of your resource requirements for your instance use our [resource estimator](/admin/deploy/resource_estimator)._
## Deployment Best Practices
A comparison table of supported self-hosted deployment methodologies can be [found here](/admin/deploy/#deployment-types).
-### Docker Compose
-
-- Be sure your deployment meets our [Docker Compose requirements](/admin/deploy/docker-compose/#requirements).
-- Review the [configuration section](/admin/deploy/docker-compose/#configuration) of our [Docker Compose deployment docs](/admin/deploy/docker-compose/).
-
### Kubernetes
Kubernetes deployments may be customized in a variety of ways, we consider the following best practice:
-- Users should configure and deploy using Helm, as covered in our guide to [using Helm with Sourcegraph](/admin/deploy/kubernetes/helm).
- If Helm cannot be used, [Kustomize can be used to apply configuration changes](/admin/deploy/kubernetes/kustomize).
- As a last resort, the [manifests can be edited in a forked copy of the Sourcegraph repository](/admin/deploy/kubernetes/).
- The suggested Kubernetes version is the current [GKE Stable release version](https://cloud.google.com/kubernetes-engine/docs/release-notes-stable)
@@ -36,7 +30,10 @@ Kubernetes deployments may be customized in a variety of ways, we consider the f
_Unless scale, resiliency, or some other legitimate need exists that necessitates the use of Kubernetes (over a much simpler Docker Compose installation), it's recommended that Docker-Compose be used._
-_Any major modifications outside of what we ship in the [standard deployment](https://github.com/sourcegraph/deploy-sourcegraph) are the responsibility of the user to manage, including but not limited to: Helm templates, Terraform configuration, and other ops/infrastructure tooling._
+### Docker Compose
+
+- Be sure your deployment meets our [Docker Compose requirements](/admin/deploy/docker-compose/#requirements).
+- Review the [configuration section](/admin/deploy/docker-compose/#configuration) of our [Docker Compose deployment docs](/admin/deploy/docker-compose/).
### Sourcegraph Server (single Docker container)
@@ -55,7 +52,7 @@ _It is possible to migrate your data to a Docker-Compose or Kubernetes deploymen
### Precise code navigation and Batch Changes
- The list of languages currently supported for precise code navigation can be found [here](/code-search/code-navigation/auto_indexing)
-- Requirements to set-up Batch Changes can be found [here](https://docs.sourcegraph.com/batch_changes/references/requirements)
+- Requirements to set-up Batch Changes can be found [here](/batch-changes/requirements)
### Browser extensions
@@ -65,8 +62,9 @@ _It is possible to migrate your data to a Docker-Compose or Kubernetes deploymen
Only the latest versions of IDEs are generally supported, but most versions within a few months up-to-date generally work.
-- VS Code: [https://github.com/sourcegraph/sourcegraph/tree/main/client/vscode](https://github.com/sourcegraph/sourcegraph/tree/main/client/vscode); we don't yet support VSCodium
-- JetBrains IDEs: [https://github.com/sourcegraph/sourcegraph/tree/main/client/jetbrains](https://github.com/sourcegraph/sourcegraph/tree/main/client/jetbrains) – we mainly test the plugin with IntelliJ IDEA, but it should work with no issues in all JetBrains IDEs, including:
+- VS Code
+- Visual Studio
+- JetBrains IDEs — we mainly test the plugin with IntelliJ IDEA, but it should work with no issues in all JetBrains IDEs, including:
- IntelliJ IDEA
- IntelliJ IDEA Community Edition
- PhpStorm
diff --git a/docs/admin/enterprise_getting_started_guide/index.mdx b/docs/admin/enterprise_getting_started_guide/index.mdx
index d6fd92fdd..4762657b2 100644
--- a/docs/admin/enterprise_getting_started_guide/index.mdx
+++ b/docs/admin/enterprise_getting_started_guide/index.mdx
@@ -1,4 +1,4 @@
-# Enterprise Getting Started Guide
+# Resources for Sourcegraph Enterprise Instance
If you're deploying a new Enterprise instance, this page covers our most frequently referenced pieces of documentation. Admins will be interested in the documentation for their specific deployment method; users will want to check out info on our search syntax, operators, batch changes, and browser extension.
@@ -6,7 +6,7 @@ If you're deploying a new Enterprise instance, this page covers our most frequen
### General
- [Deployment overview](/admin/deploy/)
-- [Resource estimator](https://docs.sourcegraph.com/admin/deploy/resource_estimator)
+- [Resource estimator](/admin/deploy/resource_estimator)
- [SAML config](/admin/auth/saml/)
- [Configuring authorization and authentication](/admin/config/authorization_and_authentication) - We recommend starting here for access and permissions configuration before moving on to the more specific pages on these topics.
- [Built-in password authentication](/admin/auth/#builtin-password-authentication)
@@ -18,7 +18,7 @@ If you're deploying a new Enterprise instance, this page covers our most frequen
- [GitHub integration](/integration/github)
- [All code host integrations (not GitLab or GitHub)](/integration/#integrations)
- [Full guide to site config options](/admin/config/site_config#auth-sessionExpiry)
-- [Changelog](https://sourcegraph.com/github.com/sourcegraph/sourcegraph/-/blob/CHANGELOG) to track releases and updates
+- [Changelog](https://sourcegraph.com/changelog) to track releases and updates
### Docker-compose
- [Basic installation guide](/admin/deploy/docker-compose/)
@@ -26,15 +26,8 @@ If you're deploying a new Enterprise instance, this page covers our most frequen
- [Digital Ocean installation](/admin/deploy/docker-compose/digitalocean)
- [Google Cloud installlation](/admin/deploy/docker-compose/google_cloud)
-### Kubernetes admin
-- [All Kubernetes with Helm guidance](/admin/deploy/kubernetes/helm)
-- [Amazon EKS](/admin/deploy/kubernetes/helm#configure-sourcegraph-on-elastic-kubernetes-service-eks)
-- [Google GKE](/admin/deploy/kubernetes/helm#configure-sourcegraph-on-google-kubernetes-engine-gke)
-- [Azure](/admin/deploy/kubernetes/helm#configure-sourcegraph-on-azure-managed-kubernetes-service-aks)
-- [Configure Sourcegraph on other Cloud providers or on-prem](/admin/deploy/kubernetes/helm#configure-sourcegraph-on-other-cloud-providers-or-on-prem)
-
## User articles
- [Search syntax](/code-search/queries)
- [Search filters](/code-search/queries#filters-all-searches)
-- [Example batch changes](/batch_changes/tutorials/)
+- [Example batch changes](/batch-changes/examples)
- [Sourcegraph browser extension](/integration/browser_extension)
diff --git a/docs/admin/executors/deploy_executors.mdx b/docs/admin/executors/deploy_executors.mdx
index e9ba1464b..6cad6ac42 100644
--- a/docs/admin/executors/deploy_executors.mdx
+++ b/docs/admin/executors/deploy_executors.mdx
@@ -2,11 +2,11 @@
Executors can be deployed in a variety of manners. The supported deployment options are:
-- [Linux Binary Service](/admin/executors/deploy_executors_binary)
-- [Terraform on AWS or GCP](/admin/executors/deploy_executors_terraform)
-- (Beta) [Native Kubernetes](/admin/executors/deploy_executors_kubernetes)
-- (Beta) [Docker-in-Docker on Kubernetes](/admin/executors/deploy_executors_dind)
-- (Beta) [Docker-Compose](/admin/executors/deploy_executors_docker)
+- [Linux Binary Service](/admin/executors/deploy_executors_binary) ([Firecracker](./firecracker) compatible)
+- [Terraform on AWS or GCP](/admin/executors/deploy_executors_terraform) ([Firecracker](./firecracker) compatible)
+- [Native Kubernetes](/admin/executors/deploy_executors_kubernetes)
+- [Docker-in-Docker on Kubernetes](/admin/executors/deploy_executors_dind)
+- [Docker-Compose](/admin/executors/deploy_executors_docker)
See [deciding which executor deployment method to use ](../executors#deciding-which-executor-deployment-method-to-use) for more information on these different deployment options.
@@ -150,7 +150,7 @@ TMP_FILE="$(mktemp -d)" bash -c 'echo "" | docker --config "${TMP_FILE
You can also run the following:
```bash
-echo "username:password" | base64
+echo -n "username:password" | base64
```
and then paste the result of that into a JSON string like this:
diff --git a/docs/admin/executors/deploy_executors_binary.mdx b/docs/admin/executors/deploy_executors_binary.mdx
index 9a9656dbb..a78a9dc90 100644
--- a/docs/admin/executors/deploy_executors_binary.mdx
+++ b/docs/admin/executors/deploy_executors_binary.mdx
@@ -155,7 +155,7 @@ If you use the systemd service, simply run `systemctl start executor`, otherwise
## Upgrading executors
Upgrading executors is relatively uninvolved. Simply follow the instructions below.
-Also, check the [changelog](https://sourcegraph.com/github.com/sourcegraph/sourcegraph@main/-/blob/CHANGELOG) for any Executors related breaking changes or new features that you might want to configure.
+Also, check the [changelog](https://sourcegraph.com/changelog) for any Executors related breaking changes or new features that you might want to configure.
### **Step 1:** First, grab the executor binary for the new target Sourcegraph version.
diff --git a/docs/admin/executors/deploy_executors_binary_offline.mdx b/docs/admin/executors/deploy_executors_binary_offline.mdx
index acc261dfa..86fa27675 100644
--- a/docs/admin/executors/deploy_executors_binary_offline.mdx
+++ b/docs/admin/executors/deploy_executors_binary_offline.mdx
@@ -5,7 +5,7 @@ When running in an air-gap environment, the executor binary can be deployed with
## Initial Dependencies
Executors
-require [initial dependencies](https://docs.sourcegraph.com/admin/executors/deploy_executors_binary#dependencies) to
+require [initial dependencies](/admin/executors/deploy_executors_binary#dependencies) to
be installed on the host machine. The minimum dependencies (when not using [Firecracker](/admin/executors/#firecracker)
Isolation) are:
@@ -88,7 +88,7 @@ If you are not using Firecracker, ensure the environment variable `EXECUTOR_USE_
### Initial Dependencies
Executors running Firecracker Isolation
-require [initial dependencies](https://docs.sourcegraph.com/admin/executors/deploy_executors_binary#dependencies) to
+require [initial dependencies](/admin/executors/deploy_executors_binary#dependencies) to
be installed on the host machine.
- `dmsetup`
@@ -168,7 +168,7 @@ To install the Firecracker sandbox image, import the image using `docker`.
$ docker pull
```
-> Note: Check the [version](https://sourcegraph.com/github.com/sourcegraph/sourcegraph@main/-/blob/cmd/executor/internal/config/consts.go?L15) against the version of executors being installed.
+> Note: Check the version against the version of executors being installed.
If you are using a custom image instead of the Sourcegraph image, you will need to set the environment variable
`EXECUTOR_FIRECRACKER_SANDBOX_IMAGE` to match the image name.
@@ -181,7 +181,7 @@ To install the Firecracker Kernel image, import the image (`sourcegraph/ignite-k
$ ignite kernel import --runtime docker
```
-> Note: Check the [version](https://sourcegraph.com/github.com/sourcegraph/sourcegraph@main/-/blob/cmd/executor/internal/config/consts.go?L18) against the version of executors being installed.
+> Note: Check the version against the version of executors being installed.
If you are using a custom image instead of the Sourcegraph image, you will need to set the environment variable
`EXECUTOR_FIRECRACKER_KERNEL_IMAGE` to match the image name.
diff --git a/docs/admin/executors/deploy_executors_dind.mdx b/docs/admin/executors/deploy_executors_dind.mdx
index e786a8023..95ca5feae 100644
--- a/docs/admin/executors/deploy_executors_dind.mdx
+++ b/docs/admin/executors/deploy_executors_dind.mdx
@@ -17,7 +17,7 @@ Ensure you have the following tools installed:
#### Deployment via Kustomize
-Please refer to the [Sourcegraph Kustomize docs](https://docs.sourcegraph.com/admin/deploy/kubernetes/kustomize) for the latest instructions.
+Please refer to the [Sourcegraph Kustomize docs](/admin/deploy/kubernetes/kustomize) for the latest instructions.
To include Executors dind, see [configure Sourcegraph with Kustomize](/admin/deploy/kubernetes/configure) on how to specify the component.
diff --git a/docs/admin/executors/deploy_executors_kubernetes.mdx b/docs/admin/executors/deploy_executors_kubernetes.mdx
index 009535015..0093435fd 100644
--- a/docs/admin/executors/deploy_executors_kubernetes.mdx
+++ b/docs/admin/executors/deploy_executors_kubernetes.mdx
@@ -1,67 +1,89 @@
-# Deploying Sourcegraph executors natively on Kubernetes
+# Deploying Sourcegraph Executors natively on Kubernetes
This feature is in beta and is available in Sourcegraph 5.1.0 and later.
-[Kubernetes manifests](https://github.com/sourcegraph/deploy-sourcegraph-k8s) are provided to deploy Sourcegraph Executors on a running Kubernetes cluster. If you are deploying Sourcegraph with helm, charts are available [here](https://github.com/sourcegraph/deploy-sourcegraph-helm).
+The native Kubernetes Executors have a master Executor pod that schedules worker pods via the Kubernetes API. The master Executor pod manages the lifecycle of jobs, while the worker pods process the actual [batch change](/batch_changes/explanations/server_side) or [precise auto indexing](/code-search/code-navigation/auto_indexing) job specs. For more details, see [how it works](/admin/executors#native-kubernetes).
## Requirements
-### Feature flag
-To instruct Sourcegraph to use Kubernetes-deployed executors, you will need to enable the `native-ssbc-execution` [feature flag](/admin/executors/native_execution#enable).
-
-### RBAC Roles
-
-Executors interact with the Kubernetes API to handle jobs. The following are the RBAC Roles needed to run Executors on
-Kubernetes.
+Executors interact with the Kubernetes API to manage the lifecycle of individual executor jobs. The following are the RBAC Roles needed to run Executors natively on Kubernetes.
| API Groups | Resources | Verbs | Reason |
| ---------- | ------------------ | ---------------------- | ----------------------------------------------------------------------------------------- |
| `batch` | `jobs` | `create`, `delete` | Executors create Job pods to run processes. Once Jobs are completed, they are cleaned up. |
| | `pods`, `pods/log` | `get`, `list`, `watch` | Executors need to look up and steam logs from the Job Pods. |
-See the [example Role YAML](https://sourcegraph.com/github.com/sourcegraph/sourcegraph@main/-/blob/cmd/executor/kubernetes/batches/executor-batches.Role.yml)
-for details.
+Here's an example Role YAML to demonstrate the RBAC requirements for native Kubernetes Executors:
-### Docker Image
+```yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: Role
+metadata:
+ name: sg-executor-batches-role
+ namespace: default
+rules:
+ - apiGroups:
+ - batch
+ resources:
+ - jobs
+ verbs:
+ - create
+ - delete
+ - apiGroups:
+ - ""
+ resources:
+ - pods
+ - pods/log
+ verbs:
+ - get
+ - list
+ - watch
+# Secrets are required post 5.5, when all pods run a single job
+ - apiGroups:
+ - ""
+ resources:
+ - secrets
+ verbs:
+ - create
+ - delete
+ # PVCs are required if KUBERNETES_JOB_VOLUME_TYPE is "pvc"
+# - apiGroups:
+# - ""
+# resources:
+# - persistentvolumeclaims
+# verbs:
+# - create
+# - delete
+```
+
+## Deployment
+
+Native Kubernetes Executors can be deployed via either the `sourcegraph-executor-k8s` [Helm chart](https://github.com/sourcegraph/deploy-sourcegraph-helm/tree/main/charts/sourcegraph-executor/k8s) or by using the `executors/k8s` [Kustomize component](https://github.com/sourcegraph/deploy-sourcegraph-k8s/tree/main/components/executors/k8s).
+
+### Steps
+
+1. If you are deploying Executors for processing Batch Changes, set the `native-ssbc-execution` [feature flag](/admin/executors/native_execution#enable)
+2. Configure the following environment variables on the Executor Deployment:
+ 1. `EXECUTOR_FRONTEND_URL` should match the URL of your Sourcegraph instance
+ 2. `EXECUTOR_FRONTEND_PASSWORD` should match the `executors.accessToken` key in the Sourcegraph instance's site configuration
+ 3. Either `EXECUTOR_QUEUE_NAMES` or `EXECUTOR_QUEUE_NAME` should be set depending on whether the Executor will process batch change or precise auto indexing jobs
+ 4. `EXECUTOR_KUBERNETES_NAMESPACE` should be set to the Kubernetes namespace where you intend to run the worker pods. This should generally match the namesapce where you deploy the Executor resources in the next step.
-The Executor Docker image is available on Docker Hub
-at [`sourcegraph/executor-kubernetes`](https://hub.docker.com/r/sourcegraph/executor-kubernetes/tags).
-
-### Environment Variables
-
-The following are Environment Variables that are specific to the Kubernetes deployment method. These environment variables can be
-set on the Executor `Deployment` and will configure the `Job`s that it spawns. Executor environment variables can also be defined on a Kubernetes `ConfigMap` or `Secret` that is [mounted to the executor deployment](https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/#configure-all-key-value-pairs-in-a-configmap-as-container-environment-variables).
-
-| Name | Default Value | Description |
-| ------------------------------------------------------------ | :---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
-| `EXECUTOR_KUBERNETES_CONFIG_PATH` | N/A | The path to the Kubernetes configuration file. If not specified, the in cluster config is used. |
-| `EXECUTOR_KUBERNETES_NODE_NAME` | N/A | The name of the Kubernetes Node to create Jobs in. If not specified, the Pods are created in the first available node. |
-| `EXECUTOR_KUBERNETES_NODE_SELECTOR` | N/A | A comma separated list of values to use as a node selector for Kubernetes Jobs. e.g. `foo=bar,app=my-app` |
-| `EXECUTOR_KUBERNETES_NODE_REQUIRED_AFFINITY_MATCH_EXPRESSION` | N/A | The JSON encoded required affinity match expressions for Kubernetes Jobs. e.g. `[{"key": "foo", "operator": "In", "values": ["bar"]}]` |
-| `EXECUTOR_KUBERNETES_NODE_REQUIRED_AFFINITY_MATCH_FIELDS` | N/A | The JSON encoded required affinity match fields for Kubernetes Jobs. e.g. `[{"key": "foo", "operator": "In", "values": ["bar"]}]` |
-| `EXECUTOR_KUBERNETES_POD_AFFINITY` | N/A | The JSON encoded pod affinity for Kubernetes Jobs. e.g. `[{"labelSelector": {"matchExpressions": [{"key": "foo", "operator": "In", "values": ["bar"]}]}, "topologyKey": "kubernetes.io/hostname"}]` |
-| `EXECUTOR_KUBERNETES_POD_ANTI_AFFINITY` | N/A | The JSON encoded pod anti-affinity for Kubernetes Jobs. e.g. `[{"labelSelector": {"matchExpressions": [{"key": "foo", "operator": "In", "values": ["bar"]}]}, "topologyKey": "kubernetes.io/hostname"}]` |
-| `EXECUTOR_KUBERNETES_NODE_TOLERATIONS` | N/A | The JSON encoded tolerations for Kubernetes Jobs. e.g. `[{"key": "foo", "operator": "Equal", "value": "bar", "effect": "NoSchedule"}]` |
-| `EXECUTOR_KUBERNETES_NAMESPACE` | `default` | The Kubernetes namespace in which the executor service will spawn executor jobs (K8s Jobs) in. |
-| `EXECUTOR_KUBERNETES_PERSISTENCE_VOLUME_NAME` | `sg-executor-pvc` | The name of the Executor Persistence Volume. Must match the `PersistentVolumeClaim` configured for the instance. |
-| `EXECUTOR_KUBERNETES_RESOURCE_LIMIT_CPU` | N/A | The maximum CPU resource for Kubernetes Jobs. |
-| `EXECUTOR_KUBERNETES_RESOURCE_LIMIT_MEMORY` | `12Gi` | The maximum memory resource for Kubernetes Jobs. |
-| `EXECUTOR_KUBERNETES_RESOURCE_REQUEST_CPU` | N/A | The minimum CPU resource for Kubernetes Jobs. |
-| `EXECUTOR_KUBERNETES_RESOURCE_REQUEST_MEMORY` | `12Gi` | The minimum memory resource for Kubernetes Jobs. |
-| `KUBERNETES_JOB_DEADLINE` | `1200` | The number of seconds after which a Kubernetes job will be terminated. |
-| `KUBERNETES_RUN_AS_USER` | N/A | The user ID to run Kubernetes jobs as. |
-| `KUBERNETES_RUN_AS_GROUP` | N/A | The group ID to run Kubernetes jobs as. |
-| `KUBERNETES_FS_GROUP` | `1000` | The group ID to run all containers in the Kubernetes jobs as. |
-| `KUBERNETES_KEEP_JOBS` | `false` | If true, Kubernetes jobs will not be deleted after they complete. Useful for debugging. |
-| `KUBERNETES_JOB_ANNOTATIONS` | N/A | The JSON encoded annotations to add to the Kubernetes Jobs. e.g. `{"foo": "bar", "faz": "baz"}` |
-| `KUBERNETES_JOB_POD_ANNOTATIONS` | N/A | The JSON encoded annotations to add to the Kubernetes Job Pods. e.g. `{"foo": "bar", "faz": "baz"}` |
-| `KUBERNETES_IMAGE_PULL_SECRETS` | N/A | The names of Kubernetes image pull secrets to use for pulling images. e.g. my-secret,my-other-secret |
-
-Note: `EXECUTOR_KUBERNETES_NAMESPACE` should be set to either "default" or the specific namespace where your Executor is deployed.
-
-Note: `executor.frontendUrl` must be set in the Site configuration for Executors to work correctly.
-
-See other possible executor configuration environment variables [here](/admin/executors/executors_config).
+ Additional environment variables may need to be configured for your Executors deployment. See [here](/admin/executors/executors_config) for a complete list.
+
+3. Deploy the native Kubernetes Executor resources to your Kubernetes cluster via either the `sourcegraph-executor-k8s` [Helm chart](https://github.com/sourcegraph/deploy-sourcegraph-helm/tree/main/charts/sourcegraph-executor/k8s) or the `executors/k8s` [Kustomize component](https://github.com/sourcegraph/deploy-sourcegraph-k8s/tree/main/components/executors/k8s).
+ 1. For more details on how to work with the Sourcegraph Helm chart, see the [Helm chart docs](/admin/deploy/kubernetes#configuration) (_Note: The same Helm values `override.yaml` file can be used for both the main `sourcegraph` Helm chart as well as the `sourcegraph-executor-k8s` chart_)
+ 2. For more details on how to configure the `executors/k8s` component for your Kustomize deployment, see the [Kustomize configuration docs](/admin/deploy/kubernetes/configure#overview)
+4. Once all the native Kubernetes Executor resources have been deployed to your cluster, confirm that the Executors are online by checking the _Executors_ page under **Site admin > Executors > Instances**
+
+## Additional Notes
+
+### Firecracker
+
+Executors deployed on Kubernetes do not use [Firecracker](/admin/executors/#how-it-works).
+
+If you have security concerns, consider deploying via [terraform](/admin/executors/deploy_executors_terraform)
+or [installing the binary](/admin/executors/deploy_executors_binary) directly.
### Job Scheduling
@@ -103,49 +125,13 @@ Environment.
### Batch Changes
-To run [Batch Changes](/batch_changes/) on
-Kubernetes, [Native Server-Side Batch Changes](/admin/executors/native_execution) must be enabled.
+To run [Batch Changes](/batch-changes/) on
+Kubernetes, [native Server-Side Batch Changes](/admin/executors/native_execution) must be enabled.
-### Example Configuration YAML
-
-See
-the [local development YAMLs](https://sourcegraph.com/github.com/sourcegraph/sourcegraph@main/-/blob/cmd/executor/kubernetes)
-for an example of how to configure the Executor in Kubernetes.
-
-## Deployment
-
-Executors on Kubernetes require specific RBAC rules to be configured in order to operate correctly.
-See [RBAC Roles](#rbac-roles) for more information.
-
-### Step-by-step Guide
-
-Ensure you have the following tools installed:
-
-- [kubectl](https://kubernetes.io/docs/tasks/tools/#kubectl)
-- [Helm](https://helm.sh/) if you're installing Sourcegraph with `helm`.
-
-#### Deployment via Kustomize
-
-Please refer to the [Sourcegraph Kustomize docs](https://docs.sourcegraph.com/admin/deploy/kubernetes/kustomize) for the latest instructions.
-
-To include Native Kubernetes Executors, see [configure Sourcegraph with Kustomize](https://docs.sourcegraph.com/admin/deploy/kubernetes/configure) on how to specify the component (`components/executors/k8s`).
-
-#### Deployment via Helm
-
-Please refer to the [Sourcegraph Helm docs](https://docs.sourcegraph.com/admin/deploy/kubernetes/helm#quickstart) for the latest instructions.
-
-To specifically deploy Executors,
-1. Create an overrides file, `override.yaml`, with any other customizations you may require.
- 1. See [details on configurations](https://docs.sourcegraph.com/admin/deploy/kubernetes/helm#configuration).
-2. Run the following command:
- ```bash
- helm upgrade --install --values ./override.yaml --version sg-executor sourcegraph/sourcegraph-executor-k8s
- ```
-3. Confirm executors are working by checking the _Executors_ page under **Site admin > Executors > Instances** .
+### Docker Image
-## Note
+The Executor Docker image is available on Docker Hub at [`sourcegraph/executor-kubernetes`](https://hub.docker.com/r/sourcegraph/executor-kubernetes/tags).
-Executors deployed on Kubernetes do not use [Firecracker](/admin/executors/#how-it-works).
+### Example Configuration YAML
-If you have security concerns, consider deploying via [terraform](/admin/executors/deploy_executors_terraform)
-or [installing the binary](/admin/executors/deploy_executors_binary) directly.
+See the local development YAMLs for an example of how to configure the Executor in Kubernetes.
diff --git a/docs/admin/executors/deploy_executors_terraform.mdx b/docs/admin/executors/deploy_executors_terraform.mdx
index 240b90f8b..977552332 100644
--- a/docs/admin/executors/deploy_executors_terraform.mdx
+++ b/docs/admin/executors/deploy_executors_terraform.mdx
@@ -43,8 +43,8 @@ module "executors" {
| `zone` | The **Google** zone to provision the executor resources in. |
| `executor_sourcegraph_external_url` | The public URL of your Sourcegraph instance. This corresponds to the `externalURL` value in your Sourcegraph instance’s site configuration and must be resolvable from the provisioned executor compute resources. |
| `executor_sourcegraph_executor_proxy_password` | The access token corresponding to the `executors.accessToken` in your Sourcegraph instance's site configuration. |
-| `executor_queue_name` | The single queue from which the executor should pull jobs - [`codeintel`](/code-search/code-navigation/auto_indexing) or [`batches`](/batch_changes/explanations/server_side). Either this or `executor_queue_names` must be set. |
-| `executor_queue_names` | The multiple queues from which the executor should pull jobs - one or more of [`codeintel`](/code-search/code-navigation/auto_indexing) and [`batches`](/batch_changes/explanations/server_side). Either this or `executor_queue_name` must be set. |
+| `executor_queue_name` | The single queue from which the executor should pull jobs - [`codeintel`](/code-search/code-navigation/auto_indexing) or [`batches`](/batch-changes/server-side). Either this or `executor_queue_names` must be set. |
+| `executor_queue_names` | The multiple queues from which the executor should pull jobs - one or more of [`codeintel`](/code-search/code-navigation/auto_indexing) and [`batches`](/batch-changes/server-side). Either this or `executor_queue_name` must be set. |
| `executor_instance_tag` | A label tag to add to all the executors; can be used for filtering out the right instances in stackdriver monitoring |
| `executor_metrics_environment_label` | The value for environment by which to filter the custom metrics. |
@@ -410,7 +410,7 @@ Next, you can test whether the number of executors rises and shrinks as load spi
## Upgrading executors
Upgrading executors is relatively uninvolved. Simply follow the instructions below.
-Also, check the [changelog](https://github.com/sourcegraph/sourcegraph/blob/main/CHANGELOG) for any Executors related breaking changes or new features or flags that you might want to configure. See [Executors maintenance](/admin/executors/deploy_executors#Maintaining-and-upgrading-executors) for version compatability.
+Also, check the [changelog](https://sourcegraph.com/changelog) for any Executors related breaking changes or new features or flags that you might want to configure. See [Executors maintenance](/admin/executors/deploy_executors#Maintaining-and-upgrading-executors) for version compatability.
### **Step 1:** Update the source version of the terraform modules
diff --git a/docs/admin/executors/executor_secrets.mdx b/docs/admin/executors/executor_secrets.mdx
index 34700eed4..22a63de0b 100644
--- a/docs/admin/executors/executor_secrets.mdx
+++ b/docs/admin/executors/executor_secrets.mdx
@@ -2,7 +2,7 @@
Executor secrets can be used to define additional values to be used in Sourcegraph executors.
-Secret values are currently only available in server-side batch changes. Use [`step.env`](/batch_changes/references/batch_spec_yaml_reference#steps-env) to reference configured secrets in executions.
+Secret values are currently only available in server-side batch changes. Use [`step.env`](/batch-changes/batch-spec-yaml-reference#stepsenv) to reference configured secrets in executions.
## How secrets work
@@ -16,7 +16,7 @@ There are two types of secrets:
- **Namespaced secrets**
- These secrets are set either in org or user settings and are only usable by the user or org members in their respective namespaces. If a namespaced secret has the same name as a global secret, the namespaced secret is preferred.
+ These secrets are set either in org or user settings and are only usable by the user or org members in their respective namespaces. For example, user-specific executor secrets apply only to batch changes within the user's namespace. If you've created a server-side batch spec under an organization or a different namespace, ensure the secret is defined under `/organizations/{org-namespace}/settings/executors/secrets`. If a namespaced secret has the same name as a global secret, the namespaced secret is preferred.
Examples:
diff --git a/docs/admin/executors/executors_config.mdx b/docs/admin/executors/executors_config.mdx
index 4be5492e1..3ec52e7bc 100644
--- a/docs/admin/executors/executors_config.mdx
+++ b/docs/admin/executors/executors_config.mdx
@@ -2,6 +2,8 @@
The following is a list of all of the configuration options for the executor service. The process for configuring your executor instance will vary depending on the executor deployment method selected, but are generally defined as environment variables either in the executor Docker container or directly on the host machine, depending on whether the service is running in Docker or as a native Linux binary.
+## General configuration
+
| Configuration Key | Description | Example value |
| ---------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------ |
| `EXECUTOR_FRONTEND_URL` | The external URL of the Sourcegraph instance. **required** | `http://sourcegraph.example.com` |
@@ -31,3 +33,34 @@ The following is a list of all of the configuration options for the executor ser
| `EXECUTOR_FIRECRACKER_SANDBOX_IMAGE` | The OCI image for the ignite VM sandbox. | `sourcegraph/ignite:v0.10.5` |
| `DOCKER_REGISTRY_NODE_EXPORTER_URL` | The URL of the Docker Registry instance's node_exporter, without the /metrics path. | `http://localhost:9000` |
| `SRC_LOG_LEVEL` | upper log level to restrict log output to (dbug, info, warn, error, crit) (default value: "warn") | `warn` |
+
+## Kubernetes Specific Configuration
+
+The following environment variables are specific to the native Kubernetes Executor deployment method. These environment variables can be set on the Executor `Deployment` and will configure the `Job`s that it spawns. Executor environment variables can also be defined on a Kubernetes `ConfigMap` or `Secret` that is [mounted to the executor deployment](https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/#configure-all-key-value-pairs-in-a-configmap-as-container-environment-variables).
+
+| Name | Default Value | Description |
+| ------------------------------------------------------------ | :---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| `EXECUTOR_KUBERNETES_CONFIG_PATH` | N/A | The path to the Kubernetes configuration file. If not specified, the in cluster config is used. |
+| `EXECUTOR_KUBERNETES_NODE_NAME` | N/A | The name of the Kubernetes Node to create Jobs in. If not specified, the Pods are created in the first available node. |
+| `EXECUTOR_KUBERNETES_NODE_SELECTOR` | N/A | A comma separated list of values to use as a node selector for Kubernetes Jobs. e.g. `foo=bar,app=my-app` |
+| `EXECUTOR_KUBERNETES_NODE_REQUIRED_AFFINITY_MATCH_EXPRESSION` | N/A | The JSON encoded required affinity match expressions for Kubernetes Jobs. e.g. `[{"key": "foo", "operator": "In", "values": ["bar"]}]` |
+| `EXECUTOR_KUBERNETES_NODE_REQUIRED_AFFINITY_MATCH_FIELDS` | N/A | The JSON encoded required affinity match fields for Kubernetes Jobs. e.g. `[{"key": "foo", "operator": "In", "values": ["bar"]}]` |
+| `EXECUTOR_KUBERNETES_POD_AFFINITY` | N/A | The JSON encoded pod affinity for Kubernetes Jobs. e.g. `[{"labelSelector": {"matchExpressions": [{"key": "foo", "operator": "In", "values": ["bar"]}]}, "topologyKey": "kubernetes.io/hostname"}]` |
+| `EXECUTOR_KUBERNETES_POD_ANTI_AFFINITY` | N/A | The JSON encoded pod anti-affinity for Kubernetes Jobs. e.g. `[{"labelSelector": {"matchExpressions": [{"key": "foo", "operator": "In", "values": ["bar"]}]}, "topologyKey": "kubernetes.io/hostname"}]` |
+| `EXECUTOR_KUBERNETES_NODE_TOLERATIONS` | N/A | The JSON encoded tolerations for Kubernetes Jobs. e.g. `[{"key": "foo", "operator": "Equal", "value": "bar", "effect": "NoSchedule"}]` |
+| `EXECUTOR_KUBERNETES_NAMESPACE` | `default` | The Kubernetes namespace in which the executor service will spawn executor jobs (K8s Jobs) in. |
+| `EXECUTOR_KUBERNETES_PERSISTENCE_VOLUME_NAME` | `sg-executor-pvc` | The name of the Executor Persistence Volume. Must match the `PersistentVolumeClaim` configured for the instance. |
+| `EXECUTOR_KUBERNETES_RESOURCE_LIMIT_CPU` | N/A | The maximum CPU resource for Kubernetes Jobs. |
+| `EXECUTOR_KUBERNETES_RESOURCE_LIMIT_MEMORY` | `12Gi` | The maximum memory resource for Kubernetes Jobs. |
+| `EXECUTOR_KUBERNETES_RESOURCE_REQUEST_CPU` | N/A | The minimum CPU resource for Kubernetes Jobs. |
+| `EXECUTOR_KUBERNETES_RESOURCE_REQUEST_MEMORY` | `12Gi` | The minimum memory resource for Kubernetes Jobs. |
+| `KUBERNETES_JOB_DEADLINE` | `1200` | The number of seconds after which a Kubernetes job will be terminated. |
+| `KUBERNETES_RUN_AS_USER` | N/A | The user ID to run Kubernetes jobs as. |
+| `KUBERNETES_RUN_AS_GROUP` | N/A | The group ID to run Kubernetes jobs as. |
+| `KUBERNETES_FS_GROUP` | `1000` | The group ID to run all containers in the Kubernetes jobs as. |
+| `KUBERNETES_KEEP_JOBS` | `false` | If true, Kubernetes jobs will not be deleted after they complete. Useful for debugging. |
+| `KUBERNETES_JOB_ANNOTATIONS` | N/A | The JSON encoded annotations to add to the Kubernetes Jobs. e.g. `{"foo": "bar", "faz": "baz"}` |
+| `KUBERNETES_JOB_POD_ANNOTATIONS` | N/A | The JSON encoded annotations to add to the Kubernetes Job Pods. e.g. `{"foo": "bar", "faz": "baz"}` |
+| `KUBERNETES_IMAGE_PULL_SECRETS` | N/A | The names of Kubernetes image pull secrets to use for pulling images. e.g. my-secret,my-other-secret |
+
+Note: `EXECUTOR_KUBERNETES_NAMESPACE` should be set to either "default" or the specific namespace where your Executor is deployed.
\ No newline at end of file
diff --git a/docs/admin/executors/executors_troubleshooting.mdx b/docs/admin/executors/executors_troubleshooting.mdx
index ff96f7b0e..171a7bb58 100644
--- a/docs/admin/executors/executors_troubleshooting.mdx
+++ b/docs/admin/executors/executors_troubleshooting.mdx
@@ -242,3 +242,22 @@ Tells us that the Pod cannot be scheduled because the pod affinity rules (`EXECU
configured do not match any nodes.
In this case, the `EXECUTOR_KUBERNETES_POD_AFFINITY` needs to be modified to correctly target the node.
+
+### Executor Job failure issues
+
+If you see below errors for executor jobs:
+
+Codeintel
+```Index failed to index: Running command "step.kubernetes.pre-index.0": job sg-executor-job-codeintel-111877 failed: Usage of EmptyDir volume "job-data" exceeds the limit "5Gi".```
+
+Batch Changes
+```"step.kubernetes.step.0.pre": job sg-executor-job-batches-91562 failed: Usage of EmptyDir volume "job-data" exceeds the limit "5Gi".```
+
+Update the below variables in the respective executor's deployment file to increase EmptyDir volume "job-data" storage. In this example, ```KUBERNETES_JOB_VOLUME_SIZE``` is set to 20Gi, but you can tweak it as per your requirement.
+
+```
+- name: KUBERNETES_JOB_VOLUME_TYPE value: emptyDir
+- name: KUBERNETES_JOB_VOLUME_SIZE value: 20Gi
+```
+
+```KUBERNETES_JOB_VOLUME_TYPE``` can be either set to ```emptyDir``` or ```pvc``` and if it’s not set, the default is ```emptyDir```
diff --git a/docs/admin/executors/firecracker.mdx b/docs/admin/executors/firecracker.mdx
index 32f56f25a..0921b280d 100644
--- a/docs/admin/executors/firecracker.mdx
+++ b/docs/admin/executors/firecracker.mdx
@@ -1,6 +1,6 @@
# Firecracker
-[Executors](/admin/executors/), by design, are services that run arbitrary code supplied by a user. The executor jobs produced by precise code intelligence [auto-indexing](/code-search/code-navigation/auto_indexing) and [server-side batch changes](/batch_changes/explanations/server_side) are built to invoke _templated_ execution plans, where some parts of execution may invoke code configured by a Sourcegraph administrator or user. Generating a precise index requires invoking an indexer for that language. Batch changes are configured to run arbitrary tooling over the contents of a repository.
+[Executors](/admin/executors/), by design, are services that run arbitrary code supplied by a user. The executor jobs produced by precise code intelligence [auto-indexing](/code-search/code-navigation/auto_indexing) and [server-side batch changes](/batch-changes/server-side) are built to invoke _templated_ execution plans, where some parts of execution may invoke code configured by a Sourcegraph administrator or user. Generating a precise index requires invoking an indexer for that language. Batch changes are configured to run arbitrary tooling over the contents of a repository.
Because Sourcegraph has access to your code and credentials to external tools, we've designed executors to be able to run separately from the Sourcegraph instance (on a raw compute node) with the minimum API surface area and user code exposed to the job required to meet its objective. This effectively reduces the blast radius of a misconfiguration or insecure configuration.
@@ -41,4 +41,4 @@ Executor can be fined tuned with the following environment variables,
## Known caveats
-We [configure iptables](https://sourcegraph.com/github.com/sourcegraph/sourcegraph/-/blob/cmd/executor/internal/run/install.go?L229-255) to prevent Firecracker-isolated processes from talking on [Private IPv4 Addresses](https://en.wikipedia.org/wiki/Private_network#Private_IPv4_addresses) (providing network-level isolation). They can talk to DNS and Sourcegraph only, which prevents users from talking to a 10.x.x.x, 172.x.x.x, or 192.168.x.x range IP.
+We configure iptables to prevent Firecracker-isolated processes from talking on [Private IPv4 Addresses](https://en.wikipedia.org/wiki/Private_network#Private_IPv4_addresses) (providing network-level isolation). They can talk to DNS and Sourcegraph only, which prevents users from talking to a 10.x.x.x, 172.x.x.x, or 192.168.x.x range IP.
diff --git a/docs/admin/executors/index.mdx b/docs/admin/executors/index.mdx
index 79372bf61..c968da15f 100644
--- a/docs/admin/executors/index.mdx
+++ b/docs/admin/executors/index.mdx
@@ -1,9 +1,16 @@
# Executors
+
+ Supported on [Enterprise](/pricing/enterprise) plans.
+
+ Available via the Web app.
+
+
+
Executors are Sourcegraph's solution for running untrusted code in a secure and controllable way. Executors provide a sandbox that can run resource-intensive or untrusted tasks on behalf of the Sourcegraph instance, such as:
- [Automatically indexing a repository for precise code navigation](/code-search/code-navigation/auto_indexing)
-- [Running batch changes](/batch_changes/explanations/server_side)
+- [Running batch changes](/batch-changes/server-side)
## Installation
@@ -11,7 +18,7 @@ To deploy executors for your Sourcegraph instance, follow our [executor deployme
## Why use executors?
-Running untrusted code is a core requirement of features such as precise code navigation [auto-indexing](/code-search/code-navigation/auto_indexing), and [running batch changes server-side](/batch_changes/explanations/server_side).
+Running untrusted code is a core requirement of features such as precise code navigation [auto-indexing](/code-search/code-navigation/auto_indexing), and [running batch changes server-side](/batch-changes/server-side).
Auto-indexing jobs, in particular, require the invocation of arbitrary and untrusted code to support the resolution of project dependencies. Invocation of post-install hooks, use of insecure [package management tools](https://github.com/golang/go/issues/29230), and package manager proxy attacks can create opportunities in which an adversary can gain unlimited use of compute or exfiltrate data. The latter outcome is particularly dangerous for on-premise installations of Sourcegraph, which is the chosen option for companies wanting to maintain strict privacy of their code property.
@@ -26,8 +33,7 @@ Optionally, executors can be run without using KVM-based isolation, which is les
## Deciding which executor deployment method to use
-Deciding how to deploy the executor depends on your use case. The following flowchart can help you decide which
-deployment option is best for your environment.
+Deciding how to deploy the executor depends on your use case. For users that wish to process their untrusted compute in the most secure manner, we recommend leveraging the [Firecracker](./executors/firecracker) isolation method. For users that have constraints around running nested virtualization, the following flowchart can help you decide which deployment option is best for your environment:
diff --git a/docs/admin/external_service/aws_codecommit.mdx b/docs/admin/external_service/aws_codecommit.mdx
deleted file mode 100644
index 07811daf0..000000000
--- a/docs/admin/external_service/aws_codecommit.mdx
+++ /dev/null
@@ -1,100 +0,0 @@
-# AWS CodeCommit
-
-Site admins can sync Git repositories hosted on [AWS CodeCommit](https://aws.amazon.com/codecommit/) with Sourcegraph so that users can search and navigate the repositories.
-
-To connect AWS CodeCommit to Sourcegraph:
-
-1. Go to **Site admin > Manage code hosts > Add repositories**
-1. Select **AWS CodeCommit repositories**.
-1. Configure the connection to AWS CodeCommit using the action buttons above the text field, and additional fields can be added using `Cmd/Ctrl+Space` for auto-completion. See the [configuration documentation below](#configuration).
-1. Press **Add repositories**.
-
-## AWS CodeCommit Git credentials
-
-Since version **3.4** of Sourcegraph, the AWS CodeCommit service **requires** [Git credentials](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_ssh-keys.html#git-credentials-code-commit) in order to clone repositories via HTTPS. Git credentials consist of a username and a password that you can create in AWS IAM.
-
-For detailed instructions on how to create the credentials in IAM, see: [Setup for HTTPS Users Using Git Credentials](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-gc.html)
-
-## Configuration
-
-AWS CodeCommit connections support the following configuration options, which are specified in the JSON editor in the site admin "Manage code hosts" area.
-
-{/* [View page on docs.sourcegraph.com](https://docs.sourcegraph.com/admin/external_service/aws_codecommit) to see rendered content.
*/}
-
-### admin/external_service/aws_codecommit.schema.json
-
-```json
-{
- // The AWS access key ID to use when listing and updating repositories from AWS CodeCommit. Must have the AWSCodeCommitReadOnly IAM policy.
- "accessKeyID": null,
-
- // A list of repositories to never mirror from AWS CodeCommit.
- //
- // Supports excluding by name ({"name": "git-codecommit.us-west-1.amazonaws.com/repo-name"}) or by ARN ({"id": "arn:aws:codecommit:us-west-1:999999999999:name"}).
- "exclude": null,
- // Other example values:
- // - [
- // {
- // "name": "go-monorepo"
- // },
- // {
- // "id": "f001337a-3450-46fd-b7d2-650c0EXAMPLE"
- // }
- // ]
- // - [
- // {
- // "name": "go-monorepo"
- // },
- // {
- // "name": "go-client"
- // }
- // ]
-
- // The Git credentials used for authentication when cloning an AWS CodeCommit repository over HTTPS.
- //
- // See the AWS CodeCommit documentation on Git credentials for CodeCommit: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_ssh-keys.html#git-credentials-code-commit.
- // For detailed instructions on how to create the credentials in IAM, see this page: https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-gc.html
- "gitCredentials": null,
-
- // Deprecated and ignored field which will be removed entirely in the next release. AWS CodeCommit repositories can no longer be enabled or disabled explicitly. Configure which repositories should not be mirrored via "exclude" instead.
- "initialRepositoryEnablement": false,
-
- // The AWS region in which to access AWS CodeCommit. See the list of supported regions at https://docs.aws.amazon.com/codecommit/latest/userguide/regions.html#regions-git.
- "region": "us-east-1",
-
- // The pattern used to generate a the corresponding Sourcegraph repository name for an AWS CodeCommit repository. In the pattern, the variable "{name}" is replaced with the repository's name.
- //
- // For example, if your Sourcegraph instance is at https://src.example.com, then a repositoryPathPattern of "awsrepos/{name}" would mean that a AWS CodeCommit repository named "myrepo" is available on Sourcegraph at https://src.example.com/awsrepos/myrepo.
- //
- // It is important that the Sourcegraph repository name generated with this pattern be unique to this code host. If different code hosts generate repository names that collide, Sourcegraph's behavior is undefined.
- "repositoryPathPattern": "{name}",
- // Other example values:
- // - "git-codecommit.us-west-1.amazonaws.com/{name}"
- // - "git-codecommit.eu-central-1.amazonaws.com/{name}"
-
- // The AWS secret access key (that corresponds to the AWS access key ID set in `accessKeyID`).
- "secretAccessKey": null
-}
-```
-
-## Setup steps for SSH connections to AWS CodeCommit repositories
-
-To add CodeCommit repositories in Docker Container:
-
-1. Generate a public/private rsa key pair that does not require passphrase as listed in the [Step 3.1 of the AWS SSH setup guide](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-ssh-unixes.html#setting-up-ssh-unixes-keys). Sourcegraph does not work withe key pair that requires passphrase.
-1. Follow the rest of the steps detailed in the [AWS SSH setup guide](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-ssh-unixes.html) to make sure you can connect to the code host locally.
-1. Confirm you have the connection by running the following ssh command locally: `ssh git-codecommit.us-west-1.amazonaws.com` (Update link with your server region)
-1. Confirm you can clone the repository locally.
-1. Copy all the files at your `$HOME/.ssh directory` to `$HOME/.sourcegraph/config/ssh` directory. See [docs](/admin/deploy/docker-single-container/#ssh-authentication-config-keys-knownhosts) for more information about our ssh file system.
- 1. Read our [guide here](/admin/deploy/docker-compose/#git-ssh-configuration) for Docker Compose deployments
- 1. Read our [guide here](/admin/deploy/kubernetes/configure#ssh-for-cloning) for Kubernetes deployments
-1. Start (or restart) the container.
-1. Connect Sourcegraph to AWS CodeCommit by going to **Sourcegraph > Site Admin > Manage code hosts > Generic Git host** and add the following:
-
-```json
-"url": "ssh://git-codecommit.us-west-1.amazonaws.com", //Please replace the 'us-east-1' region with yours
- "repos": [
- "v1/repos/REPO_NAME_1",
- "v1/repos/REPO_NAME_2",
- ]
-```
diff --git a/docs/admin/external_service/azuredevops.mdx b/docs/admin/external_service/azuredevops.mdx
deleted file mode 100644
index c86ac9397..000000000
--- a/docs/admin/external_service/azuredevops.mdx
+++ /dev/null
@@ -1,150 +0,0 @@
-# Azure DevOps
-
-Site admins can sync Git repositories hosted on [Azure DevOps](https://dev.azure.com) with Sourcegraph so that users can search and navigate the repositories.
-
-To connect Azure DevOps to Sourcegraph, create a personal access token from your user settings page by following the below steps:
-
-1. Navigate to the `Personal Access Tokens` page from the user settings.
-
-
-
-2. Click on `New Token`.
-
-
-
-3. Under the `Organization` menu, select `All accessible organizations` to allow access to all organizations. This is required to be able to perform connection checks from the code host page and to sync repositories from multiple organizations. Alternatively, site admins may also create a unique user that has access to only the selective organizations that they would like to sync with Sourcegraph. However the token being created **must** have access to `All accessible organizations` as shown below.
-
-
-
-4. Select the following scopes:
-
- - Code (Read)
- - Project and Team
- - User Profile
-
-Next, configure the code host connection by following the next steps:
-
-1. Go to **Site admin > Manage code hosts > Add repositories**.
-1. Select **Azure DevOps**.
-1. Provide a [configuration](#configuration) for the Azure DevOps code host connection. Here is an example configuration:
-
- ```json
- {
- "url": "https://dev.azure.com/",
- "username": "",
- "token": "",
- "projects": ["org1/project1"],
- "orgs": ["org2"]
- }
- ```
-
-1. Select **Add repositories**.
-
-## Repository syncing
-
-Currently, all repositories belonging to the configured organizations/projects will be synced.
-
-In addition, you may exclude one or more repositories by setting the [`exclude`](/admin/external_service/azuredevops#configuration) field in the code host connection.
-
-### HTTPS cloning
-
-Sourcegraph clones repositories from Azure DevOps via HTTP(S), using the [`username`](/admin/external_service/azuredevops#configuration) and [`token`](/admin/external_service/azuredevops#configuration) required fields you provide in the configuration.
-
-## Configuration
-
-Azure DevOps connections support the following configuration options, which are specified in the JSON editor in the site admin "Manage code hosts" area.
-
-{/* [View page on docs.sourcegraph.com](https://docs.sourcegraph.com/admin/external_service/azuredevops) to see rendered content.
*/}
-
-### admin/external_service/azuredevops.schema.json
-
-```json
-{
- // A flag to enforce Azure DevOps repository access permissions
- "enforcePermissions": false,
-
- // A list of repositories to never mirror from Azure DevOps Services.
- "exclude": null,
- // Other example values:
- // - [
- // {
- // "name": "myorg/myproject/myrepo"
- // }
- // ]
- // - [
- // {
- // "name": "myorg/myproject/myrepo"
- // },
- // {
- // "name": "myorg/myproject/myotherrepo"
- // },
- // {
- // "pattern": "^topsecretproject/.*"
- // }
- // ]
-
- // The type of Git URLs to use for cloning and fetching Git repositories.
- //
- // If "http", Sourcegraph will access repositories using Git URLs of the form http(s)://dev.azure.com/myrepo.git.
- //
- // If "ssh", Sourcegraph will access repositories using Git URLs of the form git@ssh.dev.azure.com:v3/myrepo. See the documentation for how to provide SSH private keys and known_hosts: https://docs.sourcegraph.com/admin/repo/auth#repositories-that-need-http-s-or-ssh-authentication.
- "gitURLType": "http",
-
- // An array of organization names identifying Azure DevOps organizations whose repositories should be mirrored on Sourcegraph.
- "orgs": null,
- // Other example values:
- // - ["name"]
- // - [
- // "kubernetes",
- // "golang",
- // "facebook"
- // ]
-
- // An array of projects "org/project" strings specifying which Azure DevOps projects' repositories should be mirrored on Sourcegraph.
- "projects": null,
- // Other example values:
- // - ["org/project"]
-
- // The Personal Access Token associated with the Azure DevOps username used for authentication.
- "token": null,
-
- // URL for Azure DevOps Services, set to https://dev.azure.com.
- "url": null,
- // Other example values:
- // - "https://dev.azure.com"
-
- // A username for authentication with the Azure DevOps code host.
- "username": null
-}
-```
-
-## Webhooks
-
-Please consult [this page](/admin/config/webhooks/incoming) in order to configure webhooks.
-
-## Permissions syncing
-
-[User-level permissions](/admin/permissions/syncing#permission-syncing) syncing is supported for Azure DevOps code host connections. Here is the list of prerequisites:
-
-1. Configure Azure DevOps as an OAuth provider by consulting [this page](/admin/config/authorization_and_authentication#azure-devops-services)
-2. Next verify that users can now sign up / login to your Sourcegraph instance with your Azure DevOps OAuth provider
-3. Set the following in your Azure DevOps code host connection:
-
- ```json
- {
- // ...
- "enforcePermissions": true
- }
- ```
-
-4. For each Azure DevOps organization that is part of the `orgs` or `projects` list in the code host configuration, enable **Third-party application access via OAuth** from **Organization settings > Security > Policies**
-
-
-
-> NOTE: We do not support preemptive permissions syncing at this point. Once a user signs up / logins to Sourcegraph with their Azure DevOps account, Sourcegraph uses the authenticated `access_token` to calculate permissions by listing the organizations and projects that the user has access to. As a result, immediately after signing up user level permissions may not be 100% up to date. Users are advised to wait for an initial permissions sync to complete, whose status they may check from the `Permissions` tab under their account settings page. Alternatively they may also trigger a permissions sync for their account from the same page.
-
-Since permissions are already enforced by setting `enforcePermission` in the code host configuration, even though user permissions may not have synced completely, users will not have access to any repositories that they cannot access on Azure DevOps. As the user permissions sync progresses and eventually completes, they will be able to access the complete set of repositories on Sourcegraph that they can already access on Azure DevOps.
-
-## Rate limits
-
-When Sourcegraph hits a rate limit imposed by Azure DevOps, Sourcegraph waits the appropriate amount of time specified by the code host before retrying the request. You can read more about how Azure DevOps imposes rate limits [here](https://learn.microsoft.com/en-us/azure/devops/integrate/concepts/rate-limits).
diff --git a/docs/admin/external_service/bitbucket_cloud.mdx b/docs/admin/external_service/bitbucket_cloud.mdx
deleted file mode 100644
index b6fccec34..000000000
--- a/docs/admin/external_service/bitbucket_cloud.mdx
+++ /dev/null
@@ -1,204 +0,0 @@
-# Bitbucket Cloud
-
-Site admins can sync Git repositories hosted on [Bitbucket Cloud](https://bitbucket.org) with Sourcegraph so that users can search and navigate the repositories.
-
-To connect Bitbucket Cloud to Sourcegraph:
-
-1. Go to **Site admin > Manage code hosts > Add repositories**.
-2. Select **Bitbucket.org**.
-3. Configure the connection to Bitbucket Cloud using the action buttons above the text field. Additional fields can be added using Cmd/Ctrl+Space for auto-completion. See the [configuration documentation below](#configuration).
-4. Press **Add repositories**.
-
-## Repository syncing
-
-Currently, all repositories belonging to the user configured will be synced.
-
-In addition, there is one more field for configuring which repositories are mirrored:
-
-- [`teams`](/admin/external_service/bitbucket_cloud#configuration)
- A list of teams (workspaces) that the configured user has access to whose repositories should be synced.
-- [`exclude`](/admin/external_service/bitbucket_cloud#configuration)
- A list of repositories to exclude, which takes precedence over the `teams` field.
-
-## Configuration options
-
-Bitbucket Cloud code host connections can be configured with either a username and app password combination, or with workspace access tokens.
-
-### Username and app password
-
-1. Visit your [Bitbucket account settings page](https://bitbucket.org/account/settings).
-2. Navigate to **App passwords**.
-3. Select **Create app password**.
-4. Give your app password a label.
-5. Select the `Projects: Read` permission. `Repositories: Read` should automatically be selected.
-6. Press **Create**.
-
-Use the newly created app password and your username to configure the Bitbucket Cloud connection:
-
-```json
-{
- "url": "https://bitbucket.org",
- "username": "USERNAME",
- "appPassword": "",
- // ... other settings
-}
-```
-
-### Workspace access token
-
-1. Visit the Bitbucket Cloud workspace settings page of the workspace you want to create an access token for.
-2. Navigate to **Security > Access tokens**.
-3. Press **Create workspace access token**.
-4. Give your access token a name.
-5. Select the `Projects: Read` permission. `Repositories: Read` should automatically be selected.
-6. Press **Create**.
-
-Use the newly created access token to configure the Bitbucket Cloud connection:
-
-```json
-{
- "url": "https://bitbucket.org",
- "accessToken": "ACCESS_TOKEN",
- // ... other settings
-}
-```
-
-### HTTPS cloning
-
-Sourcegraph clones repositories from your Bitbucket Cloud via HTTP(S), using the [`username`](/admin/external_service/bitbucket_cloud#configuration) and [`appPassword`](/admin/external_service/bitbucket_cloud#configuration) required fields you provide in the configuration.
-
-## Rate limits
-
-Read about how Bitbucket Cloud applies rate limits [here](https://support.atlassian.com/bitbucket-cloud/docs/api-request-limits/).
-
-When Sourcegraph encounters rate limits on Bitbucket Cloud, it will retry the request with exponential back-off, until 5 minutes have passed. If the connection is still being rate limited after 5 minutes, the request will be dropped.
-
-### Internal rate limits
-
-See [Internal rate limits](/admin/external_service/rate_limits#internal-rate-limits)
-
-## User authentication
-
-To configure Bitbucket Cloud as an authentication provider (which will enable sign-in via Bitbucket Cloud), see the
-[authentication documentation](/admin/auth/#bitbucket-cloud).
-
-## Repository permissions
-
-Prerequisite: [Add Bitbucket Cloud as an authentication provider](#user-authentication).
-
-Then, add or edit a Bitbucket Cloud connection as described above and include the `authorization` field:
-
-```json
-{
- // The URL used to set up the Bitbucket Cloud authentication provider must match this URL.
- "url": "https://bitbucket.com",
- "username": "horsten",
- "appPassword": "$APP_PASSWORD",
- // ...
- "authorization": {}
-}
-```
-
-> NOTE: It can take some time to complete full cycle of repository permissions sync if you have a large number of users or repositories. [See sync duration time](/admin/permissions/syncing#sync-duration) for more information.
-
-## Configuration
-
-Bitbucket Cloud connections support the following configuration options, which are specified in the JSON editor in the site admin "Manage code hosts" area.
-
-{/* [View page on docs.sourcegraph.com](https://docs.sourcegraph.com/admin/external_service/bitbucket_cloud) to see rendered content.
*/}
-
-### admin/external_service/bitbucket_cloud.schema.json
-
-```json
-{
- // The workspace access token to use when authenticating with Bitbucket Cloud.
- "accessToken": null,
-
- // The API URL of Bitbucket Cloud, such as https://api.bitbucket.org. Generally, admin should not modify the value of this option because Bitbucket Cloud is a public hosting platform.
- "apiURL": null,
- // Other example values:
- // - "https://api.bitbucket.org"
-
- // The app password to use when authenticating to the Bitbucket Cloud. Also set the corresponding "username" field.
- "appPassword": null,
-
- // If non-null, enforces Bitbucket Cloud repository permissions. This requires that there is an item in the [site configuration json](https://docs.sourcegraph.com/admin/config/site_config#auth-providers) `auth.providers` field, of type "bitbucketcloud" with the same `url` field as specified in this `BitbucketCloudConnection`.
- "authorization": null,
-
- // A list of repositories to never mirror from Bitbucket Cloud. Takes precedence over "teams" configuration.
- //
- // Supports excluding by name ({"name": "myorg/myrepo"}) or by UUID ({"uuid": "{fceb73c7-cef6-4abe-956d-e471281126bd}"}).
- "exclude": null,
- // Other example values:
- // - [
- // {
- // "name": "myorg/myrepo"
- // },
- // {
- // "uuid": "{fceb73c7-cef6-4abe-956d-e471281126bc}"
- // }
- // ]
- // - [
- // {
- // "name": "myorg/myrepo"
- // },
- // {
- // "name": "myorg/myotherrepo"
- // },
- // {
- // "pattern": "^topsecretproject/.*"
- // }
- // ]
-
- // The type of Git URLs to use for cloning and fetching Git repositories on this Bitbucket Cloud.
- //
- // If "http", Sourcegraph will access Bitbucket Cloud repositories using Git URLs of the form https://bitbucket.org/myteam/myproject.git.
- //
- // If "ssh", Sourcegraph will access Bitbucket Cloud repositories using Git URLs of the form git@bitbucket.org:myteam/myproject.git. See the documentation for how to provide SSH private keys and known_hosts: https://docs.sourcegraph.com/admin/repo/auth#repositories-that-need-http-s-or-ssh-authentication.
- "gitURLType": "http",
- // Other example values:
- // - "ssh"
-
- // Rate limit applied when making background API requests to Bitbucket Cloud.
- "rateLimit": {
- "enabled": true,
- "requestsPerHour": 7200
- },
-
- // The pattern used to generate the corresponding Sourcegraph repository name for a Bitbucket Cloud repository.
- //
- // - "{host}" is replaced with the Bitbucket Cloud URL's host (such as bitbucket.org), and "{nameWithOwner}" is replaced with the Bitbucket Cloud repository's "owner/path" (such as "myorg/myrepo").
- //
- // For example, if your Bitbucket Cloud is https://bitbucket.org and your Sourcegraph is https://src.example.com, then a repositoryPathPattern of "{host}/{nameWithOwner}" would mean that a Bitbucket Cloud repository at https://bitbucket.org/alice/my-repo is available on Sourcegraph at https://src.example.com/bitbucket.org/alice/my-repo.
- //
- // It is important that the Sourcegraph repository name generated with this pattern be unique to this code host. If different code hosts generate repository names that collide, Sourcegraph's behavior is undefined.
- "repositoryPathPattern": "{host}/{nameWithOwner}",
-
- // An array of team names identifying Bitbucket Cloud teams whose repositories should be mirrored on Sourcegraph.
- "teams": null,
- // Other example values:
- // - ["name"]
- // - [
- // "kubernetes",
- // "golang",
- // "facebook"
- // ]
-
- // URL of Bitbucket Cloud, such as https://bitbucket.org. Generally, admin should not modify the value of this option because Bitbucket Cloud is a public hosting platform.
- "url": null,
- // Other example values:
- // - "https://bitbucket.org"
-
- // The username to use when authenticating to the Bitbucket Cloud. Also set the corresponding "appPassword" field.
- "username": null,
-
- // A shared secret used to authenticate incoming webhooks (minimum 12 characters).
- "webhookSecret": null
-}
-```
-
-## Webhooks
-
-Using the `webhooks` property on the external service has been deprecated.
-
-Please consult [this page](/admin/config/webhooks/incoming) in order to configure webhooks.
diff --git a/docs/admin/external_service/go.mdx b/docs/admin/external_service/go.mdx
deleted file mode 100644
index 3cb37dc06..000000000
--- a/docs/admin/external_service/go.mdx
+++ /dev/null
@@ -1,84 +0,0 @@
-# Go dependencies
-
-This feature is experimental and might change or be removed in the future.
-
-
-Site admins can sync Go modules from any from any Go module proxy, including open source code from proxy.golang.org or a private proxy such as [Athens](https://github.com/gomods/athens), to their Sourcegraph instance so that users can search and navigate the repositories.
-
-To add Go dependencies to Sourcegraph you need to setup a Go dependencies code host:
-
-1. As *site admin*: go to **Site admin > Global settings** and enable the experimental feature by adding: `{"experimentalFeatures": {"goPackages": "enabled"} }`
-1. As *site admin*: go to **Site admin > Manage code hosts**
-1. Select **JVM Dependencies**.
-1. Configure the connection by following the instructions above the text field. Additional fields can be added using `Cmd/Ctrl+Space` for auto-completion. See the [configuration documentation below](#configuration).
-1. Press **Add repositories**.
-
-## Repository syncing
-
-There are currently two ways to sync Go dependency repositories.
-
-* **Code host configuration**: manually list dependencies in the `"dependencies"` section of the JSON configuration when creating the Go dependency code host. This method can be useful to verify that the credentials are picked up correctly without having to run a dependencies search.
-
-Sourcegraph tries to find each dependency repository in all configured `"urls"` until it's found. This means you can configure a public proxy first and fallback to a private one second (e.g. `"urls": ["https://proxy.golang.org", "https://admin:foobar@athens.yourcorp.com"]`).
-
-## Credentials
-
-Each entry in the `"urls"` array can contain basic auth if needed (e.g. `https://user:password@athens.yourcorp.com`).
-
-## Rate limiting
-
-By default, requests to the Go module proxies will be rate-limited
-based on a default internal limit. ([source](https://github.com/sourcegraph/sourcegraph/blob/main/schema/go-modules.schema.json))
-
-```json
-"rateLimit": {
- "enabled": true,
- "requestsPerHour": 57600.0
-}
-```
-
-where the `requestsPerHour` field is set based on your requirements.
-
-**Not recommended**: Rate-limiting can be turned off entirely as well.
-This increases the risk of overloading the proxy.
-
-```json
-"rateLimit": {
- "enabled": false
-}
-```
-
-## Configuration
-
-Go dependencies code host connections support the following configuration options, which are specified in the JSON editor in the site admin "Manage code hosts" area.
-
-{/* [View page on docs.sourcegraph.com](https://docs.sourcegraph.com/integration/go) to see rendered content.
*/}
-
-### admin/external_service/go-modules.schema.json
-
-```json
-{
- // An array of strings specifying Go modules to mirror in Sourcegraph.
- "dependencies": null,
- // Other example values:
- // - [
- // "cloud.google.com/go/kms@v1.1.0"
- // ]
-
- // Rate limit applied when making background API requests to the configured Go module proxies.
- "rateLimit": {
- "enabled": true,
- "requestsPerHour": 57600
- },
-
- // The list of Go module proxy URLs to fetch modules from. 404 Not found or 410 Gone responses will result in the next URL to be attempted.
- "urls": [
- "https://proxy.golang.org"
- ]
- // Other example values:
- // - [
- // "https://athens.mycorp.org",
- // "https://proxy.golang.org"
- // ]
-}
-```
diff --git a/docs/admin/external_service/jvm.mdx b/docs/admin/external_service/jvm.mdx
deleted file mode 100644
index 495c6f52c..000000000
--- a/docs/admin/external_service/jvm.mdx
+++ /dev/null
@@ -1,91 +0,0 @@
-# JVM dependencies
-
-This feature is experimental and might change or be removed in the future.
-
-
-Site admins can sync JVM dependencies from any Maven repository, including Maven Central, Sonatype, or Artifactory, to their Sourcegraph instance so that users can search and navigate the repositories.
-
-To add JVM dependencies to Sourcegraph you need to setup a JVM dependencies code host:
-
-1. As *site admin*: go to **Site admin > Site configuration** and enable the experimental feature by adding: `{"experimentalFeatures": {"jvmPackages": "enabled"} }`
-1. As *site admin*: go to **Site admin > Manage code hosts**
-1. Select **JVM Dependencies**.
-1. [Configure the connection](#configuration) by following the instructions above the text field. Additional fields can be added using `Cmd/Ctrl+Space` for auto-completion. See the [configuration documentation below](#configuration).
-1. Press **Add repositories**.
-
-## Repository syncing
-
-There are two ways to sync JVM dependency repositories.
-
-* **Indexing** (recommended): run [`scip-java`](https://sourcegraph.github.io/scip-java/) against your JVM codebase and upload the generated index to Sourcegraph using the [src-cli](https://github.com/sourcegraph/src-cli) command `src code-intel upload`. This is usually setup to run in a CI pipeline. Sourcegraph automatically synchronizes JVM dependency repositories based on the dependencies that are discovered by `scip-java`.
-* **Code host configuration**: manually list dependencies in the `"dependencies"` section of the [JSON configuration](#configuration) when creating the JVM dependency code host. This method can be useful to verify that the credentials are picked up correctly without having to upload an index.
-
-## Credentials
-
-Sourcegraph uses [Coursier](https://get-coursier.io/) to resolve JVM dependencies.
-Use the `"credentials"` section of the JSON configuration to provide usernames and passwords to access your Maven repository. See the Coursier documentation about [inline credentials](https://get-coursier.io/docs/other-credentials#inline) to learn more about how to format the `"credentials"` configuration, or the example displayed at the bottom of the page.
-
-## Rate limiting
-
-By default, requests to the JVM dependency code host will be rate-limited
-based on a default internal limit. ([source](https://github.com/sourcegraph/sourcegraph/blob/main/schema/jvm-packages.schema.json))
-
-To manually set the value, add the following to your code host configuration:
-
-```json
-"rateLimit": {
- "enabled": true,
- "requestsPerHour": 600
-}
-```
-
-where the `requestsPerHour` field is set based on your requirements.
-
-**Not recommended**: Rate-limiting can be turned off entirely as well.
-This increases the risk of overloading the code host.
-
-```json
-"rateLimit": {
- "enabled": false
-}
-```
-
-## Configuration
-
-JVM dependencies code host connections support the following configuration options, which are specified in the JSON editor in the site admin "Manage code hosts" area.
-
-{/* [View page on docs.sourcegraph.com](https://docs.sourcegraph.com/admin/external_service/jvm) to see rendered content.
*/}
-
-### admin/external_service/jvm-packages.schema.json
-
-```json
-{
- // Configuration for resolving from Maven repositories.
- "maven": {
- "credentials": "",
- "dependencies": [],
- "rateLimit": {
- "enabled": true,
- "requestsPerHour": 7200
- },
- "repositories": []
- }
- // Other example values:
- // - {
- // "maven": {
- // "credentials": "jfrog.frogger.com myuser:supersecret\njfrogmirror.frogger.com(basicauth realm) frog:detective",
- // "dependencies": [
- // "com.sourcegraph:semanticdb-kotlinc:0.1.1"
- // ],
- // "rateLimit": {
- // "enabled": true,
- // "requestsPerHour": 3600
- // },
- // "repositories": [
- // "central",
- // "http://repo.extendedclip.com/content/repositories/public/"
- // ]
- // }
- // }
-}
-```
diff --git a/docs/admin/external_service/npm.mdx b/docs/admin/external_service/npm.mdx
deleted file mode 100644
index d34e49b39..000000000
--- a/docs/admin/external_service/npm.mdx
+++ /dev/null
@@ -1,83 +0,0 @@
-# npm dependencies
-
-This feature is experimental and might change or be removed in the future.
-
-Site admins can sync npm packages from any npm registry, including open source code from npmjs.com or a private registry such as Verdaccio, to their Sourcegraph instance so that users can search and navigate the repositories.
-
-To add npm dependencies to Sourcegraph you need to setup an npm dependencies code host:
-
-1. As *site admin*: go to **Site admin > Global settings** and enable the experimental feature by adding: `{"experimentalFeatures": {"npmPackages": "enabled"} }`
-1. As *site admin*: go to **Site admin > Manage code hosts**
-1. Select **npm Dependencies**.
-1. [Configure the connection](#configuration) by following the instructions above the text field. Additional fields can be added using `Cmd/Ctrl+Space` for auto-completion. See the [configuration documentation below](#configuration).
-1. Press **Add repositories**.
-
-## Repository syncing
-
-There are three ways to sync npm dependency repositories.
-
-* **SCIP** (recommended): run [`scip-typescript`](https://github.com/sourcegraph/scip-typescript) on your JavaScript/TypeScript codebase and upload the generated index to Sourcegraph using the [src-cli](https://github.com/sourcegraph/src-cli) command `src code-intel upload`. Sourcegraph automatically synchronizes npm dependency repositories based on the dependencies that are discovered by `scip-typescript`.
-* **Code host configuration**: manually list dependencies in the `"dependencies"` section of the JSON configuration when creating the npm dependency code host. This method can be useful to verify that the credentials are picked up correctly without having to upload an index.
-
-## Credentials
-
-Use the `"credentials"` section of the JSON configuration to provide an access token for your private npm registry. See the [official npm documentation](https://docs.npmjs.com/about-access-tokens) for more details about how to create, list and view npm access tokens.
-
-## Rate limiting
-
-By default, requests to the npm registry will be rate-limited based on a default [internal limit](https://github.com/sourcegraph/sourcegraph/blob/main/schema/npm-packages.schema.json) which complies with the [documented acceptable use policy](https://docs.npmjs.com/policies/open-source-terms#acceptable-use) of registry.npmjs.org (i.e. max 5 million requests per month).
-
-```json
-"rateLimit": {
- "enabled": true,
- "requestsPerHour": 3000
-}
-```
-
-where the `requestsPerHour` field is set based on your requirements.
-
-**Not recommended**: Rate-limiting can be turned off entirely as well.
-This increases the risk of overloading the code host.
-
-```json
-"rateLimit": {
- "enabled": false
-}
-```
-
-## Configuration
-
-npm dependencies code host connections support the following configuration options, which are specified in the JSON editor in the site admin "Manage code hosts" area.
-
-{/* [View page on docs.sourcegraph.com](https://docs.sourcegraph.com/integration/npm) to see rendered content.
*/}
-
-### admin/external_service/npm-packages.schema.json
-
-```json
-{
- // Access token for logging into the npm registry.
- "credentials": "",
- // Other example values:
- // - "CRs5VaTVbR7pBPcVpaxwQeafrYOId7IdVUiZCkFCqnw="
-
- // An array of "(@scope/)?packageName@version" strings specifying which npm packages to mirror on Sourcegraph.
- "dependencies": null,
- // Other example values:
- // - ["react@17.0.2"]
- // - [
- // "react@latest",
- // "@types/lodash@4.14.177"
- // ]
-
- // Rate limit applied when making background API requests to the npm registry.
- "rateLimit": {
- "enabled": true,
- "requestsPerHour": 6000
- },
-
- // The URL at which the npm registry can be found.
- "registry": "https://registry.npmjs.org"
- // Other example values:
- // - "https://npm-registry.mycompany.com"
-}
-```
diff --git a/docs/admin/external_service/package-repos.mdx b/docs/admin/external_service/package-repos.mdx
deleted file mode 100644
index ad4979eb7..000000000
--- a/docs/admin/external_service/package-repos.mdx
+++ /dev/null
@@ -1,49 +0,0 @@
-# Package repositories
-
-This feature is experimental and might change or be removed in the future.
-
-Sourcegraph package repos can synchronize dependency sources (Rust crates, JVM libraries, Node.js packages, Ruby gems, and more) from public and private artifact hosts (such as NPM, Artifactory etc).
-
-## Enable package repositories
-
-Package repositories can be enabled on a per-ecosystem level in your [site configuration](/admin/config/site_config), for example:
-
-```json
-{
- // ...
- "experimentalFeatures": {
- "jvmPackages": "enabled",
- "goPackagse": "enabled",
- "npmPackages": "enabled",
- "pythonPackagse": "disabled",
- "rubyPackages": "disabled",
- "rustPacakges": "enabled"
- }
- // ...
-}
-```
-
-## Repository syncing
-
-There are generally two ways of syncing package repositories to the Sourcegraph instance.
-
-1. **Indexing** (recommended): package repositories can be added to the Sourcegraph instance when they are referenced in [code graph data uploads](/code-search/code-navigation/explanations/uploads). Code graph indexers can derive package repository references during indexing, which will be used on upload to sync them to your instance. An external service for the given ecosystem must be created in order for these referenced package repositories to be synchronized.
-2. **Code host configuration**: each package repository external service supports manually defining versions of packages to sync. See the page specific to the ecosystem you wish to configure. This method can be useful to verify that the credentials are picked up correctly without having to upload an index, as we'll as to poke holes in the filters (detailed below) if necessary.
-
-## Filters
-
-Package repository filters allow you to limit the package repositories and versions that are synced to the Sourcegraph instance. Using glob patterns, you can block or allow certain package repositories or versions on a per-ecosystem level.
-
-There are two kinds of filters:
-
-1. **Package name filters**: these filters match a glob pattern against a package repository's name, and will apply to all versions of matching package repositories.
-2. **Package version filters**: these filters match a glob pattern against versions for a specific package repository. It cannot apply to multiple package repositories.
-
-Filters can also have one of two behaviours:
-
-1. **Block filters**: package repositories or versions matching these filters won't be synced.
-2. **Allow filters**: only package repositories or versions matching these filters (that don't match a block filter) will be synced.
-
-Having no configured _allow_ filters implicitly allows everything. _Block_ filters have priority over _allow_ filters (a blocked package or version will not be synced even if it is explicitly allowed).
-
-Package repository filter updates may require a few minutes to propagate through the system. The blocked status of a package repository will be updated in the UI and the relevant external service may add or remove repositories after syncing (visible in the site-admin page for the external service).
diff --git a/docs/admin/external_service/phabricator.mdx b/docs/admin/external_service/phabricator.mdx
deleted file mode 100644
index 20513ee6f..000000000
--- a/docs/admin/external_service/phabricator.mdx
+++ /dev/null
@@ -1,87 +0,0 @@
-# Phabricator
-
-Site admins can associate Git repositories on [Phabricator](https://phabricator.org) with Sourcegraph so that users can jump to the Phabricator repository from Sourcegraph and use the [Phabricator extension](#native-extension) and [browser extension](/integration/browser_extension) with Phabricator.
-
-> ⚠️ NOTE: Sourcegraph support of Phabricator is limited ([learn more](/integration/phabricator)), and not expected to evolve due to the [announced](https://admin.phacility.com/phame/post/view/11/phacility_is_winding_down_operations/) cease of support for Phabricator.
-
-To connect Phabricator to Sourcegraph:
-
-1. Go to **Site admin > Manage code hosts > Add repositories**
-1. Select **Phabricator**.
-1. Configure the connection to Phabricator using the action buttons above the text field, and additional fields can be added using `Cmd/Ctrl+Space` for auto-completion. See the [configuration documentation below](#configuration).
-1. Press **Add repositories**.
-
-## Repository association
-
-Sourcegraph can provide users with links to various Phabricator pages (for files, commits, branches, etc.) if you add Phabricator as a connection (in **Site admin > Manage code hosts**).
-
-A Phabricator configuration consists of the following fields:
-
-- `url` field that maps to the url of the Phabricator host
-- `token` an optional Conduit API token, which you may generate from the Phabricator web interface. The token is used to fetch the list of repos available on the Phabricator installation
-- `repos` if your Phabricator installation mirrors repositories from a different origin than Sourcegraph, you must specify a list of repository `path`s (as displayed on Sourcegraph) and their corresponding Phabricator `callsign`s. For example: `[{ path: 'gitolite.example.org/foobar', callsign: 'FOO'}]`. _Note that the `callsign` is case sensitive._
-
-At least one of `token` and `repos` should be provided.
-
-For example:
-
-```json
-{
- // ...
- "phabricator": [
- {
- "url": "https://phabricator.example.com",
- "token": "api-abcdefghijklmnop",
- "repos": [{ "path": "gitolite.example.com/mux", "callsign": "MUX" }]
- }
- ]
- // ...
-}
-```
-
-See [configuration documentation](#configuration) below for more information.
-
-### Troubleshooting
-
-If your outbound links to Phabricator are not present or not working, verify your Sourcegraph repository path matches the "normalized" URI output by Phabricator's `diffusion.repository.search` conduit API.
-
-For example, if you have a repository on Sourcegraph whose URL is `https://sourcegraph.example.com/path/to/repo` then you should see a URI returned from `diffusion.repository.search` whose `normalized` field is `path/to/repo`. Check this by navigating to `$PHABRICATOR_URL/conduit/method/diffusion.repository.search/` and use the "Call Method" form with `attachments` field set to `{ "uris": true }` and `constraints` field set to `{ "callsigns": ["$CALLSIGN_FOR_REPO_ON_SOURCEGRAPH"]}`. In the generated output, verify that the first URI has a normalized path equal to `path/to/repo`.
-
-## Native extension
-
-For production usage, we recommend installing the Sourcegraph Phabricator extension for all users (so that each user doesn't need to install the browser extension individually). This involves adding a new extension to the extension directory of your Phabricator instance.
-
-See the [phabricator-extension](https://github.com/sourcegraph/phabricator-extension) repository for installation instructions and configuration settings.
-
-The Sourcegraph instance's site admin must [update the `corsOrigin` site config property](/admin/config/site_config) to allow the Phabricator extension to communicate with the Sourcegraph instance. For example:
-
-```json
-{
- // ...
- "corsOrigin":
- "https://my-phabricator.example.com"
- // ...
-}
-```
-
-## Configuration
-
-{/* [View page on docs.sourcegraph.com](https://docs.sourcegraph.com/admin/external_service/phabricator) to see rendered content.
*/}
-
-### admin/external_service/phabricator.schema.json
-
-
-```json
-{
- // The list of repositories available on Phabricator.
- "repos": null,
-
- // API token for the Phabricator instance.
- "token": null,
-
- // URL of a Phabricator instance, such as https://phabricator.example.com
- "url": null
- // Other example values:
- // - "https://phabricator.example.com"
-}
-```
diff --git a/docs/admin/external_service/python.mdx b/docs/admin/external_service/python.mdx
deleted file mode 100644
index 5244bc413..000000000
--- a/docs/admin/external_service/python.mdx
+++ /dev/null
@@ -1,83 +0,0 @@
-# Python dependencies
-
-This feature is experimental and might change or be removed in the future.
-
-Site admins can sync Python packages from any Python package mirror, including open source code from pypi.org or a private mirror such as [Nexus](https://www.sonatype.com/products/nexus-repository), to their Sourcegraph instance so that users can search and navigate the repositories.
-
-To add Python dependencies to Sourcegraph you need to setup a Python dependencies code host:
-
-1. As *site admin*: go to **Site admin > Global settings** and enable the experimental feature by adding: `{"experimentalFeatures": {"pythonPackages": "enabled"} }`
-1. As *site admin*: go to **Site admin > Manage code hosts**
-1. Select **Python Dependencies**.
-1. [Configure the connection](#configuration) by following the instructions above the text field. Additional fields can be added using `Cmd/Ctrl+Space` for auto-completion. See the [configuration documentation below](#configuration).
-1. Press **Add repositories**.
-
-## Repository syncing
-
-There are currently two ways to sync Python dependency repositories.
-
-* **Code host configuration**: manually list dependencies in the `"dependencies"` section of the JSON configuration when creating the Python dependency code host. This method can be useful to verify that the credentials are picked up correctly without having to run a dependencies search.
-
-Sourcegraph tries to find each dependency repository in all configured `"urls"` until it's found. This means you can configure a public mirror first and fallback to a private one second (e.g. `"urls": ["https://pypi.org", "https://admin:foobar@nexus.yourcorp.com"]`).
-
-## Credentials
-
-Each entry in the `"urls"` array can contain basic auth if needed (e.g. `https://user:password@nexus.yourcorp.com`).
-
-## Rate limiting
-
-By default, requests to the Python package mirrors will be rate-limited based on a default internal limit. ([source](https://github.com/sourcegraph/sourcegraph/blob/main/schema/python-packages.schema.json))
-
-```json
-"rateLimit": {
- "enabled": true,
- "requestsPerHour": 57600
-}
-```
-
-where the `requestsPerHour` field is set based on your requirements.
-
-**Not recommended**: Rate-limiting can be turned off entirely as well.
-This increases the risk of overloading the proxy.
-
-```json
-"rateLimit": {
- "enabled": false
-}
-```
-
-## Configuration
-
-Python dependencies code host connections support the following configuration options, which are specified in the JSON editor in the site admin "Manage code hosts" area.
-
-{/* [View page on docs.sourcegraph.com](https://docs.sourcegraph.com/integration/python) to see rendered content.
*/}
-
-### admin/external_service/python-packages.schema.json
-
-```json
-{
- // An array of strings specifying Python packages to mirror in Sourcegraph.
- "dependencies": null,
- // Other example values:
- // - [
- // "numpy==1.22.3",
- // "pytorch==1.0.2"
- // ]
-
- // Rate limit applied when making background API requests to the configured Python simple repository APIs.
- "rateLimit": {
- "enabled": true,
- "requestsPerHour": 57600
- },
-
- // The list of Python simple repository URLs to fetch packages from. 404 Not found or 410 Gone responses will result in the next URL to be attempted.
- "urls": [
- "https://pypi.org/simple"
- ]
- // Other example values:
- // - [
- // "https://private.mycorp.org/simple",
- // "https://pypi.org/simple"
- // ]
-}
-```
diff --git a/docs/admin/external_service/ruby.mdx b/docs/admin/external_service/ruby.mdx
deleted file mode 100644
index 17a607597..000000000
--- a/docs/admin/external_service/ruby.mdx
+++ /dev/null
@@ -1,80 +0,0 @@
-# Ruby dependencies
-
-This feature is experimental and might change or be removed in the future.
-
-
-Site admins can sync Ruby dependencies from any RubyGems repositories, including rubygems.org or an internal Artifactory, to their Sourcegraph instance so that users can search and navigate the repositories.
-
-To add Ruby dependencies to Sourcegraph you need to setup a Ruby dependencies code host:
-
-1. As *site admin*: go to **Site admin > Global settings** and enable the experimental feature by adding: `{"experimentalFeatures": {"rubyPackages": "enabled"} }`
-1. As *site admin*: go to **Site admin > Manage code hosts**
-1. Select **Ruby Dependencies**.
-1. [Configure the connection](#configuration) by following the instructions above the text field. Additional fields can be added using `Cmd/Ctrl+Space` for auto-completion. See the [configuration documentation below](#configuration).
-1. Press **Add repositories**.
-
-## Repository syncing
-
-There are two ways to sync Ruby dependency repositories.
-
-* **Indexing** (recommended): run [`scip-ruby`](https://sourcegraph.github.io/scip-ruby/) against your Ruby codebase and upload the generated index to Sourcegraph using the [src-cli](https://github.com/sourcegraph/src-cli) command `src code-intel upload`. This is usually setup to run in a CI pipeline. Sourcegraph automatically synchronizes Ruby dependency repositories based on the dependencies that are discovered by `scip-ruby`.
-* **Code host configuration**: manually list dependencies in the `"dependencies"` section of the [JSON configuration](#configuration) when creating the Ruby dependency code host. This method can be useful to verify that the credentials are picked up correctly without having to upload an index.
-
-## Credentials
-
-The `"repository"` field in the [configuration](#configuration) section is automatically redacted and can optionally include the username and password of an internal [Artifactory RubyGems](https://www.jfrog.com/confluence/display/JFROG/RubyGems+Repositories) repository.
-
-## Rate limiting
-
-By default, requests to the RubyGems repository is 8 request per second.
-
-To manually set the value, add the following to your code host configuration:
-
-```json
-"rateLimit": {
- "enabled": true,
- "requestsPerHour": 600
-}
-```
-
-where the `requestsPerHour` field is set based on your requirements.
-
-**Not recommended**: Rate-limiting can be turned off entirely as well.
-This increases the risk of overloading the code host.
-
-```json
-"rateLimit": {
- "enabled": false
-}
-```
-
-## Configuration
-
-Ruby dependencies code host connections support the following configuration options, which are specified in the JSON editor in the site admin "Manage code hosts" area.
-
-{/* [View page on docs.sourcegraph.com](https://docs.sourcegraph.com/integration/ruby) to see rendered content.
*/}
-
-### admin/external_service/ruby-packages.schema.json
-
-```json
-{
- // An array of strings specifying Ruby packages to mirror in Sourcegraph.
- "dependencies": null,
- // Other example values:
- // - ["shopify_api@12.0.0"]
-
- // Rate limit applied when making background API requests to the configured Ruby repository APIs.
- "rateLimit": {
- "enabled": true,
- "requestsPerHour": 3600
- },
-
- // The URL at which the maven repository can be found.
- "repository": [
- "https://rubygems.org/"
- ]
- // Other example values:
- // - "https://rubygems.org/"
- // - "https://\u003cserver name\u003e.jfrog.io/artifactory/api/gems/\u003crepository key\u003e"
-}
-```
diff --git a/docs/admin/external_service/rust.mdx b/docs/admin/external_service/rust.mdx
deleted file mode 100644
index 7bc993373..000000000
--- a/docs/admin/external_service/rust.mdx
+++ /dev/null
@@ -1,83 +0,0 @@
-# Rust dependencies
-
-This feature is experimental and might change or be removed in the future.
-
-
-Site admins can sync Rust dependencies from any Cargo repository, including crates.io or an internal Artifactory, to their Sourcegraph instance so that users can search and navigate their dependencies.
-
-To add Rust dependencies to Sourcegraph you need to setup a Rust dependencies code host:
-
-1. As *site admin*: go to **Site admin > Global settings** and enable the experimental feature by adding: `{"experimentalFeatures": {"rustPackages": "enabled"} }`
-1. As *site admin*: go to **Site admin > Manage code hosts**
-1. Select **Rust Dependencies**.
-1. [Configure the connection](#configuration) by following the instructions above the text field. Additional fields can be added using `Cmd/Ctrl+Space` for auto-completion. See the [configuration documentation below](#configuration).
-1. Press **Add repositories**.
-
-## Repository syncing
-
-There are two ways to sync Rust dependency repositories.
-
-* **Indexing** (recommended): run [`scip-rust`](https://sourcegraph.github.io/scip-rust/) against your Rust codebase and upload the generated index to Sourcegraph using the [src-cli](https://github.com/sourcegraph/src-cli) command `src code-intel upload`. This is usually setup to run in a CI pipeline. Sourcegraph automatically synchronizes Rust dependency repositories based on the dependencies that are discovered by `scip-rust`.
-* **Code host configuration**: manually list dependencies in the `"dependencies"` section of the [JSON configuration](#configuration) when creating the Rust dependency code host. This method can be useful to verify that the credentials are picked up correctly without having to upload an index.
-
-## Credentials
-
-The `"repository"` field in the [configuration](#configuration) section is automatically redacted and can optionally include the username and password of an internal [Artifactory Cargo](https://www.jfrog.com/confluence/display/JFROG/Cargo+Repositories) repository.
-
-## Rate limiting
-
-By default, requests to the Cargo repository is 8 request per second.
-
-To manually set the value, add the following to your code host configuration:
-
-```json
-"rateLimit": {
- "enabled": true,
- "requestsPerHour": 600
-}
-```
-
-where the `requestsPerHour` field is set based on your requirements.
-
-**Not recommended**: Rate-limiting can be turned off entirely as well.
-This increases the risk of overloading the code host.
-
-```json
-"rateLimit": {
- "enabled": false
-}
-```
-
-## Configuration
-
-Rust dependencies code host connections support the following configuration options, which are specified in the JSON editor in the site admin "Manage code hosts" area.
-
-{/* [View page on docs.sourcegraph.com](https://docs.sourcegraph.com/integration/rust) to see rendered content.
*/}
-
-### admin/external_service/rust-packages.schema.json
-
-```json
-{
- // An array of strings specifying Rust packages to mirror in Sourcegraph.
- "dependencies": null,
- // Other example values:
- // - ["ripgrep@13.0.0"]
-
- // Name of the git repository containing the crates.io index. Only set if you intend to sync every crate from the index. Updating this setting does not trigger a sync immediately, you must wait until the next scheduled sync for the value to get picked up.
- "indexRepositoryName": null,
- // Other example values:
- // - "github.com/crates.io/index"
-
- // How frequently to sync with the index repository. String formatted as a Go time.Duration. The Sourcegraph server needs to be restarted to pick up a new value of this configuration option.
- "indexRepositorySyncInterval": "12h",
- // Other example values:
- // - "12h"
- // - "10s"
-
- // Rate limit applied when making background API requests to the configured Rust repository APIs.
- "rateLimit": {
- "enabled": true,
- "requestsPerHour": 3600
- }
-}
-```
diff --git a/docs/admin/external_services/object_storage.mdx b/docs/admin/external_services/object_storage.mdx
index 91d3c6766..5138fd409 100644
--- a/docs/admin/external_services/object_storage.mdx
+++ b/docs/admin/external_services/object_storage.mdx
@@ -1,16 +1,21 @@
# Using a managed object storage service (S3 or GCS)
-By default, Sourcegraph will use a `sourcegraph/blobstore` server bundled with the instance to temporarily store code graph indexes uploaded by users.
+By default, Sourcegraph will use a `sourcegraph/blobstore` server bundled with the instance to temporarily store [code graph indexes](../../code-search/code-navigation/precise_code_navigation) uploaded by users as well as the results of [search jobs](../../code-search/types/search-jobs).
You can alternatively configure your instance to instead store this data in an S3 or GCS bucket. Doing so may decrease your hosting costs as persistent volumes are often more expensive than the same storage space in an object store service.
-To target a managed object storage service, you will need to set a handful of environment variables for configuration and authentication to the target service. **If you are running a sourcegraph/server deployment, set the environment variables on the server container. Otherwise, if running via Docker-compose or Kubernetes, set the environment variables on the `frontend`, `worker`, and `precise-code-intel-worker` containers.**
+## Code Graph Indexes
+
+To target a managed object storage service for storing [code graph index uploads](../../code-search/code-navigation/precise_code_navigation), you will need to set a handful of environment variables for configuration and authentication to the target service.
+
+- If you are running a `sourcegraph/server` deployment, set the environment variables on the server container
+- If you are running via Docker-compose or Kubernetes, set the environment variables on the `frontend`, `worker`, and `precise-code-intel-worker` containers
### Using S3
To target an S3 bucket you've already provisioned, set the following environment variables. Authentication can be done through [an access and secret key pair](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys) (and optional session token), or via the EC2 metadata API.
-**_Warning:_** Remember never to commit aws access keys in git. Consider using a secret handling service offered by your cloud provider.
+ Never commit AWS access keys in Git. You should consider using a secret handling service offered by your cloud provider.
- `PRECISE_CODE_INTEL_UPLOAD_BACKEND=S3`
- `PRECISE_CODE_INTEL_UPLOAD_BUCKET=`
@@ -21,9 +26,9 @@ To target an S3 bucket you've already provisioned, set the following environment
- `PRECISE_CODE_INTEL_UPLOAD_AWS_USE_EC2_ROLE_CREDENTIALS=true` (optional; set to use EC2 metadata API over static credentials)
- `PRECISE_CODE_INTEL_UPLOAD_AWS_REGION=us-east-1` (default)
-**_Note:_** If a non-default region is supplied, ensure that the subdomain of the endpoint URL (_the `AWS_ENDPOINT` value_) matches the target region.
+ If a non-default region is supplied, ensure that the subdomain of the endpoint URL (_the `AWS_ENDPOINT` value_) matches the target region.
-> NOTE: You don't need to set the `PRECISE_CODE_INTEL_UPLOAD_AWS_ACCESS_KEY_ID` environment variable when using `PRECISE_CODE_INTEL_UPLOAD_AWS_USE_EC2_ROLE_CREDENTIALS=true` because role credentials will be automatically resolved. Attach the IAM role to the EC2 instances hosting the `frontend`, `worker`, and `precise-code-intel-worker` containers in a multi-node environment.
+ You don't need to set the `PRECISE_CODE_INTEL_UPLOAD_AWS_ACCESS_KEY_ID` environment variable when using `PRECISE_CODE_INTEL_UPLOAD_AWS_USE_EC2_ROLE_CREDENTIALS=true` because role credentials will be automatically resolved. Attach the IAM role to the EC2 instances hosting the `frontend`, `worker`, and `precise-code-intel-worker` containers in a multi-node environment.
### Using GCS
@@ -42,3 +47,45 @@ If you would like to allow your Sourcegraph instance to control the creation and
- `PRECISE_CODE_INTEL_UPLOAD_MANAGE_BUCKET=true`
- `PRECISE_CODE_INTEL_UPLOAD_TTL=168h` (default)
+
+## Search Job Results
+
+To target a third party managed object storage service for storing [search job results](../../code-search/types/search-jobs), you must set a handful of environment variables for configuration and authentication to the target service.
+
+- If you are running a `sourcegraph/server` deployment, set the environment variables on the server container
+- If you are running via Docker-compose or Kubernetes, set the environment variables on the `frontend` and `worker` containers
+
+### Using S3
+
+Set the following environment variables to target an S3 bucket you've already provisioned. Authentication can be done through [an access and secret key pair](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys) (and optionally through session token) or via the EC2 metadata API.
+
+ Never commit AWS access keys in Git. You should consider using a secret handling service offered by your cloud provider.
+
+- `SEARCH_JOBS_UPLOAD_BACKEND=S3`
+- `SEARCH_JOBS_UPLOAD_BUCKET=`
+- `SEARCH_JOBS_UPLOAD_AWS_ENDPOINT=https://s3.us-east-1.amazonaws.com`
+- `SEARCH_JOBS_UPLOAD_AWS_ACCESS_KEY_ID=`
+- `SEARCH_JOBS_UPLOAD_AWS_SECRET_ACCESS_KEY=`
+- `SEARCH_JOBS_UPLOAD_AWS_SESSION_TOKEN=` (optional)
+- `SEARCH_JOBS_UPLOAD_AWS_USE_EC2_ROLE_CREDENTIALS=true` (optional; set to use EC2 metadata API over static credentials)
+- `SEARCH_JOBS_UPLOAD_AWS_REGION=us-east-1` (default)
+
+ If a non-default region is supplied, ensure that the subdomain of the endpoint URL (the `AWS_ENDPOINT` value) matches the target region.
+
+ You don't need to set the `SEARCH_JOBS_UPLOAD_AWS_ACCESS_KEY_ID` environment variable when using `SEARCH_JOBS_UPLOAD_AWS_USE_EC2_ROLE_CREDENTIALS=true` because role credentials will be automatically resolved.
+
+### Using GCS
+
+Set the following environment variables to target a GCS bucket you've already provisioned. Authentication is done through a service account key, either as a path to a volume-mounted file or the contents read in as an environment variable payload.
+
+- `SEARCH_JOBS_UPLOAD_BACKEND=GCS`
+- `SEARCH_JOBS_UPLOAD_BUCKET=`
+- `SEARCH_JOBS_UPLOAD_GCP_PROJECT_ID=`
+- `SEARCH_JOBS_UPLOAD_GOOGLE_APPLICATION_CREDENTIALS_FILE=`
+- `SEARCH_JOBS_UPLOAD_GOOGLE_APPLICATION_CREDENTIALS_FILE_CONTENT=<{"my": "content"}>`
+
+### Provisioning buckets
+
+If you would like to allow your Sourcegraph instance to control the creation and lifecycle configuration management of the target buckets, set the following environment variables:
+
+- `SEARCH_JOBS_UPLOAD_MANAGE_BUCKET=true`
\ No newline at end of file
diff --git a/docs/admin/external_services/postgres.mdx b/docs/admin/external_services/postgres.mdx
index efa2464fb..a48e298d8 100644
--- a/docs/admin/external_services/postgres.mdx
+++ b/docs/admin/external_services/postgres.mdx
@@ -1,10 +1,12 @@
+import { CURRENT_VERSION_STRING_NO_V, CURRENT_VERSION_STRING } from 'src/components/PreCodeBlock'
+
# Using your own PostgreSQL server
-You can use your own PostgreSQL v12+ server with Sourcegraph if you wish. For example, you may prefer this if you already have existing backup infrastructure around your own PostgreSQL server, wish to use Amazon RDS, etc.
+You can use your own PostgreSQL v16+ server with Sourcegraph if you wish. For example, you may prefer this if you already have existing backup infrastructure around your own PostgreSQL server, wish to use Amazon RDS, etc.
Please review the [PostgreSQL](/admin/postgres) documentation for a complete list of requirements.
-As of version 3.39.0, codeinsights-db no longer relies on the internal TimescaleDB and can be externalized.
+As of version 6.0.0 The Sourcegraph application will require PostgreSQL v16+, earlier versions worked with 12 or greater.
## General recommendations
@@ -53,7 +55,7 @@ docker run [...]
-e CODEINTEL_PGPASSWORD=secret
-e CODEINTEL_PGDATABASE=sourcegraph-codeintel
-e CODEINTEL_PGSSLMODE=require
-sourcegraph/server:5.3.9104
+sourcegraph/server:{CURRENT_VERSION_NO_V}
```
### Docker Compose
@@ -87,7 +89,7 @@ You are then free to remove the now unused `pgsql` and `codeintel-db` services a
### Version requirements
-Please refer to our [Postgres](https://docs.sourcegraph.com/admin/postgres) documentation to learn about version requirements.
+Please refer to our [Postgres](/admin/postgres) documentation to learn about version requirements.
### Caveats
@@ -120,7 +122,7 @@ In order to enable IAM Auth, you first need to:
- For EKS (k8s deployment), use [IAM roles for service accounts](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html)
- For EC2 (docker-compose deployment), use [IAM roles for Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html)
-For [every services that require postgres database connection](https://github.com/sourcegraph/sourcegraph/blob/main/lib/servicecatalog/service-catalog.yaml), ensure below environment variables are configured:
+For [every services that require postgres database connection](https://github.com/sourcegraph/sourcegraph-public-snapshot/blob/main/lib/servicecatalog/service-catalog.yaml), ensure below environment variables are configured:
- `PG_CONNECTION_UPDATER=EC2_ROLE_CREDENTIALS`
- `PGSSLMODE=require`
@@ -148,7 +150,7 @@ When [PgBouncer] is used, we need to include `statement_cache_mode=describe` in
Add the following to your `docker run` command:
-docker run [...] -e PGDATASOURCE="postgres://username:password@sourcegraph-pgbouncer.mycompany.com:5432/sg?statement_cache_mode=describe" -e CODEINSIGHTS_PGDATASOURCE="postgres://username:password@sourcegraph-codeintel-pgbouncer.mycompany.com:5432/sg?statement_cache_mode=describe" sourcegraph/server:5.3.9104
+docker run [...] -e PGDATASOURCE="postgres://username:password@sourcegraph-pgbouncer.mycompany.com:5432/sg?statement_cache_mode=describe" -e CODEINSIGHTS_PGDATASOURCE="postgres://username:password@sourcegraph-codeintel-pgbouncer.mycompany.com:5432/sg?statement_cache_mode=describe" sourcegraph/server:{CURRENT_VERSION_STRING_NO_V()}
### Docker Compose
@@ -240,7 +242,7 @@ spec:
## Postgres Permissions and Database Migrations
-There is a tight coupling between the respective database service accounts for the Frontend DB, CodeIntel DB and Sourcegraph [database migrations](/dev/background-information/sql/migrations).
+There is a tight coupling between the respective database service accounts for the Frontend DB, CodeIntel DB and Sourcegraph [database migrations](https://docs-legacy.sourcegraph.com/dev/background-information/sql/migrations).
By default, the migrations that Sourcegraph runs expect `SUPERUSER` permissions. Sourcegraph migrations contain SQL that enable extensions and modify roles.
@@ -303,7 +305,7 @@ CREATE extension intarray;
After the database is configured, Sourcegraph will attempt to run migrations. There are a few migrations that may fail as they attempt to run actions that require `SUPERUSER` permissions.
-These failures must be interpreted by the database administrator and resolved using guidance from [How to Troubleshoot a Dirty Database](https://docs.sourcegraph.com/admin/how-to/dirty_database). Generally-speaking this will involve looking up the migration source code and manually applying the necessary SQL code.
+These failures must be interpreted by the database administrator and resolved using guidance from [How to Troubleshoot a Dirty Database](/admin/how-to/dirty_database). Generally-speaking this will involve looking up the migration source code and manually applying the necessary SQL code.
**Initial Schema Creation**
@@ -313,7 +315,7 @@ The first migration fails since it attempts to add `COMMENT`s to installed exten
failed to run migration for schema "frontend": failed upgrade migration 1528395834: ERROR: current transaction is aborted, commands ignored until end of transaction block (SQLSTATE 25P02)
```
-In this case, locate the UP [migration 1528395834](https://github.com/sourcegraph/sourcegraph/blob/main/migrations/frontend/1528395834_squashed_migrations.up.sql) and apply all SQL after the final `COMMENT ON EXTENSION` command following the [dirty database procedure](https://docs.sourcegraph.com/admin/how-to/dirty_database).
+In this case, locate the UP migration 1528395834 and apply all SQL after the final `COMMENT ON EXTENSION` command following the [dirty database procedure](/admin/how-to/dirty_database).
**Dropping the `sg_service` role**
@@ -361,7 +363,7 @@ CREATE extension intarray;
After the database is configured, Sourcegraph will attempt to run migrations, this time using the CodeIntel DB. There are a few migrations that may fail as they attempt to run actions that require `SUPERUSER` permissions.
-These failures must be intepreted by the database administrator and resolved using guidance from [How to Troubleshoot a Dirty Database](https://docs.sourcegraph.com/admin/how-to/dirty_database). Generally-speaking this will involve looking up the migration source code and manually applying the necessary SQL code. The `codeintel_schema_migrations` table should be consulted for dirty migrations in this case.
+These failures must be intepreted by the database administrator and resolved using guidance from [How to Troubleshoot a Dirty Database](/admin/how-to/dirty_database). Generally-speaking this will involve looking up the migration source code and manually applying the necessary SQL code. The `codeintel_schema_migrations` table should be consulted for dirty migrations in this case.
**Initial CodeIntel schema creation**
diff --git a/docs/admin/external_services/redis.mdx b/docs/admin/external_services/redis.mdx
index 62039f512..64e8ba37b 100644
--- a/docs/admin/external_services/redis.mdx
+++ b/docs/admin/external_services/redis.mdx
@@ -11,7 +11,7 @@ or follow the [IANA specification for Redis URLs](https://www.iana.org/assignmen
```
docker run [...]
-e REDIS_ENDPOINT=redis.mycompany.org:6379
- sourcegraph/server:5.3.9104
+sourcegraph/server:{CURRENT_VERSION}
```
> NOTE: On Mac/Windows, if trying to connect to a Redis server on the same host machine, remember that Sourcegraph is running inside a Docker container inside of the Docker virtual machine. You may need to specify your actual machine IP address and not `localhost` or `127.0.0.1` as that refers to the Docker VM itself.
@@ -20,9 +20,6 @@ If using Docker for Desktop, `host.docker.internal` will resolve to the host IP
## Kubernetes
-### Kubernetes with Helm
-[See the Helm Redis guidance here](/admin/deploy/kubernetes/helm#using-external-redis-instances)
-
### Kubernetes without Helm
- See our documentation for Kubernetes [here](/admin/deploy/kubernetes/configure#external-redis)
- **Related:** [How to Set a Password for Redis using a ConfigMap](/admin/how-to/redis_configmap)
diff --git a/docs/admin/faq.mdx b/docs/admin/faq.mdx
index aab9b8e18..411c4f3a5 100644
--- a/docs/admin/faq.mdx
+++ b/docs/admin/faq.mdx
@@ -11,7 +11,7 @@ The directories should contain just a few files and directories, namely: HEAD, c
## Does Sourcegraph support svn?
For Subversion and other non-Git code hosts, the recommended way to make these accessible in
-Sourcegraph is through [`src-expose`](/admin/external_service/other#experimental-src-expose).
+Sourcegraph is through [`src-expose`](/admin/code_hosts/other#experimental-src-expose).
Alternatively, you can use [`git-svn`](https://git-scm.com/docs/git-svn) or
[`svg2git`](https://github.com/svn-all-fast-export/svn2git) to convert Subversion repositories to
@@ -55,23 +55,23 @@ https://$SOURCEGRAPH_BASE_URL/healthz. Some users choose to set up their own ext
## Monitoring
-Please visit our [Observability Docs](https://docs.sourcegraph.com/admin/observability) for more in-depth information about observability in Sourcegraph.
+Please visit our [Observability Docs](/admin/observability) for more in-depth information about observability in Sourcegraph.
### What should I look at when my instance is having performance issues?
-Sourcegraph comes with built-in monitoring in the form of [Grafana](https://docs.sourcegraph.com/admin/observability/metrics#grafana), connected to [Prometheus](https://docs.sourcegraph.com/admin/observability/metrics#prometheus) for metrics and alerting.
+Sourcegraph comes with built-in monitoring in the form of [Grafana](/admin/observability/metrics#grafana), connected to [Prometheus](/admin/observability/metrics#prometheus) for metrics and alerting.
-Generally, Grafana should be the first stop you make when experiencing a system performance issue. From there you can look for system alerts or metrics that would provide you with more insights on what’s causing the performance issue. You can learn more about [accessing Grafana here](https://docs.sourcegraph.com/admin/observability/metrics#grafana).
+Generally, Grafana should be the first stop you make when experiencing a system performance issue. From there you can look for system alerts or metrics that would provide you with more insights on what’s causing the performance issue. You can learn more about [accessing Grafana here](/admin/observability/metrics#grafana).
### What are the key values/alerts to look for when looking at the Grafana Dashboard?
-Please refer to the [Dashboards](https://docs.sourcegraph.com/admin/observability/metrics#dashboards) guide for more on how to use our Grafana dashboards.
+Please refer to the [Dashboards](/admin/observability/metrics#dashboards) guide for more on how to use our Grafana dashboards.
-Please refer to [Understanding alerts](https://docs.sourcegraph.com/admin/observability/alerting#understanding-alerts) for examples and suggested actions for alerts.
+Please refer to [Understanding alerts](/admin/observability/alerting#understanding-alerts) for examples and suggested actions for alerts.
### How do I know when more resources are needed for a specified service?
-All resource dashboards contain a section called `Provisioning indicators` that provide information about the current resource usage of containers. These can be used to determine if a scale-up is needed ([example panel](https://docs.sourcegraph.com/admin/observability/dashboards#frontend-provisioning-container-cpu-usage-long-term)).
+All resource dashboards contain a section called `Provisioning indicators` that provide information about the current resource usage of containers. These can be used to determine if a scale-up is needed ([example panel](/admin/observability/dashboards#frontend-provisioning-container-cpu-usage-long-term)).
More information on each available panel in the dashboards is available in the [Dashboards reference](/admin/observability/dashboards).
@@ -81,7 +81,7 @@ See [Alert solutions](/admin/observability/alerts) to learn about each alert and
### What’s the threshold for each resource?
-All resources dashboards contain a section called `Container monitoring` that indicate thresholds at which alerts will fire for each resource ([example alert](https://docs.sourcegraph.com/admin/observability/alerts#frontend-container-cpu-usage)).
+All resources dashboards contain a section called `Container monitoring` that indicate thresholds at which alerts will fire for each resource ([example alert](/admin/observability/alerts#frontend-container-cpu-usage)).
More information on each available panel in the dashboards is available in the [Dashboards reference](/admin/observability/dashboards).
@@ -91,11 +91,11 @@ You should make the decision based on the metrics from the relevant Grafana dash
### What are some of the important alerts that I should be aware of?
-We recommend paying closer attention to [critical alerts](https://docs.sourcegraph.com/admin/observability/alerting#understanding-alerts).
+We recommend paying closer attention to [critical alerts](/admin/observability/alerting#understanding-alerts).
### How do I set up alerts?
-Please refer to our guide on [setting up alerting](https://docs.sourcegraph.com/admin/observability/alerting#setting-up-alerting).
+Please refer to our guide on [setting up alerting](/admin/observability/alerting#setting-up-alerting).
### How do I create a custom alert?
@@ -111,6 +111,21 @@ While it is technically possible to consume all of Sourcegraph's metrics in an e
Other monitoring systems that support Prometheus scraping (for example, Datadog and New Relic) or [Prometheus federation](https://prometheus.io/docs/prometheus/latest/federation/) can be configured to federate Sourcegraph's [high-level alerting metrics](/admin/observability/metrics#high-level-alerting-metrics). For information on how to configure those systems, please check your provider's documentation.
+The `/-/debug/grafana` endpoint is specifically designed for the built-in Grafana instance that comes with Sourcegraph. When using an external Grafana instance, this endpoint won't automatically redirect to your custom Grafana URL.
+
+To properly integrate your external Grafana and Prometheus instances with Sourcegraph, you'll want to:
+Ensure your configuration in values.yaml is correct:
+```
+frontend:
+ env:
+ GRAFANA_SERVER_URL:
+ value: https://grafana.mycompany.com
+ PROMETHEUS_URL:
+ value: http://prometheus.mycompany.com
+ ```
+
+You can then access your dashboards directly through your Grafana instance URL.
+
### I am getting "Error: Cluster information not available" in the Instrumentation page, what should I do?
This error is expected if your instance was not [deployed with Kubernetes](/admin/deploy/kubernetes/). The Instrumentation page is currently only available for Kubernetes instances.
diff --git a/docs/admin/how-to/dirty_database.mdx b/docs/admin/how-to/dirty_database.mdx
index 3f1adef7c..c0c30b9af 100644
--- a/docs/admin/how-to/dirty_database.mdx
+++ b/docs/admin/how-to/dirty_database.mdx
@@ -23,7 +23,7 @@ The target schema is marked as dirty and no other migration operation is seen ru
## Prerequisites
* This document assumes that you are installing Sourcegraph or were attempting an upgrade when an error occurred.
-* **NOTE: If you encountered this error during an upgrade, ensure you followed the [proper step upgrade process documented here.](https://docs.sourcegraph.com/admin/updates) If you skipped a minor version during an upgrade, you will need to revert back to the last minor version your instance was on before following the steps in this document.**
+* **NOTE: If you encountered this error during an upgrade, ensure you followed the [proper step upgrade process documented here.](/admin/updates) If you skipped a minor version during an upgrade, you will need to revert back to the last minor version your instance was on before following the steps in this document.**
The following procedure requires that you are able to execute commands from inside the database container. Learn more about shelling into [kubernetes](/admin/deploy/kubernetes/operations#access-the-database), [docker-compose](/admin/deploy/docker-compose/#access-the-database), and [Sourcegraph single-container](/admin/deploy/docker-single-container/#access-the-database) instances at these links.
@@ -80,11 +80,11 @@ ORDER BY version
### 2. Run the sql queries to finish incomplete migrations
-Migration definitions for each database schema can be found in the children of the [`migrations/` directory](https://github.com/sourcegraph/sourcegraph/tree/main/migrations).
+Migration definitions for each database schema can be found in the children of the [`migrations/` directory](https://github.com/sourcegraph/artifacts/tree/main/migrations).
**Find the target migration with the version number identified in [step 1](#1-identify-incomplete-migration)**.
-**Run the code from the identified `/up.sql` file explicitly using the `psql` CLI**. For example, if we take `version=1644515056` as an example, we can run the contents of [up migration file](https://github.com/sourcegraph/sourcegraph/blob/b20107113548ed7eeb8ba22d1fdb41e8d692cf18/migrations/frontend/1644515056/up.sql) via psql.
+**Run the code from the identified `/up.sql` file explicitly using the `psql` CLI**. For example, if we take `version=1644515056` as an example, we can run the contents of [up migration file](https://github.com/sourcegraph/sourcegraph-public-snapshot/blob/b20107113548ed7eeb8ba22d1fdb41e8d692cf18/migrations/frontend/1644515056/up.sql) via psql.
```bash
$ psql -h ... -U sg
@@ -111,7 +111,7 @@ If you're running into errors such as being unable to create a unique index due
- For Kubernetes: replace container args with `["add-log", "-db=", "-version="]`
- For Docker-compose: replace container args with `"add-log" "-db=" "-version="`
-- For local development: run `sg add-log -db= -version=` in a clone of [sourcegraph/sourcegraph](https://github.com/sourcegraph/sourcegraph)
+- For local development: run `sg add-log -db= -version=`
Adding this migration log entry indicates to future migrator and application instances that a complete application of the migration at that version has been run.
diff --git a/docs/admin/how-to/dirty_database_pre_3_37.mdx b/docs/admin/how-to/dirty_database_pre_3_37.mdx
index bd6a3db5b..df9f383d0 100644
--- a/docs/admin/how-to/dirty_database_pre_3_37.mdx
+++ b/docs/admin/how-to/dirty_database_pre_3_37.mdx
@@ -14,16 +14,16 @@ Resolving this error requires discovering which migration file failed to run, an
## Prerequisites
* This document assumes that you are installing Sourcegraph or were attempting an upgrade when an error occurred.
-* **NOTE: If you encountered this error during an upgrade, ensure you followed the [proper step upgrade process documented here.](https://docs.sourcegraph.com/admin/updates) If you skipped a minor version during an upgrade, you will need to revert back to the last minor version your instance was on before following the steps in this document.**
+* **NOTE: If you encountered this error during an upgrade, ensure you followed the [proper step upgrade process documented here.](/admin/updates) If you skipped a minor version during an upgrade, you will need to revert back to the last minor version your instance was on before following the steps in this document.**
-The following procedure requires that you are able to execute commands from inside the database container. Learn more about shelling into [kubernetes](https://docs.sourcegraph.com/admin/deploy/kubernetes/operations#access-the-database), [docker-compose](https://docs.sourcegraph.com/admin/deploy/docker-compose/operations#access-the-database), and [Sourcegraph single-container](https://docs.sourcegraph.com/admin/deploy/docker-single-container/operations#access-the-database) instances at these links.
+The following procedure requires that you are able to execute commands from inside the database container. Learn more about shelling into [kubernetes](/admin/deploy/kubernetes/operations#access-the-database), [docker-compose](/admin/deploy/docker-compose/operations#access-the-database), and [Sourcegraph single-container](/admin/deploy/docker-single-container/#access-the-database) instances at these links.
## TL;DR Steps to resolve
_These steps pertain to the frontend database (pgsql) and are meant as a quick read for admins familiar with sql and database administration, for more explanation and details see the [detailed steps to resolution](#detailed-steps-to-resolve) below._
1. **Check the schema version in `psql` using the following query: `SELECT * FROM schema_migrations;`. If it's dirty, note the migration's version number.**
-2. **Find the up migration with that migration's version number in [https://github.com/sourcegraph/sourcegraph/tree/\/migrations/frontend](https://github.com/sourcegraph/sourcegraph/tree/main/migrations/frontend), making sure to go to \**
+2. **Find the up migration with that migration's version number making sure to go to \**
* _Note: migrations in this directory are specific to the `pgsql` frontend database, learn about other databases in the [detailed steps to resolution](#detailed-steps-to-resolve)_
3. **Run the code there explicitly.**
4. **Manually clear the dirty flag on the `schema_migrations` table.**
@@ -51,9 +51,9 @@ _Note: for codeintel the schema version table is called `codeintel_schema_migrat
### 2. Run the sql queries to finish incomplete migrations
-Sourcegraph's migration files take for form of `sql` files following the snake case naming schema `_..sql` and can be found [here](https://sourcegraph.com/github.com/sourcegraph/sourcegraph/-/tree/migrations) in subdirectories for the specific database. _Note frontend is the pgsql database_.
+Sourcegraph's migration files take for form of `sql` files following the snake case naming schema `_..sql` in subdirectories for the specific database. _Note frontend is the pgsql database_.
-1. **Find the up migration starting with the migration's version number identified in [step 1](#1-identify-incomplete-migration):** [https://github.com/sourcegraph/sourcegraph/tree/\/migrations](https://github.com/sourcegraph/sourcegraph/tree/main/migrations), making sure to go to \
+1. **Find the up migration starting with the migration's version number identified in [step 1](#1-identify-incomplete-migration):** making sure to go to \
2. **Run the code from the identified migration _up_ file explicitly using the `psql` CLI:**
* It’s possible that one or more commands from the migration ran successfully already. In these cases you may need to run the sql transaction in pieces. For example if a migration file creates multiple indexes and one index already exists you'll need to manually run this transaction skipping that line or adding `IF NOT EXISTS` to the transaction.
@@ -95,5 +95,4 @@ Additionally Grafana will alert you of an index is in this state. _The Grafana a
## Further resources
-* [Sourcegraph - Upgrading Sourcegraph to a new version](https://docs.sourcegraph.com/admin/updates)
-* [Migrations README](https://github.com/sourcegraph/sourcegraph/blob/main/migrations/README) (Note some of the info contained here pertains to running Sourcegraphs development environment and should not be used on production instances)
+* [Sourcegraph - Upgrading Sourcegraph to a new version](/admin/updates)
diff --git a/docs/admin/how-to/enable-experimental-feature.mdx b/docs/admin/how-to/enable-experimental-feature.mdx
index a089084ff..0b2eab85d 100644
--- a/docs/admin/how-to/enable-experimental-feature.mdx
+++ b/docs/admin/how-to/enable-experimental-feature.mdx
@@ -23,10 +23,10 @@ This document will take you through how to add, enable, or disable an experiment
3. Locate the feature you would like to disable or enable, setting `true` for enable or `false` for disable.
4. If adding a feature, follow the format `"featureName": true,`
5. After changing the values in Site admin > Global settings, the frontend will either restart automatically or you might be asked to restart the frontend for the changes to take effect.
-6. For more information, see [Editing global settings for site-admins](https://docs.sourcegraph.com/admin/config/settings#editing-global-settings-for-site-admins)
+6. For more information, see [Editing global settings for site-admins](/admin/config/settings#editing-global-settings-for-site-admins)
## Further resources
-* [Sourcegraph - Configuration Settings](https://docs.sourcegraph.com/admin/config/settings)
-* [Sourcegraph - Site configuration](https://docs.sourcegraph.com/admin/config/site_config)
+* [Sourcegraph - Configuration Settings](/admin/config/settings)
+* [Sourcegraph - Site configuration](/admin/config/site_config)
* Learn more about new experimental features on our [Blog](https://about.sourcegraph.com/blog) or Twitter [@sourcegraph](https://twitter.com/sourcegraph/)
diff --git a/docs/admin/how-to/export-search-results.mdx b/docs/admin/how-to/export-search-results.mdx
index 7c612763f..802b781e0 100644
--- a/docs/admin/how-to/export-search-results.mdx
+++ b/docs/admin/how-to/export-search-results.mdx
@@ -2,7 +2,7 @@
You can export search results to a CSV file by pressing the 'Export results' button in the `Actions` menu above the search results.
-For versions before 4.0, view the legacy docs at [sourcegraph/sourcegraph-search-export](https://github.com/sourcegraph/sourcegraph-search-export#sourcegraph-search-results-csv-export-extension)
+For versions before 5.8, the 'Export Results' action is only available in the legacy UI. For versions before 4.0, view the legacy docs at [sourcegraph/sourcegraph-search-export](https://github.com/sourcegraph/sourcegraph-search-export#sourcegraph-search-results-csv-export-extension).
## FAQs
@@ -13,4 +13,4 @@ Before Sourcegraph 4.4.0, the search result export feature used the GraphQL API
This is expected, as all instances that match for a single file will be listed in the same entry column under the Search matches row.
#### Network Error when downloading CSV
-Check the browser's dev tools network tab for more details on the specific network error. The CSV file likely exceeds the browser's limit for data URI size. You can limit the size of search results exported with the `count:` filter in the search query.
\ No newline at end of file
+Check the browser's dev tools network tab for more details on the specific network error. The CSV file likely exceeds the browser's limit for data URI size. You can limit the size of search results exported with the `count:` filter in the search query.
diff --git a/docs/admin/how-to/index.mdx b/docs/admin/how-to/index.mdx
index d8dca3d11..083373d98 100644
--- a/docs/admin/how-to/index.mdx
+++ b/docs/admin/how-to/index.mdx
@@ -17,7 +17,7 @@
- [How to remove users or edit users with the GraphQL API](/admin/how-to/mutate-user-api)
- [How to setup HTTPS connection with Ingress controller on your Kubernetes instance](/admin/how-to/setup-https)
- [How to rebuild corrupt Postgres indexes after upgrading to 3.30 or 3.30.1](/admin/how-to/rebuild-corrupt-postgres-indexes)
-- [How to determine cause for Precise-code-intel-worker in CrashLoopBackOff status](precise-code-intel-worker-crashloopbackoff)
+- [How to determine cause for Precise-code-intel-worker in CrashLoopBackOff status](/admin/how-to/precise-code-intel-worker-crashloopbackoff)
- [How to troubleshoot a failure to update repositories when new repositories are added](/admin/how-to/update_repo_failure)
- [How to run postgres queries in your Sourcegraph instance](/admin/how-to/run-psql)
- [How to purge deleted repository data from Sourcegraph](/admin/how-to/remove-repo#manually-purge-deleted-repository-data-from-disk)
@@ -28,3 +28,4 @@
- [Migrating code intelligence data from LSIF to SCIP (Sourcegraph 4.5 -> 4.6)](/admin/how-to/lsif_scip_migration)
- [How to export search results](/admin/how-to/export-search-results)
- [How to debug / confirm blobstore is healthy](/admin/how-to/blobstore_debugging)
+- [How to handle postgresql 12 to 16 drift](/admin/how-to/postgresql-12-to-16-drift)
diff --git a/docs/admin/how-to/internal_github_repos.mdx b/docs/admin/how-to/internal_github_repos.mdx
index 87b80c9bc..9b2e19d55 100644
--- a/docs/admin/how-to/internal_github_repos.mdx
+++ b/docs/admin/how-to/internal_github_repos.mdx
@@ -11,12 +11,12 @@ This document assumes that you have:
* Internal Github repositories in your organization.
## Steps to import internal GitHub repositories
-1. Using the [repositoryQuery](https://docs.sourcegraph.com/admin/external_service/github#repositoryQuery) configuration option, pass the `org` flag to specify the name of the organization the internal repositories belong to and;
+1. Using the [repositoryQuery](/admin/code_hosts/github#repositoryQuery) configuration option, pass the `org` flag to specify the name of the organization the internal repositories belong to and;
2. Add `is : internal` to the same line.
For example:
-```
+```
"repositoryQuery": [
"org:$name is:internal"
],
@@ -38,4 +38,4 @@ query{
```
## Further resources
-* [Sourcegraph GraphQL API](https://docs.sourcegraph.com/api/graphql)
+* [Sourcegraph GraphQL API](/api/graphql)
diff --git a/docs/admin/how-to/monitoring-guide.mdx b/docs/admin/how-to/monitoring-guide.mdx
index 8a5bd0ef1..dc18e7547 100644
--- a/docs/admin/how-to/monitoring-guide.mdx
+++ b/docs/admin/how-to/monitoring-guide.mdx
@@ -1,6 +1,6 @@
# Monitoring Guide
-Please visit our [Observability Docs](https://docs.sourcegraph.com/admin/observability) for more in-depth information about observability in Sourcegraph.
+Please visit our [Observability Docs](/admin/observability) for more in-depth information about observability in Sourcegraph.
## Prerequisites
diff --git a/docs/admin/how-to/monorepo-issues.mdx b/docs/admin/how-to/monorepo-issues.mdx
index d142b199f..8ac9fc561 100644
--- a/docs/admin/how-to/monorepo-issues.mdx
+++ b/docs/admin/how-to/monorepo-issues.mdx
@@ -18,7 +18,7 @@ The following bullets provide a general guidline to which service may require mo
If you are regularly seeing the `Processing symbols is taking longer than expected. Try again in a while` warning in your sidebar, its likely that your symbols and/or gitserver services are underprovisioned and need more CPU/mem resources.
-The [symbols sidebar](https://sourcegraph.com/github.com/sourcegraph/sourcegraph/-/blob/client/web/src/repo/RepoRevisionSidebarSymbols.tsx?L42) is dependent on the symbols and gitserver services. Upon opening the symbols sidebar, a search query is made to the GraphQL API to retrieve the symbols associated with the current git commit. You can read more about the [symbol search behavior and performance](/code-search/types/symbol#symbol-search-behavior-and-performance).
+The symbols sidebar is dependent on the symbols and gitserver services. Upon opening the symbols sidebar, a search query is made to the GraphQL API to retrieve the symbols associated with the current git commit. You can read more about the [symbol search behavior and performance](/code-search/types/symbol#symbol-search-behavior-and-performance).
To address this concern, allocate more resources to the symbols service (to provide more processing power for indexing operations) and allocate more resources to the gitserver (to provide for the extra load associated with responding to fetch requests from symbols, and speed up sending the large repo).
diff --git a/docs/admin/how-to/mutate-user-api.mdx b/docs/admin/how-to/mutate-user-api.mdx
index ee4a193f5..43f3010ce 100644
--- a/docs/admin/how-to/mutate-user-api.mdx
+++ b/docs/admin/how-to/mutate-user-api.mdx
@@ -3,12 +3,12 @@
## How to update or remove users with the GraphQL API console
-This document walk you through the steps of using mutation queries to update or remove users via the GraphQL API console.
+This document walk you through the steps of using mutation queries to update or remove users via the GraphQL API console.
## Prerequisites
* This document assumes that you have site-admin level permissions on your Sourcegraph instance
-* Assumes that you have set up your query token [via the steps here](https://docs.sourcegraph.com/api/graphql#quickstart)
+* Assumes that you have set up your query token [via the steps here](/api/graphql#quickstart)
## Update a user
@@ -26,7 +26,7 @@ Example:
```graphql
{
- user(username: "username") {
+ user(username: "username") {
id
}
}
@@ -38,7 +38,7 @@ Once you've got a user's ID use the `updateUser` mutation query, to change user
mutation {
updateUser(user: "REDACTED", username: "doombot") {
username
- }
+ }
}
```
> NOTE: `REDACTED` is a placeholder for a user ID
@@ -77,7 +77,7 @@ Example:
```graphql
{
- user(username: "username") {
+ user(username: "username") {
id
}
}
@@ -105,7 +105,7 @@ mutation {
}
```
-**Optional step:** Recheck the delete worked by running the query from step #1. again. If the results are “user not found:...” then it worked.
+**Optional step:** Recheck the delete worked by running the query from step #1. again. If the results are “user not found:...” then it worked.
Example:
@@ -142,5 +142,5 @@ You can also use the documentation explorer on the right-hand side of the `API c
## Further resources
-* [Sourcegraph - User data deletion](https://docs.sourcegraph.com/admin/user_data_deletion)
-* [Sourcegraph GraphQL API](https://docs.sourcegraph.com/api/graphql)
+* [Sourcegraph - User data deletion](/admin/user_data_deletion)
+* [Sourcegraph GraphQL API](/api/graphql)
diff --git a/docs/admin/how-to/postgres14-index-corruption.mdx b/docs/admin/how-to/postgres14-index-corruption.mdx
index 33a866cd7..171404105 100644
--- a/docs/admin/how-to/postgres14-index-corruption.mdx
+++ b/docs/admin/how-to/postgres14-index-corruption.mdx
@@ -1,6 +1,6 @@
# How to identify and resolve index corruption in Postgres v14.0 - v14.3
-A bug has ben identified in PostgreSQL 14.0-14.3 that can cause database index corruption in indexes created concurrently. Sourcegraph [utilizes](https://sourcegraph.com/search?q=context:global+repo:%5Egithub%5C.com/sourcegraph/sourcegraph%24+CREATE+INDEX+AND+CONCURRENTLY&patternType=standard) concurrent index creation, and if you are on these versions, you may experience slow queries or database corruption. To learn more about this bug see postgres's [out-of-cycle release announcment](https://www.postgresql.org/message-id/165473835807.573551.1512237163040609764%40wrigleys.postgresql.org) or [migops article](https://www.migops.com/blog/important-postgresql-14-update-to-avoid-silent-corruption-of-indexes/) on the subject.
+A bug has ben identified in PostgreSQL 14.0-14.3 that can cause database index corruption in indexes created concurrently. Sourcegraph [utilizes](https://sourcegraph.com/search?q=context:global+repo:%5Egithub%5C.com/sourcegraph/sourcegraph%24+%22CREATE+INDEX%22+AND+CONCURRENTLY&patternType=keyword) concurrent index creation, and if you are on these versions, you may experience slow queries or database corruption. To learn more about this bug see postgres's [out-of-cycle release announcment](https://www.postgresql.org/message-id/165473835807.573551.1512237163040609764%40wrigleys.postgresql.org) or [migops article](https://www.migops.com/blog/important-postgresql-14-update-to-avoid-silent-corruption-of-indexes/) on the subject.
> NOTE: If you are running a default Sourcegraph deployment with default Postgres image values, it is likely Postgres is running in version 12 and your instance will be unaffected by this bug.
@@ -9,7 +9,7 @@ To identify which version of Sourcegraph you are running in a default Sourcegrap
```
SELECT version();
```
-> NOTE: You can refer to the following instructions for accessing databases on your deployment type: [Docker Compose](/admin/deploy/docker-compose/index#access-the-database), [Kubernetes](/admin/deploy/kubernetes/operations#access-the-database).
+> NOTE: You can refer to the following instructions for accessing databases on your deployment type: [Docker Compose](/admin/deploy/docker-compose/#access-the-database), [Kubernetes](/admin/deploy/kubernetes/operations#access-the-database).
You may also check for index corruption in your database using the `amcheck` by running the following query in your database
```
@@ -43,6 +43,6 @@ REINDEX DATABASE ;
### Upgrading your database
-In default Sourcegraph deployments internal PostgreSQL instances are used and may be upgraded via the [pg_upgrade](https://www.postgresql.org/docs/11/pgupgrade.html). For external databases consult your service providers documentation. For a deeper look at database upgrade operations please consult our [PostgreSQL documentation](https://docs.sourcegraph.com/admin/postgres#upgrading-postgresql).
+In default Sourcegraph deployments internal PostgreSQL instances are used and may be upgraded via the [pg_upgrade](https://www.postgresql.org/docs/11/pgupgrade.html). For external databases consult your service providers documentation. For a deeper look at database upgrade operations please consult our [PostgreSQL documentation](/admin/postgres#upgrading-postgresql).
If you have any questions, please reach out to support on Slack or email support@sourcegraph.com.
diff --git a/docs/admin/how-to/postgres_12_to_16_drift.mdx b/docs/admin/how-to/postgres_12_to_16_drift.mdx
new file mode 100644
index 000000000..6494cae85
--- /dev/null
+++ b/docs/admin/how-to/postgres_12_to_16_drift.mdx
@@ -0,0 +1,189 @@
+# PostgreSQL 12 to 16 Schema Drift
+
+In Sourcegraph versions `5.10.x` and `5.11.x` we support both PostgreSQL 12 and 16. However, Sourcegraph's database management tool `migrator` expects the database schema of the various Sourcegraph databases to be in an exact expected state. The upgrade from PostgreSQL 12 to 16 is opinionated and automatically mutates the schema without running our application defined migrations. Starting in Sourcegraph `5.10.0` we expect databases to be in PostgresSQL 16 and as such our tooling will identify schema drift in PostgreSQL 12 databases. This drift does not impact the functionality of the Sourcegraph instance but will stop migrator's multiversion `upgrade` command and `autoupgrade` from executing.
+
+The drift takes the following general form, dropping table prefixes to columns in views, and changing `uuid` types to `gen_random_uuid()`:
+```diff
+Schema drift detected in 8 objects:
+
+webhooks.uuid:
+Problem: Unexpected properties of column webhooks."uuid"
+Solution: alter the column
+Statement: ALTER TABLE webhooks ALTER COLUMN uuid SET DEFAULT public.gen_random_uuid();
+
+batch_spec_workspace_execution_queue:
+Problem: Unexpected definition of view "batch_spec_workspace_execution_queue"
+Solution: redefine the view
+Diff:
+ (
+ """
+ ... // 6 identical lines
+ ORDER BY (rank() OVER (PARTITION BY queue.user_id ORDER BY exec.created_at, exec.id)), queue.latest_dequeue NULLS FIRST
+ )
+- SELECT id,
++ SELECT queue_candidates.id,
+ row_number() OVER () AS place_in_global_queue,
+- place_in_user_queue
++ queue_candidates.place_in_user_queue
+ FROM queue_candidates;
+ """
+ )
+
+codeintel_configuration_policies:
+Problem: Unexpected definition of view "codeintel_configuration_policies"
+Solution: redefine the view
+Diff:
+ (
+ """
+- SELECT id,
+- repository_id,
+- name,
+- type,
+- pattern,
+- retention_enabled,
+- retention_duration_hours,
+- retain_intermediate_commits,
+- indexing_enabled,
+- index_commit_max_age_hours,
+- index_intermediate_commits,
+- protected,
+- repository_patterns,
+- last_resolved_at,
+- embeddings_enabled
++ SELECT lsif_configuration_policies.id,
++ lsif_configuration_policies.repository_id,
++ lsif_configuration_policies.name,
++ lsif_configuration_policies.type,
++ lsif_configuration_policies.pattern,
++ lsif_configuration_policies.retention_enabled,
++ lsif_configuration_policies.retention_duration_hours,
++ lsif_configuration_policies.retain_intermediate_commits,
++ lsif_configuration_policies.indexing_enabled,
++ lsif_configuration_policies.index_commit_max_age_hours,
++ lsif_configuration_policies.index_intermediate_commits,
++ lsif_configuration_policies.protected,
++ lsif_configuration_policies.repository_patterns,
++ lsif_configuration_policies.last_resolved_at,
++ lsif_configuration_policies.embeddings_enabled
+ FROM lsif_configuration_policies;
+ """
+ )
+
+codeintel_configuration_policies_repository_pattern_lookup:
+Problem: Unexpected definition of view "codeintel_configuration_policies_repository_pattern_lookup"
+Solution: redefine the view
+Diff:
+ (
+ """
+- SELECT policy_id,
+- repo_id
++ SELECT lsif_configuration_policies_repository_pattern_lookup.policy_id,
++ lsif_configuration_policies_repository_pattern_lookup.repo_id
+ FROM lsif_configuration_policies_repository_pattern_lookup;
+ """
+ )
+
+lsif_dumps:
+Problem: Unexpected definition of view "lsif_dumps"
+Solution: redefine the view
+Diff:
+ strings.Join({
+ " SELECT ",
++ "u.",
+ "id,\n ",
++ "u.",
+ "commit,\n ",
+- "root,\n queued_at,\n uploaded_at,\n state,\n ",
++ "u.root,\n u.queued_at,\n u.uploaded_at,\n u.state,\n u.",
+ "failure_message,\n ",
++ "u.",
+ "started_at,\n ",
++ "u.",
+ "finished_at,\n ",
++ "u.",
+ "repository_id,\n ",
++ "u.",
+ "indexer,\n ",
++ "u.",
+ "indexer_version,\n ",
++ "u.",
+ "num_parts,\n ",
++ "u.",
+ "uploaded_parts,\n ",
++ "u.",
+ "process_after,\n ",
++ "u.",
+ "num_resets,\n ",
++ "u.",
+ "upload_size,\n ",
++ "u.",
+ "num_failures,\n ",
++ "u.",
+ "associated_index_id,\n ",
++ "u.",
+ "expired,\n ",
++ "u.",
+ "last_retention_scan_at,\n ",
++ "u.",
+ "finished_at AS processed_at\n FROM lsif_uploads u\n WHERE ((",
++ "u.",
+ "state = 'completed'::text) OR (",
++ "u.",
+ "state = 'deleting'::text));",
+ }, "")
+
+outbound_webhooks_with_event_types:
+Problem: Unexpected definition of view "outbound_webhooks_with_event_types"
+Solution: redefine the view
+Diff:
+ (
+ """
+- SELECT id,
+- created_by,
+- created_at,
+- updated_by,
+- updated_at,
+- encryption_key_id,
+- url,
+- secret,
++ SELECT outbound_webhooks.id,
++ outbound_webhooks.created_by,
++ outbound_webhooks.created_at,
++ outbound_webhooks.updated_by,
++ outbound_webhooks.updated_at,
++ outbound_webhooks.encryption_key_id,
++ outbound_webhooks.url,
++ outbound_webhooks.secret,
+ array_to_json(ARRAY( SELECT json_build_object('id', outbound_webhook_event_types.id, 'outbound_webhook_id', outbound_webhook_event_types.outbound_webhook_id, 'event_type', outbound_webhook_event_types.event_type, 'scope', outbound_webhook_event_types.scope) AS json_build_object
+ FROM outbound_webhook_event_types
+ ... // 2 identical lines
+ """
+ )
+
+site_config:
+Problem: Unexpected definition of view "site_config"
+Solution: redefine the view
+Diff:
+ (
+ """
+- SELECT site_id,
+- initialized
++ SELECT global_state.site_id,
++ global_state.initialized
+ FROM global_state;
+ """
+ )
+```
+
+## Solutions for Handling Schema Drift
+
+If you're confident that your instance is seeing database drift associated with the PG12 to PG16 upgrade, you can run a multiversion upgrade via migrator `upgrade` or run `autoupgrade` using the following options.
+
+To run `autoupgrade` via the frontend, set the `SRC_AUTOUPGRADE_IGNORE_DRIFT=true` environment variable in the frontend container.
+
+To run migrator's `upgrade` command add the `--skip-drift-check` flag to migrator's entrycommand as below:
+```yaml
+command: ['upgrade', '-from', '5.5.0', '-to', '5.10.0', '--skip-drift-check=true']
+```
+
+If you have any concerns about the drift, please reach out to us at support@sourcegraph.com
diff --git a/docs/admin/how-to/precise-code-intel-worker-crashloopbackoff.mdx b/docs/admin/how-to/precise-code-intel-worker-crashloopbackoff.mdx
index 7dc70df3b..155810f60 100644
--- a/docs/admin/how-to/precise-code-intel-worker-crashloopbackoff.mdx
+++ b/docs/admin/how-to/precise-code-intel-worker-crashloopbackoff.mdx
@@ -2,7 +2,7 @@
This document will discuss one of the main reasons why the `precise-code-intel-worker` goes into a `CrashLoopBackOff` state in a Kubernetes. It does not attempt to solve *all* reasons why this state can happen.
-This commonly happens when upgrading from a Sourcegraph version prior to 3.22 to a later version and failing to deploy the MinIO container. This is because in [3.21 -> 3.22 we removed the `code intel bundle manager` and replaced it with `MinIO`.](https://docs.sourcegraph.com/admin/updates/kubernetes#3-21-3-22)
+This commonly happens when upgrading from a Sourcegraph version prior to 3.22 to a later version and failing to deploy the MinIO container. This is because in [3.21 -> 3.22 we removed the `code intel bundle manager` and replaced it with `MinIO`.](/admin/updates/kubernetes#3-21-3-22)
## Symptoms
diff --git a/docs/admin/how-to/privileged_migrations.mdx b/docs/admin/how-to/privileged_migrations.mdx
index 5c01f60db..6c7555b1a 100644
--- a/docs/admin/how-to/privileged_migrations.mdx
+++ b/docs/admin/how-to/privileged_migrations.mdx
@@ -12,7 +12,7 @@ Add the optional flag `--unprivileged-only` when [running the migrator](/admin/u
```
❌ failed to run migration for schema "frontend": refusing to apply a privileged migration: schema "frontend" requires database migrations 1657908958 and 1657908965 to be applied by a database user with elevated permissions
-The migration runner is currently being run with -unprivileged-only. The indicated migration is marked as privileged and cannot be applied by this invocation of the migration runner. Before re-invoking the migration runner, follow the instructions on https://docs.sourcegraph.com/admin/how-to/privileged_migrations. Please contact support@sourcegraph.com for further assistance.
+The migration runner is currently being run with -unprivileged-only. The indicated migration is marked as privileged and cannot be applied by this invocation of the migration runner. Before re-invoking the migration runner, follow the (instructions here)[https://sourcegraph.com/docs/admin/how-to/privileged_migrations]. Please contact support@sourcegraph.com for further assistance.
```
This option is used to fail-fast upgrades that require manual user intervention. To allow the migrator to make additional progress, the privileged query/queries must be applied manually with a superuser (most commonly via a psql shell attached to the Postgres instance).
diff --git a/docs/admin/how-to/redis_configmap.mdx b/docs/admin/how-to/redis_configmap.mdx
index c4997e4a2..18f757af3 100644
--- a/docs/admin/how-to/redis_configmap.mdx
+++ b/docs/admin/how-to/redis_configmap.mdx
@@ -44,7 +44,7 @@ Reference Materials
-1. Locate the original redis-cache configuration file: [https://sourcegraph.com/github.com/sourcegraph/sourcegraph/-/blob/docker-images/redis-cache/redis.conf](https://sourcegraph.com/github.com/sourcegraph/sourcegraph/-/blob/docker-images/redis-cache/redis.conf) Use this as the “Default redis.conf file” content in the ConfigMap. Adding `requirepass` sets the password for Redis authentication.
+1. Locate the original redis-cache configuration file. Use this as the “Default `redis.conf` file” content in the ConfigMap. Adding `requirepass` sets the password for Redis authentication.
2. Create the redis-cache-conf ConfigMap:
```
@@ -110,9 +110,9 @@ spec:
```
-4. Locate the original redis-store configuration file. [https://sourcegraph.com/github.com/sourcegraph/sourcegraph/-/blob/docker-images/redis-store/redis.conf](https://sourcegraph.com/github.com/sourcegraph/sourcegraph/-/blob/docker-images/redis-store/redis.conf) Use this as the “Default redis.conf file” content in the ConfigMap.
+1. Locate the original redis-store configuration file. Use this as the “Default `redis.conf` file” content in the ConfigMap.
-5. Create the redis-store-conf ConfigMap:
+2. Create the redis-store-conf ConfigMap:
```
apiVersion: v1
@@ -179,7 +179,7 @@ metadata:
```
-7. Modify the manifests for all services listed in[ Configure custom Redis](https://docs.sourcegraph.com/admin/install/kubernetes/configure#external-redis). The listing below is an example of the two environment variables that must be added to the services listed in the documentation.
+7. Modify the manifests for all services listed in[ Configure custom Redis](/admin/install/kubernetes/configure#external-redis). The listing below is an example of the two environment variables that must be added to the services listed in the documentation.
```
@@ -199,7 +199,7 @@ kind: Deployment
-**Note:** Be sure to add both environment variables to all services listed in [Configure custom Redis](https://docs.sourcegraph.com/admin/install/kubernetes/configure#external-redis).
+**Note:** Be sure to add both environment variables to all services listed in [Configure custom Redis](/admin/install/kubernetes/configure#external-redis).
diff --git a/docs/admin/how-to/remove-repo.mdx b/docs/admin/how-to/remove-repo.mdx
index aad623960..f7d283538 100644
--- a/docs/admin/how-to/remove-repo.mdx
+++ b/docs/admin/how-to/remove-repo.mdx
@@ -30,20 +30,3 @@ Alternately, if a repository is synced from multiple code host connections you m
Open the repository's `Settings` page on Sourcegraph and from the `Mirroring` tab click `Reclone`.

-
-## Manually purge deleted repository data from disk
-
-After a repository is deleted from Sourcegraph in the database, its data still remains on disk on gitserver so that in the event the repository is added again it doesn't need to be recloned. These repos are automatically removed when disk space is low on gitserver. However, it is possible to manually trigger removal of deleted repos in the following way:
-
-**NOTE:** This is not available on Docker Compose deployments.
-
-1. Browse to Site Admin -> Instrumentation -> Repo Updater -> Manual Repo Purge
-2. You'll be at a url similar to `https://sourcegraph-instance/-/debug/proxies/repo-updater/manual-purge`
-3. You need to specify a limit parameter which specifies the upper limit to the number of repos that will be removed, for example: `https://sourcegraph-instance/-/debug/proxies/repo-updater/manual-purge?limit=1000`
-4. This will trigger a background process to delete up to `limit` repos, rate limited at 1 per second.
-
-It's possible to see the number of repos that can be cleaned up on disk in Grafana using this query:
-
-```
-max(src_repoupdater_purgeable_repos)
-```
diff --git a/docs/admin/how-to/repo-not-updated.mdx b/docs/admin/how-to/repo-not-updated.mdx
index 4249f5e17..ab400a185 100644
--- a/docs/admin/how-to/repo-not-updated.mdx
+++ b/docs/admin/how-to/repo-not-updated.mdx
@@ -1,25 +1,25 @@
# How to troubleshoot a repo that is not being updated on Sourcegraph
-A repository on Sourcegraph that fails to be updated could have different reasons. For example, the repository is a bad repository, the number of repositories causes significant load on the code host, a large repository, or code host permission issues etc. This guide will walk you through the steps you can take to investigate further when encountering this issue.
+A repository on Sourcegraph that fails to be updated could have different reasons. For example, the repository is a bad repository, the number of repositories causes significant load on the code host, a large repository, or code host permission issues etc. This guide will walk you through the steps you can take to investigate further when encountering this issue.
## Prerequisites
-This document assumes that you are a [site admin](https://docs.sourcegraph.com/admin) and **do not** have `disableAutoGitUpdates` set to `true` in your site configuration.
+This document assumes that you are a [site admin](/admin) and **do not** have `disableAutoGitUpdates` set to `true` in your site configuration.
## Steps to investigate
1. First of all, you should identify how long has it been since the repo was last updated on Sourcegraph by going to the repository page > Settings > Mirroring
2. From there you can check:
1. Last refreshed: Time when the repo was last synced
- 2. Next scheduled update: Estimated time of when the repo will be updated next (this could change as it is determined by a [smart heuristic](https://docs.sourcegraph.com/admin/repo/update_frequency#repository-update-frequency))
+ 2. Next scheduled update: Estimated time of when the repo will be updated next (this could change as it is determined by a [smart heuristic](/admin/repo/update_frequency#repository-update-frequency))
3. Queued for update: Its position in queue to be updated next
4. Connection: Connection status to the repository
5. Last sync log: Output from the most recent sync event
3. If clicking on the `Refresh Now` button has triggered the repository to be updated instantly for you then congratulations! You can now move on from this troubleshooting guide!
-4. If clicking on the `Refresh Now` button does not work for you, try using webhooks following the instructions detailed in our [Repository Webhooks Docs](https://docs.sourcegraph.com/admin/repo/webhooks#webhook-for-manually-telling-sourcegraph-to-update-a-repository)
+4. If clicking on the `Refresh Now` button does not work for you, try using webhooks following the instructions detailed in our [Repository Webhooks Docs](/admin/repo/webhooks#webhook-for-manually-telling-sourcegraph-to-update-a-repository)
5. Look for errors related to this repository in gitserver logs, which should help you to determine the next best course of action.
-6. Check the size of the repository. If it's a large repository, it may take a long time to sync and update. To find the size of your .git directory where the repository resides, you may use our [`git-stats` script](https://docs.sourcegraph.com/admin/monorepo#statistics).
-7. Check the allocated resources to see if the instance has enough resources to process the repository sync using our [Resource Estimator](https://docs.sourcegraph.com/admin/deploy/resource_estimator)
+6. Check the size of the repository. If it's a large repository, it may take a long time to sync and update. To find the size of your .git directory where the repository resides, you may use our [`git-stats` script](/admin/monorepo#statistics).
+7. Check the allocated resources to see if the instance has enough resources to process the repository sync using our [Resource Estimator](/admin/deploy/resource_estimator)
8. Check the code host connection from your Sourcegraph instance. If there is any issue, it needs to be resolved for the repository to sync and update.
## FAQs:
diff --git a/docs/admin/how-to/setup-https.mdx b/docs/admin/how-to/setup-https.mdx
index 12b0bd1f7..37d5f92e6 100644
--- a/docs/admin/how-to/setup-https.mdx
+++ b/docs/admin/how-to/setup-https.mdx
@@ -89,7 +89,7 @@ Add the tls configuration to [base/frontend/sourcegraph-frontend.Ingress.yaml](h
### 5. Update Site Configuration
-Update your externalURL in the [site configuration](https://docs.sourcegraph.com/admin/config/site_config) to e.g. https://sourcegraph.example.com:
+Update your externalURL in the [site configuration](/admin/config/site_config) to e.g. https://sourcegraph.example.com:
```json
{
diff --git a/docs/admin/how-to/site-admin-quickstart.mdx b/docs/admin/how-to/site-admin-quickstart.mdx
index 493428fcc..3ae524e28 100644
--- a/docs/admin/how-to/site-admin-quickstart.mdx
+++ b/docs/admin/how-to/site-admin-quickstart.mdx
@@ -10,20 +10,20 @@ We recommend Docker Compose for most initial production deployments. You can [mi
If you need a deployment option that offers a higher level of scalability and availability, the [Kubernetes deployment](/admin/deploy/kubernetes/) is recommended.
-To help give you a starting point on choosing a deployment option and allocating resources to it, check out our [resource estimator](https://docs.sourcegraph.com/admin/deploy/resource_estimator).
+To help give you a starting point on choosing a deployment option and allocating resources to it, check out our [resource estimator](/admin/deploy/resource_estimator).
For a comphrensive deployment guide for each option, check out our in-depth documentation for both [Docker Compose](/admin/deploy/docker-compose/) and [Kubernetes](/admin/deploy/kubernetes/).
### Deployment options
-Our recommended deployment type is [Kubernetes with Helm](/admin/deploy/kubernetes/helm). If this is not a viable option, we also support a number of other deployment types which are described in the [Deployment overview](/admin/deploy/).
+We support a number of other deployment types which are described in the [Deployment overview](/admin/deploy/).
### Self-hosted vs. Managed instances
-Regardless of the deployment option you choose, Sourcegraph can be self-hosted locally or with the cloud provider of your choice. We also offer [managed instances](/admin/how-/admin/cloud/) (we handle deployment, updates, and management of the instance for you). Please [contact us](https://about.sourcegraph.com/contact/sales) if you are interested in learning more about managed instances.
+Regardless of the deployment option you choose, Sourcegraph can be self-hosted locally or with the cloud provider of your choice. We also offer [managed instances](/cloud/) (we handle deployment, updates, and management of the instance for you). Please [contact us](https://about.sourcegraph.com/contact/sales) if you are interested in learning more about managed instances.
## Updating your instance
-New versions of Sourcegraph are released monthly (with patches released in between, as needed). New updates are announced in the [Sourcegraph blog](https://about.sourcegraph.com/blog), and comprehensive update notes are available in the [changelog](https://docs.sourcegraph.com/CHANGELOG).
+New versions of Sourcegraph are released monthly (with patches released in between, as needed). New updates are announced in the [Sourcegraph blog](https://about.sourcegraph.com/blog), and comprehensive update notes are available in the [technical changelog](/technical-changelog).
To check the current version of your instance, go to **User menu > Site admin > Updates**.
@@ -43,7 +43,7 @@ If you need to add additional site admins, you can do so on the `/site-admin/use
### Connecting to code hosts
Sourcegraph supports connections to and repository syncing from any Git code host. Once connected, Sourcegraph will clone and index your repos so that users can search and navigate across them. To get started, go to **User menu > Site Admin > Manage code hosts > Add code host**.
-Please reference the code host [documentation](/admin/external_service/) for detailed instructions on connecting to your code host.
+Please reference the code host [documentation](/admin/code_hosts/) for detailed instructions on connecting to your code host.
### Setting up user authentication and repository permissions
In addition to connecting to your repositories, you can also configure Sourcegraph to use your preferred SSO or sign-in method and inherit and enforce repository permissions for users.
diff --git a/docs/admin/how-to/unknown-error-login.mdx b/docs/admin/how-to/unknown-error-login.mdx
index 9eb485901..4da0e1c25 100644
--- a/docs/admin/how-to/unknown-error-login.mdx
+++ b/docs/admin/how-to/unknown-error-login.mdx
@@ -26,9 +26,9 @@ This document will attempt to identify a common reason for an `Unknown Error` wh
2. If you were trying to login with `http` protocol, try again with `https` instead
3. If you are still having issues, you can ask a site-admin to double check the `externalURL` configured in the Site configuration so you have the correct login landing page
- - See [Configuring the external URL](https://docs.sourcegraph.com/admin/url)
+ - See [Configuring the external URL](/admin/url)
## Further resources
-* [Sourcegraph - Site configuration](https://docs.sourcegraph.com/admin/config/site_config)
+* [Sourcegraph - Site configuration](/admin/config/site_config)
diff --git a/docs/admin/how-to/upgrade-postgres-12-16-builtin-dbs.mdx b/docs/admin/how-to/upgrade-postgres-12-16-builtin-dbs.mdx
new file mode 100644
index 000000000..5c10fa86f
--- /dev/null
+++ b/docs/admin/how-to/upgrade-postgres-12-16-builtin-dbs.mdx
@@ -0,0 +1,109 @@
+# Upgrading Built-in PostgreSQL
+
+The following doc contains detailed instructions for upgrading the built-in PostgreSQL databases. Via our `postgresql-16` and `postgresql-16-codeinsights` image entrypoint script. This doc assumes an admin is attempting to upgrade to Sourcegraph `6.0.0` from an older version (usually pre `5.10.0`) using one of our "deploy" repos. For more general info see [Upgrading PostgreSQL](/admin/postgres#upgrading-postgresql).
+
+> WARNING: Upgrading the PostgreSQL database requires stopping your Sourcegraph deployment which will result in **downtime**.
+>
+> Additionally, once the upgrade process is started via the database container, interrupting the container before the upgrade is complete could result in corrupting the underlying Postgres database. **We strongly advise taking a backup before the upgrade.**
+
+## Docker Compose
+
+Docker compose supports [standard](/admin/deploy/docker-compose/upgrade#standard-upgrades) and [multi-version](/admin/deploy/docker-compose/upgrade#multi-version-upgrades) upgrades to Postgres 16 versions! However, if you prefer to upgrade your DBs independent of a Sourcegraph version upgrade see the following procedure.
+
+1. **Bring down your containers**
+```bash
+docker-compose down --remove-orphans
+```
+2. Change the `image:` in your `docker-compose.yaml` to the release of `pgsql`, `codeinsights-db`, and `codeintel-db`. Or [merge in changes](/admin/deploy/docker-compose/upgrade#standard-upgrades) from the tagged sourcegraph release you're planning to upgrade to. **Example:**
+```yaml
+pgsql:
+ container_name: pgsql
+ image: 'index.docker.io/sourcegraph/postgresql-16:6.0.0'
+...
+codeintel-db:
+ container_name: codeintel-db
+ image: 'index.docker.io/sourcegraph/postgresql-16:6.0.0'
+...
+codeinsights-db:
+ container_name: codeintel-db
+ image: 'index.docker.io/sourcegraph/postgresql-16-codeinsights:6.0.0'
+```
+3. Bring up your deployments
+```bash
+docker-compose up -d pgsql codeintel-db codeinsights-db
+```
+Wait for the database containers to come up healthy. If for some reason the database containers fail to come up healthy, please check their logs and reach out to us for support at support@sourcegraph.com.
+
+## Kubernetes Kustomize
+
+Kubernetes Kustomize supports [standard](/admin/deploy/kubernetes/upgrade#standard-upgrades) and [multi-version](/deploy/kubernetes/upgrade#multi-version-upgrades) upgrades to Postgres 16 versions! However, if you prefer to upgrade your DBs independent of a Sourcegraph version upgrade see the following procedure.
+
+1. **Disable Connections to the Database**:
+ - The following services must have their replicas scaled to 0:
+ - Deployments (e.g., `kubectl scale deployment --replicas=0`)
+ - precise-code-intel-worker
+ - repo-updater
+ - searcher
+ - sourcegraph-frontend
+ - sourcegraph-frontend-internal
+ - symbols
+ - worker
+ - Stateful sets (e.g., `kubectl scale sts --replicas=0`):
+ - gitserver
+ - indexed-search
+*convenience command:*
+```sh
+$ kubectl scale deployment precise-code-intel-worker repo-updater searcher sourcegraph-frontend sourcegraph-frontend-internal symbols worker --replicas=0 && kubectl scale sts gitserver indexed-search --replicas=0
+```
+2. **Update base files for the database statefulSets**:
+ - Update the `image` field in your `pgsql`, `codeintel-db` and `codeinsights-db` StatefulSets to `sourcegraph/postgresql-16:6.0.0` and `sourcegraph/codeinsights-db:6.0.0` respectively.
+ **Example:**
+ ```yaml
+ # deploy-sourcegraph-k8s/base/sourcegraph/codeinsights-db/codeinsights-db.StatefulSet.yaml
+ containers:
+ - name: codeinsights
+ image: index.docker.io/sourcegraph/postgresql-16-codeinsights:6.0.0
+ # deploy-sourcegraph-k8s/base/sourcegraph/codeintel-db/codeintel-db.StatefulSet.yaml
+ containers:
+ - name: pgsql
+ image: index.docker.io/sourcegraph/postgresql-16:6.0.0
+ # deploy-sourcegraph-k8s/base/sourcegraph/pgsql/pgsql.StatefulSet.yaml
+ containers:
+ - name: pgsql
+ image: index.docker.io/sourcegraph/postgresql-16:6.0.0
+ ```
+
+3. Apply the new container images to the database statefulsets:
+```sh
+$ kubectl apply -f deploy-sourcegraph-k8s/base/sourcegraph/pgsql/pgsql.StatefulSet.yaml deploy-sourcegraph-k8s/base/sourcegraph/codeintel-db/codeintel-db.StatefulSet.yaml deploy-sourcegraph-k8s/base/sourcegraph/codeinsights-db/codeinsights-db.StatefulSet.yaml
+```
+- Wait until the containers come up, and complete their migration to Postgresql 16
+
+
+## Helm
+
+When using the in-cluster PostgreSQL databases included in the Sourcegraph Helm chart, database upgrades are integrated with the overall application upgrade process and there is no mechanism to upgrade only the PostgreSQL containers independently. Therefore, the PostgreSQL upgrade must be performed as part of a full Sourcegraph version upgrade.
+
+For production deployments, we recommend using external PostgreSQL databases, which allows for more flexible database management outside the Helm deployment lifecycle.
+
+### Required Upgrade Path
+
+Sourcegraph versions `v6.0.x` and later require PostgreSQL 16 and will not connect to PostgreSQL 12 databases. This means any direct upgrade from versions earlier than `v5.10.3940` to any version `v6.0.x` or later will fail because the migrator in `v6.0.x` and later cannot connect to PostgreSQL 12 to perform the upgrade.
+
+To safely upgrade PostgreSQL in Helm deployments:
+
+1. **First upgrade to an intermediate version**:
+ - Upgrade to either Sourcegraph `v5.10.3940` or `v5.11.6271` using the [helm multi-version upgrade procedure](/admin/deploy/kubernetes#multi-version-upgrade-procedure) or [standard upgrade procedure](/admin/deploy/kubernetes#standard-upgrades)
+ - These specific versions include the necessary PostgreSQL upgrade scripts to safely migrate from PG12 to PG16
+
+2. **Verify the PostgreSQL upgrade** (optional):
+ - You can verify the PostgreSQL version has been successfully upgraded by connecting to the database:
+ ```bash
+ kubectl exec -it pgsql -- psql -U sg -c "SELECT version();"
+ ```
+ - The output should show PostgreSQL 16.x
+
+3. **Proceed to target version**:
+ - Once PostgreSQL has been upgraded to version 16, you can safely upgrade to your target version (`v6.0.x` or later) using the standard upgrade procedure
+
+For any issues during the PostgreSQL upgrade process, please contact support@sourcegraph.com.
\ No newline at end of file
diff --git a/docs/admin/http_https_configuration.mdx b/docs/admin/http_https_configuration.mdx
index fccd5368a..6f0dbdab9 100644
--- a/docs/admin/http_https_configuration.mdx
+++ b/docs/admin/http_https_configuration.mdx
@@ -1,3 +1,5 @@
+import { CURRENT_VERSION_STRING_NO_V, CURRENT_VERSION_STRING } from 'src/components/PreCodeBlock'
+
# Sourcegraph HTTP and HTTPS/SSL configuration
Overview:
@@ -17,7 +19,7 @@ Sourcegraph's single Docker image and Kubernetes deployments use [NGINX](https:/
### Sourcegraph single instance (Docker)
-The first time Sourcegraph is run, it will create an [`nginx.conf`](https://github.com/sourcegraph/sourcegraph/blob/main/cmd/server/shared/assets/nginx.conf) file at:
+The first time Sourcegraph is run, it will create an [`nginx.conf`](https://github.com/sourcegraph/sourcegraph-public-snapshot/blob/main/cmd/server/shared/assets/nginx.conf) file at:
- `~/.sourcegraph/config/nginx.conf` on the Docker/Sourcegraph host (presuming you're using the [quickstart `docker run` command](/#quick-install))
- `/etc/sourcegraph/nginx.conf` inside the container
@@ -37,7 +39,7 @@ docker container run \
\
--volume ~/.sourcegraph/config:/etc/sourcegraph \
--volume ~/.sourcegraph/data:/var/opt/sourcegraph \
- sourcegraph/server:5.3.9104
+ sourcegraph/server:{CURRENT_VERSION_NO_V}
```
### Sourcegraph Cluster (Kubernetes)
diff --git a/docs/admin/index.mdx b/docs/admin/index.mdx
index c67d45a2d..8d66b22ff 100644
--- a/docs/admin/index.mdx
+++ b/docs/admin/index.mdx
@@ -1,35 +1,34 @@
# Administration
-Administration is usually handled by site administrators are the admins responsible for deploying, managing, and configuring Sourcegraph for regular users. They have [special privileges](/admin/privileges) on a Sourcegraph instance. Check out this [quickstart guide](/admin/how-to/site-admin-quickstart) for more info on Site Administration.
+
+ Supported on [Enterprise](/pricing/enterprise) plans.
+
+ Available via the Web app.
+
+
-## [Deploy and Configure Sourcegraph](/admin/deploy/)
+Sourcegraph administration is primarily managed by site administrators, who are responsible for the deployment, management, and configuration of Sourcegraph instances for end users. For a comprehensive introduction to site administration, refer to our [quickstart guide](/admin/how-to/site-admin-quickstart).
+
+
+## [Deploy Sourcegraph](/admin/deploy/)
+
+Get started running Sourcegraph on-prem.
- [Deployment overview](/admin/deploy/)
- - [Kubernetes with Helm](/admin/deploy/kubernetes/helm)
- - [Docker Compose](/admin/deploy/docker-compose/)
- - [See all deployment options](/admin/deploy/#deployment-types)
- [Best practices](/admin/deployment_best_practices)
-- [Deploying workers](/admin/workers)
-- [PostgreSQL configuration](/admin/config/postgres-conf)
-- [Using external services (PostgreSQL, Redis, S3/GCS)](/admin/external_services/)
-- [Validation](/admin/validation) (experimental)
-- [Executors](/admin/executors/)
+- [Validate a Sourcegraph deployment](/admin/validation) (experimental)
## [Upgrade Sourcegraph](/admin/updates/)
-> NOTE: The Sourcegraph 4.0 [`migrator`](/admin/updates/migrator/migrator-operations) can now perform upgrades across [multiple versions](/admin/updates/#multi-version-upgrades) on any instance 3.20 or later.
-
-- [Upgrade Sourcegraph](/admin/updates/)
- - [Single-minor-version "standard" upgrades](/admin/updates/#standard-upgrades)
- - [Multi-version upgrades](/admin/updates/#multi-version-upgrades)
-- [Migration guides](/admin/migration/)
+- [Upgrade Overview](/admin/updates/)
+- [Migrate to Sourcegraph](/admin/migration/)
- [Upgrading PostgreSQL](/admin/postgres#upgrading-postgresql)
-## [Configuration](/admin/config/)
+## [Configure Sourcegraph](/admin/config/)
- [Site Administrator Quickstart](/admin/how-to/site-admin-quickstart)
- [Integrations](/integration/)
-- [Adding Git repositories](/admin/repo/add) (from a code host or clone URL)
+- [Add Git repositories](/admin/repo/add) (from a code host or clone URL)
- [Monorepo](/admin/monorepo)
- [Repository webhooks](/admin/repo/webhooks)
- [HTTP and HTTPS/SSL configuration](/admin/http_https_configuration)
@@ -40,10 +39,10 @@ Administration is usually handled by site administrators are the admins responsi
- [Access control](/admin/access_control/) (Beta)
- [Setting the URL for your instance](/admin/url)
- [Repository permissions](/admin/permissions/)
-- [Batch Changes](/batch_changes/how-tos/site_admin_configuration)
+- [Batch Changes](/batch-changes/site-admin-configuration)
- [Configure webhooks](/admin/config/webhooks/)
-
-For deployment configuration, please refer to the relevant [installation guide](/admin/deploy/).
+- [Scaling workers](/admin/workers)
+- [PostgreSQL configuration](/admin/config/postgres-conf)
## [Observability](/admin/observability)
@@ -60,7 +59,7 @@ For deployment configuration, please refer to the relevant [installation guide](
## Features
- [Analytics](/admin/analytics) (experimental)
-- [Batch Changes](/batch_changes/)
+- [Batch Changes](/batch-changes/)
- [Beta and experimental features](/admin/beta_and_experimental_features)
- [Code navigation](/code-search/code-navigation/)
- [Pings](/admin/pings)
diff --git a/docs/admin/licensing/index.mdx b/docs/admin/licensing/index.mdx
index f7cb01ce1..121025253 100644
--- a/docs/admin/licensing/index.mdx
+++ b/docs/admin/licensing/index.mdx
@@ -1,5 +1,12 @@
# Licensing
+
+ Supported on [Enterprise](/pricing/enterprise) plans.
+
+ Available via the Web app.
+
+
+
Sourcegraph requires a valid license key to enable many of its more prominent features.
License keys should not be shared across instances of Sourcegraph. If an additional license key is required for something like a dev environment, please [contact customer support](https://about.sourcegraph.com/contact) for an additional license key.
@@ -38,3 +45,25 @@ UPDATE global_state SET site_id = gen_random_uuid();
```
You will still require a unique license key for each site ID.
+
+### How does Sourcegraph calculate user licenses?
+
+Sourcegraph calculates user license numbers using several key values:
+
+ 1. `currentUserCount`: Which represents the total number of users currently on the Sourcegraph.
+
+ 2. `license.userCount`: Which is the total number of user licenses allowed by the current subscription.
+
+ 3. `actualUserCount`: Which represents the maximum number of users that have ever been active on the Sourcegraph instance for the current license.
+
+The component displays these numbers in the following format:
+
+```
+"{currentUserCount} currently used / {license.userCount - currentUserCount} remaining ({actualUserCount} maximum ever used)"
+```
+
+These values are fetched from the GraphQL API using the `queryProductLicenseInfo` function, which queries the site's product subscription information and user count.
+
+The component also checks if the number of users exceeds the licensed amount `(license.userCount - actualUserCount < 0)` and displays a warning if this is the case.
+
+This approach allows Sourcegraph to provide clear information about license usage and encourage upgrades and scaling licenses when necessary.
diff --git a/docs/admin/migration/3_0.mdx b/docs/admin/migration/3_0.mdx
index 18b98609c..681051e6f 100644
--- a/docs/admin/migration/3_0.mdx
+++ b/docs/admin/migration/3_0.mdx
@@ -25,7 +25,7 @@ If you were running language servers with 2.x from the `https://sourcegraph.exam
## Repositories are managed by configuring external services
-Top level configuration options for code hosts (e.g. "github", "gitlab", "phabricator", "awscodecommit", "bitbucket", "gitolite") have been removed from [site configuration](https://docs.sourcegraph.com/admin/site_config/all).
+Top level configuration options for code hosts (e.g. "github", "gitlab", "phabricator", "awscodecommit", "bitbucket", "gitolite") have been removed from [site configuration](/admin/config/site_config/).
The configuration of code hosts and repositories has moved to the external services UI at `https://sourcegraph.example.com/site-admin/external-services`.
@@ -34,10 +34,10 @@ The data from your existing site configuration will be automatically migrated wh
## `repos.list` was removed from site configuration
The top-level `repos.list` site configuration was removed in favour of each code-host's equivalent options, now configured via [external services](#Repositories-are-managed-by-configuring-external-services). Equivalent options in code hosts configuration:
- - GitHub via [`github.repos`](https://docs.sourcegraph.com/admin/site_config/all#repos-array)
- - GitLab via [`gitlab.projectQuery`](https://docs.sourcegraph.com/admin/site_config/all#projectquery-array)
- - Phabricator via [`phabricator.repos`](https://docs.sourcegraph.com/admin/site_config/all#phabricator-array)
- - [Other external services](https://docs.sourcegraph.com/admin/repo/add_from_other_external_services)
+ - GitHub via `github.repos`
+ - GitLab via `gitlab.projectQuery`
+ - Phabricator via `phabricator.repos`
+ - Other external services
## Configuration is now stored in the database, not in a config.json file
diff --git a/docs/admin/migration/3_30.mdx b/docs/admin/migration/3_30.mdx
index 790cdc3d2..3d44f3a02 100644
--- a/docs/admin/migration/3_30.mdx
+++ b/docs/admin/migration/3_30.mdx
@@ -15,6 +15,6 @@ The 3.30 release introduced a `pgsql` and `codeinteldb` base image change from d
This caused corruption in indexes that have collatable key columns (e.g. any index with a `text` column).
Read more about this [here](https://postgresql.verite.pro/blog/2018/08/27/glibc-upgrade.html).
-After we found the root-cause of the [issues many customers were seeing](https://github.com/sourcegraph/sourcegraph/issues/23288), we cut [a patch release, 3.30.3](/CHANGELOG#3-30-3), that reverted the images to be based on debian, buying us time to change the alpine based version of the images to [reindex affected indexes on startup, before accepting new connections](https://github.com/sourcegraph/sourcegraph/issues/23310).
+After we found the root-cause of the issues many customers were seeing, we cut [a patch release, 3.30.3](/technical-changelog#3-30-3), that reverted the images to be based on debian, buying us time to change the alpine based version of the images to reindex affected indexes on startup, before accepting new connections.
However, this means that after fixing the corrupt indexes on the alpine images in the affected releases, upgrading to debian based images in 3.30.3 will cause index corruption again. For this reason, **do not upgrade to 3.30.3** after fixing corrupt Postgres indexes. Instead, [please upgrade directly to 3.31](/admin/migration/3_31).
diff --git a/docs/admin/migration/3_31.mdx b/docs/admin/migration/3_31.mdx
index d77b9471a..9ed87a95d 100644
--- a/docs/admin/migration/3_31.mdx
+++ b/docs/admin/migration/3_31.mdx
@@ -43,7 +43,7 @@ It is probable that your indexes are fine (and thus no bad data is in your datab
#### If any errors are reported
-You will need to repair the corrupt Postgres database indexes prior to upgrading by following the steps in [How to rebuild corrupt Postgres indexes.](https://docs.sourcegraph.com/admin/how-to/rebuild-corrupt-postgres-indexes) Contact customer support with any questions.
+You will need to repair the corrupt Postgres database indexes prior to upgrading by following the steps in [How to rebuild corrupt Postgres indexes.](/admin/how-to/rebuild-corrupt-postgres-indexes) Contact customer support with any questions.
### Prepare for downtime
diff --git a/docs/admin/migration/5_1.mdx b/docs/admin/migration/5_1.mdx
index f170605c4..ac8a725b9 100644
--- a/docs/admin/migration/5_1.mdx
+++ b/docs/admin/migration/5_1.mdx
@@ -1,6 +1,6 @@
# Migrating to Sourcegraph 5.1.x
-> NOTE: The following applies only deployments that use our [Docker Single Container Deployment](https://docs.sourcegraph.com/admin/deploy/docker-single-container) with the default built-in database. Deployments that use the Single Container Deployment with external databases (e.g. Amazon RDS, Google Cloud SQL, etc.), and users of other deployment methods (Docker Compose, Kubernetes, Machine Images, Sourcegraph Cloud) are **not affected**, and can ignore this page.
+> NOTE: The following applies only deployments that use our [Docker Single Container Deployment](/admin/deploy/docker-single-container) with the default built-in database. Deployments that use the Single Container Deployment with external databases (e.g. Amazon RDS, Google Cloud SQL, etc.), and users of other deployment methods (Docker Compose, Kubernetes, Machine Images, Sourcegraph Cloud) are **not affected**, and can ignore this page.
In Sourcegraph 5.1.x, the container image used for Docker Single Container Deployments has switched from an Alpine-based image to a Wolfi-base image in order to provide a more secure container. Upon upgrading, Sourcegraph will need to re-index the entire database. This process is automatic but requires user interation to start as it can take up to several hours to complete. It is strongly recommended to review and follow the instructions on this page prior to upgrading.
@@ -8,8 +8,8 @@ In Sourcegraph 5.1.x, the container image used for Docker Single Container Deplo
Only instances which fit the following criteria are affected:
-* Using the [Docker Single Container Deployment](https://docs.sourcegraph.com/admin/deploy/docker-single-container)
-* Using the default built-in database (i.e. not
+* Using the [Docker Single Container Deployment](/admin/deploy/docker-single-container)
+* Using the default built-in database (i.e. not
connecting to an external database like Amazon RDS, Google Cloud SQL, etc.)
* Upgrading from any release prior to Sourcegraph 5.1
@@ -48,7 +48,7 @@ As the migration process can take up to several hours, ensure that any health ch
## Migrating
-Once the preceded preparation steps have been followed, start up the instance using a 5.1 or later container image, with the following environment variable set:
+Once the preceded preparation steps have been followed, start up the instance using a 5.1 or later container image, with the following environment variable set:
`SOURCEGRAPH_5_1_DB_MIGRATION=true`
diff --git a/docs/admin/migration/opengrok.mdx b/docs/admin/migration/opengrok.mdx
index 3901e9e62..d15b549ac 100644
--- a/docs/admin/migration/opengrok.mdx
+++ b/docs/admin/migration/opengrok.mdx
@@ -95,8 +95,6 @@ After you've set Sourcegraph up, it's time to share it with your organization. S
> - Code browsing: [URL to a code file page on your Sourcegraph instance]
>
> [Include screenshots of your Sourcegraph instance here]
- >
- > Post feedback at https://github.com/sourcegraph/sourcegraph [change if needed]
- Create an internal document based on the [Sourcegraph tour](/getting-started/tour), substituting links to and names of your organization's code. This explains how Sourcegraph helps developers perform common tasks better.
- Encourage installation of the [browser extension](/integration/browser_extension) to get Sourcegraph code navigation and search in your organization's existing code host.
@@ -106,4 +104,4 @@ After you've set Sourcegraph up, it's time to share it with your organization. S
If there are any blockers preventing your organization from switching to Sourcegraph, we'd love to hear from you so we can address them.
-Let us know how we can help! [File an issue](https://github.com/sourcegraph/sourcegraph) with feedback/problems/questions, or [contact us directly](https://about.sourcegraph.com/contact).
+Let us know how we can help! [Contact us directly](https://sourcegraph.com/contact).
diff --git a/docs/admin/monorepo.mdx b/docs/admin/monorepo.mdx
index 71b107e70..fd458b04b 100644
--- a/docs/admin/monorepo.mdx
+++ b/docs/admin/monorepo.mdx
@@ -27,12 +27,12 @@ Some monorepos use a custom command for `git fetch` to speed up fetch. Sourcegra
## Statistics
-You can help the Sourcegraph developers understand the scale of your monorepo by sharing some statistics with the team. The bash script [`git-stats`](https://github.com/sourcegraph/sourcegraph/blob/main/dev/git-stats) when run in your git repository will calculate these statistics.
+You can help the Sourcegraph developers understand the scale of your monorepo by sharing some statistics with the team. The bash script [`git-stats`](https://github.com/sourcegraph/sourcegraph-public-snapshot/blob/main/dev/git-stats) when run in your git repository will calculate these statistics.
Example output on the Sourcegraph repository:
``` shellsession
-$ wget https://github.com/sourcegraph/sourcegraph/raw/main/dev/git-stats
+$ wget https://github.com/sourcegraph/sourcegraph-public-snapshot/raw/main/dev/git-stats
$ chmod +x git-stats
$ ./git-stats
725M . gitdir
diff --git a/docs/admin/observability/.gitattributes b/docs/admin/observability/.gitattributes
index e5709b351..c0ffe376f 100644
--- a/docs/admin/observability/.gitattributes
+++ b/docs/admin/observability/.gitattributes
@@ -1,2 +1,2 @@
-dashboards.md linguist-generated=true
-alert_solutions.md linguist-generated=true
+dashboards.mdx linguist-generated=true
+alert_solutions.mdx linguist-generated=true
diff --git a/docs/admin/observability/alerting.mdx b/docs/admin/observability/alerting.mdx
index ab7bec8de..65f9c5e25 100644
--- a/docs/admin/observability/alerting.mdx
+++ b/docs/admin/observability/alerting.mdx
@@ -122,7 +122,7 @@ Webhook events provide the following fields relevant for Sourcegraph alerts that
"status": "",
"commonLabels": {
"level": "",
- // Use the service name and alert name to find solutions in https://docs.sourcegraph.com/admin/observability/alerts
+ // Use the service name and alert name to find solutions in https://sourcegraph.com/docs/admin/observability/alerts
"service_name": "",
"name": "",
"description": "",
diff --git a/docs/admin/observability/alerts.mdx b/docs/admin/observability/alerts.mdx
index e9f86114e..0426c8eff 100644
--- a/docs/admin/observability/alerts.mdx
+++ b/docs/admin/observability/alerts.mdx
@@ -2,10 +2,10 @@
{/* DO NOT EDIT: generated via: bazel run //doc/admin/observability:write_monitoring_docs */}
-This document contains a complete reference of all alerts in Sourcegraph's monitoring, and next steps for when you find alerts that are firing.
-If your alert isn't mentioned here, or if the next steps don't help, [contact us](mailto:support@sourcegraph.com) for assistance.
+This document contains a complete reference of all alerts in Sourcegraph's monitoring and the next steps for finding alerts that are firing.
+If your alert isn't mentioned here, or if the next steps don't help, contact us at `support@sourcegraph.com` for assistance.
-To learn more about Sourcegraph's alerting and how to set up alerts, see [our alerting guide](https://docs.sourcegraph.com/admin/observability/alerting).
+To learn more about Sourcegraph's alerting and how to set up alerts, see [our alerting guide](/admin/observability/alerting).
## frontend: 99th_percentile_search_request_duration
@@ -399,7 +399,7 @@ Generated query for warning alert: `max((sum by (status) (increase(src_graphql_s
**Next steps**
-- This indicates a bug in Sourcegraph, please [open an issue](https://github.com/sourcegraph/sourcegraph/issues/new/choose).
+- This indicates a bug in Sourcegraph, please [contact us](https://sourcegraph.com/contact).
- Learn more about the related dashboard panel in the [dashboards reference](dashboards#frontend-search-codeintel-alert-user-suggestions).
- **Silence this alert:** If you are aware of this alert and want to silence notifications for it, add the following to your site configuration and set a reminder to re-evaluate the alert:
@@ -3307,7 +3307,7 @@ Generated query for warning alert: `max((max(src_codeintel_commit_graph_queued_d
**Next steps**
- **Enabled permissions for the first time:** Wait for few minutes and see if the number goes down.
-- **Otherwise:** Increase the API rate limit to [GitHub](https://sourcegraph.com/docs/admin/external_service/github#github-com-rate-limits), [GitLab](https://sourcegraph.com/docs/admin/external_service/gitlab#internal-rate-limits) or [Bitbucket Server](https://sourcegraph.com/docs/admin/external_service/bitbucket_server#internal-rate-limits).
+- **Otherwise:** Increase the API rate limit to [GitHub](https://sourcegraph.com/docs/admin/code_hosts/github#github-com-rate-limits), [GitLab](https://sourcegraph.com/docs/admin/code_hosts/gitlab#internal-rate-limits) or [Bitbucket Server](https://sourcegraph.com/docs/admin/code_hosts/bitbucket_server#internal-rate-limits).
- Learn more about the related dashboard panel in the [dashboards reference](dashboards#worker-perms-syncer-outdated-perms).
- **Silence this alert:** If you are aware of this alert and want to silence notifications for it, add the following to your site configuration and set a reminder to re-evaluate the alert:
@@ -6021,7 +6021,6 @@ Generated query for warning alert: `max((sum(rate(resolve_revision_seconds_sum[5
- View error rates on gitserver and frontend to identify root cause.
- Rollback frontend/gitserver deployment if due to a bad code change.
-- View error logs for `getIndexOptions` via net/trace debug interface. For example click on a `indexed-search-indexer-` on https://sourcegraph.com/-/debug/. Then click on Traces. Replace sourcegraph.com with your instance address.
- More help interpreting this metric is available in the [dashboards reference](dashboards#zoekt-get-index-options-error-increase).
- **Silence this alert:** If you are aware of this alert and want to silence notifications for it, add the following to your site configuration and set a reminder to re-evaluate the alert:
@@ -6614,7 +6613,7 @@ Generated query for critical alert: `min((sum by (app) (up{app=~".*indexed-searc
- Check the Container monitoring (not available on server) panels and try increasing resources for Prometheus if necessary.
- If the rule group taking a long time to evaluate belongs to `/sg_prometheus_addons`, try reducing the complexity of any custom Prometheus rules provided.
-- If the rule group taking a long time to evaluate belongs to `/sg_config_prometheus`, please [open an issue](https://github.com/sourcegraph/sourcegraph/issues/new?assignees=&labels=&template=bug_report.md&title=).
+- If the rule group taking a long time to evaluate belongs to `/sg_config_prometheus`, please [contact us](https://help.sourcegraph.com/hc/en-us/requests/new).
- More help interpreting this metric is available in the [dashboards reference](dashboards#prometheus-prometheus-rule-eval-duration).
- **Silence this alert:** If you are aware of this alert and want to silence notifications for it, add the following to your site configuration and set a reminder to re-evaluate the alert:
@@ -6647,7 +6646,7 @@ Generated query for warning alert: `max((sum by (rule_group) (avg_over_time(prom
- Check Prometheus logs for messages related to rule group evaluation (generally with log field `component="rule manager"`).
- If the rule group failing to evaluate belongs to `/sg_prometheus_addons`, ensure any custom Prometheus configuration provided is valid.
-- If the rule group taking a long time to evaluate belongs to `/sg_config_prometheus`, please [open an issue](https://github.com/sourcegraph/sourcegraph/issues/new?assignees=&labels=&template=bug_report.md&title=).
+- If the rule group taking a long time to evaluate belongs to `/sg_config_prometheus`, please [contact us](https://help.sourcegraph.com/hc/en-us/requests/new).
- More help interpreting this metric is available in the [dashboards reference](dashboards#prometheus-prometheus-rule-eval-failures).
- **Silence this alert:** If you are aware of this alert and want to silence notifications for it, add the following to your site configuration and set a reminder to re-evaluate the alert:
@@ -8103,4 +8102,4 @@ Generated query for critical alert: `min((sum by (app) (up{app=~".*embeddings"\}
-
\ No newline at end of file
+
diff --git a/docs/admin/observability/index.mdx b/docs/admin/observability/index.mdx
index ce0c6ef4f..fada8d298 100644
--- a/docs/admin/observability/index.mdx
+++ b/docs/admin/observability/index.mdx
@@ -1,5 +1,11 @@
# Observability
+
+ Supported on [Enterprise](/pricing/enterprise) plans.
+
+ Available via the Web app.
+
+
A key pillar of production readiness is the ability to observe, monitor, and analyze the health and state of the system.
Sourcegraph is designed, and ships with, a number of observability tools and capabilities to meet enterprise production readiness criteria.
@@ -29,4 +35,4 @@ Sourcegraph is designed, and ships with, a number of observability tools and cap
## Support
-For help configuring observability on your Sourcegraph instance, use our [public issue tracker](https://github.com/sourcegraph/issues/issues).
+For help configuring observability on your Sourcegraph instance, contact the support team at support@sourcegraph.com.
diff --git a/docs/admin/observability/logs.mdx b/docs/admin/observability/logs.mdx
index 6d123d17c..e2b031c5c 100644
--- a/docs/admin/observability/logs.mdx
+++ b/docs/admin/observability/logs.mdx
@@ -18,14 +18,15 @@ Learn more about how to apply these environment variables in [docker-compose](/a
## Log format
-A Sourcegraph service's log output format is configured via the environment variable `SRC_LOG_FORMAT`. The valid values are:
+A Sourcegraph service's log output format is configured via the environment variable `SRC_LOG_FORMAT`. This design facilitates integration with external log aggregation systems and SIEM tools for centralized analysis, monitoring, and alerting.
+The valid values are:
* `condensed`: Optimized for human readability.
* `json`: Machine-readable JSON format.
* For certain services and log entries, Sourcegraph exports a [OpenTelemetry-compliant log data model](#opentelemetry).
* `json_gcp`: Machine-readable JSON format, tailored to [GCP cloud-logging expected structure.](https://cloud.google.com/logging/docs/structured-logging#special-payload-fields)
* `logfmt`: The [logfmt](https://github.com/kr/logfmt) format.
- * Note that `logfmt` is no longer supported with [Sourcegraph's new internal logging standards](/dev/how-to/add_logging) - if you need structured logs, we recommend using `json` instead. If set to `logfmt`, log output from new loggers will be in `condensed` format.
+ * Note that `logfmt` is no longer supported with [Sourcegraph's new internal logging standards](https://docs-legacy.sourcegraph.com/dev/how-to/add_logging/dev/how-to/add_logging) - if you need structured logs, we recommend using `json` instead. If set to `logfmt`, log output from new loggers will be in `condensed` format.
### OpenTelemetry
@@ -71,7 +72,7 @@ Note that this will also affect child scopes. So in the example you will also re
## Log sampling
-Sourcegraph services that have migrated to the [new internal logging standard](/dev/how-to/add_logging) have log sampling enabled by default.
+Sourcegraph services have log sampling enabled by default.
The first 100 identical log entries per second will always be output, but thereafter only every 100th identical message will be output.
This behaviour can be configured for each service using the following environment variables:
diff --git a/docs/admin/observability/metrics.mdx b/docs/admin/observability/metrics.mdx
index 8dc6797dd..699b5ce99 100644
--- a/docs/admin/observability/metrics.mdx
+++ b/docs/admin/observability/metrics.mdx
@@ -53,7 +53,6 @@ Changes to files in that directory will be detected automatically while Grafana
More behavior can be controlled with [environmental variables](https://grafana.com/docs/grafana/latest/administration/configuration/#configure-with-environment-variables).
-> NOTE: There is a [known issue](https://github.com/sourcegraph/sourcegraph/issues/6075) where attempting to edit anything using the Grafana UI will result in a 403 response with "invalid CSRF token".
> As a workaround, site admins can [connect to Grafana directly](#accessing-grafana-directly) to make changes using the Grafana UI.
### Accessing Grafana directly
@@ -82,8 +81,49 @@ sshuttle -r user@host 0/0
Grafana will be available at http://host:3370/-/debug/grafana.
-> WARNING: Our Grafana instance runs in anonymous mode with all authentication turned off, since we rely on Sourcegraph's built-in authentication.
-> Please be careful when exposing it directly to external traffic.
+### Grafana security
+
+
+WARNING: By default, our Grafana container runs in anonymous mode with authentication disabled, relying on Sourcegraph's authentication and authorization when accessed through your Sourcegraph instance.
+
+We recommend you use your network security controls to prevent access to Grafana's listening port, or enable Grafana's built-in authentication.
+
+
+To enable Grafana's built-in authentication, add `GF_AUTH_ANONYMOUS_ENABLED` as `false` in the Grafana container's environment variables in your deployment override file, then redeploy the Grafana container.
+
+We also recommend that you customize the default admin username and password.
+
+For new deployments, configure the `GF_SECURITY_ADMIN_USER` and `GF_SECURITY_ADMIN_PASSWORD` environment variables on the Grafana container, using your deployment pipeline's secrets management tool, before initial deployment, to initialize the default admin user on first deployment.
+
+For existing deployments, you can either log in to the Grafana web UI with the default credentials and it will prompt you to change the password, or you can reinitialize Grafana:
+
+1. Export any customized dashboards via JSON (if applicable)
+2. Configure the environment variables the same as a new instance
+3. Delete the Grafana container's storage volume
+4. Redeploy the Grafana container
+5. Import any customized dashboards (if applicable)
+
+The contents of the Grafana container's storage volume are ephemeral, so metrics data is not lost in this process.
+
+```yaml
+# Helm override
+grafana:
+ env:
+ GF_AUTH_ANONYMOUS_ENABLED:
+ value: "false"
+ GF_SECURITY_ADMIN_USER:
+ value: "custom-admin-username"
+ GF_SECURITY_ADMIN_PASSWORD:
+ value: "custom-admin-password"
+
+# Docker Compose override
+ grafana:
+ environment:
+ - 'GF_AUTH_ANONYMOUS_ENABLED=false'
+ - 'GF_SECURITY_ADMIN_USER=custom-admin-username'
+ - 'GF_SECURITY_ADMIN_PASSWORD=custom-admin-password'
+```
+
## Prometheus
diff --git a/docs/admin/observability/opentelemetry.mdx b/docs/admin/observability/opentelemetry.mdx
index d3034282a..34b100dd6 100644
--- a/docs/admin/observability/opentelemetry.mdx
+++ b/docs/admin/observability/opentelemetry.mdx
@@ -1,41 +1,41 @@
# OpenTelemetry
->NOTE: This feature is supported on Sourcegraph 4.0 and later.
+> This page is a deep dive into OpenTelemetry and customizing it. To get started with HTTP Tracing, see the [Tracing](/admin/observability/tracing) page.
-> WARNING: Sourcegraph is actively working on implementing [OpenTelemetry](https://opentelemetry.io/) for all observability data. **The first—and currently only—[signal](https://opentelemetry.io/docs/concepts/signals/) to be fully integrated is [tracing](/admin/observability/tracing)**.
+[OpenTelemetry](https://opentelemetry.io/) (OTel) is an industry-standard toolset to handle observability data, ex. metrics, logs, and traces.
-Sourcegraph exports OpenTelemetry data to a bundled [OpenTelemetry Collector](https://opentelemetry.io/docs/collector/) instance.
-This service can be configured to ingest, process, and then export observability data to an observability backend of choice.
-This approach offers a great deal of flexibility.
+To handle this data, Sourcegraph deployments include a bundled [OpenTelemetry Collector](https://opentelemetry.io/docs/collector/) (otel-collector) container, which can be configured to ingest, process, and export observability data to a backend of your choice. This approach offers great flexibility.
-## Configuration
+> NOTE: Sourcegraph currently uses OTel for HTTP Traces, and may use it for metrics and logs in the future.
-Sourcegraph's OpenTelemetry Collector is deployed with a [custom image, `sourcegraph/opentelemetry-collector`](https://sourcegraph.com/github.com/sourcegraph/sourcegraph/-/tree/docker-images/opentelemetry-collector), and is configured with a configuration YAML file.
-By default, `sourcegraph/opentelemetry-collector` is configured to not do anything with the data it receives, but [exporters to various backends](#exporters) can be configured for each signal we currently support—**currently, only [traces data](#tracing) is supported**.
+For an in-depth explanation of the parts that compose a full collector pipeline, see OpenTelemetry's [documentation](https://opentelemetry.io/docs/collector/configuration/).
-Refer to the [documentation](https://opentelemetry.io/docs/collector/configuration/) for an in-depth explanation of the parts that compose a full collector pipeline.
+## Deployment and Configuration
-For more details on configuring the OpenTelemetry collector for your deployment method, refer to the deployment-specific guidance:
+Sourcegraph's bundled otel-collector is deployed via Docker image, and is configured via configuration YAML file. By default, it is not configured to do anything with the data it receives, but [exporters](#exporters) to various backends can be configured.
-- [Kubernetes with Kustomize](/admin/deploy/kubernetes/configure#tracing)
-- [Kubernetes with Helm](/admin/deploy/kubernetes/helm#opentelemetry-collector)
-- [Docker Compose](/admin/deploy/docker-compose/operations#opentelemetry-collector)
+For details on how to deploy the otel-collector, and where to find its configuration file, refer to the docs page specific to your deployment type:
-## Tracing
+- [Kubernetes with Helm](/admin/deploy/kubernetes#configure-opentelemetry-collector-to-use-an-external-tracing-backend)
+- [Kubernetes with Kustomize](/admin/deploy/kubernetes/configure#deploy-opentelemetry-collector-to-use-an-external-tracing-backend)
+- [Docker Compose](/admin/deploy/docker-compose/configuration#configure-an-external-tracing-backend)
-Sourcegraph traces are exported in OpenTelemetry format to the bundled OpenTelemetry collector.
-To learn more about Sourcegraph traces in general, refer to our [tracing documentation](/admin/observability/tracing).
+## HTTP Tracing Backends
-`sourcegraph/opentelemetry-collector` includes the following exporters that support traces:
+Sourcegraph containers export HTTP traces in OTel format to the bundled otel-collector.
+For more information about HTTP traces, see the [Tracing](/admin/observability/tracing) page.
-- [OTLP-compatible backends](#otlp-compatible-backends) (includes services like Honeycomb and Grafana Tempo)
+The bundled otel-collector includes the following exporters, which support HTTP traces in OTel format:
+
+- [OTLP-compatible backends](#otlp-compatible-backends), ex. Honeycomb, Grafana Tempo
- [Jaeger](#jaeger)
- [Google Cloud](#google-cloud)
-> NOTE: In case you require an additional exporter from the [`opentelemetry-collector-contrib` repository](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter), please [open an issue](https://github.com/sourcegraph/sourcegraph/issues).
+Basic configuration for each tracing backend type is described below.
+
+> NOTE: If you require an additional exporter from the [opentelemetry-collector-contrib](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter) repository, please contact Sourcegraph Customer Support.
-Basic configuration for each tracing backend type is described below. Note that just adding a backend to the `exporters` block does not enable it—it must also be added to the `service` block.
-Refer to the next snippet for a basic but complete example, which is the [default out-of-the-box configuration](https://sourcegraph.com/github.com/sourcegraph/sourcegraph/-/blob/docker-images/opentelemetry-collector/configs/logging.yaml):
+To enable a backend, it must be adding to both the `exporters` block and the `service` block:
```yaml
receivers:
@@ -45,7 +45,7 @@ receivers:
http:
exporters:
- logging:
+ logging: # Export HTTP traces as log events
loglevel: warn
sampling_initial: 5
sampling_thereafter: 200
@@ -59,17 +59,17 @@ service:
- logging # The exporter name must be added here to enable it
```
-### Sampling traces
+## Sampling traces
-To reduce the volume of traces being exported, the collector can be configured to apply sampling to the exported traces. Sourcegraph bundles the [probabilistic sampler](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/processor/probabilisticsamplerprocessor) and the [tail sampler](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/processor/tailsamplingprocessor/README) as part of it's default collector container image.
+To reduce the volume of traces exported, the collector can be configured to apply sampling. Sourcegraph includes the [probabilistic](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/processor/probabilisticsamplerprocessor) and [tail](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/processor/tailsamplingprocessor/README.md) samplers in the bundled collector.
-If enabled, this sampling mechanism will be applied to all traces, regardless if a request was explictly marked as to be traced.
+> NOTE: If sampling is enabled, the sampling mechanism will be applied to all traces, regardless if a request was explicitly requested to be traced.
-#### Probabilistic sampler
+### Probabilistic sampler
-The probabilistic sampler hashes Trace IDs and determines whether a trace should be sampled based on this hash. Note that semantic convention of tags on a trace take precedence over Trace ID hashing when deciding whether a trace should be sampled or not.
+The probabilistic sampler hashes TraceIDs and determines whether a trace should be sampled based on this hash. Note that semantic convention of tags on a trace take precedence over TraceID hashing when deciding whether a trace should be sampled or not.
-Refer to the next snippet for an example on how to update the configuration to enable sampling using the probabilistic sampler.
+To enable probabilistic sampling, add the following to the `processors` block:
```yaml
exporters:
@@ -90,18 +90,19 @@ service:
### Tail sampling
-The tail sampler samples traces according to policies and the sampling decision of whether a trace should be sampled is determined at the _tail end_ of a pipeline. For more information on the supported policies and other configuration options of the sampler see [tail sampler configuration](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/processor/tailsamplingprocessor/README).
+The tail sampler samples traces according to policies and the sampling decision of whether a trace should be sampled is determined at the _tail end_ of a pipeline. For more information on the supported policies and other configuration options of the sampler see [tail sampler configuration](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/processor/tailsamplingprocessor/README.md).
-The sampler waits for a certain amount of spans before making applying the configured policy. Due to it keeping a certain amount of spans in memory the sampler incurs as slight performance cost compared to the Probabilistic sampler. For a better comparison on probabilistic vs tail sampling processors see [here](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/processor/tailsamplingprocessor/README#probabilistic-sampling-processor-compared-to-the-tail-sampling-processor-with-the-probabilistic-policy)
+The sampler waits for a certain amount of spans before making applying the configured policy. Due to it keeping a certain amount of spans in memory, the sampler incurs as slight performance cost compared to the probabilistic sampler.
-Refer to the next snippet for an example on how to update the configuration to enable tail sampling with a particular policy.
+To understand how the policies are applied, see the open-telemetry code [here](https://sourcegraph.com/github.com/open-telemetry/opentelemetry-collector-contrib@71dd19d2e59cd1f8aa9844461089d5c17efaa0ca/-/blob/processor/tailsamplingprocessor/processor.go?L214).
+
+To enable tail sampling, and customize the policies, add the following to the `processors` block:
```yaml
receivers:
# ...
exporters:
# ...
-
processors:
tail_sampling:
# Wait time since the first span of a trace before making a sampling decision
@@ -110,20 +111,17 @@ processors:
num_traces: 50000 # default value = 50000
# Expected number of new traces (helps in allocating data structures)
expected_new_traces_per_sec: 10 # default value = 0
- # Recommended reading to understand how the policies are applied:
- # https://sourcegraph.com/github.com/open-telemetry/opentelemetry-collector-contrib@71dd19d2e59cd1f8aa9844461089d5c17efaa0ca/-/blob/processor/tailsamplingprocessor/processor.go?L214
policies:
[
{
- # If a span contains `sampling_retain: true`, it will always be sampled (not dropped),
- # regardless of the probabilistic sampling.
+ # If a span contains `sampling_retain: true`, it will always be included
name: policy-retain,
type: string_attribute,
string_attribute: {key: sampling.retain, values: ['true']},
},
{
# Only keep 10% of the traces.
- name: policy-probalistic,
+ name: policy-probabilistic,
type: probabilistic,
probabilistic: {sampling_percentage: 10}
}
@@ -136,68 +134,69 @@ service:
processors: [tail_sampling]
```
-### Filtering traces
+## Filtering traces
-As part of the default container image Sourcegraph bundles the [filter processor](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/processor/filterprocessor/README). By configuring a pipeline to have a filter processor one is able to include or exclude (depending on configuration!) on whether a trace should be allowed through the pipeline and be exported.
-
-Refer to the following snippet where a filter processor is configured to only allow traces with the service name "foobar" to continue through the pipeline. All other traces that do not have this service name will be dropped.
+The bundled otel-collector also includes the [filter processor](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/processor/filterprocessor/README.md). The following example only allows traces with the service name "foobar". All other traces will be dropped.
```yaml
exporters:
# ...
-
receivers:
# ...
-
processors:
- filter/foobar: # the format is / - note a name is NOT required
+ filter/foobar: # Format is / - name is optional
spans:
include:
- match_type: strict # regexp is also a supported type
+ match_type: strict # Also supports regex
services:
- "foobar"
service:
pipelines:
- traces: # pipeline accepts all traces
- traces/foobar: # pipeline that only export foobar traces
+ traces: # This pipeline exports all traces
+ traces/foobar: # This pipeline only exports traces from the foobar service
# ...
processors: [filter/foobar]
```
+
## Exporters
-Exporters send observability data from OpenTelemetry collector to desired backends.
-Each exporter can support one, or several, OpenTelemetry signals.
+Exporters send observability data from the otel-collector to the needed backend(s).
+Each exporter can support one or more OTel signals.
-This section outlines some common configurations for exporters—for more details, refer to the [official OpenTelemetry exporters documentation](https://opentelemetry.io/docs/collector/configuration/#exporters).
+This section outlines some common exporter configurations. For details, see OpenTelemetry's [exporters](https://opentelemetry.io/docs/collector/configuration/#exporters) page.
-> NOTE: In case you require an additional exporter from the [`opentelemetry-collector-contrib` repository](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter), please [open an issue](https://github.com/sourcegraph/sourcegraph/issues).
+> NOTE: If you require an additional exporter from the [opentelemetry-collector-contrib](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter) repository, please contact Sourcegraph Customer Support.
### OTLP-compatible backends
-Backends compatible with the [OpenTelemetry protocol (OTLP)](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/otlp) include services like [Honeycomb](https://docs.honeycomb.io/getting-data-in/opentelemetry-overview/) and [Grafana Tempo](https://grafana.com/blog/2021/04/13/how-to-send-traces-to-grafana-clouds-tempo-service-with-opentelemetry-collector/).
-OTLP-compatible backends typically accept the [OTLP gRPC protocol](#otlp-grpc-backends), but they can also implement the [OTLP HTTP protocol](#otlp-http-backends).
+Backends compatible with the [OpenTelemetry Protocol (OTLP)](https://opentelemetry.io/docs/specs/otlp/) include services such as:
+
+- [Honeycomb](https://docs.honeycomb.io/getting-data-in/opentelemetry-overview/)
+- [Grafana Tempo](https://grafana.com/blog/2021/04/13/how-to-send-traces-to-grafana-clouds-tempo-service-with-opentelemetry-collector/)
+
+OTLP-compatible backends typically accept the [OTLP gRPC protocol](#otlp-grpc-backends), but may require the [OTLP HTTP protocol](#otlp-http-backends) instead.
#### OTLP gRPC backends
-Refer to the [`otlp` exporter documentation](https://github.com/open-telemetry/opentelemetry-collector/blob/main/exporter/otlpexporter/README) for all available options.
+Refer to the [otlp exporter](https://github.com/open-telemetry/opentelemetry-collector/blob/main/exporter/otlpexporter/README.md) documentation for available options.
```yaml
exporters:
otlp:
- endpoint: otelcol2:4317
+ endpoint: secure-otel-collector:4317
tls:
cert_file: file.cert
key_file: file.key
otlp/2:
- endpoint: otelcol2:4317
+ endpoint: insecure-otel-collector:4317
tls:
insecure: true
```
#### OTLP HTTP backends
-Refer to the [`otlphttp` exporter documentation](https://github.com/open-telemetry/opentelemetry-collector/tree/main/exporter/otlphttpexporter/README) for all available options.
+Refer to the [otlphttp exporter](https://github.com/open-telemetry/opentelemetry-collector/tree/main/exporter/otlphttpexporter/README.md) documentation for available options.
```yaml
exporters:
@@ -207,18 +206,14 @@ exporters:
### Jaeger
-Refer to the [`jaeger` exporter documentation](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/exporter/jaegerexporter/README) for all options.
+If you're looking for information about Sourcegraph's bundled Jaeger instance, head back to the [Tracing](/admin/observability/tracing) page to find the instructions for your deployment method.
-Most Sourcegraph deployment methods still ship with an opt-in Jaeger instance—to set this up, follow the relevant deployment guides, which will also set up the appropriate configuration for you:
+Refer to the [Jaeger](https://opentelemetry.io/docs/languages/js/exporters/#jaeger) documentation for options.
-- [Kubernetes with Kustomize](/admin/deploy/kubernetes/configure#deploy-opentelemetry-collector-with-jaeger-as-tracing-backend)
-- [Kubernetes with Helm](/admin/deploy/kubernetes/helm#enable-the-bundled-jaeger-deployment)
-- [Docker Compose](/admin/deploy/docker-compose/operations#enable-the-bundled-jaeger-deployment)
-
-If you wish to do additional configuration or connect to your own Jaeger instance, the deployed Collector image is bundled with a [basic configuration with Jaeger exporting](https://sourcegraph.com/github.com/sourcegraph/sourcegraph/-/blob/docker-images/opentelemetry-collector/configs/jaeger.yaml).
-If this configuration serves your needs, you do not have to provide a separate config—the Collector startup command can be set to `/bin/otelcol-sourcegraph --config=/etc/otel-collector/configs/jaeger.yaml`. Note that this requires the environment variable `$JAEGER_HOST` to be set on the Collector instance (i.e. the container in Kubernetes or Docker Compose):
+If you must use your own Jaeger instance, and if the bundled otel-collector's basic configuration with the Jaeger OTel exporter enabled meets your needs, configure the otel-collector's startup command to `/bin/otelcol-sourcegraph --config=/etc/otel-collector/configs/jaeger.yaml`. Note that this requires the environment variable `$JAEGER_HOST` to be set on the otel-collector service / container:
```yaml
+# otel-collector config.yaml
exporters:
jaeger:
# Default Jaeger gRPC server
@@ -227,17 +222,17 @@ exporters:
insecure: true
```
-### Google Cloud
+The Sourcegraph frontend automatically proxies Jaeger's web UI to make it available at `/-/debug/jaeger`. You can proxy your own Jaeger instance instead by configuring the `JAEGER_SERVER_URL` environment variable on the `frontend` containers, and the `QUERY_BASE_PATH='/-/debug/jaeger'` environment variable on your `jaeger` container.
-Refer to the [`googlecloud` exporter documentation](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/exporter/googlecloudexporter/README) for all available options.
+### Google Cloud
-If you run Sourcegraph on a GCP workload, all requests will be authenticated automatically. The documentation describes other authentication methods.
+If you run Sourcegraph in GCP and wish to export your HTTP traces to Google Cloud Trace, otel-collector can use project authentication. See the [Google Cloud Exporter](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/exporter/googlecloudexporter/README.md) documentation for available options.
```yaml
exporters:
googlecloud:
# See docs
- project: project-name # or fetched from credentials
+ project: project-name # Project name can also be fetched from secrets
retry_on_failure:
enabled: false
```
diff --git a/docs/admin/observability/outbound-request-log.mdx b/docs/admin/observability/outbound-request-log.mdx
index 589ad8167..235067f67 100644
--- a/docs/admin/observability/outbound-request-log.mdx
+++ b/docs/admin/observability/outbound-request-log.mdx
@@ -45,4 +45,4 @@ Note: You can set the `redactOutboundRequestHeaders` [site config](/admin/config
## Trouble Shooting
### Page failing to load, or loading slowly
-If the Outbound Request Log page is failing to load, or loading slowly, you may need to allocate more resources to Redis. To confirm, please check the charts for Redis under the `provisioning indicators` dropdown in grafana. If these charts show that your CPU usage is consistently over the threshold, allocate more resources to Redis. You can use our [resource estimator](https://docs.sourcegraph.com/admin/deploy/resource_estimator) as a guide.
+If the Outbound Request Log page is failing to load, or loading slowly, you may need to allocate more resources to Redis. To confirm, please check the charts for Redis under the `provisioning indicators` dropdown in grafana. If these charts show that your CPU usage is consistently over the threshold, allocate more resources to Redis. You can use our [resource estimator](/admin/deploy/resource_estimator) as a guide.
diff --git a/docs/admin/observability/tracing.mdx b/docs/admin/observability/tracing.mdx
index 1759af372..47829a4c9 100644
--- a/docs/admin/observability/tracing.mdx
+++ b/docs/admin/observability/tracing.mdx
@@ -1,104 +1,125 @@
-# Tracing
+# HTTP Tracing
-In site configuration, you can enable tracing globally by configuring a sampling mode in `observability.tracing`.
-There are currently three modes:
+HTTP traces are a powerful debugging tool to help you see how your Sourcegraph requests are processed under the hood - like having X-ray vision into how long each part takes and where errors occur.
-* `"sampling": "selective"` (default) will cause a trace to be recorded only when `trace=1` is present as a URL parameter (though background jobs may still emit traces).
-* `"sampling": "all"` will cause a trace to be recorded on every request.
-* `"sampling": "none"` will disable all tracing.
+To enable HTTP traces on your Sourcegraph Instance:
-`"selective"` is the recommended default, because collecting traces on all requests can be quite memory- and network-intensive.
-If you have a large Sourcegraph instance (e.g,. more than 10k repositories), turn this on with caution.
-Note that the policies above are implemented at an application level—to sample all traces, please configure your tracing backend directly.
+1. Deploy and / or configure a tracing backend
-We support the following tracing backend types:
+2. Configure tracing in your Site Configuration settings, to match your tracing backend
-* [`"type": "opentelemetry"`](#opentelemetry) (default)
-* [`"type": "jaeger"`](#jaeger)
+## Backends
-In addition, we also export some tracing [via net/trace](#nettrace).
+The quickest way to get started with HTTP tracing is to deploy our bundled Jaeger backend. You can also configure an external, OpenTelemetry-compatible backend of your choice.
-## How to use traces
-
-Tracing is a powerful debugging tool that can break down where time is spent over the lifecycle of a
-request and help pinpoint the source of high latency or errors.
-To get started with using traces, you must first [configure a tracing backend](#tracing-backends).
-
-We generally follow the following algorithm to root-cause issues with traces:
-
-1. Reproduce a slower user request (e.g., a search query that takes too long or times out) and acquire a trace:
- 1. [Trace a search query](#trace-a-search-query)
- 2. [Trace a GraphQL request](#trace-a-graphql-request)
-2. Explore the breakdown of the request tree in the UI of your [tracing backend](#tracing-backends), such as Honeycomb or Jaeger. Look for:
- 1. items near the leaves that take up a significant portion of the overall request time.
- 2. spans that have errors attached to them
- 3. [log entries](/admin/observability/logs) that correspond to spans in the trace (using the `TraceId` and `SpanId` fields)
-3. Report this information to Sourcegraph (via [issue](https://github.com/sourcegraph/sourcegraph/issues/new) or [reaching out directly](https://about.sourcegraph.com/contact/request-info/)) by screenshotting the relevant trace or sharing the trace JSON.
+### Jaeger
-### Trace a search query
+To deploy our bundled Jaeger backend, follow the instructions for your deployment type:
-To trace a search query, run a search on your Sourcegraph instance with the `?trace=1` query parameter.
-A link to the [exported trace](#tracing-backends) should be show up in the search results:
+- [Kubernetes with Helm](/admin/deploy/kubernetes#enable-the-bundled-jaeger-deployment)
+- [Kubernetes with Kustomize](/admin/deploy/kubernetes/configure#deploy-the-bundled-opentelemetry-collector-and-jaeger)
+- [Docker Compose](/admin/deploy/docker-compose/configuration#deploy-the-bundled-jaeger)
-
+Then configure your Site Configuration:
-Note that getting a trace URL requires `urlTemplate` to be configured.
+1. Ensure your `externalURL` is configured
+2. Configure `observability.tracing` > `urlTemplate`
+3. Optionally, configure `observability.client`, for Sourcegraph clients to also report traces, ex. src cli
-### Trace a GraphQL request
+```json
+ "externalURL": "https://sourcegraph.example.com",
+ "observability.tracing": {
+ "urlTemplate": "{{ .ExternalURL }}/-/debug/jaeger/trace/{{ .TraceID }}"
+ },
+ "observability.client": {
+ "openTelemetry": {
+ "endpoint": "/-/debug/otlp"
+ }
+ },
+```
-To receive a traceID on a GraphQL request, include the header `X-Sourcegraph-Should-Trace: true` with the request.
-The response headers of the response will now include an `x-trace-url` entry, which will have a URL the [exported trace](#tracing-backends).
+Where:
-Note that getting a trace URL requires `urlTemplate` to be configured.
+- `{{ .ExternalURL }}` is the value of the `externalURL` setting in your Sourcegraph instance's Site Configuration
+- `{{ .TraceID }}` is the TraceID which gets generated while processing the request
-## Tracing backends
+Once deployed, the Jaeger web UI will be accessible at `/-/debug/jaeger`
-Tracing backends can be configured for Sourcegraph to export traces to.
-We support exporting traces via [OpenTelemetry](#opentelemetry) (recommended), or directly to [Jaeger](#jaeger).
+### External OpenTelemetry-Compatible Platforms
-### OpenTelemetry
+If you prefer to use an external, OTel-compatible platform, you can configure Sourcegraph to export traces to it instead. See our [OpenTelemetry documentation](/admin/observability/opentelemetry) for further details.
-To learn about exporting traces to various backends using OpenTelemetry, review our [OpenTelemetry documentation](/admin/observability/opentelemetry).
-Once configured, you can set up a `urlTemplate` that points to your traces backend, which allows you to use the following variables:
+Then configure your Site Configuration:
-* `{{ .TraceID }}` is the full trace ID
-* `{{ .ExternalURL }}` is the external URL of your Sourcegraph instance
+1. Configure `observability.tracing` > `urlTemplate`
+2. Optionally, configure `observability.client`, for Sourcegraph clients to also report traces, ex. src cli
-For example, if you [export your traces to Honeycomb](/admin/observability/opentelemetry#otlp-compatible-backends), your configuration might look like:
+For example, if you export your traces to [Honeycomb](/admin/observability/opentelemetry#otlp-compatible-backends), your Site Configuration may look like:
```json
-{
"observability.tracing": {
- "type": "opentelemetry",
- "urlTemplate": "https://ui.honeycomb.io/$ORG/environments/$DATASET/trace?trace_id={{ .TraceID }}"
- }
-}
+ "urlTemplate": "https://ui.honeycomb.io/YOUR-HONEYCOMB-ORG/environments/YOUR-HONEYCOMB-DATASET/trace?trace_id={{ .TraceID }}"
+ },
+ "observability.client": {
+ "openTelemetry": {
+ "endpoint": "/-/debug/otlp"
+ }
+ },
```
-You can test the exporter by [tracing a search query](#trace-a-search-query).
+Where:
-### Jaeger
+- `{{ .TraceID }}` is the TraceID which gets generated while processing the request
-There are two ways to export traces to Jaeger:
+## How to use traces
-1. **Recommended:** Configuring the [OpenTelemetry Collector](/admin/observability/opentelemetry) (`"type": "opentelemetry"` in `observability.tracing`) to [send traces to a Jaeger instance](/admin/observability/opentelemetry#jaeger).
-2. Using the legacy `"type": "jaeger"` configuration in `observability.tracing` to send spans directly to Jaeger.
+We generally use the following approach when using traces to help root-cause an issue:
-We strongly recommend using option 1 to use Jaeger, which is supported via opt-in mechanisms for each of our core deployment methods—to learn more, refer to the [Jaeger exporter documentation](/admin/observability/opentelemetry#jaeger).
+1. Reproduce the problematic user request, with the `trace=1` parameter in the URL
+2. Get the link to the trace in the tracing backend, from the `x-trace-url` response header
+3. Explore the request tree in the the tracing backend's UI, and take note of:
+ 1. Items near the leaves which take up a significant portion of the overall request time
+ 2. Spans which have errors attached to them
+4. Search your Sourcegraph instance [logs](/admin/observability/logs) for events which include the corresponding `TraceId` or `SpanId` values
+5. Include this information in your Sourcegraph support ticket, by attaching the trace JSON file, and / or screenshots
-To use option 2 instead, which enables behaviour similar to how Sourcegraph exported traces before Sourcegraph 4.0, [Jaeger client environment variables](https://github.com/jaegertracing/jaeger-client-go#environment-variables) must be set on all services for traces to export to Jaeger correctly using `"observability.tracing": { "type": "jaeger" }`.
+### Trace a search query
+
+To trace a search query, run a search on your Sourcegraph instance with the `?trace=1` parameter in the URL.
+
+Depending on your Sourcegraph instance version, a link to the exported trace may appear in the UI:
+
+
+
+### Trace a GraphQL request
-A mechanism within Sourcegraph is available to reverse-proxy a Jaeger instance by setting the `JAEGER_SERVER_URL` environment variable on the `frontend` service, which allows you to access Jaeger using `/-/debug/jaeger`.
-The Jaeger instance will also need `QUERY_BASE_PATH='/-/debug/jaeger'` to be configured.
-Once set up, you can use the following URL template for traces exported to Jaeger:
+To trace a GraphQL request, include a `X-Sourcegraph-Should-Trace: true` header when you send the request.
+
+The response will include an `x-trace-url` header, which will include a URL to the exported trace.
+
+## Trace Formats
+
+As the OTel (OpenTelemetry) HTTP trace format has gained broad industry adoption, we've centralized our support for HTTP traces on the OTel format, whether with our bundled Jaeger, or an external backend of your choice.
+
+As Jaeger has also switched to the OTel format, we've removed support for Jaeger's deprecated format.
+We've also removed support for Go's net/trace format.
+
+## Basic sampling modes
+
+Three basic sampling modes are available in the `observability.tracing` Site Configuration:
```json
-{
"observability.tracing": {
- // set "type" to "opentelemetry" for option 1, "jaeger" for option 2
- "urlTemplate": "{{ .ExternalURL }}/-/debug/jaeger/trace/{{ .TraceID }}"
+ "urlTemplate": "{{ .ExternalURL }}/-/debug/jaeger/trace/{{ .TraceID }}",
+ "sampling": "selective"
}
-}
```
-You can test the exporter by [tracing a search query](#trace-a-search-query).
+- `selective`
+ - Default
+ - Only exports a trace when the `trace=1` parameter is in the request URL
+- `all`
+ - Exports traces for all requests
+ - Not recommended, as it can be memory and network intensive, while very few traces are actually needed
+- `none`
+ - Disables tracing
diff --git a/docs/admin/observability/troubleshooting.mdx b/docs/admin/observability/troubleshooting.mdx
index cb2581662..d21bc7f4d 100644
--- a/docs/admin/observability/troubleshooting.mdx
+++ b/docs/admin/observability/troubleshooting.mdx
@@ -9,8 +9,7 @@ issue or generating a high-quality issue report.
any do, follow the instructions in the subsection.
1. Scan through [General scenarios](#general-scenarios) to find which scenario(s) applies to you. If any do,
follow the instructions to update your instance or collect information for the issue report.
-1. If you cannot resolve the issue on your own, file an issue on the [Sourcegraph issue
- tracker](https://github.com/sourcegraph/sourcegraph/issues) with the collected
+2. If you cannot resolve the issue on your own, [contact us](https://help.sourcegraph.com/hc/en-us/requests/new) with the collected
information. Enterprise customers may alternatively file a support ticket or email
`support@sourcegraph.com`.
@@ -33,7 +32,7 @@ If this is the case, this could indicate high gitserver load. To confirm, take t
metric) and "Commands running concurrently" dashboard (tracks the `src_gitserver_exec_running`
metric). If either of these is high (> 1s echo duration or 100s simultaneous execs), then this
indicates gitserver is under heavy load and likely the bottleneck.
-1. Confirm your gitserver is not under-provisioned, by e.g. comparing its allocated resources with what the [resource estimator](https://docs.sourcegraph.com/admin/deploy/resource_estimator) shows.
+2. Confirm your gitserver is not under-provisioned, by e.g. comparing its allocated resources with what the [resource estimator](/admin/deploy/resource_estimator) shows.
Solution: set `USE_ENHANCED_LANGUAGE_DETECTION=false` in the Sourcegraph runtime
environment.
@@ -109,8 +108,6 @@ find a repro if possible. If that isn't possible, file an issue with the followi
components of the request are slow. Remember that many Sourcegraph API requests identify the
Jaeger trace ID in the `x-trace` HTTP response header, which makes it easy to look up the trace
corresponding to a particular request.
- 1. If Jaeger is unavailable or unreliable, you can collect trace data from [the Go net/trace
- endpoint](#examine-go-net-trace).
1. Copy the [Sourcegraph configuration](#copy-configuration) to the error report.
#### Scenario: the issue is performance-related and there is NOT a consistent reproduction
@@ -127,10 +124,8 @@ find a repro if possible. If that isn't possible, try the following:
around a certain time, [check the logs](#examine-logs) around that time.
1. If the issue is ongoing or if you know the time during which the issue occurred, [search
Jaeger](#collect-a-jaeger-trace) for long-running request traces in the appropriate time window.
- 1. If Jaeger is unavailable, you can alternatively use the Go net/trace endpoint. (You will have
- to scan the traces for each service to look for slow traces.)
1. If tracing points to a specific service as the source of high latency, [examine the
- logs](#examine-logs) and [net/trace info](#examine-go-net-trace) for that service.
+ logs](#examine-logs) for that service.
#### Scenario: multiple actions are slow or Sourcegraph as a whole feels sluggish
@@ -164,8 +159,6 @@ If Sourcegraph feels sluggish overall, the likely culprit is resource allocation
when loading search results. This can be a problem when dealing with large monorepos.
1. If it is unclear which service is underallocated, [examine Jaeger](#collect-a-jaeger-trace) to
identify long-running traces and see which services take up the most time.
- 1. Alternatively, you can use the [Go net/trace endpoint](#examine-go-net-trace) to pull trace
- data.
#### Scenario: Prometheus scraping metrics outside Sourcegraph Kubernetes namespace
@@ -345,29 +338,6 @@ If you are using Kubernetes,
* You can tail logs for all pods associated with a given deployment: `kubectl logs -f
deployment/sourcegraph-frontend --container=frontend --since=10m`
-
-### Examine Go net/trace
-
-Each core service has an endpoint which displays traces using Go's
-[net/trace](https://pkg.go.dev/golang.org/x/net/trace) package.
-
-To access this data,
-
-1. First ensure you are logged in as a site admin.
-1. Go to the URL path `/-/debug`. This page should show a list of links with the names of each core
- service (e.g., `frontend`, `gitserver`, etc.)
-1. Click on the service you'd like to examine.
-1. Click "Requests`. This brings you to a page where you can view traces for that service.
- * You can filter to traces by duration or error state.
- * You can show histograms of durations by minute, hour, or in total (since the process started)
-
-On older versions of Sourcegraph on Kubernetes, the `/-/debug` URL path may be inaccessible. If this
-is the case, you'll need to forward port 6060 on the main container of a given pod to access its
-traces. For example, to access to traces of the first gitserver shard,
-
-1. `kubectl port-forward gitserver-0 6060`
-1. Go to `http://localhost:6060` in your browser, and click on "Requests".
-
### Copy configuration
Go the the URL path `/site-admin/report-bug` to obtain an all-in-one text box of all Sourcegraph
diff --git a/docs/admin/permissions/api.mdx b/docs/admin/permissions/api.mdx
index ccd4018f2..184efe98d 100644
--- a/docs/admin/permissions/api.mdx
+++ b/docs/admin/permissions/api.mdx
@@ -46,10 +46,12 @@ The `bindID` value specifies how to uniquely identify users when setting permiss
- `username`: You can [set permissions](#setting-repository-permissions-for-users) for users by specifying their Sourcegraph usernames. Using usernames is **preferred**, as usernames are required to be unique for each user.
- `email`: You can [set permissions](#setting-repository-permissions-for-users) for users by specifying their email addresses (which must be verified emails associated with their Sourcegraph user account). This method can lead to unexpected results if there are multiple Sourcegraph user accounts with the same verified email address.
-After you enable the permissions API, you must [set permissions](#setting-repository-permissions-for-users) to allow users to view repositories (site admins bypass all permissions checks and can always view all repositories).
+After you enable the permissions API, you must [set permissions](#setting-repository-permissions-for-users) to allow users to view repositories (site admins bypass all permissions checks and can always view all repositories).
> NOTE: If you were previously using [permissions syncing](/admin/permissions/syncing), e.g. syncing permissions from Github, then those permissions are used as the initial state after enabling explicit permissions. Otherwise, the initial state is for all repositories to have an empty set of authorized users, so users will not be able to view any repositories.
+> NOTE: In some cases, in order for the repo permissions to be enforced, you must re-save the code host connection configuration with some modification to the JSON after enabling the permissions API.
+
## Setting a repository as unrestricted
Sometimes it can be useful to mark a repository as `unrestricted`, meaning that it is available to all Sourcegraph users. This can be done with the `setRepositoryPermissionsUnrestricted` mutation. Marking a repository as unrestricted will disregard any previously set explicit or synced permissions. Setting `unrestricted` back to `false` will restore the previous behaviour.
@@ -95,6 +97,60 @@ Now, only the users specified in the `userPermissions` parameter will be allowed
You can call `setRepositoryPermissionsForUsers` repeatedly to set permissions for each repository, and whenever you want to change the list of authorized users.
+## Setting sub-repository permissions for users
+
+> NOTE: If a user has no sub-repo permissions set for a specific repository (assuming that they have general access to the repository), they will have access to the entire repository contents.
+
+Sourcegraph supports permissions on a per-file/directory basis.
+
+To enable the sub-repo permissions API, add the following to the [site configuration](/admin/config/site_config):
+
+```json
+"experimentalFeatures": {
+ "subRepoPermissions": {"enabled": true}
+}
+```
+
+Sub-repo permissions can be set for a repository via the following GraphQL API:
+
+```graphql
+mutation {
+ setSubRepositoryPermissionsForUsers(
+ repository: "",
+ userPermissions: [
+ {
+ bindID: "alice",
+ paths: ["-/**", "/README.md"]
+ }
+ ]
+ ) {
+ alwaysNil
+ }
+}
+```
+
+This query denies the user `alice` access to all files in the repository, except for the file `README.md`.
+The paths are specified in the [glob syntax](https://en.wikipedia.org/wiki/Glob_(programming)), and a `-` prefix indicates that the path should be denied.
+Permissions are applied in the order they are specified. If we were to want to provide `alice` access to all files except for the `README.md` file, we could specify the following:
+
+```graphql
+mutation {
+ setSubRepositoryPermissionsForUsers(
+ repository: "",
+ userPermissions: [
+ {
+ bindID: "alice",
+ paths: ["/**", "-/README.md"]
+ }
+ ]
+ ) {
+ alwaysNil
+ }
+}
+```
+
+The default permission if a path is not specified is to deny access.
+
### Listing a user's authorized repositories
You may query the set of repositories visible to a particular user with the `authorizedUserRepositories` [GraphQL API](/api/graphql) query, which accepts a `username` or `email` parameter to specify the user:
diff --git a/docs/admin/permissions/index.mdx b/docs/admin/permissions/index.mdx
index 086a5ff37..c55d8aeff 100644
--- a/docs/admin/permissions/index.mdx
+++ b/docs/admin/permissions/index.mdx
@@ -1,5 +1,12 @@
# Permissions
+
+ Supported on [Enterprise](/pricing/enterprise) plans.
+
+ Available via the Web app.
+
+
+
> NOTE: This page refers to repository access permissions synced between Sourcegraph and your code host, which has also historically been referred to as "authorization", "repository permissions", and "code host permissions". This is *not* the same as [in-product permissions](/admin/access_control/), which determine who can, for example, create a batch change or who is a site admin.
Sourcegraph can be configured to enforce the same access to repositories and underlying
@@ -21,21 +28,25 @@ Same for `bob`, the search results or any other feature will not show him the ex
## Getting started
-To set up permissions by [syncing them from a code host](/admin/permissions/syncing) you need two things: [an authentication provider](/admin/auth/) that can tell which users should see which repositories and [a code host connection](/admin/external_service/) with authorization enabled.
+To set up permissions by [syncing them from a code host](/admin/permissions/syncing) you need two things: [an authentication provider](/admin/auth/) that can tell which users should see which repositories and [a code host connection](/admin/code_hosts/) with authorization enabled.
1. Configure an authentication provider for the code host from which you want to sync permissions:
- [GitHub](/admin/auth/#github)
- [GitLab](/admin/auth/#gitlab)
- [Bitbucket Cloud](/admin/auth/#bitbucket-cloud)
+ - [Bitbucket Server](/admin/auth/#bitbucket-server)
- [Gerrit](/admin/auth/#gerrit)
- - Bitbucket Server doesn't require an authentication provider, but has [other prerequisites](/admin/external_service/bitbucket_server#prerequisites)
+ - Bitbucket Server doesn't require an authentication provider, but has [other prerequisites](/admin/code_hosts/bitbucket_server#prerequisites)
- Perforce doesn't need a separate authentication provider
+ - [Azure DevOps](/admin/code_hosts/azuredevops)
2. Configure the code host connection to use authorization:
- - [GitHub](/admin/external_service/github#repository-permissions)
- - [GitLab](/admin/external_service/gitlab#repository-permissions)
- - [Bitbucket Cloud](/admin/external_service/bitbucket_cloud#repository-permissions)
- - [Gerrit](/admin/external_service/gerrit#add-gerrit-as-an-authentication-provider)
+ - [GitHub](/admin/code_hosts/github#repository-permissions)
+ - [GitLab](/admin/code_hosts/gitlab#repository-permissions)
+ - [Bitbucket Cloud](/admin/code_hosts/bitbucket_cloud#repository-permissions)
+ - [Bitbucket Server](/admin/code_hosts/bitbucket_server#repository-permissions)
+ - [Gerrit](/admin/code_hosts/gerrit#add-gerrit-as-an-authentication-provider)
- [Perforce](/admin/repo/perforce#repository-permissions)
+ - [Azure DevOps](/admin/code_hosts/azuredevops#permissions-syncing)
It's also possible to use other methods to get permission data from a code host into the Sourcegraph instance.
@@ -52,21 +63,20 @@ To know more about each method that we support, please follow the link above.
## Supported code hosts
Support for repository permissions accross different code hosts is different. The following table captures current state of support (ordered alphabetically):
-| Code host | [Permission Syncing](/admin/permissions/syncing) | [Webhooks for Permissions](/admin/permissions/webhooks) | [Explicit API](/admin/permissions/api) | [Scale supported](#supported-scale) |
-| -------- | -------- | -------- | -------- | -------- |
-| Bitbucket Cloud (Beta) | ✓ | ✗ | ✓ | 10k users, 100k repositories |
-| Bitbucket Server | ✓ | ✗ | ✓ | 10k users, 100k repositories |
-| Gerrit (Beta) | ✓ | ✗ | ✓ | 10k users, 100k repositories |
-| GitHub | ✓ | ✓ | ✓ | 40k users, 200k repositories |
-| GitHub Enterprise | ✓ | ✓ | ✓ | 40k users, 200k repositories |
-| GitLab | ✓ | ✗ | ✓ | 40k users, 200k repositories |
-| GitLab Self-Managed | ✓ | ✗ | ✓ | 40k users, 200k repositories |
-| Perforce (Experimental) | Yes (with file-level permissions) | ✓ | ✓ | 10k users, 250k repositories |
-
-All the other code hosts only support [Explicit permissions API](/admin/permissions/api).
+| Code host | [Permission Syncing](/admin/permissions/syncing) | [Webhooks for Permissions](/admin/permissions/webhooks) | [Explicit API](/admin/permissions/api) | [Scale supported](#supported-scale) |
+| ---------------------- | ------------------------------------------------ | ------------------------------------------------------- | -------------------------------------- | ----------------------------------- |
+| Bitbucket Cloud (Beta) | ✓ | ✗ | ✓ | 10k users, 100k repositories |
+| Bitbucket Server | ✓ | ✗ | ✓ | 10k users, 100k repositories |
+| Gerrit (Beta) | ✓ | ✗ | ✓ | 10k users, 100k repositories |
+| GitHub | ✓ | ✓ | ✓ | 40k users, 200k repositories |
+| GitHub Enterprise | ✓ | ✓ | ✓ | 40k users, 200k repositories |
+| GitLab | ✓ | ✗ | ✓ | 40k users, 200k repositories |
+| GitLab Self-Managed | ✓ | ✗ | ✓ | 40k users, 200k repositories |
+| Perforce (Beta) | Yes (with file-level permissions) | ✓ | ✓ | 10k users, 250k repositories |
+| Azure Devops | ✓ | ✓ | ✓ | 10k users, 100k repositories |
-> NOTE: If your desired code host is not yet supported, please [open a feature request](https://github.com/sourcegraph/sourcegraph/issues/new?template=feature_request).
+All the other code hosts only support [Explicit permissions API](/admin/permissions/api).
### Supported scale
@@ -86,6 +96,7 @@ in Sourcegraph.
- [Permission syncing SLA](/admin/permissions/syncing#sla)
- [Webhooks SLA](/admin/permissions/webhooks#sla)
- [Explicit Permissions API SLA](/admin/permissions/api#sla)
+
## License requirements
To have permission syncing available, the Sourcegraph instance needs to be configured with
diff --git a/docs/admin/permissions/syncing.mdx b/docs/admin/permissions/syncing.mdx
index d52c1da53..575f35f4e 100644
--- a/docs/admin/permissions/syncing.mdx
+++ b/docs/admin/permissions/syncing.mdx
@@ -253,8 +253,11 @@ scheduled. Default values are shown below:
// Don't sync a repo's permissions if it has synced within the last n seconds.
"permissions.syncReposBackoffSeconds": 60,
// The maximum number of user-centric permissions syncing jobs that can be spawned concurrently.
- // Service restart is required to take effect for changes.
+ // Server restart is required for changes to take effect.
"permissions.syncUsersMaxConcurrency": 1,
+ // The maximum number of repo-centric permissions syncing jobs that can be spawned concurrently.
+ // Server restart is required for changes to take effect.
+ "permissions.syncReposMaxConcurrency": 5,
}
```
@@ -275,7 +278,7 @@ If there are a lot less users, than repositories, it is better to rely on user-c
```
This configuration change will schedule `20` users on each scheduler iteration and just `1` repository. That
-way, we use the API requests better and user sync will be prefered. This is just an example, please change
+way, we use the API requests better and user sync will be preferred. This is just an example, please change
the `syncOldestUsers` value to what is desired in your organization.
**Example**:
diff --git a/docs/admin/permissions/webhooks.mdx b/docs/admin/permissions/webhooks.mdx
index f87a0305e..f0e9f3d99 100644
--- a/docs/admin/permissions/webhooks.mdx
+++ b/docs/admin/permissions/webhooks.mdx
@@ -2,9 +2,9 @@
Sourcegraph allows customers to use webhooks to react to events that modify user permissions
on the code host. Currently the only supported code host for webhooks
-is [Github](/admin/external_service/github).
+is [Github](/admin/code_hosts/github).
-> NOTE: Using webhooks is the *recommended* way to get code host permissions to Sourcegraph
+> NOTE: Using webhooks is the *recommended* way to get code host permissions to Sourcegraph. It's important to also note that when you have webhooks configured, it override Sourcegraph's default heuristics for fetching repository permissions. This is because webhooks and explicit configurations are intended to enforce specific permissions from external services, while the default heuristics act as a fallback when no explicit permissions are provided.
## How it works
diff --git a/docs/admin/pings.mdx b/docs/admin/pings.mdx
index 75538b9ff..0861a258b 100644
--- a/docs/admin/pings.mdx
+++ b/docs/admin/pings.mdx
@@ -13,6 +13,7 @@ Sourcegraph aggregates usage and performance metrics for some product features i
- Randomly generated site identifier
- The email address of the initial site installer (or if deleted, the first active site admin), to know who to contact regarding sales, product updates, security updates, and policy updates
- The external URL of the instance (e.g. "https://sourcegraph.example.com")
+- The IP address of the instance (e.g. "172.xx.xx.xx")
- Sourcegraph version string (e.g. "vX.X.X")
- Dependency versions (e.g. "6.0.9" for Redis, or "13.0" for Postgres)
- Deployment type (single Docker image, Docker Compose, Kubernetes cluster, Helm, or pure Docker cluster)
@@ -211,6 +212,7 @@ Sourcegraph aggregates usage and performance metrics for some product features i
Starting 5.2.0:
- For `pings.sourcegraph.com`, allowlist the IP address: `34.36.231.254`
+- For `telemetry-gateway.sourcegraph.com`, allowlist the IP address: `34.107.157.31`
- For `sourcegraph.com`, allowlist the full [Cloudflare IP ranges](https://www.cloudflare.com/ips/)
Prior to 5.2.0, allowlist the full [Cloudflare IP ranges](https://www.cloudflare.com/ips/).
@@ -250,7 +252,7 @@ The Cody app connects to Sourcegraph.com to send a limited selection of the ping
It may happen that Sourcegraph will stop sending critical telemetry to Sourcegraph.com, if this happens it may indicate a problem with Sourcegraphs frontend database, or a site settings misconfiguration. Below are some debugging steps.
-Sourcegraph telemetry pings are handled by a goroutine running on Sourcegraphs frontend service called [`updatecheck`](https://sourcegraph.com/github.com/sourcegraph/sourcegraph/-/blob/cmd/frontend/internal/app/updatecheck/client.go?subtree=true), `updatecheck` is [started](https://sourcegraph.com/search?q=context:global+repo:%5Egithub%5C.com/sourcegraph/sourcegraph%24+file:%5Ecmd/frontend/internal/cli/serve_cmd%5C.go+updatecheck.Start%28db%29&patternType=literal) on container startup and periodically requests a variety of queries be run in the `pgsql` database.
+Sourcegraph telemetry pings are handled by a goroutine running on Sourcegraphs frontend service called `updatecheck`, `updatecheck` is started on container startup and periodically requests a variety of queries be run in the `pgsql` database.
### Misconfigured update.channel
@@ -258,12 +260,12 @@ The most common scenario in which Sourcegraph stops sending pings is a change to
```
"update.channel": "release",
```
-*This setting [must be set to "release"](https://sourcegraph.com/github.com/sourcegraph/sourcegraph/-/blob/internal/updatecheck/client.go?L803-806) in order for the telemetry goroutine to run.*
+*This setting must be set to "release" in order for the telemetry goroutine to run.*
### Check if the goroutine is running
-*This section is under development and currently only applies for docker-compose instances: [39710](https://github.com/sourcegraph/sourcegraph/issues/39710)*
+*This section is under development and currently only applies for docker-compose instances.*
If it's reported that pings aren't being sent to the Sourcegraph.com, you can check that the goroutine is running with the following command:
```
diff --git a/docs/admin/postgres.mdx b/docs/admin/postgres.mdx
index 29c3afbc7..2041809a7 100644
--- a/docs/admin/postgres.mdx
+++ b/docs/admin/postgres.mdx
@@ -4,14 +4,29 @@ Sourcegraph uses several PostgreSQL databases to support various functionality.
- `pgsql` or `primary`: responsible for user data and account information
- `codeintel-db`: provides support for lsif data and part of the code-intelligence
+- `codeinsights-db`: provides support for code insights data
-## Version requirements
+## Requirements
-We support any version **starting from 12**.
+### Version requirements
-> NOTE: ⚠️ Version **3.26** required only Postgres 9.6. You should check the [upgrade docs for your deployment type](/admin/updates/) as well as the [database upgrade docs](#upgrading-postgresql) below prior to upgrading to 3.27.
+We support Postgres 16 and above. Older versions of Sourcegraph supported 12 see our [Postgres 12 deprecation notice](/admin/postgres12_end_of_life_notice) for more details. Starting in Sourcegraph 6.0.0, sourcegraph services will no longer connect to a PostgreSQL 12 or lower database. Instead, it will display an error message in container logs for services attempting to connect to a PostgreSQL database below version 16.
+```
+migrator | ✱ Sourcegraph migrator 6.0.0
+migrator | ⚠️ Failed to check for migrator update: unexpected status code 404. Continuing...
+migrator | Attempting connection to frontend...
+migrator | {"SeverityText":"FATAL","Timestamp":1738107940979396426,"InstrumentationScope":"migrator","Caller":"migrator/main.go:24","Function":"main.main","Body":"new db handle: Sourcegraph requires PostgreSQL 16+. For more information about PostgreSQL requirements and upgrade guides, visit https://sourcegraph.com/docs/admin/postgres","Resource":{"service.name":"migrator","service.version":"6.0.0","service.instance.id":"23097a97-50f4-4b42-80b5-83802baffeb4"},"Attributes":{}}
+migrator exited with code 1
+```
+
+Sourcegraph services attempting to connect to a database running Postgres 12 or less will display the following error message:
+```
+"new db handle: Sourcegraph requires PostgreSQL 16+. For more information about PostgreSQL requirements and upgrade guides, visit https://sourcegraph.com/docs/admin/postgres"
+```
+
+See [below](#upgrading-postgresql) for more details about how to upgrade your PostgreSQL database.
-## Role requirements
+### Role requirements
The user provided to Sourcegraph must have full access to the `sg` database and be able to create the following
extensions:
@@ -23,19 +38,47 @@ intarray
pg_stat_statements
pg_trgm
pgcrypto
+vector
```
-## [Configuring PostgreSQL](/admin/config/postgres-conf)
+## Configuring PostgreSQL
+
+Sourcegraph databases come preconfigured, however admins may make custom configurations as needed. For more information see our [configuration docs](/admin/config/postgres-conf).
## Upgrading PostgreSQL
-Sourcegraph uses PostgreSQL as its main database and this documentation describes how to upgrade PostgreSQL between major versions.
+### Upgrading Built-in PostgreSQL
+
+In Sourcegraph 5.10.0, we've upgraded our builtin database images to PostgreSQL 16.
+
+Database Image Updates:
+- `postgres-12` is now `postgresql-16`
+- `codeintel-db` is now `postgresql-16`
+- `codeinsights-db` is now `postgresql-16-codeinsights`
+
+These images contain an entry script that will detect and upgrade Postgres instances from version 12 (the version in our previous images) to Postgres 16.
> WARNING: Upgrading the PostgreSQL database requires stopping your Sourcegraph deployment which will result in **downtime**.
+>
+> Additionally, once the upgrade process is started via the database container, interrupting the container before the upgrade is complete could result in corrupting the underlying Postgres database. **We strongly advise taking a backup before the upgrade.**
+
+**For instance specfic instructions on how to upgrade a builtin Postgres database via the image entrypoint script, see [our instance specific operational instructions](/admin/how-to/upgrade-postgres-12-16-builtin-dbs).**
+We have the following advisements to admins:
+- Container orchestration management systems (e.g. Kubernetes) may restart containers at any time, **it is recommended that you take a backup of your database before starting the upgrade process.**
+- Review your deployment types [upgrade notes](/admin/updates#upgrades-index) before upgrading. The PostgreSQL upgrade process mutates the database schema in a way that may Sourcegraph `v5.10.0` and `v5.11.0` may not recognize. [Learn more about pg12 to pg16 schema drift here](/admin/how-to/postgres_12_to_16_drift).
+For additional assistance with PostgreSQL upgrades, please contact support@sourcegraph.com.
-> NOTE: If you running PostgreSQL externally, see [Upgrading external PostgreSQL instances](/admin/postgres#upgrading-external-postgresql-instances)
+### Upgrade entrypoint script options
+
+The `PG_UPGRADE_EXTRA_ARGS` environment variable allows you to customize the `pg_upgrade` command in `postgresql-16` and `postgresql-16-codeinsights` deployments.
+
+- **Quick upgrade option:**
+Setting `PG_UPGRADE_EXTRA_ARGS=--link` creates hard links between old and new data directories instead of copying data. While faster and space-efficient, this method risks data corruption if containers are interrupted during an upgrade. It is best used when you have reliable container scheduling and solid backups.
+
+- **Storage requirements:**
+Without `--link`, you'll need double the current database size in free disk space. For example, a 100GiB database requires an additional 100GiB free space for the upgrade.
### Upgrading external PostgreSQL instances
@@ -51,101 +94,12 @@ When running an [external PostgreSQL instance](/admin/external_services/postgres
- [Heroku](https://devcenter.heroku.com/articles/upgrading-heroku-postgres-databases)
- [EnterpriseDB](https://www.enterprisedb.com/docs/en/9.6/pg/upgrading.html)
- [Citus](http://docs.citusdata.com/en/v8.1/admin_guide/upgrading_citus.html)
- - [Aiven PostgreSQL](https://help.aiven.io/postgresql/operations/how-to-perform-a-postgresql-in-place-major-version-upgrade)
- - [Your own PostgreSQL](https://www.postgresql.org/docs/11/pgupgrade.html)
+ - [Aiven PostgreSQL](https://aiven.io/docs/platform/concepts/maintenance-window#related-pages)
+ - [Your own PostgreSQL](https://www.postgresql.org/docs/16/pgupgrade.html)
4. Turn Sourcegraph back on connecting to the now-upgraded database.
> WARNING: **Do not allow Sourcegraph to run/connect to the new Postgres database until it has been fully populated with your data.** Doing so could result in Sourcegraph trying to create e.g. a new DB schema and partially migrating. If this happens to you, restore from the backup you previously took or contact us (support@sourcegraph.com)
-### Upgrading internal PostgreSQL instances
-
-Many of Sourcegraph's [deployment methods](/admin/deploy/) come with internal PostgreSQL instances that can be deployed as part of a Sourcegraph installation. This section outlines how to upgrade these databases.
-
-#### Sourcegraph with Docker Compose
-
-Generally, no additional steps are required to upgrade the databases shipped alongside [Sourcegraph with Docker Compose](/admin/deploy/docker-compose/).
-
-#### Sourcegraph with Kubernetes
-
-**The upgrade process is different for [Sourcegraph Kubernetes deployments](/admin/deploy/kubernetes/)** because [by default](https://github.com/sourcegraph/sourcegraph/blob/main/docker-images/postgres-12/build.sh#L10), it uses `sourcegraph/postgres-12` which can be [customized with environment variables](https://github.com/sourcegraph/deploy-sourcegraph/blob/7edcadb/docs/configure#external-postgres).
-
-If you have changed `PGUSER`, `PGDATABASE` or `PGDATA`, then the `PG*OLD` and `PG*NEW` environment variables are
-required. Below are the defaults and documentation on what each variable is used for:
-
-- `POSTGRES_PASSWORD=''`: Password of `PGUSERNEW` if it is newly created (i.e when `PGUSERNEW` didn't exist in the old
- database).
-- `PGUSEROLD=sg`: A user that exists in the old database that can be used to authenticate intermediate upgrade
- operations.
-- `PGUSERNEW=sg`: A user that must exist in the new database after the upgrade is done (i.e. it'll be created if it
- didn't exist already).
-- `PGDATABASEOLD=sg`: A database that exists in the old database that can be used to authenticate intermediate upgrade
- operations. (e.g `psql -d`)
-- `PGDATABASENEW=sg`: A database that must exist in the new database after the upgrade is done (i.e. it'll be created if
- it didn't exist already).
-- `PGDATAOLD=/data/pgdata-11`: The data directory containing the files of the old PostgreSQL database to be upgraded.
-- `PGDATANEW=/data/pgdata-12`: The data directory containing the upgraded PostgreSQL data files, used by the new version
- of PostgreSQL.
-
-Additionally, the upgrade process assumes it can write to the parent directory of `PGDATAOLD`.
-
-##### Requirements for upgrading from Postgres 11 to 12 for Kubernetes
-
-**This guide is for the Sourcegraph 3.27 release.** The migration to Postgres 12 using the Sourcegraph provided Postgres images is largely automated.
-However, you should take some steps before the migration. For the `3.27` release, these apply to the `pgsql` & `codeintel-db` deployments.
-
-1. Inform your users prior to starting the upgrade that Sourcegraph will take downtime. This downtime scales with the
- size and resources allocated to the Postgres database instances.
-1. Take snapshots of all Sourcegraph Postgres databases. You can find the backing disk in your cloud by describing the
- relevant `PersistentVolumes`.
-1. Ensure that the size of the disks backing the databases are under 50% utilization. (You will need *up-to* 2x the size
- of your current database to do the migration). In most cases Kubernetes can expand the size of the volume for you,
- see the relevant kubernetes
- docs [here](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#expanding-persistent-volumes-claims).
-
- You can use `kubectl exec -it $DB_POD_NAME -- df -h`. By default, the database will be mounted under `/data/`.
-
#### Single-container Sourcegraph
-When running a new version of Sourcegraph, [single-container Sourcegraph with Docker instances](/admin/deploy/kubernetes/) will check if the PostgreSQL data needs upgrading upon initialization.
-
-See the following steps to upgrade between major postgresql versions:
-
-**1.** Stop the `sourcegraph/server` container.
-
-**2.** Save this script and give it executable permissions (`chmod + x`).
-
-> NOTE: The script presumes your data is being upgraded from `11` to `12` and your Sourcegraph directory is at `~/.sourcegraph/`. Change the values in the code below if that's not the case.
-
-```bash
-#!/usr/bin/env bash
-
-set -xeuo pipefail
-
-export OLD=${OLD:-"11"}
-export NEW=${NEW:-"12"}
-export SRC_DIR=${SRC_DIR:-"$HOME/.sourcegraph"}
-
-docker run \
- -w /tmp/upgrade \
- -v "$SRC_DIR/data/postgres-$NEW-upgrade:/tmp/upgrade" \
- -v "$SRC_DIR/data/postgresql:/var/lib/postgresql/$OLD/data" \
- -v "$SRC_DIR/data/postgresql-$NEW:/var/lib/postgresql/$NEW/data" \
- "tianon/postgres-upgrade:$OLD-to-$NEW"
-
-mv "$SRC_DIR/data/"{postgresql,postgresql-$OLD}
-mv "$SRC_DIR/data/"{postgresql-$NEW,postgresql}
-
-curl -fsSL -o "$SRC_DIR/data/postgres-$NEW-upgrade/optimize.sh" https://raw.githubusercontent.com/sourcegraph/sourcegraph/master/cmd/server/rootfs/postgres-optimize.sh
-
-docker run \
- --entrypoint "/bin/bash" \
- -w /tmp/upgrade \
- -v "$SRC_DIR/data/postgres-$NEW-upgrade:/tmp/upgrade" \
- -v "$SRC_DIR/data/postgresql:/var/lib/postgresql/data" \
- "postgres:$NEW" \
- -c 'chown -R postgres $PGDATA . && gosu postgres bash /admin/optimize.sh $PGDATA'
-```
-
-**3.** Execute the script.
-
-**4.** Start the `sourcegraph/server` container.
+Sourcegraph Single-container is not a supported production deployment and currently doesn't support upgrades to Postgres 16. Admins with production data in a single container deployment are advised to reach out to support@sourcegraph.com for assistance.
diff --git a/docs/admin/postgres12_end_of_life_notice.mdx b/docs/admin/postgres12_end_of_life_notice.mdx
new file mode 100644
index 000000000..ddc191aaa
--- /dev/null
+++ b/docs/admin/postgres12_end_of_life_notice.mdx
@@ -0,0 +1,47 @@
+# Postgres 12 End of Life
+
+Sourcegraph's required minimum version of Postgres will be updated to Postgres 16 with upcoming releases, Sourcegraph 5.10. This change in required minimum version is a result of Postgres 12, the previous required minimum version, reaching end of life. Please review the below information and reach out if you have any questions or would like to review the impact this change will have on you!
+
+## What
+Currently, Sourcegraph's minimum required version of Postgres, the database management system used for all Sourcegraph instances, is Postgres 12. Postgres 12 is reaching end-of-life and will no longer be supported by Postgres. Because of this, Sourcegraph will be updating our minimum supported version to Postgres 16.
+
+## Impact
+The impact to you depends on how you currently manage your Sourcegraph databases. Please first determine which of the following two buckets you fall into to determine what impact this change will have on your instance. If you are uncertain of which bucket you fall under, please check your deployment configuration or reach out to your account team.
+
+* **Bucket 1 (Built-in Databases)** - Your Sourcegraph databases are deployed using the built-in Postgres images standardly provided by Sourcegraph
+* **Bucket 2 (External Databases)** - Your Sourcegraph databases run in an externally managed database service separate from your Sourcegraph deployment, such as AWS RDS or Google CloudSQL (External Database)
+
+### Built-in Databases
+If you are using Sourcegraph's released Postgres images, these images will be updated to Postgres 16 as part of the Sourcegraph 5.10 release (expected for November 25th, 2024) and all near term subsequent releases. With this update, Sourcegraph will experience a longer-than-average downtime at the time of the upgrade to version 5.10 or beyond. This downtime is proportional to the amount of code indexed in your instance, and can range from approximately 15 minutes to a couple of hours. The downtime will only occur at the first upgrade to version 5.10 or beyond, and not during any subsequent upgrades.
+
+We strongly recommend that you consider this downtime prior to upgrading to ensure minimal disruption to your users. We also strongly recommend creating a backup of your database before the upgrade process, as an interruption to the upgrade process could lead to database corruption.
+
+When upgrading, it's important to note that even if there's a newer version of the migrator image you should only use the 5.10 image to get the databases to v5.10 first. After that you can use newer migrator images to target versions beyond 5.10.
+
+### External Databases
+If you are using externally managed databases for your Sourcegraph instance, you will need to manually upgrade the version of Postgres you are using to Postgres 16. For the Sourcegraph version that will be released on January 15, 2025 and subsequent versions, Sourcegraph will no longer run on any version of Postgres lower than Postgres 16, and you will not be able to upgrade your instance to any of those Sourcegraph versions unless that minimum required version of Postgres is met.
+
+The steps for upgrading your version of Postgres will be dependent on your organizational practices and the database management service you are using.
+
+## Call to Action
+
+* If you are using Sourcegraph's built-in database images, please work with your account team to plan for an extended downtime as part of your first upgrade to Sourcegraph 5.10 or beyond.
+
+* If you are using external databases, please follow the appropriate processes to upgrade your Sourcegraph databases to Postgres 16. This will be required to upgrade to the versions of Sourcegraph released on and after January 15, 2025.
+
+
+## Frequently Asked Questions
+
+### Will I be required to upgrade to the latest version of Sourcegraph by November 25, 2024 or January 15, 2025?
+No, you will not be required to upgrade to the latest version of Sourcegraph. However, as always, we do recommend you are updating your instance regularly to continue getting the latest and greatest features and fixes.
+
+### What happens if I do nothing?
+If you don't upgrade your instance, your Sourcegraph instance may be running a version of Postgres that has reached end-of-life. That means that, if any issues should arise with that version of Postgres, they will no longer be supported or fixed.
+
+### If I'm using Sourcegraph's built-in Postgres images, how will I know the length of the downtime I can expect at the time of upgrade?
+We expect the downtime to last approximately 2.5 hours per TB of code indexed in your Sourcegraph instance. So, if you only have 100 GB of indexed code, the downtime should last only about 15 minutes.
+
+### If I'm using external databases with Sourcegraph, how do I upgrade my version of Postgres? Can I upgrade Postgres independently of a Sourcegraph upgrade?
+Upgrading your Postgres version is highly dependent on your specific situation. If you have a separate team managing this database, reach out to them to understand their practices. And, as always, feel free to reach out to Sourcegraph to assist you.
+
+When using external databases, you can upgrade your Postgres version at any time, either alongside a Sourcegraph upgrade or independently of it. We encourage you to do so as soon as it's convenient for you.
diff --git a/docs/admin/pricing.mdx b/docs/admin/pricing.mdx
deleted file mode 100644
index 0dd6b13d2..000000000
--- a/docs/admin/pricing.mdx
+++ /dev/null
@@ -1,22 +0,0 @@
-# Pricing
-
-Visit the [pricing page](https://about.sourcegraph.com/pricing) for up-to-date pricing.
-
-## How are active users calculated?
-
-Any user who accesses Sourcegraph in a given month is considered a monthly active user (MAU). This includes but is not limited to:
-
-- Conducting a search in the Sourcegraph UI or extension
-- Hovering and navigating code in the Sourcegraph UI or extension
-- Viewing a file or repository in Sourcegraph
-- Creating, viewing or receiving a code monitor
-- Creating, viewing, modifying or applying a batch change
-- Creating, viewing or modifying a code insight
-- Creating, viewing or modifying a search notebook
-
-## How is this measured in the product?
-
-A user who has accessed Sourcegraph is counted as active once they complete an action that represents product usage, such as events logged by the [eventLogger](https://sourcegraph.com/search?q=context:global+repo:sourcegraph/sourcegraph+eventLogger.log%28&patternType=lucky) and events logged by Sourcegraph integrations like browser and IDE extensions, within a specified time period (commonly expressed in daily, weekly or monthly), with [the following filters](https://sourcegraph.com/github.com/sourcegraph/sourcegraph/-/blob/internal/database/event_logs.go?L540):
-
-- All actions done by the system where an event is also logged, such as sending a ping to Sourcegraph.
-- Certain events relating to user authentication ([full list here](https://sourcegraph.com/github.com/sourcegraph/sourcegraph/-/blob/internal/database/event_logs.go?L472)). These same filters are also implemented separetely in our in-product analytics code.
diff --git a/docs/admin/repo/add.mdx b/docs/admin/repo/add.mdx
index a93beb167..c8fa860e8 100644
--- a/docs/admin/repo/add.mdx
+++ b/docs/admin/repo/add.mdx
@@ -1,28 +1,58 @@
# Add repositories (from code hosts) to Sourcegraph
-- [Add repositories from a code host](/admin/external_service/) (GitHub (Cloud or Self-hosted), GitLab (Cloud or Self-hosted), Bitbucket Server, Bitbucket Data Center, or Perforce)
- - [GitHub](/admin/external_service/github)
- - [GitLab](/admin/external_service/gitlab)
- - [Bitbucket Cloud](/admin/external_service/bitbucket_cloud)
- - [Bitbucket Server / Bitbucket Data Center](/admin/external_service/bitbucket_server) or Bitbucket Data Center
-
-- [Add repositories by Git clone URLs](/admin/external_service/other)
-- [Add repositories from non-Git code hosts](/admin/external_service/non-git)
+- [Add repositories from a code host](/admin/code_hosts/) (GitHub (Cloud or Self-hosted), GitLab (Cloud or Self-hosted), Bitbucket Server, Bitbucket Data Center, or Perforce)
+ - [GitHub](/admin/code_hosts/github)
+ - [GitLab](/admin/code_hosts/gitlab)
+ - [Bitbucket Cloud](/admin/code_hosts/bitbucket_cloud)
+ - [Bitbucket Server / Bitbucket Data Center](/admin/code_hosts/bitbucket_server) or Bitbucket Data Center
+
+- [Add repositories by Git clone URLs](/admin/code_hosts/other)
+- [Add repositories from non-Git code hosts](/admin/code_hosts/non-git)
- [Add Perforce repositories](/admin/repo/perforce)
- - [Add JVM dependencies](/admin/external_service/jvm)
- - [Add Go dependencies](/admin/external_service/go)
- - [Add npm dependencies](/admin/external_service/npm)
- - [Add Python dependencies](/admin/external_service/python)
+ - [Add JVM dependencies](/admin/code_hosts/jvm)
+ - [Add Go dependencies](/admin/code_hosts/go)
+ - [Add npm dependencies](/admin/code_hosts/npm)
+ - [Add Python dependencies](/admin/code_hosts/python)
- [Pre-load repositories from the local disk](/admin/repo/pre_load_from_local_disk)
## Troubleshooting
+### Repositories not showing up
+
If your repositories are not showing up, check the site admin **Repositories** page on Sourcegraph (and ensure you're logged in as an admin).
If nothing informative is visible there, check for error messages related to communication with your code host's API in the logs from:
- [Docker Compose](/admin/deploy/docker-compose/) and [Kubernetes](/admin/deploy/kubernetes/): the logs from the `repo-updater` container/pod
- [Single-container](/admin/deploy/docker-single-container/): the `sourcegraph/server` Docker container
+### Repository not cloning or updating
+
If your repositories are showing up but are not cloning or updating from the original Git repository:
- Follow the instructions for [troubleshooting a repository that is not being updated](/admin/how-to/repo-not-updated)
+
+### Sourcegraph can't connect to your code host
+
+If Sourcegraph displays errors when syncing repositories from your code host, please click the "Test connection" button on the code host configuration page.
+
+If the connection test fails with errors like:
+
+> Connection check failed: request failed: context deadline exceeded
+>
+> This error might indicate that the code host is not reachable from your Sourcegraph instance.
+
+or:
+
+> Connection check failed: request failed: Get "https://nonexistenturl.com/api/v3/user": dial tcp: lookup nonexistenturl.com: no such host
+>
+> This error might indicate that the code host is not reachable from your Sourcegraph instance.
+
+These errors suggest that your code host is not reachable over the network from your Sourcegraph instance, which is required for Sourcegraph to sync repositories from your code host. In order to resolve this network issue, some fixes might include any / all of:
+
+- Making your code host accessible over the public internet
+- Configuring your Sourcegraph instance's network to allow outbound connections to your code host
+- Tweaking the firewall configuration to allow inbound connections to your code host from your Sourcegraph instance
+- Tweaking the DNS configuration of your Sourcegraph instance to resolve your code host's domain name to the IP address of your code host
+- etc.
+
+The specific configuration steps depend on your network setup. If you need assistance, please contact your network administrator or customer support.
diff --git a/docs/admin/repo/auth.mdx b/docs/admin/repo/auth.mdx
index 1c0d77e9e..a3b293bc2 100644
--- a/docs/admin/repo/auth.mdx
+++ b/docs/admin/repo/auth.mdx
@@ -4,16 +4,47 @@ If authentication (HTTP(S) or SSH) is required to `git clone` a repository then
First, ensure your **Site admin > Manage code hosts** code host configuration is configured to use SSH. For example, by setting the `gitURLType` field to "ssh". Alternatively, you may use the "Generic Git host" code host type, which allows you to directly specify Git repository URLs for cloning.
-Then, follow the directions below depending on your deployment type:
+Then, you need to supply the SSH keys and passphrase to Sourcegraph if applicable. You have two options:
+
+- **Option 1**: Configure the SSH credentials in code host configuration in the Web UI. (Recommended)
+- **Option 2**: Mount the SSH keys into the container.
+
+## Configuring SSH credentials in the Web UI (Recommended)
+
+In supported code hosts configuration, you can provide the credentials in the JSON configuration. For example:
+
+```json
+{
+ "url": "https://github.com",
+ "token": "",
+ "gitURLType": "ssh",
+ "gitSSHCredential": {
+ // make sure the key is base64 encoded
+ // $ cat ~/.ssh/id_rsa | base64
+ "privateKey": "",
+ "passphrase": ""
+ }
+}
+```
+
+Some providers may require additional configuration, consult the [code host specific documentation](/admin/code_hosts/) for more information.
+
+## Mounting SSH keys into the container
- [Sourcegraph with Docker Compose](/admin/deploy/docker-compose/): See [the Docker Compose git configuration guide](/admin/deploy/docker-compose/#git-configuration).
- [Sourcegraph with Kubernetes](/admin/deploy/kubernetes/): See [Configure repository cloning via SSH](/admin/deploy/kubernetes/configure#ssh-for-cloning).
- [Single-container Sourcegraph](/admin/deploy/docker-single-container/): See [the single-container git configuration guide](/admin/deploy/docker-single-container/#git-configuration-and-authentication).
->NOTE: Repository access over SSH is not yet supported on [Sourcegraph Cloud](/cloud/).
-
## Troubleshooting
+### Error: `illegal base64 data at input byte 0`
+
+This error indicates that the provided private key is not base64-encoded. Ensure that the private key is base64-encoded before providing it to Sourcegraph.
+
+```bash
+cat ~/.ssh/id_rsa | base64
+```
+
### What should be included in my config file?
We recommend adding the `StrictHostKeyChecking no` and `AddKeysToAgent yes` flags to prevent the need to give permission interactively when cloning from a new host.
diff --git a/docs/admin/repo/index.mdx b/docs/admin/repo/index.mdx
index d6526ce0f..086b70229 100644
--- a/docs/admin/repo/index.mdx
+++ b/docs/admin/repo/index.mdx
@@ -5,7 +5,7 @@
- [Repository webhooks](/admin/repo/webhooks)
- [Repository authentication](/admin/repo/auth)
- [Custom git config](/admin/repo/git_config)
-- [Adding non-Git repositories](/admin/external_service/non-git)
+- [Adding non-Git repositories](/admin/code_hosts/non-git)
- [Adding Perforce repositories](/admin/repo/perforce)
- [Configure repository permissions](/admin/repo/permissions)
- [Configure repository metadata](/admin/repo/metadata)
diff --git a/docs/admin/repo/metadata.mdx b/docs/admin/repo/metadata.mdx
index 68b2d3be1..5a2a3f4f2 100644
--- a/docs/admin/repo/metadata.mdx
+++ b/docs/admin/repo/metadata.mdx
@@ -4,6 +4,8 @@ Repositories tracked by Sourcegraph can be associated with user-provided key-val
Metadata can be added either as key-value pairs or as tags. Key-value pairs can be searched with the filter `repo:has.meta(mykey:myvalue)`. `repo:has.meta(mykey)` can be used to search over repositories with a given key irrespective of its value. Tags are just key-value pairs with a `null` value and can be searched with the filter `repo:has.meta(mytag:)`.
+Additionally, metadata can be searched with regex using slash-delimited regex literals like `repo:has.meta(owner:/eng.(search|infra)/)`. This capability is particularly useful for searching against semi-structured metadata.
+
## Examples
### Repository owners
diff --git a/docs/admin/repo/perforce.mdx b/docs/admin/repo/perforce.mdx
index cb06153bc..b362d4a10 100644
--- a/docs/admin/repo/perforce.mdx
+++ b/docs/admin/repo/perforce.mdx
@@ -6,7 +6,7 @@ Sourcegraph supports [Perforce Helix](https://www.perforce.com/solutions/version
## Add a Perforce code host connection
-Perforce depots can be added to a Sourcegraph instance by adding the appropriate [code host connection](/admin/external_service/).
+Perforce depots can be added to a Sourcegraph instance by adding the appropriate [code host connection](/admin/code_hosts/).
To enable Perforce code host connections, a site admin must:
@@ -52,21 +52,30 @@ To enable Perforce code host connections, a site admin must:
> NOTE: While the `fusionClient` configuration is optional, without it the code host connection uses `git p4`, which has performance issues so we strongly recommend `p4-fusion`.
- Details of all `p4-fusion` configuration fields can be seen [here](https://sourcegraph.com/github.com/sourcegraph/sourcegraph@2a716bd70c294acf1b3679b790834c4dea9ea956/-/blob/schema/perforce.schema.json?L84-147).
-
-1. Click **Add repositories**.
+2. Click **Add repositories**.
Sourcegraph will now talk to the Perforce host and sync the configured `depots` to the Sourcegraph instance.
It's worthwhile to note some limitations of this process:
-- When syncing depots either [git p4](https://git-scm.com/docs/git-p4) or [p4-fusion](https://github.com/salesforce/p4-fusion) (recommended) are used to convert Perforce depots into git repositories so that Sourcegraph can index them.
+- When syncing depots [p4-fusion](https://github.com/salesforce/p4-fusion) is used to convert Perforce depots into git repositories so that Sourcegraph can index them.
- Rename of a Perforce depot, including changing the depot on the Perforce server or the `repositoryPathPattern` config option, will cause a re-import of the depot.
- Unless [permissions syncing](#repository-permissions) is enabled, Sourcegraph is not aware of the depot permissions, so it can't enforce access restrictions.
-## Repository permissions
+## Perforce labels
+
+Perforce labels are converted to Git tags, but only under the following conditions:
+
+- The depot is fully contained within one of the label's views. (i.e. the depot is contained at `//path/to/depot/...` and the label's view is `//path/to/depot/...`).
+- The label has a Revision field that matches a single revision. (i.e. `@4521`)
+
+Perforce label names are also more flexible than git tag names, so incompatible characters are replaced with underscores. (i.e. `v1:2:3` will become `v1_2_3`)
+
+This behaviour can be disabled by setting `noConvertLabels` to `true` in the fusion client configuration.
+
+## Repository permissions (Beta)
-To enforce file-level permissions for Perforce depots using the [Perforce protects file](https://www.perforce.com/manuals/cmdref/Content/CmdRef/p4_protect.html), include [the `authorization` field](https://sourcegraph.com/github.com/sourcegraph/sourcegraph@2a716bd70c294acf1b3679b790834c4dea9ea956/-/blob/schema/perforce.schema.json?L67-78) in the configuration of the Perforce code host connection you created [above](#add-a-perforce-code-host):
+To enforce file-level permissions for Perforce depots using the [Perforce protects file](https://www.perforce.com/manuals/cmdref/Content/CmdRef/p4_protect.html), include the `authorization` field in the configuration of the Perforce code host connection you created [above](#add-a-perforce-code-host):
```json
{
@@ -115,11 +124,11 @@ If file-level permissions is not enabled, Sourcegraph provides limited support f
### File-level permissions
-File-level permissions make the [syncing of subdirectories to match permission boundaries](#syncing-subdirectories-to-match-permission-boundaries) unnecessary.
+File-level permissions eliminate the need for [syncing subdirectories to match permission boundaries](#syncing-subdirectories-to-match-permission-boundaries).
To enable file-level permissions:
-1. Enable [the feature in the site config](https://sourcegraph.com/github.com/sourcegraph/sourcegraph@2a716bd/-/blob/schema/site.schema.json?L227-249):
+1. Add the following entry to your site configuration file:
```json
{
@@ -129,7 +138,7 @@ To enable file-level permissions:
}
```
-1. Enable the feature in the code host configuration by adding `subRepoPermissions` to the `authorization` object:
+2. Enable the feature in the code host configuration by adding `subRepoPermissions` to the `authorization` object:
```json
{
@@ -139,33 +148,76 @@ To enable file-level permissions:
}
```
-1. Save the configuration. Permissions will be synced in the background based on your [Perforce protects file](https://www.perforce.com/manuals/cmdref/Content/CmdRef/p4_protect.html).
+3. Save the configuration.
+
+Permissions will be synced in the background based on your [Perforce protects file](https://www.perforce.com/manuals/cmdref/Content/CmdRef/p4_protect.html).
+
+#### Handling IP-based rules
+
+Perforce's `protects` table allows administrators to define fine-grained access controls based on user identities and host IP addresses. By default, Sourcegraph applies all rules from the `protects` table without considering host-specific restrictions, effectively treating all host rules as the wildcard `*`. This behavior can lead to users having unintended access to repositories or files that should be restricted based on their IP addresses.
+
+If your Perforce environment relies heavily on host-based permissions, it's crucial to configure Sourcegraph appropriately to respect these restrictions. This documentation provides detailed instructions on how to enforce or ignore host rules in Sourcegraph when integrating with Perforce.
+
+##### Default Behavior
-#### Handling Host rules in the protects file
+By default, Sourcegraph:
-When file-level permissions are enabled, Sourcegraph will read the Perforce protects file to determine what users can access. Because Sourcegraph originates all depot access from one host, protects rules with a Host field cannot be followed exactly. By default, they are parsed as if they apply to all hosts, which can result in users losing access when they should have access. If you have protects rules with hosts that are causing lost access for users, you can set `ignoreRulesWithHost` to `true` in the code host configuration.
+- **Applies all rules** in the Perforce `protects` table.
+- **Ignores host-specific restrictions**, treating all host fields as `*`.
+
+**Implication**: Users may gain access to resources that should be restricted based on their IP addresses.
+
+##### Configuration Options
+
+To ensure Sourcegraph handles host rules according to your requirements, you have two additional options:
+
+1. **Enforce Host Rules**: Configure Sourcegraph to respect and enforce IP-based restrictions defined in the `protects` table.
+2. **Ignore Host-Specific Rules**: Configure Sourcegraph to disregard any rules with a host value other than `*`.
+
+##### Enforcing host rules
+
+If you want Sourcegraph to enforce host-specific permissions, you need to enable IP restriction enforcement in your [site configuration](https://sourcegraph.com/docs/admin/config/site_config):
```json
- {
- "authorization": {
- "subRepoPermissions": true,
- "ignoreRulesWithHost": true
- }
+{
+ "experimentalFeatures": {
+ "subRepoPermissions": {
+ "enabled": true,
+ "enforceIPRestrictions": true
}
+ }
+}
+```
+
+When `enforceIPRestrictions` is set to `true`, Sourcegraph will use the user's IP address to apply Perforce permissions at the user level. It uses the final `X-Forwarded-For` header in the request to identify the user's IP. Note that this header can be easily spoofed, so ensure your load balancer or proxy handles `X-Forwarded-For` headers securely.
+
+
+##### Ignore rules with host
+
+To ignore rules that have a host value other than `*`, set `ignoreRulesWithHost` to `true` in your **code host configuration**:
+
+```json
+{
+ "authorization": {
+ "subRepoPermissions": true,
+ "ignoreRulesWithHost": true
+ }
+}
```
+With this setting, Sourcegraph will ignore any rules with a host other than `*`, treating them as if they do not exist.
+
### Notes about permissions
- Sourcegraph users are mapped to Perforce users based on their verified email addresses.
- As long as a user has been granted at least `Read` permissions in Perforce they will be able to view content in Sourcegraph.
- As a special case, commits in which a user does not have permissions to read any files are hidden. If a user can read a subset of files in a commit, only those files are shown.
-- [The host field from protections are not supported](#known-issues-and-limitations).
- [file-level permissions must be disabled for Batch Changes to work](#known-issues-and-limitations).
- Setting `authz.enforceForSiteAdmins` to `true` in the site configuration will enforce permissions for admin users. They may not be able to see repositories and their contents if their Sourcegraph user account email does not match with their email on the Perforce server.
## Configuration
-### `admin/external_service/perforce.schema.json`
+### `admin/code_hosts/perforce.schema.json`
```json
{
@@ -192,10 +244,11 @@ When file-level permissions are enabled, Sourcegraph will read the Perforce prot
// The ticket value for the user (P4PASSWD). You can get this by running `p4 login -p` or `p4 login -pa`. It should look like `6211C5E719EDE6925855039E8F5CC3D2`.
"p4.passwd": null,
- // The Perforce Server address to be used for p4 CLI (P4PORT).
+ // The Perforce Server address to be used for p4 CLI (P4PORT). It's recommended to specify the protocol prefix (e.g. tcp: or ssl:) as part of the address.
"p4.port": null,
// Other example values:
// - "ssl:111.222.333.444:1666"
+ // - "tcp:111.222.333.444:1666"
// The user to be authenticated for p4 CLI (P4USER).
"p4.user": null,
@@ -213,15 +266,13 @@ When file-level permissions are enabled, Sourcegraph will read the Perforce prot
## Known issues and limitations
-We are actively working to significantly improve Sourcegraph's Perforce support. Please [file an issue](https://github.com/sourcegraph/sourcegraph/issues) to help us prioritize any specific improvements you'd like to see.
+We are actively working to significantly improve Sourcegraph's Perforce support. Please [contact us](https://help.sourcegraph.com/hc/en-us/requests/new) to help us prioritize any specific improvements you'd like to see.
- Sourcegraph was initially built for Git repositories only, so it stores Perforce depots as Git repositories when syncing. Perforce concepts and languages are expressed in the UI, but under the hood, Git tools are used.
-- The [host field](https://www.perforce.com/manuals/cmdref/Content/CmdRef/p4_protect.html#Form_Fields_..361) in protections is not supported.
- Batch Changes does not support [file-level permissions](#file-level-permissions) (also known as sub-repo permissions)
- Batch Changes does not handle the shelved changelist other than to query the Perforce server for its status.
- Permalinks with Changelist Id do not work yet
-
## Configure experimental features
As of Sourcegraph 5.1, there are the following experimental features for Perforce depots. These are merely for providing feedback and have [limited support](/admin/beta_and_experimental_features#experimental-features).
@@ -247,6 +298,18 @@ When enabled, URLs for Perforce code hosts will use the Changelist (CL) ID inste
- Viewing a specific file added / removed / modified in a specific CL
- Viewing the list of CLs
+
+### Searching within a specific changelist
+As of Sourcegraph 5.5, you can search within a specific changelist by referring the the changelist as a reference path like `changelist/123` where 123 is the changelist id. For example, given a repo path of `Talkhouse/main` and a changelist id of `123`, you can search within that changelist by using the following query:
+```
+repo:^Talkhouse/main$@changelist/123 text to find
+```
+
+or
+```
+repo:^Talkhouse/main$ rev:changelist/123 text to find
+```
+
#### Limitations
- After a depot is cloned or fetched, Sourcegraph computes and stores mappings of CL IDs to commit SHAs. This mapping can take several minutes for large clones/fetches. When a background mapping job is running, the depot won't be serviceable as URLs referring to CL IDs may not resolve and users may see an error while interacting with the depot.
diff --git a/docs/admin/repo/plasticscm.mdx b/docs/admin/repo/plasticscm.mdx
index 394fdf643..b03f2f324 100644
--- a/docs/admin/repo/plasticscm.mdx
+++ b/docs/admin/repo/plasticscm.mdx
@@ -1,3 +1,3 @@
# Using Sourcegraph with Plastic SCM
-Plastic SCM servers expose a Git API, called [GitServer](https://www.plasticscm.com/gitserver), which can be indexed by Sourcegraph using the [generic Git host indexer](/admin/external_service/other).
+Plastic SCM servers expose a Git API, called [GitServer](https://www.plasticscm.com/gitserver), which can be indexed by Sourcegraph using the [generic Git host indexer](/admin/code_hosts/other).
diff --git a/docs/admin/repo/pre_load_from_local_disk.mdx b/docs/admin/repo/pre_load_from_local_disk.mdx
index 0484ef6b7..86d2846e6 100644
--- a/docs/admin/repo/pre_load_from_local_disk.mdx
+++ b/docs/admin/repo/pre_load_from_local_disk.mdx
@@ -2,7 +2,7 @@
> NOTE: This page describes how to use a local copy of a repository to speed up the initial clone that Sourcegraph must do. This does not replace [adding a code host connection](/admin/repo/add). You still must add the code host connection in order for Sourcegraph to recognize that this repository exists and to view it.
>
->Sourcegraph's [`src-expose` tool](/admin/external_service/non-git) can be used to serve local repositories without a dedicated code host.
+>Sourcegraph's [`src-expose` tool](/admin/code_hosts/non-git) can be used to serve local repositories without a dedicated code host.
You can use repositories that are already cloned to disk on the host machine to speed up Sourcegraph's cloning. This is useful for very large repositories on which cloning exceeds the resources available to the Docker container. This is not intended for individual users who want to set up a personal Sourcegraph instance just for searching code on their own local disk; we recommend either using a CLI tool such as ripgrep instead, or simply connecting Sourcegraph to your code host with a limited set of repositories.
@@ -15,7 +15,7 @@ The steps documented here are intended for [single-container Sourcegraph instanc
If you're using the default `--volume $HOME/.sourcegraph/data:/var/opt/sourcegraph` argument to run the `sourcegraph/server` Docker image, and the repository you want to add is named `github.com/my/repo`, then follow these steps:
-1. Ensure that the added repository is included in [a code host configuration on Sourcegraph](/admin/external_service/).
+1. Ensure that the added repository is included in [a code host configuration on Sourcegraph](/admin/code_hosts/).
2. Stop Sourcegraph if it is running. This is to ensure it doesn't interfere with the clone.
@@ -33,4 +33,4 @@ If you're using the default `--volume $HOME/.sourcegraph/data:/var/opt/sourcegra
git clone --mirror --reference PATH-TO-YOUR-EXISTING-LOCAL-CLONE --dissociate YOUR-REPOSITORY-CLONE-URL $HOME/.sourcegraph/repos/github.com/my/repo/.git
```
-If this repository exists on a code host that Sourcegraph integrates with, then use that code host's configuration (as described in the [code host documentation](/admin/external_service/)). After updating the code host configuration, if you used the correct repository path, Sourcegraph will detect and reuse the existing clone. (For example, if you're working with a repository on GitHub.com, ensure that the repository path name you used is of the form `github.com/my/repo`.)
+If this repository exists on a code host that Sourcegraph integrates with, then use that code host's configuration (as described in the [code host documentation](/admin/code_hosts/)). After updating the code host configuration, if you used the correct repository path, Sourcegraph will detect and reuse the existing clone. (For example, if you're working with a repository on GitHub.com, ensure that the repository path name you used is of the form `github.com/my/repo`.)
diff --git a/docs/admin/repo/update_frequency.mdx b/docs/admin/repo/update_frequency.mdx
index ae6a508ae..74bbca485 100644
--- a/docs/admin/repo/update_frequency.mdx
+++ b/docs/admin/repo/update_frequency.mdx
@@ -13,11 +13,11 @@ If you wish to control how frequently repositories are discovered or how frequen
### Limiting the number of Code host API requests
-- Code host configuration: see [Rate limits](/admin/external_service/rate_limits)
+- Code host configuration: see [Rate limits](/admin/code_hosts/rate_limits)
- Site configuration: [repoListUpdateInterval](/admin/config/site_config#repoListUpdateInterval) controls how frequently we check the code host _for new repositories_ in minutes.
-> NOTE: Internal rate limiting is currently only enforced for HTTP requests to code hosts. That means it's used when, for example, syncing changesets in [batch changes](/batch_changes/), repository permissions and repository metadata from code hosts.
+> NOTE: Internal rate limiting is currently only enforced for HTTP requests to code hosts. That means it's used when, for example, syncing changesets in [batch changes](/batch-changes/), repository permissions and repository metadata from code hosts.
### Limiting the number of Code host Git requests
diff --git a/docs/admin/scim.mdx b/docs/admin/scim.mdx
index 0e31a4f16..86f8ea20a 100644
--- a/docs/admin/scim.mdx
+++ b/docs/admin/scim.mdx
@@ -6,7 +6,11 @@ SCIM (System for Cross-domain Identity Management) is a standard for provisionin
Sourcegraph supports SCIM 2.0 for provisioning and de-provisioning _users_.
-> NOTE: While our implementation of SCIM 2.0 is compliant with the specification, we’ve only tested it against two IdPs: Okta and Microsoft Entra ID. We can't guarantee it works with every IdP if the provider doesn't fully comply with the specification.
+> SCIM integration requires your SCIM provider to have network connectivity to your Sourcegraph instance. For example, using Okta's SCIM service with a private Sourcegraph instance, you will need to implement an [Okta privisioning agent](https://help.okta.com/en-us/content/topics/provisioning/opp/opp-main.htm) within a network that can connect to both your Sourcegraph instance and Okta's cloud services before continuing this setup.
+
+> While our implementation of SCIM 2.0 is compliant with the specification, we’ve only tested it against two IdPs: Okta and Microsoft Entra ID. We can't guarantee it works with every IdP if the provider doesn't fully comply with the specification.
+
+> Currently, there is a known issue where Microsoft Entra ID [validator](https://scimvalidator.microsoft.com/) will fail; however, this does not impact the ability to provision users.
## How to use
diff --git a/docs/admin/search.mdx b/docs/admin/search.mdx
index 68c2dc877..525c29e78 100644
--- a/docs/admin/search.mdx
+++ b/docs/admin/search.mdx
@@ -2,20 +2,101 @@
See "[Code search overview](/code-search/)" for general information about Sourcegraph's code search.
+## General
+
+### Maximum file size
+
+By default, files larger than 1 MB are excluded from search results. Use the [search.largeFiles](/admin/config/site_config#search-largeFiles) keyword to specify files to be indexed and searched regardless of size. Regardless of where you set the `search.largeFiles` environment variable, Sourcegraph will continue to ignore binary files, even if the size of the file is less than the limit you set.
+
+### Maximum timeout
+
+By default, users cannot set a search timeout larger than 1 minute. Sourcegraph admins can increase the maximum timeout through site configuration:
+
+```json
+"search.limits": {
+ "maxTimeoutSeconds": 120,
+ },
+```
+
+### Forks and Archives
+
+Sourcegraph search defaults to using `fork:no archived:no` as implied search values, excluding [forked](/code-search/queries/language#fork) and [archived](/code-search/queries/language#archived) repositories from search results. If you wish to include forked or achived repositories in your search results you must include the params `fork:yes` or `archived:yes`, respectively.
+
+## Exclude files and directories
+
+You can exclude files and directories from search by adding the file `.sourcegraph/ignore` to the root directory of your repository. Sourcegraph interprets each line in the _ignore_ file as a glob pattern. Files or directories matching those patterns will not show up in the search results.
+
+The `ignore` file is tied to a commit. This means that if you committed an `ignore` file to a feature branch but not to your default branch, then only search results for the feature branch will be filtered, while the default branch will show all results.
+
+For example:
+
+```bash
+// .sourcegraph/ignore
+// lines starting with "//" are comments and are ignored
+// empty lines are ignored, too
+
+// ignore the directory node_modules/
+node_modules/
+
+// ignore the directory src/data/
+src/data/
+
+// ** matches all characters, while * matches all characters except /
+// ignore all JSON files
+**.json
+
+// ignore all JSON files at the root of the repository
+*.json
+
+// ignore all JSON files within the directory data/
+data/**.json
+
+// ignore all data folders
+data/
+**/data/
+
+// ignore all files that start with numbers
+[0-9]*.*
+**/[0-9]*.*
+```
+
+Our syntax follows closely what is documented in [the linux documentation project](https://tldp.org/LDP/GNU-Linux-Tools-Summary/html/x11655.htm). However, we distinguish between `*` and `**`: While `**` matches all characters, `*` matches all characters except the path separator `/`.
+
+Note that invalid globbing patterns will cause an error and searches over commits containing a broken `ignore` file
+will not return any result.
+
## Indexed search
-Sourcegraph indexes the code on the default branch of each repository. This speeds up searches that hit many repositories at once. Not all files in a repository branch are indexed, we skip files that are [larger than 1 MB](/code-search/features) and binary files. To view which files are skipped during indexing, visit the repository settings page and click on indexing.
+Sourcegraph indexes the code on the default branch of each repository. This speeds up searches that hit many repositories at once. Not all files in a repository branch are indexed, we skip files that are [larger than 1 MB](#maximum-file-size) and binary files. To view which files are skipped during indexing, visit the repository settings page and click on indexing.
For large deployments we recommend horizontally scaling indexed search. You can do this by [adjusting the number of replicas](https://github.com/sourcegraph/deploy-sourcegraph/blob/master/docs/configure#configure-indexed-search-replica-count). Sourcegraph shards repository indexes across replicas. When the replica count changes Sourcegraph will slowly rebalance indexes to ensure availability of existing indexes.
The resource requirements for indexed search vary considerably based on the text contents of your repositories, but a good estimate is that the node should have enough memory to hold the entire text contents of the default branch of each repository.
-### Scaling considerations
+### Multi-branch indexing
+
+This feature is experimental and might change or be removed in the future.
+
+Sourcegraph always maintains an index of the source code on your default branch. Some organizations have other branches that are regularly searched. To speed up search for those branches, Sourcegraph can be configured to index up to 64 branches per repository.
+
+You can configure indexed branches in site configuration under the `experimentalFeatures.search.index.branches` setting. For example:
-Zoekt is Sourcegraph's indexing engine.
+ ``` json
+ "experimentalFeatures": {
+ "search.index.branches": {
+ "github.com/sourcegraph/sourcegraph": ["3.15", "develop"],
+ "github.com/sourcegraph/src-cli": ["next"]
+ }
+ }
+ ```
-When processing a repository, Zoekt splits the index it creates across
-one or more files on disk. These files are called "shards."
+Indexing multiple branches will add additional resource requirements to Sourcegraph (particularly memory). The indexer will deduplicate documents between branches. So the size of your index will grow in relation to the number of unique documents. Refer to our [resource estimator](/admin/deploy/resource_estimator) to estimate whether additional resources are required.
+
+ The default branch (HEAD) and all revisions specified in version contexts are always indexed.
+
+### Scaling considerations
+
+Zoekt is Sourcegraph's indexing engine. When processing a repository, Zoekt splits the index it creates across one or more files on disk. These files are called "shards."
Zoekt uses [memory maps](https://en.wikipedia.org/wiki/Memory-mapped_file) to load all shards into memory to evaluate search queries. In most deployments, the total size of the search index (all the shards on disk) is much larger than the total amount of RAM available to Zoekt. Amongst other benefits, using [memory maps](https://en.wikipedia.org/wiki/Memory-mapped_file) allows Zoekt to:
@@ -57,4 +138,24 @@ So, assuming that you have 300,000 repositories and a memory map limit of 65,536
```
Sourcegraph's monitoring system also includes an [alert for this
-scenario and mitigation steps](https://docs.sourcegraph.com/admin/observability/alerts#zoekt-memory-map-areas-percentage-used).
+scenario and mitigation steps](/admin/observability/alerts#zoekt-memory-map-areas-percentage-used).
+
+### Shard merging
+
+Shard merging is a feature of Zoekt which combines smaller index files, or shards, into one larger file, a compound shard.
+This reduces memory requirements for Zoekt webserver and improves performance of searches that are bound by "work done per shard".
+This feature is particularly useful for customers with many small and rarely updated repositories.
+Shard merging is on by default. It can be disabled by setting the ENV `SRC_DISABLE_SHARD_MERGING="true"` for Zoekt indexserver.
+
+Shard merging can be fine-tuned by setting ENV variables for Zoekt indexserver:
+
+| **Env Variable** | **Description** | **Default** |
+| ---------------------- | ---------------------------------------------------------------------------------------------- | -------- |
+| SRC_VACUUM_INTERVAL | Run vacuum this often, specified as a duration | 24 hours |
+| SRC_MERGE_INTERVAL | Run merge this often, specified as a duration | 8 hours |
+| SRC_MERGE_TARGET_SIZE | The target size of compound shards in MiB | 1000 |
+| SRC_MERGE_MIN_SIZE | The minimum size of a compound shard in MiB | 800 |
+| SRC_MERGE_MIN_AGE | The time since the last commit in days. Shards with newer commits are excluded from merging. | 7 |
+
+When repostiories receive udpates, Zoekt reindexes them and tombstones their old index data. As a result, compound shards can shrink and be dismantled into individual shards once they reach a critical minimum size. These individual
+shards are then considered for future merge operations. Shard merging can be monitored via the "Compound shards" panel in Zoekt's Grafana dashboard.
diff --git a/docs/admin/security_event_logs.mdx b/docs/admin/security_event_logs.mdx
index e00b373a5..de9b3665e 100644
--- a/docs/admin/security_event_logs.mdx
+++ b/docs/admin/security_event_logs.mdx
@@ -1,10 +1,12 @@
# Security Event Logs
+
This guide goes into the details of Security Event Logging in Sourcegraph
> Note: You can find more information about our audit logs setup [here](./audit_log)
>
-> [Here](../dev/how-to/add_logging) is a guide on how to add logging to Sourcegraph backend
+> [Here](https://docs-legacy.sourcegraph.com/dev/how-to/add_logging) is a guide on how to add logging to Sourcegraph backend
## What are Security Event Logs
+
- The purpose of Security Event Logs is to allow security specialists to be able to trace the steps of a user or an admin across the application.
- Getting a full picture of how a user moves through the application, in a single location, is crucial for many reasons.
- When a user takes an action on sensitive information within the application, this should be logged to make sure it can be retraced to the user and time.
@@ -15,7 +17,8 @@ This guide goes into the details of Security Event Logging in Sourcegraph
## How to log a security event
-- All the logging for security event is done through our [security_event_log.go](https://sourcegraph.com/github.com/sourcegraph/sourcegraph/-/blob/internal/database/security_event_logs.go) functions
+
+- All the logging for security event is done through our `security_event_log` functions
- Previously, events were created within the function where the action was taking place and then pushed to the logging location like this:
```go
event := &SecurityEvent{
@@ -29,11 +32,11 @@ This guide goes into the details of Security Event Logging in Sourcegraph
}
db.SecurityEventLogs().LogEvent(ctx, event)
-
-- With a recent change to streamline the process, to log an event, the [LogSecurityEvent](https://sourcegraph.com/github.com/sourcegraph/sourcegraph/-/blob/internal/database/security_event_logs.go?L253:34&popover=pinned) function can be invoked which takes care of marshaling the arguments and creating the SecurityEvent.
+
+- With a recent change to streamline the process, to log an event, the `LogSecurityEvent` function can be invoked which takes care of marshaling the arguments and creating the SecurityEvent.
- This function takes following information to create a log event
- Context contains information on the acting user
- - SecurityEventName which is predefined [here](https://sourcegraph.com/github.com/sourcegraph/sourcegraph/-/blob/internal/database/security_event_logs.go?L22-101)
+ - `SecurityEventName` is predefined
- URL if available
- userID of the user that the action is applied towards
- anonymousUserID for unauthenticated users
@@ -94,13 +97,12 @@ This guide goes into the details of Security Event Logging in Sourcegraph
- Action field will provide information on the event and can be correlated with the action taken, in this case EmailAdded
- The actorUID can be used to filter out events from a particular user
- UserID can be used to filter out actions taken on a particular user's information
-
+
## FAQ
-### What events are currently being logged as security events?
-- [These](https://sourcegraph.com/github.com/sourcegraph/sourcegraph/-/blob/internal/database/security_event_logs.go?L22-101) are the events that are currently being logged.
### What if I don't want these events to be logged?
-- To turn off all security event logs, you can [set the variable](https://docs.sourcegraph.com/admin/audit_log#excessive-audit-logging) in the site config
+
+- To turn off all security event logs, you can [set the variable](/admin/audit_log#excessive-audit-logging) in the site config
### How can I correlate the actorID or userID to a user in the application?
diff --git a/docs/admin/ssl_https_self_signed_cert_nginx.mdx b/docs/admin/ssl_https_self_signed_cert_nginx.mdx
index c5f53124c..fbce2d45d 100644
--- a/docs/admin/ssl_https_self_signed_cert_nginx.mdx
+++ b/docs/admin/ssl_https_self_signed_cert_nginx.mdx
@@ -1,3 +1,5 @@
+import { CURRENT_VERSION_STRING_NO_V, CURRENT_VERSION_STRING } from 'src/components/PreCodeBlock'
+
# Adding SSL (HTTPS) to Sourcegraph with a self-signed certificate
This is for external Sourcegraph instances that need a self-signed certificate because they don't yet have a certificate from a [globally trusted Certificate Authority (CA)](https://en.wikipedia.org/wiki/Certificate_authority#Providers). It includes how to get the self-signed certificate trusted by your browser.
@@ -12,6 +14,7 @@ Configuring NGINX with a self-signed certificate to support SSL requires:
- [3. Adding SSL support to NGINX](#3-adding-ssl-support-to-nginx)
- [4. Changing the Sourcegraph container to listen on port 443](#4-changing-the-sourcegraph-container-to-listen-on-port-443)
- [5. Getting the self-signed certificate to be trusted (valid) on external instances](#5-getting-the-self-signed-certificate-to-be-trusted-valid-on-external-instances)
+ - [Getting the self-signed cert trusted on other developer machines](#getting-the-self-signed-cert-trusted-on-other-developer-machines)
- [Next steps](#next-steps)
## 1. Installing mkcert
@@ -47,7 +50,7 @@ Run `sudo ls -la ~/.sourcegraph/config` and you should see the CA and SSL certif
## 3. Adding SSL support to NGINX
Edit the [default
-`~/.sourcegraph/config/nginx.conf`](https://github.com/sourcegraph/sourcegraph/blob/main/cmd/server/shared/assets/nginx.conf),
+`~/.sourcegraph/config/nginx.conf`](https://github.com/sourcegraph/sourcegraph-public-snapshot/blob/main/cmd/server/shared/assets/nginx.conf),
so that port `7080` redirects to `7443` and `7443` is served with SSL. It should look like this:
```nginx
@@ -91,7 +94,7 @@ docker container run \
\
--volume ~/.sourcegraph/config:/etc/sourcegraph \
--volume ~/.sourcegraph/data:/var/opt/sourcegraph \
- sourcegraph/server:5.3.9104
+ sourcegraph/server:{CURRENT_VERSION_NO_V}
```
> NOTE: We recommend removing `--publish 7080:7080` as it's not needed and traffic sent to that port is un-encrypted.
diff --git a/docs/admin/subscriptions/index.mdx b/docs/admin/subscriptions/index.mdx
index 913123356..ffdb1cfb6 100644
--- a/docs/admin/subscriptions/index.mdx
+++ b/docs/admin/subscriptions/index.mdx
@@ -16,7 +16,7 @@ You can [contact Sourcegraph](https://about.sourcegraph.com/contact/sales) to pu
## How user accounts are counted
-This count is maintained on your Sourcegraph instance, viewable and auditable on the **Site admin > Users** page, and is reported back in aggregate to Sourcegraph.com via [pings](https://docs.sourcegraph.com/admin/pings).
+This count is maintained on your Sourcegraph instance, viewable and auditable on the **Site admin > Users** page, and is reported back in aggregate to Sourcegraph.com via [pings](/admin/pings).
A Sourcegraph user account is created when a user signs up or signs in for the first time. Sourcegraph user accounts can be deleted by administrators via the **Site admin > Users** page, or using the [GraphQL API](/api/graphql/) or the [Sourcegraph CLI](https://github.com/sourcegraph/src-cli).
@@ -31,3 +31,4 @@ Sourcegraph administrators can view the lines of code count for each repository
## Updating your license key
- Navigate to **Site admin > Configuration > Site configuration**, update the `licenseKey` field with the new value, and then click **Save changes**.
+- Note: once you apply the license it may take 10-15 minutes for the change to take effect. You can always restart the front-end service to apply the change faster, if needed.
diff --git a/docs/admin/telemetry/index.mdx b/docs/admin/telemetry/index.mdx
index 4b1c99458..c5f8dc568 100644
--- a/docs/admin/telemetry/index.mdx
+++ b/docs/admin/telemetry/index.mdx
@@ -1,7 +1,7 @@
# Telemetry
Understanding how individuals and organizations use Sourcegraph is key to providing the highest level of support to Sourcegraph's customers.
-To enable this, Sourcegraph collects several types of usage data from Sourcegraph instances by having Sourcegraph isntances emit telemetry:
+To enable this, Sourcegraph collects several types of usage data from Sourcegraph instances by having Sourcegraph instances emit telemetry:
- [Aggregated pings](/admin/pings)
- [Telemetry events](#telemetry-events) (Sourcegraph 5.2.1 and later)
@@ -12,16 +12,13 @@ If you have any questions about telemetry collection, please reach out to your S
Sourcegraph 5.2.1+
-> WARNING: This section refers to a new system for collecting telemetry introduced in Sourcegraph 5.2.1, and only applies to telemetry that has been migrated to use this new system.
-> Certain Sourcegraph components - namely [Cody editor extensions](/cody/) - will continue to use a legacy mechanism for reporting telemetry directly to Sourcegraph.com until the migration is complete.
-
-Sourcegraph instances 5.2.1 and later collect telemetry events to understand usage patterns and help improve the product. Telemetry events can be generated when certain user actions occur, like opening files or performing searches. This data helps us provide the highest level of support to Sourcegraph's customers.
+Sourcegraph instances 5.2.1 and later collect telemetry events from all Sourcegraph end-user client applications to understand usage patterns and help improve the product. Telemetry events can be generated when certain user actions occur, like opening files or performing searches. This data helps us provide the highest level of support to Sourcegraph's customers.
Sensitive data/PII exfiltration, intentional or not, is a significant concern to Sourcegraph that we take very seriously.
-Some of th measures we take to ensure privacy and data security are:
+Some of the measures we take to ensure privacy and data security are:
1. Telemetry events are, by default, only allowed to export numeric metadata - for example, string values that may contain sensitive contents are generally redacted. String values we do retain are generally categorized information.
2. User identifiers are numeric and anonymized, as identifiers are specific per-instance.
3. Data will be encrypted while in motion from each Sourcegraph instance to Sourcegraph.
-You can also explore our [telemetry development reference](/dev/background-information/telemetry/) to learn more about new system with which we record telemetry events, and refer to our [telemetry events data schema](/dev/background-information/telemetry/protocol) for specific attributes that are and are not exported by default.
+You can also explore our [telemetry development reference](https://docs-legacy.sourcegraph.com/dev/background-information/telemetry) to learn more about new system with which we record telemetry events, and refer to our [telemetry events data schema](https://docs-legacy.sourcegraph.com/dev/background-information/telemetry/protocol) for specific attributes that are and are not exported by default.
diff --git a/docs/admin/troubleshooting.mdx b/docs/admin/troubleshooting.mdx
index 3894208a3..a481c827a 100644
--- a/docs/admin/troubleshooting.mdx
+++ b/docs/admin/troubleshooting.mdx
@@ -19,8 +19,6 @@ This problem is caused by [docker/toolbox#695](https://github.com/docker/toolbox
docker container run -e LOGO=false ... sourcegraph/server
```
-See [sourcegraph/sourcegraph#398](https://github.com/sourcegraph/sourcegraph/issues/398) for more information.
-
> WARNING: Running Sourcegraph on Docker Toolbox for Windows is not supported for production deployments.
### Submitting a metrics dump
@@ -143,5 +141,5 @@ makes a request without the password included. If a 401 Unauthorized is returned
More information can be found [here](https://confluence.atlassian.com/bitbucketserverkb/two-401-responses-for-every-git-opperation-938854756.html).
-If this behaviour is undesired, the `gitURLType` in the [external service configuration](https://docs.sourcegraph.com/admin/external_service/github#configuration)
-should be set to `ssh` instead of `http`. This will also require [ssh keys to be set up](https://docs.sourcegraph.com/admin/repo/auth#repositories-that-need-http-s-or-ssh-authentication).
+If this behaviour is undesired, the `gitURLType` in the [external service configuration](/admin/code_hosts/github#configuration)
+should be set to `ssh` instead of `http`. This will also require [ssh keys to be set up](/admin/repo/auth#repositories-that-need-http-s-or-ssh-authentication).
diff --git a/docs/admin/updates/automatic.mdx b/docs/admin/updates/automatic.mdx
index 80e3a040a..b970da493 100644
--- a/docs/admin/updates/automatic.mdx
+++ b/docs/admin/updates/automatic.mdx
@@ -1,5 +1,7 @@
# Automatic multi-version upgrades
+> Warning: Automatic upgrades to v5.10.0 will fail please upgrade to a v5.9.x version and perform a standard upgrade instead! See our [postgres 12 end of life](https://sourcegraph.com/docs/admin/postgres12_end_of_life_notice#postgres-12-end-of-life) notice! This is one of the reasons the "Auto Upgrade" toggle is automatically turned off after a version change. This behavior is intentional—it’s designed to prevent users from unintentionally performing multi-version upgrades (MVUs) that span critical changes, such as major infrastructure updates like a PostgreSQL version upgrade.
+
From **Sourcegraph 5.1 and later**, multi-version upgrades can be performed **automatically** as if they were a standard upgrade for the same deployment type. Automatic multi-version upgrades take the following general form:
1. Determine if your instance is ready to Upgrade:
diff --git a/docs/admin/updates/docker_compose.mdx b/docs/admin/updates/docker_compose.mdx
index 5b4f7bec8..ce5282bff 100644
--- a/docs/admin/updates/docker_compose.mdx
+++ b/docs/admin/updates/docker_compose.mdx
@@ -5,86 +5,58 @@ This page lists the changes that are relevant for upgrading Sourcegraph on **Doc
For upgrade procedures or general info about sourcegraph versioning see the links below:
- [Docker Compose Upgrade Procedures](/admin/deploy/docker-compose/upgrade)
- [General Upgrade Info](/admin/updates/)
-- [Product changelog](/CHANGELOG)
+- [Technical changelog](/technical-changelog)
> ***Attention:** These notes may contain relevant information about the infrastructure update such as resource requirement changes or versions of depencies (Docker, Docker Compose, externalized databases).*
>
> ***If the notes indicate a patch release exists, target the highest one.***
-## Unreleased
+## v6.0.0
-## v5.2.6 ➔ v5.2.7
+- Sourcegraph 6.0.0 no longer supports PostgreSQL 12, admins must upgrade to PostgreSQL 16. See our [postgres 12 end of life](/admin/postgres12_end_of_life_notice) notice! As well as [supporting documentation](/admin/postgres) and advisements on how to upgrade.
-#### Notes:
-
-## v5.2.5 ➔ v5.2.6
-
-#### Notes:
-
-## v5.2.4 ➔ v5.2.5
-
-#### Notes:
-
-## v5.2.3 ➔ v5.2.4
-
-#### Notes:
-
-## v5.2.2 ➔ v5.2.3
-
-#### Notes:
-
-## v5.2.1 ➔ v5.2.2
-
-#### Notes:
-
-## v5.2.0 ➔ v5.2.1
+## v5.9.0 ➔ v5.10.1164
-#### Notes:
-
-## v5.1.9 ➔ v5.2.0
-
-#### Notes:
-
-## v5.1.8 ➔ v5.1.9
+- This release resolves an issue in the v5.10.0 release which prevented multiversion upgrades from working. You may now target `v5.10.1164` using migrator's `upgrade` command. Or use autoupgrade by setting the environment variable `SRC_AUTOUPGRADE_IGNORE_DRIFT=true` on the `frontend` container.
-#### Notes:
-
-## v5.1.7 ➔ v5.1.8
-
-#### Notes:
+## v5.9.0 ➔ v5.10.0
-## v5.1.6 ➔ v5.1.7
-
-#### Notes:
-
-## v5.1.5 ➔ v5.1.6
+> Warning: Admins are advised to upgrade directly to v5.10.1164 circumventing this release.
+>
+> Warning: This release updates the database container images from Postgres 12 to Postgres 16, and begins using Wolfi based images. Customers are advised to take a database backup before upgrading! See our [postgres 12 end of life](https://sourcegraph.com/docs/admin/postgres12_end_of_life_notice#postgres-12-end-of-life) notice!
+>
+> Warning: `automatic` and migrator `upgrade` command will not work for this release, please upgrade directly to `v5.10.1164`, or to a 5.9 version and conduct a standard upgrade using migrator's default `up` command!
#### Notes:
+- The container image for pgsql and codeintel-db have been renamed from `postgres-12-alpine` and `codeintel-db` respectively to `postgresql-16`. The `codeinsights-db` container has been renamed to `postgresql-16-codeinsights`.
+- **Admins using external dbs who have not yet upgraded from postgres 12 to postgres 16**, can expect to see database drift after upgrading to `5.10.0`. The new expected schema definition for Sourcegraph is based on postgres 16. The schema drift is the result of automatic changes made to the schema by pg_upgrade utils, and will not cause issues in the application.
+ - Admins should not run migrators suggested drift fixes, and should instead upgrade their database from postgres 12 to postgres 16.
+- The [Autoupgrade](https://sourcegraph.com/docs/admin/updates/automatic#pre-v500-automatic-multiversion-upgrades) upgrade method, will detect drift and exit before conducting the upgrade unless the env var `SRC_AUTOUPGRADE_IGNORE_DRIFT=true` is set in the server container.
+- Postgres 12 image containers cannot be started with data volumes which have been upgraded by postgres 16.
## v5.1.4 ➔ v5.1.5
#### Notes:
-- Upgrades from versions `v5.0.3`, `v5.0.4`, `v5.0.5`, and `v5.0.6` to `v5.1.5` are affected by an ordering error in the `frontend` databases migration tree. Learn more from the [PR which resolves this bug](https://github.com/sourcegraph/sourcegraph/pull/55650). **For admins who have already attempted an upgrade to this release from one of the effected versions, see this issue which provides a description of [how to manually fix the frontend db](https://github.com/sourcegraph/sourcegraph/issues/55658).**
+- Upgrades from versions `v5.0.3`, `v5.0.4`, `v5.0.5`, and `v5.0.6` to `v5.1.5` are affected by an ordering error in the `frontend` databases migration tree.
## v5.1.3 ➔ v5.1.4
#### Notes:
-- Migrator images were built without the `v5.1.x` tag in this version, as such multiversion upgrades using this image version will fail to upgrade to versions in `v5.1.x`. See [this issue](https://github.com/sourcegraph/sourcegraph/issues/55048) for more details.
-
+- Migrator images were built without the `v5.1.x` tag in this version, as such multiversion upgrades using this image version will fail to upgrade to versions in `v5.1.x`.
## v5.1.2 ➔ v5.1.3
#### Notes:
-- Migrator images were built without the `v5.1.x` tag in this version, as such multiversion upgrades using this image version will fail to upgrade to versions in `v5.1.x`. See [this issue](https://github.com/sourcegraph/sourcegraph/issues/55048) for more details.
+- Migrator images were built without the `v5.1.x` tag in this version, as such multiversion upgrades using this image version will fail to upgrade to versions in `v5.1.x`.
## v5.1.1 ➔ v5.1.2
#### Notes:
-- Migrator images were built without the `v5.1.x` tag in this version, as such multiversion upgrades using this image version will fail to upgrade to versions in `v5.1.x`. See [this issue](https://github.com/sourcegraph/sourcegraph/issues/55048) for more details.
+- Migrator images were built without the `v5.1.x` tag in this version, as such multiversion upgrades using this image version will fail to upgrade to versions in `v5.1.x`.
## v5.1.0 ➔ v5.1.1
#### Notes:
-- Migrator images were built without the `v5.1.x` tag in this version, as such multiversion upgrades using this image version will fail to upgrade to versions in `v5.1.x`. See [this issue](https://github.com/sourcegraph/sourcegraph/issues/55048) for more details.
+- Migrator images were built without the `v5.1.x` tag in this version, as such multiversion upgrades using this image version will fail to upgrade to versions in `v5.1.x`.
## v5.0.6 ➔ v5.1.0
@@ -106,124 +78,72 @@ For upgrade procedures or general info about sourcegraph versioning see the link
#### Notes:
- See note under v5.1.5 release on issues with standard and multiversion upgrades to v5.1.5.
-## v5.0.2 ➔ v5.0.3
-
-#### Notes:
-
-## v5.0.1 ➔ v5.0.2
-
-#### Notes:
-
-## v5.0.0 ➔ v5.0.1
-
-#### Notes:
-
-## v4.5.1 ➔ v5.0.0
-
-#### Notes:
-
-## v4.5.0 ➔ v4.5.1
-
-#### Notes:
-
## v4.4.2 ➔ v4.5.0
#### Notes:
This release introduces a background job that will convert all LSIF data into SCIP. **This migration is irreversible** and a rollback from this version may result in loss of precise code intelligence data. Please see the [migration notes](/admin/how-to/lsif_scip_migration) for more details.
-## v4.4.1 ➔ v4.4.2
-
-#### Notes:
-
## v4.3 ➔ v4.4.1
-- Users attempting a multi-version upgrade to v4.4.0 may be affected by a [known bug](https://github.com/sourcegraph/sourcegraph/pull/46969) in which an outdated schema migration is included in the upgrade process. _This issue is fixed in patch v4.4.2_
-
- - The error will be encountered while running `upgrade`, and contains the following text: `"frontend": failed to apply migration 1648115472`.
- - To resolve this issue run migrator with the args `'add-log', '-db=frontend', '-version=1648115472'`.
- - If migrator was stopped while running `upgrade` the next run of upgrade will encounter drift, this drift should be disregarded by providing migrator with the `--skip-drift-check` flag.
-
-## v4.2 ➔ v4.3.1
-
-_No notes._
-
-## v4.2 ➔ v4.3.1
+#### Notes:
-_No notes._
+- Users attempting a multi-version upgrade to v4.4.0 may be affected by a bug in which an outdated schema migration is included in the upgrade process. _This issue is fixed in patch v4.4.2_
+- The error will be encountered while running `upgrade`, and contains the following text: `"frontend": failed to apply migration 1648115472`.
+ - To resolve this issue run migrator with the args `'add-log', '-db=frontend', '-version=1648115472'`.
+ - If migrator was stopped while running `upgrade` the next run of upgrade will encounter drift, this drift should be disregarded by providing migrator with the `--skip-drift-check` flag.
## v4.1 ➔ v4.2.1
-This upgrade adds the [node-exporter](https://github.com/prometheus/node_exporter) deployment, which collects crucial machine-level metrics that help Sourcegraph scale your deployment.
-
-## v4.0 ➔ v4.1.3
+#### Notes:
-_No notes._
+- This upgrade adds the [node-exporter](https://github.com/prometheus/node_exporter) deployment, which collects crucial machine-level metrics that help Sourcegraph scale your deployment.
## v3.43 ➔ v4.0
-Target the tag [`v4.0.1`](https://github.com/sourcegraph/deploy-sourcegraph-docker/tree/v4.0.1/docker-compose) when fetching upstream from `deploy-sourcegraph-docker`.
-
-**Patch releases**:
-
-- `v4.0.1`
-
-**Notes**:
+#### Notes:
+- Target the tag [`v4.0.1`](https://github.com/sourcegraph/deploy-sourcegraph-docker/tree/v4.0.1/docker-compose) when fetching upstream from `deploy-sourcegraph-docker`.
- `jaeger` (deployed with the `jaeger-all-in-one` image) has been removed in favor of an [OpenTelemetry Collector](https://opentelemetry.io/docs/collector/) DaemonSet + Deployment configuration. See [Configure a tracing backend](/admin/deploy/docker-compose/operations#configure-a-tracing-backend)
- Exporting traces to an external observability backend is now available. Read the [documentation](/admin/deploy/docker-compose/operations#configure-a-tracing-backend) to configure.
- The bundled Jaeger instance is now disabled by default. It can be [enabled](/admin/deploy/docker-compose/operations#enable-the-bundled-jaeger-deployment) if you do not wish to utilise your own external tracing backend.
## v3.42 ➔ v3.43
-Target the tag [`v3.43.2`](https://github.com/sourcegraph/deploy-sourcegraph-docker/tree/v3.43.2/docker-compose) when fetching upstream from `deploy-sourcegraph-docker`.
-
-**Patch releases**:
+#### Notes:
-- `v3.43.1`
-- `v3.43.2`
+- Target the tag [`v3.43.2`](https://github.com/sourcegraph/deploy-sourcegraph-docker/tree/v3.43.2/docker-compose) when fetching upstream from `deploy-sourcegraph-docker`.
## v3.41 ➔ v3.42
-Target the tag [`v3.42.2`](https://github.com/sourcegraph/deploy-sourcegraph-docker/tree/v3.42.2/docker-compose) when fetching upstream from `deploy-sourcegraph-docker`.
-
-**Patch releases**:
+#### Notes:
-- `v3.42.1`
-- `v3.42.2`
+- Target the tag [`v3.42.2`](https://github.com/sourcegraph/deploy-sourcegraph-docker/tree/v3.42.2/docker-compose) when fetching upstream from `deploy-sourcegraph-docker`.
## v3.40 ➔ v3.41
-Target the tag [`v3.41.0`](https://github.com/sourcegraph/deploy-sourcegraph-docker/tree/v3.41.0/docker-compose) when fetching upstream from `deploy-sourcegraph-docker`.
-
-**Notes**:
+#### Notes:
+- Target the tag [`v3.41.0`](https://github.com/sourcegraph/deploy-sourcegraph-docker/tree/v3.41.0/docker-compose) when fetching upstream from `deploy-sourcegraph-docker`.
- `caddy` is upgraded to version 2.5.1 and contains a breaking change from version 2.5.0. Incoming `X-Forwarded-*` headers will no longer be trusted automatically. In order to preserve existing product functionality, the Caddyfile was updated to trust all incoming `X-Forwarded-*` headers. [#828](https://github.com/sourcegraph/deploy-sourcegraph-docker/pull/828)
- The Postgres DBs `frontend` and `codeintel-db` are now given 1 hour to begin accepting connections before Kubernetes restarts the containers. [#4136](https://github.com/sourcegraph/deploy-sourcegraph/pull/4136)
## v3.39 ➔ v3.40
-Target the tag [`v3.40.2`](https://github.com/sourcegraph/deploy-sourcegraph-docker/tree/v3.40.2/docker-compose) when fetching upstream from `deploy-sourcegraph-docker`.
-
-**Patch releases**:
-
-- `v3.40.1`
-- `v3.40.2`
-
-**Notes**:
+#### Notes:
+- Target the tag [`v3.40.2`](https://github.com/sourcegraph/deploy-sourcegraph-docker/tree/v3.40.2/docker-compose) when fetching upstream from `deploy-sourcegraph-docker`.
- `cadvisor` now defaults to run in `privileged` mode. This allows `cadvisor` to collect out of memory events happening to containers which can be used to discover underprovisoned resources. [#804](https://github.com/sourcegraph/deploy-sourcegraph-docker/pull/804)
## v3.38 ➔ v3.39
-Target the tag [`v3.39.1`](https://github.com/sourcegraph/deploy-sourcegraph-docker/tree/v3.39.1/docker-compose) when fetching upstream from `deploy-sourcegraph-docker`.
+#### Notes:
-**Patch releases**:
+- Target the tag [`v3.39.1`](https://github.com/sourcegraph/deploy-sourcegraph-docker/tree/v3.39.1/docker-compose) when fetching upstream from `deploy-sourcegraph-docker`.
- `v3.39.1`
-**Notes**:
-
+#### Notes:
- We made a number of changes to our built-in postgres databases (the `pgsql`, `codeintel-db`, and `codeinsights-db` container)
- **CAUTION**: Added the ability to customize postgres server configuration by mounting external configuration files. If you have customized the config in any way, you should copy your changes to the added `postgresql.conf` files [sourcegraph/deploy-sourcegraph-docker#792](https://github.com/sourcegraph/deploy-sourcegraph-docker/pull/792).
- Increased the minimal memory requirement of `pgsql` and `codeintel-db` from `2GB` to `4GB`.
@@ -231,193 +151,131 @@ Target the tag [`v3.39.1`](https://github.com/sourcegraph/deploy-sourcegraph-doc
## v3.37 ➔ v3.38
-Target the tag [`v3.38.1`](https://github.com/sourcegraph/deploy-sourcegraph-docker/tree/v3.38.1/docker-compose) when fetching upstream from `deploy-sourcegraph-docker`.
+#### Notes:
-**Patch releases**:
+- Target the tag [`v3.38.1`](https://github.com/sourcegraph/deploy-sourcegraph-docker/tree/v3.38.1/docker-compose) when fetching upstream from `deploy-sourcegraph-docker`.
- `v3.38.1`
-**Notes**:
-
+#### Notes:
- **Minimum version of 1.29 for docker compose is required for this update**
- This release adds the requirement that the environment variables `SRC_GIT_SERVERS`, `SEARCHER_URL`, `SYMBOLS_URL`, and `INDEXED_SEARCH_SERVERS` are set for the worker process.
## v3.36 ➔ v3.37
-Target the tag [`v3.37.0`](https://github.com/sourcegraph/deploy-sourcegraph-docker/tree/v3.37.0/docker-compose) when fetching upstream from `deploy-sourcegraph-docker`.
-
-**Notes**:
+#### Notes:
+- Target the tag [`v3.37.0`](https://github.com/sourcegraph/deploy-sourcegraph-docker/tree/v3.37.0/docker-compose) when fetching upstream from `deploy-sourcegraph-docker`.
- This release adds a new container that runs database migrations (`migrator`) independently of the frontend container. Confirm the environment variables on this new container match your database settings.
- **If performing a multiversion upgrade from an instance prior to this version see our [upgrading early versions documentation](/admin/updates/migrator/upgrading-early-versions#before-v3370)**
## v3.35 ➔ v3.36
-Target the tag [`v3.36.0`](https://github.com/sourcegraph/deploy-sourcegraph-docker/tree/v3.36.0/docker-compose) when fetching upstream from `deploy-sourcegraph-docker`.
-
-## v3.34 ➔ v3.35
-
-Target the tag [`v3.35.1`](https://github.com/sourcegraph/deploy-sourcegraph-docker/tree/v3.35.1/docker-compose) when fetching upstream from `deploy-sourcegraph-docker`.
+#### Notes:
-**Patch releases**:
+- Target the tag [`v3.36.0`](https://github.com/sourcegraph/deploy-sourcegraph-docker/tree/v3.36.0/docker-compose) when fetching upstream from `deploy-sourcegraph-docker`.
-- `v3.35.1`
+## v3.34 ➔ v3.35
-**Notes**:
+#### Notes:
+- Target the tag [`v3.35.1`](https://github.com/sourcegraph/deploy-sourcegraph-docker/tree/v3.35.1/docker-compose) when fetching upstream from `deploy-sourcegraph-docker`.
- The `query-runner` service has been decommissioned in the 3.35 release and will be removed during the upgrade. To delete the `query-runner` service, specify `--remove-orphans` to your `docker-compose` command.
- There is a [known issue](/code_insights/how-tos/Troubleshooting#oob-migration-has-made-progress-but-is-stuck-before-reaching-100) with the Code Insights out-of-band settings migration not reaching 100% complete when encountering deleted users or organizations.
## v3.33 ➔ v3.34
-Target the tag [`v3.34.0`](https://github.com/sourcegraph/deploy-sourcegraph-docker/tree/v3.34.0/docker-compose) when fetching upstream from `deploy-sourcegraph-docker`.
+#### Notes:
+- Target the tag [`v3.34.0`](https://github.com/sourcegraph/deploy-sourcegraph-docker/tree/v3.34.0/docker-compose) when fetching upstream from `deploy-sourcegraph-docker`.
## v3.32 ➔ v3.33
-Target the tag [`v3.33.0`](https://github.com/sourcegraph/deploy-sourcegraph-docker/tree/v3.33.0/docker-compose) when fetching upstream from `deploy-sourcegraph-docker`.
+#### Notes:
+- Target the tag [`v3.33.0`](https://github.com/sourcegraph/deploy-sourcegraph-docker/tree/v3.33.0/docker-compose) when fetching upstream from `deploy-sourcegraph-docker`.
## v3.31 ➔ v3.32
-Target the tag [`v3.32.0`](https://github.com/sourcegraph/deploy-sourcegraph-docker/tree/v3.32.0/docker-compose) when fetching upstream from `deploy-sourcegraph-docker`.
+#### Notes:
+- Target the tag [`v3.32.0`](https://github.com/sourcegraph/deploy-sourcegraph-docker/tree/v3.32.0/docker-compose) when fetching upstream from `deploy-sourcegraph-docker`.
## v3.30 ➔ v3.31
> WARNING: **This upgrade must originate from `v3.30.3`.**
-Target the tag [`v3.31.2`](https://github.com/sourcegraph/deploy-sourcegraph-docker/tree/v3.31.2/docker-compose) when fetching upstream from `deploy-sourcegraph-docker`.
-
-**Patch releases**:
-
-- `v3.31.1`
-- `v3.31.2`
-
-**Notes**:
+#### Notes:
+- Target the tag [`v3.31.2`](https://github.com/sourcegraph/deploy-sourcegraph-docker/tree/v3.31.2/docker-compose) when fetching upstream from `deploy-sourcegraph-docker`.
- The **built-in** main Postgres (`pgsql`) and codeintel (`codeintel-db`) databases have switched to an alpine-based Docker image. Upon upgrading, Sourcegraph will need to re-index the entire database. All users that use our bundled (built-in) database instances **must** read through the [3.31 upgrade guide](/admin/migration/3_31) _before_ upgrading.
## v3.29 ➔ v3.30
> WARNING: **If you have already upgraded to 3.30.0, 3.30.1, or 3.30.2** please follow [this migration guide](/admin/migration/3_30).
-Target the tag [`v3.30.3`](https://github.com/sourcegraph/deploy-sourcegraph-docker/tree/v3.30.3/docker-compose) when fetching upstream from `deploy-sourcegraph-docker`.
-
-**Patch releases**:
+#### Notes:
-- `v3.30.1`
-- `v3.30.2`
-- `v3.30.3`
+- Target the tag [`v3.30.3`](https://github.com/sourcegraph/deploy-sourcegraph-docker/tree/v3.30.3/docker-compose) when fetching upstream from `deploy-sourcegraph-docker`.
## v3.28 ➔ v3.29
-Target the tag [`v3.29.0`](https://github.com/sourcegraph/deploy-sourcegraph-docker/tree/v3.29.0/docker-compose) when fetching upstream from `deploy-sourcegraph-docker`.
-
-**Notes**:
+#### Notes:
+- Target the tag [`v3.29.0`](https://github.com/sourcegraph/deploy-sourcegraph-docker/tree/v3.29.0/docker-compose) when fetching upstream from `deploy-sourcegraph-docker`.
- This upgrade adds a new `worker` service that runs a number of background jobs that were previously run in the `frontend` service. See [notes on deploying workers](/admin/workers#deploying-workers) for additional details. Good initial values for CPU and memory resources allocated to this new service should match the `frontend` service.
## v3.27 ➔ v3.28
-Target the tag [`v3.28.0`](https://github.com/sourcegraph/deploy-sourcegraph-docker/tree/v3.28.0/docker-compose) when fetching upstream from `deploy-sourcegraph-docker`.
-
-**Notes**:
+#### Notes:
+- Target the tag [`v3.28.0`](https://github.com/sourcegraph/deploy-sourcegraph-docker/tree/v3.28.0/docker-compose) when fetching upstream from `deploy-sourcegraph-docker`.
- The memory requirements for `redis-cache` and `redis-store` have been increased by 1GB. See https://github.com/sourcegraph/deploy-sourcegraph-docker/pull/373 for more context.
## v3.26 ➔ v3.27
> WARNING: Sourcegraph 3.27 now requires **Postgres 12+**.
-Target the tag [`v3.27.0`](https://github.com/sourcegraph/deploy-sourcegraph-docker/tree/v3.27.0/docker-compose) when fetching upstream from `deploy-sourcegraph-docker`.
-
-**Notes**:
+#### Notes:
-- If you are using an external database, [upgrade your database](https://docs.sourcegraph.com/admin/postgres#upgrading-external-postgresql-instances) to Postgres 12 or above prior to upgrading Sourcegraph. No action is required if you are using the supplied supplied database images.
+- Target the tag [`v3.27.0`](https://github.com/sourcegraph/deploy-sourcegraph-docker/tree/v3.27.0/docker-compose) when fetching upstream from `deploy-sourcegraph-docker`.
+- If you are using an external database, [upgrade your database](/admin/postgres#upgrading-external-postgresql-instances) to Postgres 12 or above prior to upgrading Sourcegraph. No action is required if you are using the supplied supplied database images.
- **If performing a multiversion upgrade from an instance prior to this version see our [upgrading early versions documentation](/admin/updates/migrator/upgrading-early-versions#before-v3270)**
## v3.25 ➔ v3.26
-Target the tag [`v3.26.0`](https://github.com/sourcegraph/deploy-sourcegraph-docker/tree/v3.26.0/docker-compose) when fetching upstream from `deploy-sourcegraph-docker`.
+#### Notes:
-## v3.24 ➔ v3.25
+- Target the tag [`v3.26.0`](https://github.com/sourcegraph/deploy-sourcegraph-docker/tree/v3.26.0/docker-compose) when fetching upstream from `deploy-sourcegraph-docker`.
-Target the tag [`v3.25.0`](https://github.com/sourcegraph/deploy-sourcegraph-docker/tree/v3.25.0/docker-compose) when fetching upstream from `deploy-sourcegraph-docker`.
+## v3.24 ➔ v3.25
-**Notes**:
+#### Notes:
+- Target the tag [`v3.25.0`](https://github.com/sourcegraph/deploy-sourcegraph-docker/tree/v3.25.0/docker-compose) when fetching upstream from `deploy-sourcegraph-docker`.
- Go `1.15` introduced changes to SSL/TLS connection validation which requires certificates to include a `SAN`. This field was not included in older certificates and clients relied on the `CN` field. You might see an error like `x509: certificate relies on legacy Common Name field`. We recommend that customers using Sourcegraph with an external database and and connecting to it using SSL/TLS check whether the certificate is up to date.
- AWS RDS customers please reference [AWS' documentation on updating the SSL/TLS certificate](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL-certificate-rotation.html) for steps to rotate your certificate.
## v3.23 ➔ v3.24
-Target the tag [`v3.24.0`](https://github.com/sourcegraph/deploy-sourcegraph-docker/tree/v3.24.0/docker-compose) when fetching upstream from `deploy-sourcegraph-docker`.
+#### Notes:
+
+- Target the tag [`v3.24.0`](https://github.com/sourcegraph/deploy-sourcegraph-docker/tree/v3.24.0/docker-compose) when fetching upstream from `deploy-sourcegraph-docker`.
## v3.22 ➔ v3.23
-Target the tag [`v3.23.0`](https://github.com/sourcegraph/deploy-sourcegraph-docker/tree/v3.23.0/docker-compose) when fetching upstream from `deploy-sourcegraph-docker`.
+#### Notes:
-## v3.21 ➔ v3.22
+- Target the tag [`v3.23.0`](https://github.com/sourcegraph/deploy-sourcegraph-docker/tree/v3.23.0/docker-compose) when fetching upstream from `deploy-sourcegraph-docker`.
-Target the tag [`v3.22.0`](https://github.com/sourcegraph/deploy-sourcegraph-docker/tree/v3.22.0/docker-compose) when fetching upstream from `deploy-sourcegraph-docker`.
+## v3.21 ➔ v3.22
-**Notes**:
+#### Notes:
+- Target the tag [`v3.22.0`](https://github.com/sourcegraph/deploy-sourcegraph-docker/tree/v3.22.0/docker-compose) when fetching upstream from `deploy-sourcegraph-docker`.
- This upgrade removes the `code intel bundle manager`. This service has been deprecated and all references to it have been removed.
-- This upgrade also adds a MinIO container that doesn't require any custom configuration. You can find more detailed documentation in https://docs.sourcegraph.com/admin/external_services/object_storage.
+- This upgrade also adds a MinIO container that doesn't require any custom configuration. You can find more detailed documentation [here](/admin/external_services/object_storage).
## v3.20 ➔ v3.21
-Target the tag [`v3.21.1`](https://github.com/sourcegraph/deploy-sourcegraph-docker/tree/v3.21.1/docker-compose) when fetching upstream from `deploy-sourcegraph-docker`.
-
-**Patch releases**:
-
-- `v3.21.1`
-
-**Notes**:
+#### Notes:
+- Target the tag [`v3.21.1`](https://github.com/sourcegraph/deploy-sourcegraph-docker/tree/v3.21.1/docker-compose) when fetching upstream from `deploy-sourcegraph-docker`.
- This release introduces a second database instance, `codeintel-db`. If you have configured Sourcegraph with an external database, then update the `CODEINTEL_PG*` environment variables to point to a new external database as described in the [external database documentation](/admin/external_services/postgres). Again, these must not point to the same database or the Sourcegraph instance will refuse to start.
-
-## v3.19 ➔ v3.20
-
-Target the tag [`v3.20.1`](https://github.com/sourcegraph/deploy-sourcegraph-docker/tree/v3.20.1/docker-compose) when fetching upstream from `deploy-sourcegraph-docker`.
-
-**Patch releases**:
-
-- `v3.20.1`
-
-## v3.18 ➔ v3.19
-
-Target the tag [`v3.19.2`](https://github.com/sourcegraph/deploy-sourcegraph-docker/tree/v3.19.2/docker-compose) when fetching upstream from `deploy-sourcegraph-docker`.
-
-**Patch releases**:
-
-- `v3.19.1`
-- `v3.19.2`
-
-## v3.17 ➔ v3.18
-
-Target the tag [`v3.18.0-1`](https://github.com/sourcegraph/deploy-sourcegraph-docker/tree/3.18/docker-compose) when fetching upstream from `deploy-sourcegraph-docker`.
-
-**Patch releases**:
-
-- `v3.18.0-1`
-
-## v3.16 ➔ v3.17
-
-**Patch releases**:
-
-Target the tag [`v3.17.2`](https://github.com/sourcegraph/deploy-sourcegraph-docker/tree/v3.16.0/docker-compose) when fetching upstream from `deploy-sourcegraph-docker`.
-
-- `v3.17.1`
-- `v3.17.2`
-
-## v3.15 ➔ v3.16
-
-Target the tag [`v3.16.0`](https://github.com/sourcegraph/deploy-sourcegraph-docker/tree/v3.16.0/docker-compose) when fetching upstream from `deploy-sourcegraph-docker`.
-
-## v3.14 ➔ v3.15
-
-Target the tag [`v3.15.1`](https://github.com/sourcegraph/deploy-sourcegraph-docker/tree/v3.15.1/docker-compose) when fetching upstream from `deploy-sourcegraph-docker`.
-
-**Patch releases**:
-
-- `v3.15.1`
diff --git a/docs/admin/updates/grpc/index.mdx b/docs/admin/updates/grpc/index.mdx
index 54e02177a..3b8124639 100644
--- a/docs/admin/updates/grpc/index.mdx
+++ b/docs/admin/updates/grpc/index.mdx
@@ -1,3 +1,5 @@
+import { CURRENT_VERSION_STRING_NO_V, CURRENT_VERSION_STRING } from 'src/components/PreCodeBlock'
+
# Sourcegraph 5.3 gRPC Configuration Guide
## Overview
@@ -94,7 +96,7 @@ Set the environment variable `GRPC_ENABLED="false"` on the `zoekt-indexserver` c
env:
- name: GRPC_ENABLED
value: 'false'
- image: docker.io/sourcegraph/search-indexer:5.2.0
+ image: docker.io/sourcegraph/search-indexer:{CURRENT_VERSION_NO_V}
```
_zoekt-indexserver can’t read from Sourcegraph’s site configuration, so we can only use environment variables to communicate this setting._
diff --git a/docs/admin/updates/index.mdx b/docs/admin/updates/index.mdx
index e0f05b77b..02a653a5d 100644
--- a/docs/admin/updates/index.mdx
+++ b/docs/admin/updates/index.mdx
@@ -1,30 +1,37 @@
-# Updating sourcegraph
+# Updating Sourcegraph
+
+
+ Supported on [Enterprise](/pricing/enterprise) plans.
+
+ Available via the Web app.
+
+
This page is intended as an entry point into Sourcegraph versioning, upgrades, and the `migrator` service which manages our database schemas. Here we'll cover general concepts and direct you toward relevant operations pages.
**If you are already familiar with Sourcegraph upgrades [skip to instance specific procedures](#instance-specific-procedures).**
-> *Note: For product update notes, please refer to the [changelog](/CHANGELOG).*
+> *Note: For product update notes, please refer to the [technical changelog](/technical-changelog).*
## General concepts
### Upgrading
-A new Sourcegraph release consists of updated images that incorporate code changes from our [main repository](https://github.com/sourcegraph/sourcegraph). It also includes modifications to deployment manifests in our supporting deployment repositories, such as our [k8s helm repo](https://github.com/sourcegraph/deploy-sourcegraph-helm).
+A new Sourcegraph release consists of updated images that incorporate code changes. It also includes modifications to deployment manifests in our supporting deployment repositories, such as our [k8s helm repo](https://github.com/sourcegraph/deploy-sourcegraph-helm).
When upgrading Sourcegraph, it is necessary to update and apply the deployment manifests. However, in addition to the manifest updates, it is crucial to ensure that all underlying database schemas of Sourcegraph are also updated.
### Release Schedule and versioning
-Sourcegraph releases use semantic versioning, for example: `v5.0.3`
+Sourcegraph releases have three digits, for example: `v5.0.3`
| Description | Version |
|---------------|---------|
| major | `5` |
| minor | `0` |
| patch | `3` |
-For more details on our release candence, refer to the [Sourcegraph handbook](https://handbook.sourcegraph.com/departments/engineering/dev/process/releases/#sourcegraph-releases).
+For more details on previous releases see [Sourcegraph Releases](/releases).
-Generally, we ship a new version of Sourcegraph with new features and bug fixes monthly, followed by a patch release later that month. Major and minor releases happen less frequently and contain substantial changes to Sourcegraph.
+Generally, we ship a new minor version of Sourcegraph with new features and bug fixes monthly, followed by a patch release later that month.
Check the [Sourcegraph blog](https://about.sourcegraph.com/blog) for release announcements and details on the latest version.
@@ -44,17 +51,17 @@ Sourcegraph has two upgrade types. **Standard** upgrades and **Multiversion** up
> *Note: Patch versions don't determine upgrade type -- you should always upgrade to the latest patch.*
-| From Version | To Version | Upgrade Type | Notes |
-|--------------|------------|--------------|--------------------------------------|
-| `v5.0.0` | `v5.1.0` | Standard | A minor version |
-| `v5.0.0` | `v5.2.0` | Multiversion | Two minor versions |
-| `v3.41.0` | `v3.42.2` | Standard | A minor version and patch version |
-| `v5.1.0` | `v5.1.3` | Standard | Multiple patch versions |
+| From Version | To Version | Upgrade Type | Notes |
+|--------------|------------|--------------|------------------------------------------------------|
+| `v5.0.0` | `v5.1.0` | Standard | A minor version |
+| `v5.0.0` | `v5.2.0` | Multiversion | Two minor versions |
+| `v3.41.0` | `v3.42.2` | Standard | A minor version and patch version |
+| `v5.1.0` | `v5.1.3` | Standard | Multiple patch versions |
| `v3.43.0` | `v4.0.0` | Standard | A major version change but only one absolute version |
-| `v5.0.0` | `v5.2.2` | Multiversion | Two minor versions and patch |
-| `v3.33.0` | `v5.2.0` | Multiversion | Major and minor |
-| `v4.5.0` | `v5.0.0` | Standard | This is a major version but only one version change |
-| `v4.4.2` | `v5.0.3` | Multiversion | Major, minor, and patch |
+| `v5.0.0` | `v5.2.2` | Multiversion | Two minor versions and patch |
+| `v3.33.0` | `v5.2.0` | Multiversion | Major and minor |
+| `v4.5.0` | `v5.0.0` | Standard | This is a major version but only one version change |
+| `v4.4.2` | `v5.0.3` | Multiversion | Major, minor, and patch |
> *Note:*
> - *Our major releases do not occur on a consistent interval, so make sure to check our changelog if you aren't certain about whether a major version is multiple minor versions away from your current version. You can also reach out to our support team [support@sourcegraph.com](mailto:support@sourcegraph.com)*
@@ -63,7 +70,7 @@ Sourcegraph has two upgrade types. **Standard** upgrades and **Multiversion** up
### Sourcegraph databases & migrator
To facilitate the management of Sourcegraph's databases, we have created the `migrator` service. `migrator` is usually triggered automatically on Sourcegraph startup but can also be interacted with like a cli tool. Migrator's primary purpose is to manage and apply schema migrations.
-- To learn more about migrations see our [developer docs](https://docs.sourcegraph.com/dev/background-information/sql/migrations_overview).
+- To learn more about migrations see our [developer docs](https://docs-legacy.sourcegraph.com/dev/background-information/sql/migrations_overview).
- For a full listing of migrator's command arguments see its [usage docs](/admin/updates/migrator/migrator-operations).
### Best Practices
@@ -78,21 +85,23 @@ It is highly recommended to:
Sourcegraph upgrades take the following general form:
1. Determine if your instance is ready to Upgrade (check upgrade notes)
2. Merge the latest Sourcegraph release into your deployment manifests
-3. If updating more than a single minor version, perform an [**automatic multi-version upgrade**]/admin/updates/automatic) if targeting **Sourcegraph 5.1 or later**; [manual multi-verison upgrades]/admin/updates/migrator/migrator-operations) are required if upgrading to an earlier version, which requires shutting off the instance and invoking the `migrator` container or job to perform the database rewrite and application of unfinished out-of-band migrations
+3. Select an upgrade method:
+ - If updating more than a single minor version, perform a multiversion upgrade with either the migrator [upgrade command](/admin/updates/migrator/migrator-operations#upgrade) or an [automatic upgrade](/admin/updates/automatic). *This method requires downtime.*
+ - If updating a single minor version, perform a standard upgrade with the [migrator up command](/admin/updates/migrator/migrator-operations#up) or an [automatic upgrade](/admin/updates/automatic). `up` is the default migrator entry command and runs on `frontend` startup.
4. With upstream changes to your manifests merged, start the new instance
> Note: For more explicit steps, specific to your deployment see the operations guides linked below.
### Upgrade Readiness
-Starting in v5.0.0, as an admin you are able to check instance upgrade readiness by navigating to the `Site admin > Updates` page. Here you'll be notified if your instance has any **schema drift** or unfinished **out of band migrations**.
+Navigate to the `Site admin > Updates` page. Here you'll be notified if your instance has any **schema drift** or unfinished **out of band migrations**.
-
+
If your instance has schema drift or unfinished oob migrations you may need to address these issues before upgrading. Feel free to reach out to us at [support@sourcegraph.com](mailto:support@sourcegraph.com).
-- [More info on OOB migrations](https://docs.sourcegraph.com/dev/background-information/sql/migrations_overview#out-of-band-migrations)
-- [More info on schema drift](https://docs.sourcegraph.com/admin/how-to/schema-drift)
+- [More info on OOB migrations](https://docs-legacy.sourcegraph.com/dev/background-information/sql/migrations_overview#out-of-band-migrations)
+- [More info on schema drift](/admin/updates/migrator/schema-drift)
## Instance Specific Procedures
@@ -106,16 +115,18 @@ If your instance has schema drift or unfinished oob migrations you may need to a
- [Standard Upgrade Operations](/admin/deploy/kubernetes/upgrade#standard-upgrades)
- [Multiversion Upgrade Operations](/admin/deploy/kubernetes/upgrade#multi-version-upgrades)
- **Helm**
- - [Standard Upgrade Operations](/admin/deploy/kubernetes/helm#standard-upgrades)
- - [Multiversion Upgrade Operations](/admin/deploy/kubernetes/helm#multi-version-upgrades)
+ - [Standard Upgrade Operations](/admin/deploy/kubernetes#standard-upgrades)
+ - [Multiversion Upgrade Operations](/admin/deploy/kubernetes#multi-version-upgrades)
- [Upgrade Notes](/admin/updates/kubernetes)
- **Single-container Sourcegraph with Docker**
- [Standard Upgrade Operations](/admin/deploy/docker-single-container/#standard-upgrades)
- [Multiversion Upgrade Operations](/admin/deploy/docker-single-container/#multi-version-upgrades)
- [Upgrade Notes](/admin/updates/server)
- [**Pure-docker custom deployments**](/admin/updates/pure_docker)
+- [**Sourcegraph AWS AMI instances**](/admin/deploy/machine-images/aws-ami#upgrade)
## Other helpful links
+- [Postgres 12 End Of Life Notice](/admin/postgres12_end_of_life_notice)
- [Migrator operations](/admin/updates/migrator/migrator-operations)
- [Upgrading Early Versions](/admin/updates/migrator/upgrading-early-versions)
- [Troubleshooting upgrades](/admin/updates/migrator/troubleshooting-upgrades)
diff --git a/docs/admin/updates/kubernetes.mdx b/docs/admin/updates/kubernetes.mdx
index 836bd0e88..2d2804d2e 100644
--- a/docs/admin/updates/kubernetes.mdx
+++ b/docs/admin/updates/kubernetes.mdx
@@ -4,116 +4,60 @@ This page lists the changes that are relevant for upgrading Sourcegraph on **Kub
For upgrade procedures or general info about sourcegraph versioning see the links below:
- [Kubernetes Kustomize Upgrade Procedures](/admin/deploy/kubernetes/upgrade)
-- [Kubernetes Helm Upgrade Procedures](/admin/deploy/kubernetes/helm#upgrading-sourcegraph)
+- [Kubernetes Helm Upgrade Procedures](/admin/deploy/kubernetes#upgrading-sourcegraph)
- [General Upgrade Info](/admin/updates)
-- [Product changelog](/CHANGELOG)
+- [Technical changelog](/technical-changelog)
-> ***Attention:** These notes may contain relevant information about the infrastructure update such as resource requirement changes or versions of depencies (Docker, kubernetes, externalized databases).*
+> ***Attention:** These notes may contain relevant information about the infrastructure update such as resource requirement changes or versions of dependencies (Docker, kubernetes, externalized databases).*
>
> ***If the notes indicate a patch release exists, target the highest one.***
+## v6.4.0
-## Unreleased
+- The repo-updater service is no longer needed and will be removed from deployment methods going forward.
+- The symbols service and searcher service have been merged and symbols will be removed from deployment methods going forward. Consider moving env vars set on symbols to the searcher deployment before upgrading and reallocating resources from symbols to searcher.
-- The GitHub proxy service has been removed in 5.2 and is now removed from kubernetes deployment options. [#55290](https://github.com/sourcegraph/sourcegraph/issues/55290)
+## v6.0.0
-#### Notes for 5.2:
+- Sourcegraph 6.0.0 no longer supports PostgreSQL 12, admins must upgrade to PostgreSQL 16. See our [postgres 12 end of life](/admin/postgres12_end_of_life_notice) notice! As well as [supporting documentation](/admin/postgres) and advisements on how to upgrade.
+- The Kubernetes Helm deployment type does not support MVU from Sourcegraph `v5.9.45` versions and earlier to Sourcegraph `v6.0.0`. Admins seeking to upgrade to Sourcegraph `v6.0.0` should upgrade to `v5.11.6271` then use the standard upgrade procedure to get to `v6.0.0`. This is because migrator v6.0.0 will no longer connect to Postgres 12 databases. For more info see our [PostgreSQL upgrade docs](/admin/postgres#requirements).
-- The GitHub proxy service has been removed and is no longer required. You can safely remove it. [#55290](https://github.com/sourcegraph/sourcegraph/issues/55290)
+## v5.9.0 ➔ v5.10.1164
-No applicable notes for unreleased versions.
+- This release resolves an issue in the v5.10.0 release which prevented multiversion upgrades from working. You may now target `v5.10.1164` using migrator's `upgrade` command. Or use autoupgrade by setting the environment variable `SRC_AUTOUPGRADE_IGNORE_DRIFT=true` on the `frontend` deployment.
-## v5.1.8 ➔ v5.1.9
+## v5.9.0 ➔ v5.10.0
-#### Notes:
-
-## v5.1.7 ➔ v5.1.8
-
-#### Notes:
-
-## v5.1.6 ➔ v5.1.7
-
-#### Notes:
-
-- v5.1.7 of the [`deploy-sourcegraph-helm`](https://github.com/sourcegraph/deploy-sourcegraph-helm) repo was initially released with the precise-code-intel worker service unable to write to `/tmp`. The release was [overwritten](https://github.com/sourcegraph/deploy-sourcegraph-helm/pull/343/files), users who have not yet upgraded will be unaffected. Users who have already upgraded may ammend this issue by pulling in the fix with `helm repo update` and rerunning `helm upgrade`.
-
-## v5.1.5 ➔ v5.1.6
-
-#### Notes:
-
-## v5.1.4 ➔ v5.1.5
-
-#### Notes:
-
-- Upgrades from versions `v5.0.3`, `v5.0.4`, `v5.0.5`, and `v5.0.6` to `v5.1.5` are affected by an ordering error in the `frontend` databases migration tree. Learn more from the [PR which resolves this bug](https://github.com/sourcegraph/sourcegraph/pull/55650) in `v5.1.6`. **For admins who have already attempted an upgrade to this release from one of the effected versions, see this issue which provides a description of [how to manually fix the frontend db](https://github.com/sourcegraph/sourcegraph/issues/55658).**
-
-## v5.1.3 ➔ v5.1.4
-
-#### Notes:
-
-- Migrator images were built without the `v5.1.x` tag in this version, as such multiversion upgrades using this image version will fail to upgrade to versions in `v5.1.x`. See [this issue](https://github.com/sourcegraph/sourcegraph/issues/55048) for more details.
-
-## v5.1.2 ➔ v5.1.3
-
-#### Notes:
-
-- Migrator images were built without the `v5.1.x` tag in this version, as such multiversion upgrades using this image version will fail to upgrade to versions in `v5.1.x`. See [this issue](https://github.com/sourcegraph/sourcegraph/issues/55048) for more details.
-
-## v5.1.1 ➔ v5.1.2
-
-#### Notes:
-
-- Migrator images were built without the `v5.1.x` tag in this version, as such multiversion upgrades using this image version will fail to upgrade to versions in `v5.1.x`. See [this issue](https://github.com/sourcegraph/sourcegraph/issues/55048) for more details.
-
-## v5.1.0 ➔ v5.1.1
-
-#### Notes:
-
-- Migrator images were built without the `v5.1.x` tag in this version, as such multiversion upgrades using this image version will fail to upgrade to versions in `v5.1.x`. See [this issue](https://github.com/sourcegraph/sourcegraph/issues/55048) for more details.
-
-## v5.0.6 ➔ v5.1.0
-
-#### Notes:
-
-- See note under v5.1.5 release on issues with standard and multiversion upgrades to v5.1.5.
-
-## v5.0.5 ➔ v5.0.6
+> Warning: Admins are advised to upgrade directly to v5.10.1164 circumventing this release.
+>
+> Warning: This release updates the database container images from Postgres 12 to Postgres 16, and begins using Wolfi based images. Customers are advised to take a database backup before upgrading! See our [postgres 12 end of life](https://sourcegraph.com/docs/admin/postgres12_end_of_life_notice#postgres-12-end-of-life) notice!
+>
+> Warning: `automatic` and migrator `upgrade` command will not work for this release, please upgrade directly to `v5.10.1164`, or to a 5.9 version and conduct a standard upgrade using migrator's default `up` command!
#### Notes:
+- The container image for pgsql and codeintel-db have been renamed from `postgres-12-alpine` and `codeintel-db` respectively to `postgresql-16`. The `codeinsights-db` container has been renamed to `postgresql-16-codeinsights`.
+- **Admins using external dbs who have not yet upgraded from postgres 12 to postgres 16**, can expect to see database drift after upgrading to `5.10.0`. The new expected schema definition for Sourcegraph is based on postgres 16. The schema drift is the result of automatic changes made to the schema by pg_upgrade utils, and will not cause issues in the application.
+ - Admins should not run migrators suggested drift fixes, and should instead upgrade their database from postgres 12 to postgres 16.
+- Postgres 12 image containers cannot be started with data volumes which have been upgraded by postgres 16.
-- See note under v5.1.5 release on issues with standard and multiversion upgrades to v5.1.5.
-## v5.0.4 ➔ v5.0.5
+## v5.1.0 -> v5.2.0
#### Notes:
-- See note under v5.1.5 release on issues with standard and multiversion upgrades to v5.1.5.
+- The GitHub proxy service has been removed and is no longer required. You can safely remove it.
-## v5.0.3 ➔ v5.0.4
+## v5.1.6 ➔ v5.1.7
#### Notes:
-- See note under v5.1.5 release on issues with standard and multiversion upgrades to v5.1.5.
-
-## v5.0.2 ➔ v5.0.3
-
-#### Notes:
+- v5.1.7 of the [`deploy-sourcegraph-helm`](https://github.com/sourcegraph/deploy-sourcegraph-helm) repo was initially released with the precise-code-intel worker service unable to write to `/tmp`. The release was [overwritten](https://github.com/sourcegraph/deploy-sourcegraph-helm/pull/343/files), users who have not yet upgraded will be unaffected. Users who have already upgraded may ammend this issue by pulling in the fix with `helm repo update` and rerunning `helm upgrade`.
-## v5.0.1 ➔ v5.0.2
+## v5.1.4 ➔ v5.1.5
#### Notes:
-## v5.0.0 ➔ v5.0.1
-
-No upgrade notes.
-
-## v4.5.1 ➔ v5.0.0
-
-No upgrade notes.
-
-## v4.5.0 ➔ v4.5.1
-
-No upgrade notes.
+- Upgrades from versions `v5.0.3`, `v5.0.4`, `v5.0.5`, and `v5.0.6` to `v5.1.5` are affected by an ordering error in the `frontend` databases migration tree.
## v4.4.2 ➔ v4.5.0
@@ -131,32 +75,22 @@ No upgrade notes.
- An env var `CACHE_DIR` was renamed to `SYMBOLS_CACHE_DIR` in `sourcegraph/sourcegraph`. This change was missed in the Helm charts, which caused a permissions issue during some symbols searches. For more details, see the PR to fix the env var: [#258](https://github.com/sourcegraph/deploy-sourcegraph-helm/pull/258).
- A revision to the 4.5.1 chart (`4.5.1-rev.1`) was released to address the above issue. Use this revision for upgrades to 4.5.1. (ex: `helm upgrade --install --version 4.5.1-rev.1`) [#259](https://github.com/sourcegraph/deploy-sourcegraph-helm/pull/259)
-## v4.4.1 ➔ v4.4.2
-
-No upgrade notes.
-
## v4.3 ➔ v4.4.1
-- Users attempting a multi-version upgrade to v4.4.0 may be affected by a [known bug](https://github.com/sourcegraph/sourcegraph/pull/46969) in which an outdated schema migration is included in the upgrade process. _This issue is fixed in patch v4.4.2_
+#### Notes:
+
+- Users attempting a multi-version upgrade to v4.4.0 may be affected by a bug in which an outdated schema migration is included in the upgrade process. _This issue is fixed in patch v4.4.2_
- The error will be encountered while running `upgrade`, and contains the following text: `"frontend": failed to apply migration 1648115472`.
- To resolve this issue run migrator with the args `'add-log', '-db=frontend', '-version=1648115472'`.
- If migrator was stopped while running `upgrade` the next run of upgrade will encounter drift, this drift should be disregarded by providing migrator with the `--skip-drift-check` flag.
-## v4.2 ➔ v4.3.1
-
-No upgrade notes.
-
## v4.1 ➔ v4.2.1
-**Notes**:
+#### Notes:
- The `worker-executors` Service object is now included in manifests generated using `kustomize`. This object was already introduced in the base manifest, but omitted from manifests generated using `kustomize`. Its purpose is to enable ingested executor metrics to be scraped by Prometheus. It should have no impact on behavior.
-
-
-**Notes**:
-
-- `minio` has been replaced with `blobstore`. Please see the update notes here: https://docs.sourcegraph.com/admin/how-to/blobstore_update_notes
+- `minio` has been replaced with `blobstore`. Please see the update notes [here](/admin/how-to/blobstore_update_notes)
- This upgrade adds a [node-exporter](https://github.com/prometheus/node_exporter) DaemonSet, which collects crucial machine-level metrics that help Sourcegraph scale your deployment.
- **Note**: Similarly to `cadvisor`, `node-exporter`:
- runs as a DaemonSet
@@ -165,50 +99,23 @@ No upgrade notes.
For more information, see [deploy-sourcegraph-helm's Changelog](https://github.com/sourcegraph/deploy-sourcegraph-helm/blob/main/charts/sourcegraph/CHANGELOG) or contact customer support.
-## v4.0 ➔ v4.1.3
-
-No upgrade notes.
-
## v3.43 ➔ v4.0
-**Patch releases**:
-
-- `v4.0.1`
-
-**Notes**:
+#### Notes:
- `jaeger-agent` sidecars have been removed in favor of an [OpenTelemetry Collector](https://opentelemetry.io/docs/collector/) DaemonSet + Deployment configuration. See [Configure a tracing backend section.](#configure-a-tracing-backend)
- Exporting traces to an external observability backend is now available. Read the [documentation](/admin/deploy/kubernetes/configure#configure-a-tracing-backend) to configure.
- The bundled Jaeger instance is now disabled by default. It can be [enabled](/admin/deploy/kubernetes/configure#enable-the-bundled-jaeger-deployment) if you do not wish to utilise your own external tracing backend.
-## v3.42 ➔ v3.43
-
-**Patch releases**:
-
-- `3.43.1`
-- `3.43.2`
-
-## v3.41 ➔ v3.42
-
-**Patch releases**:
-
-- `3.42.1`
-- `3.42.2`
-
## v3.40 ➔ v3.41
-**Notes**:
+#### Notes:
- The Postgres DBs `frontend` and `codeintel-db` are now given 1 hour to begin accepting connections before Kubernetes restarts the containers. [#4136](https://github.com/sourcegraph/deploy-sourcegraph/pull/4136)
## v3.39 ➔ v3.40
-**Patch releases**:
-
-- `v3.40.1`
-- `v3.40.2`
-
-**Notes**:
+#### Notes:
- `cadvisor` now defaults to run in `privileged` mode. This allows `cadvisor` to collect out of memory events happening to containers which can be used to discover underprovisoned resources. This is disabled by default in `non-privileged` overlay. [#4126](https://github.com/sourcegraph/deploy-sourcegraph/pull/4126)
- Updated the Nginx ingress controller to v1.2.0. Previously this image originated from quay.io, now it is pulled from the official k8s repository. A redeployment of the ingress
@@ -217,57 +124,37 @@ No upgrade notes.
## v3.38 ➔ v3.39
-**Notes**:
+#### Notes:
- The`codeinsights-db` container no longer uses TimescaleDB and is now based on the standard Postgres image [sourcegraph/deploy-sourcegraph#4103](https://github.com/sourcegraph/deploy-sourcegraph/pull/4103). Metrics scraping is also enabled.
- **CAUTION**: If you use a custom Code Insights postgres config, you must update the `shared_preload_libraries` list to remove timescaledb. The [above PR](https://github.com/sourcegraph/deploy-sourcegraph/pull/4103/files#diff-e5f8d6e46f8c9335c489c0d8e9ae9be4f4655f878f3ac569c73ebb3865b0eeeeL695-R688) demonstrates this change.
-## v3.37 ➔ v3.38
-
-No upgrade notes.
-
## v3.36 ➔ v3.37
-**Notes**:
+#### Notes:
-- This release adds a new `migrator` initContainer to the frontend deployment to run database migrations. Confirm the environment variables on this new container match your database settings. [Docs](https://docs.sourcegraph.com/admin/deploy/kubernetes/update#database-migrations)
+- This release adds a new `migrator` initContainer to the frontend deployment to run database migrations. Confirm the environment variables on this new container match your database settings. [Docs](/admin/deploy/kubernetes/#database-migrations)
- **If performing a multiversion upgrade from an instance prior to this version see our [upgrading early versions documentation](/admin/updates/migrator/upgrading-early-versions#before-v3370)**
## v3.35 ➔ v3.36
-**Notes**:
+#### Notes:
- The `backend` service has been removed, so if you deploy with a method other than `kubectl-apply-all.sh`, a manual removal of the service may be necessary.
## v3.34 ➔ v3.35
-**Patch releases**:
-
-- `v3.35.1`
-
-**Notes**:
+#### Notes:
- The query-runner deployment has been removed, so if you deploy with a method other than the `kubectl-apply-all.sh`, a manual removal of the deployment may be necessary.
Follow the [standard upgrade procedure](/admin/deploy/kubernetes/upgrade) to upgrade your deployment.
- There is a [known issue](/code_insights/how-tos/Troubleshooting#oob-migration-has-made-progress-but-is-stuck-before-reaching-100) with the Code Insights out-of-band settings migration not reaching 100% complete when encountering deleted users or organizations.
-## v3.33 ➔ v3.34
-
-No upgrade notes.
-
-## v3.32 ➔ v3.33
-
-No upgrade notes.
-
-## v3.31 ➔ v3.32
-
-No upgrade notes.
-
## v3.30 ➔ v3.31
> WARNING: **This upgrade must originate from `v3.30.3`.**
-**Notes**:
+#### Notes:
- The **built-in** main Postgres (`pgsql`) and codeintel (`codeintel-db`) databases have switched to an alpine-based Docker image. Upon upgrading, Sourcegraph will need to re-index the entire database. All users that use our bundled (built-in) database instances **must** read through the [3.31 upgrade guide](/admin/migration/3_31) _before_ upgrading.
@@ -275,26 +162,20 @@ No upgrade notes.
> WARNING: **If you have already upgraded to 3.30.0, 3.30.1, or 3.30.2** please follow [this migration guide](/admin/migration/3_30).
-**Patch releases**:
-
-- `v3.30.1`
-- `v3.30.2`
-- `v3.30.3`
-
-**Notes**:
+#### Notes:
- This upgrade removes the `non-root` overlay, in favor of using only the `non-privileged` overlay for deploying Sourcegraph in secure environments. If you were
previously deploying using the `non-root` overlay, you should now generate overlays using the `non-privileged` overlay.
## v3.28 ➔ v3.29
-**Notes**:
+#### Notes:
- This upgrade adds a new `worker` service that runs a number of background jobs that were previously run in the `frontend` service. See [notes on deploying workers](/admin/workers#deploying-workers) for additional details. Good initial values for CPU and memory resources allocated to this new service should match the `frontend` service.
## v3.27 ➔ v3.28
-**Notes**:
+#### Notes:
- All Sourcegraph images now have a registry prefix. [#2901](https://github.com/sourcegraph/deploy-sourcegraph/pull/2901)
- The memory requirements for `redis-cache` and `redis-store` have been increased by 1GB. See https://github.com/sourcegraph/deploy-sourcegraph/pull/2898 for more context.
@@ -303,7 +184,7 @@ previously deploying using the `non-root` overlay, you should now generate overl
> WARNING: Sourcegraph 3.27 now requires **Postgres 12+**.
-**Notes**:
+#### Notes:
> WARNING: We have updated the default replicas for `sourcegraph-frontend` and `precise-code-intel-worker` to `2`. If you use a custom value, make sure you do not merge the replica change.
@@ -312,103 +193,31 @@ previously deploying using the `non-root` overlay, you should now generate overl
> Expect to have downtime relative to the size of your database. Additionally, you must ensure that have enough storage
> space to accommodate the migration. A rough guide would be 2x the current on-disk database size
-- If you are using an external database, [upgrade your database](https://docs.sourcegraph.com/admin/postgres#upgrading-external-postgresql-instances) to Postgres 12 or above prior to upgrading Sourcegraph. No action is required if you are using the supplied database images.
+- If you are using an external database, [upgrade your database](/admin/postgres#upgrading-external-postgresql-instances) to Postgres 12 or above prior to upgrading Sourcegraph. No action is required if you are using the supplied database images.
- **If performing a multiversion upgrade from an instance prior to this version see our [upgrading early versions documentation](/admin/updates/migrator/upgrading-early-versions#before-v3270)**
-## v3.25 ➔ v3.26
-
-No upgrade notes.
-
## v3.24 ➔ v3.25
-**Notes**:
+#### Notes:
- Go `1.15` introduced changes to SSL/TLS connection validation which requires certificates to include a `SAN`. This field was not included in older certificates and clients relied on the `CN` field. You might see an error like `x509: certificate relies on legacy Common Name field`. We recommend that customers using Sourcegraph with an external database and and connecting to it using SSL/TLS check whether the certificate is up to date.
- AWS RDS customers please reference [AWS' documentation on updating the SSL/TLS certificate](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL-certificate-rotation.html) for steps to rotate your certificate.
-## v3.23 ➔ v3.24
-
-No upgrade notes.
-
-## v3.22 ➔ v3.23
-
-No upgrade notes.
-
## v3.21 ➔ v3.22
-**Notes**:
+#### Notes:
- This upgrade removes the `code intel bundle manager`. This service has been deprecated and all references to it have been removed.
-- This upgrade also adds a MinIO container that doesn't require any custom configuration. You can find more detailed documentation in https://docs.sourcegraph.com/admin/external_services/object_storage.
+- This upgrade also adds a MinIO container that doesn't require any custom configuration. You can find more detailed documentation in [here](/admin/external_services/object_storage).
## v3.20 ➔ v3.21
-**Notes**:
+#### Notes:
- This release introduces a second database instance, `codeintel-db`. If you have configured Sourcegraph with an external database, then update the `CODEINTEL_PG*` environment variables to point to a new external database as described in the [external database documentation](/admin/external_services/postgres). Again, these must not point to the same database or the Sourcegraph instance will refuse to start.
-## v3.19 ➔ v3.20
-
-No upgrade notes.
-
## v3.18 ➔ v3.19
-**Notes**:
+#### Notes:
- **WARNING**: If you use an overlay that does not reference one of the provided overlays, please add `- /admin/bases/pvcs` as an additional base to your `kustomization.yaml` file. Otherwise the PVCs could be pruned if `kubectl apply -prune` is used.
-
-## v3.17 ➔ v3.18
-
-No upgrade notes.
-
-## v3.16 ➔ v3.17
-
-No upgrade notes.
-
-## v3.15 ➔ v3.16
-
-**Notes**:
-
-- The following deployments have had their `strategy` changed from `rolling` to `recreate`. This change was made to avoid two pods writing to the same volume and causing corruption. No special action is needed to apply the change.
- - redis-cache
- - redis-store
- - pgsql
- - precise-code-intel-bundle-manager
- - prometheus
-
-## v3.14 ➔ v3.15
-
-**Prometheus and Grafana resource requirements increase**
-
-Resource _requests and limits_ for Grafana and Prometheus are now equal to the following:
-
-- Grafana 100Mi -> 512Mi
-- Prometheus: 500M -> 3G
-
-This change was made to ensure that even if another Sourcegraph service starts consuming more memory than expected and the Kubernetes node has been over-provisioned, that Sourcegraph's monitoring will still have enough memory to run and monitor / send alerts to the site admin. For additional information see [#638](https://github.com/sourcegraph/deploy-sourcegraph/pull/638)
-
-You may run the following commands to remove the now unused resources:
-
-```shell script
-kubectl delete svc lsif-server
-kubectl delete deployment lsif-server
-kubectl delete pvc lsif-server
-```
-
-**Configuration**
-
-In Sourcegraph 3.0 all site configuration has been moved out of the `config-file.ConfigMap.yaml` and into the PostgreSQL database. We have an automatic migration if you use version 3.2 or before. Please do not upgrade directly from 2.x to 3.3 or higher.
-
-After running 3.0, you should visit the configuration page (`/site-admin/configuration`) and [the management console](https://docs.sourcegraph.com/admin/management_console) and ensure that your configuration is as expected. In some rare cases, automatic migration may not be able to properly carry over some settings and you may need to reconfigure them.
-
-**A new `sourcegraph-frontend` service type**
-
-The type of the `sourcegraph-frontend` service ([base/frontend/sourcegraph-frontend.Service.yaml](https://github.com/sourcegraph/deploy-sourcegraph/blob/master/base/frontend/sourcegraph-frontend.Service.yaml)) has changed
-from `NodePort` to `ClusterIP`. Directly applying this change [will
-fail](https://github.com/kubernetes/kubernetes/issues/42282). Instead, you must delete the old
-service and then create the new one (this will result in a few seconds of downtime):
-
-```shell
-kubectl delete svc sourcegraph-frontend
-kubectl apply -f base/frontend/sourcegraph-frontend.Service.yaml
-```
diff --git a/docs/admin/updates/migrator/schema-drift.mdx b/docs/admin/updates/migrator/schema-drift.mdx
index 56ca835ed..943d12e74 100644
--- a/docs/admin/updates/migrator/schema-drift.mdx
+++ b/docs/admin/updates/migrator/schema-drift.mdx
@@ -7,7 +7,7 @@ During an upgrade you may run into the following message.
```
* Sourcegraph migrator v4.1.3
❌ Schema drift detected for frontend
-💡 Before continuing with this operation, run the migrator's drift command and follow instructions to repair the schema to the expected current state. See https://docs.sourcegraph.com/admin/how-to/manual_database_migrations#drift for additional instructions.
+💡 Before continuing with this operation, run the migrator's drift command and follow instructions to repair the schema to the expected current state. [See these docs](/admin/how-to/manual_database_migrations#drift) for additional instructions.
```
This error indicates that `migrator` has detected some difference between the state of the schema in your database and the expected schema for the database in the `-from` or current version of your Sourcegraph instance.
@@ -85,4 +85,4 @@ RETURN NULL;
END $function$;
```
-If migrator drift suggests SQL queries which don't make sense please report to support@sourcegraph.com or open an issue in the [`sourcegraph/sourcegraph`](https://github.com/sourcegraph/sourcegraph/issues/new?assignees=&labels=&template=bug_report&title=) repo. You may proceed with a migrator `upgrade` command using the `-skip-drift-check=true` flag.
+If migrator drift suggests SQL queries which don't make sense please report to support@sourcegraph.com. You may proceed with a migrator `upgrade` command using the `-skip-drift-check=true` flag.
diff --git a/docs/admin/updates/pure_docker.mdx b/docs/admin/updates/pure_docker.mdx
index 873b7f86a..4875f1fd2 100644
--- a/docs/admin/updates/pure_docker.mdx
+++ b/docs/admin/updates/pure_docker.mdx
@@ -270,7 +270,7 @@ As a template, perform the same actions as the following diffs in your own deplo
As a template, perform the same actions as the following diffs in your own deployment:
- [`➔ v4.4.0`](https://github.com/sourcegraph/deploy-sourcegraph-docker/commit/8cdeb7616b73e100aec41806b1118264fea0615d)
-- Users attempting a multi-version upgrade to v4.4.0 may be affected by a [known bug](https://github.com/sourcegraph/sourcegraph/pull/46969) in which an outdated schema migration is included in the upgrade process. _This issue is fixed in patch v4.4.2_
+- Users attempting a multi-version upgrade to v4.4.0 may be affected by a bug in which an outdated schema migration is included in the upgrade process. _This issue is fixed in patch v4.4.2_
- The error will be encountered while running `upgrade`, and contains the following text: `"frontend": failed to apply migration 1648115472`.
- To resolve this issue run migrator with the args `'add-log', '-db=frontend', '-version=1648115472'`.
@@ -283,7 +283,7 @@ As a template, perform the same actions as the following diffs in your own deplo
## v4.1 ➔ v4.2.1
-- `minio` has been replaced with `blobstore`. Please see the update notes here: https://docs.sourcegraph.com/admin/how-to/blobstore_update_notes
+- `minio` has been replaced with `blobstore`. Please see the update notes [here](/admin/how-to/blobstore_update_notes)
As a template, perform the same actions as the following diffs in your own deployment:
@@ -393,7 +393,7 @@ As a template, perform the same actions as the following diffs in your own deplo
**Notes**:
-- This release adds a new container that runs database migrations (`migrator`) independently of the frontend container. Confirm the environment variables on this new container match your database settings. [Read more about manual operation of the migrator](https://docs.sourcegraph.com/admin/how-to/manual_database_migrations)
+- This release adds a new container that runs database migrations (`migrator`) independently of the frontend container. Confirm the environment variables on this new container match your database settings.
## v3.35 ➔ v3.36
@@ -510,7 +510,7 @@ As a template, perform the same actions as the following diffs in your own deplo
**Notes**:
-- If you are using an external database, [upgrade your database](https://docs.sourcegraph.com/admin/postgres#upgrading-external-postgresql-instances) to Postgres 12.5 or above prior to upgrading Sourcegraph. No action is required if you are using the supplied supplied database images.
+- If you are using an external database, [upgrade your database](/admin/postgres#upgrading-external-postgresql-instances) to Postgres 12.5 or above prior to upgrading Sourcegraph. No action is required if you are using the supplied supplied database images.
## v3.26 ➔ v3.26
@@ -562,7 +562,7 @@ As a template, perform the same actions as the following diffs in your own deplo
**Notes**:
- This upgrade removes the `code intel bundle manager`. This service has been deprecated and all references to it have been removed.
-- This upgrade also adds a MinIO container that doesn't require any custom configuration. You can find more detailed documentation in https://docs.sourcegraph.com/admin/external_services/object_storage.
+- This upgrade also adds a MinIO container that doesn't require any custom configuration. You can find more detailed documentation [here](/admin/external_services/object_storage).
## v3.20 ➔ v3.21
diff --git a/docs/admin/updates/server.mdx b/docs/admin/updates/server.mdx
index b13ff57df..7604f75fb 100644
--- a/docs/admin/updates/server.mdx
+++ b/docs/admin/updates/server.mdx
@@ -3,9 +3,9 @@
This page lists the changes that are relevant for upgrading Sourcegraph on a **single-node Sourcegraph instance**.
For upgrade procedures or general info about sourcegraph versioning see the links below:
-- [Single Container Upgrade Procedures](/admin/deploy/docker-single-container/index#upgrade)
+- [Single Container Upgrade Procedures](/admin/deploy/docker-single-container#upgrade)
- [General Upgrade Info](/admin/updates/)
-- [Product changelog](/CHANGELOG)
+- [Technical changelog](/technical-changelog)
> ***Attention:** These notes may contain relevant information about the infrastructure update such as resource requirement changes or versions of depencies (Docker, externalized databases).*
>
@@ -14,218 +14,49 @@ For upgrade procedures or general info about sourcegraph versioning see the link
## Unreleased
-## v5.2.6 ➔ v5.2.7
+## v5.9.0 ➔ v5.10.1164
-#### Notes:
-
-## v5.2.5 ➔ v5.2.6
-
-#### Notes:
-
-## v5.2.4 ➔ v5.2.5
-
-#### Notes:
-
-## v5.2.3 ➔ v5.2.4
-
-#### Notes:
-
-## v5.2.2 ➔ v5.2.3
-
-#### Notes:
-
-## v5.2.1 ➔ v5.2.2
-
-#### Notes:
-
-## v5.2.0 ➔ v5.2.1
-
-#### Notes:
-
-## v5.1.9 ➔ v5.2.0
-
-#### Notes:
-
-## v5.1.8 ➔ v5.1.9
-
-#### Notes:
-
-## v5.1.7 ➔ v5.1.8
-
-#### Notes:
-
-## v5.1.6 ➔ v5.1.7
-
-#### Notes:
-
-## v5.1.5 ➔ v5.1.6
-
-#### Notes:
-
-## v5.1.4 ➔ v5.1.5
-
-#### Notes:
-
-## v5.1.3 ➔ v5.1.4
-
-#### Notes:
+- This release resolves an issue in the v5.10.0 release which prevented multiversion upgrades from working. You may now target `v5.10.1164` using migrator's `upgrade` command. Or use autoupgrade by setting the environment variable `SRC_AUTOUPGRADE_IGNORE_DRIFT=true` on the sourcegraph container.
-## v5.1.2 ➔ v5.1.3
+## v5.9.0 -> v5.10.0
#### Notes:
-## v5.1.1 ➔ v5.1.2
-
-#### Notes:
+> Warning: Admins are advised to upgrade directly to v5.10.1164 circumventing this release.
+>
+> Warning: **In 5.10 the Sourcegraph database images are being updated from postgres 12 to postgres 16 to avoid postgres 12's end of life. This update will not yet be applied to Sourcegraph server's all in one database.**
+>
+> Warning: `automatic` and migrator `upgrade` command will not work for this release, please upgrade directly to `v5.10.1164`, or to a 5.9 version and conduct a standard upgrade using migrator's default `up` command!
-## v5.1.0 ➔ v5.1.1
+**What does this mean for admins?**
+- During the postgres version upgrade `pg_upgrade` automatically makes some changes to the database schema.
+- The new canonical database schema is now based on postgres 16, the drift detection tool will report drift between the old and new database schema. This is expected and is a result of the postgres upgrade.
+- Admins should not run migrators suggested drift fixes until the database is upgraded.
-#### Notes:
## v5.0.6 ➔ v5.1.0
#### Notes:
-#### Notes:
-
- The Docker Single Container Deployment image has switched to a Wolfi-based container image. Upon upgrading, Sourcegraph will need to re-index the entire database. All users **must** read through the [5.1 upgrade guide](/admin/migration/5_1) _before_ upgrading.
-## v5.0.5 ➔ v5.0.6
-
-#### Notes:
-
-## v5.0.4 ➔ v5.0.5
-
-#### Notes:
-
-## v5.0.3 ➔ v5.0.4
-
-#### Notes:
-
-## v5.0.2 ➔ v5.0.3
-
-#### Notes:
-
-## v5.0.1 ➔ v5.0.2
-
-#### Notes:
-
-## v5.0.0 ➔ v5.0.1
-
-#### Notes:
-
-## v4.5.1 ➔ v5.0.0
-
-#### Notes:
-
-## v4.5.0 ➔ v4.5.1
-
-#### Notes:
-
## v4.4.2 ➔ v4.5.0
#### Notes:
- This release introduces a background job that will convert all LSIF data into SCIP. **This migration is irreversible** and a rollback from this version may result in loss of precise code intelligence data. Please see the [migration notes](/admin/how-to/lsif_scip_migration) for more details.
-## v4.4.1 ➔ v4.4.2
-
-#### Notes:
-
-## v4.3 ➔ v4.4.1
-
-_No notes._
-
-## v4.2 ➔ v4.3.1
-
-_No notes._
-
-## v4.1 ➔ v4.2.1
-
-_No notes._
-
-## v4.0 ➔ v4.1.3
-
-_No notes._
-
-## v3.43 ➔ v4.0
-
-**Patch releases**:
-
-- `v4.0.1`
-
-## v3.42 ➔ v3.43
-
-**Patch releases**:
-
-- `v3.43.1`
-- `v3.43.2`
-
-## v3.41 ➔ v3.42
-
-**Patch releases**:
-
-- `v3.42.1`
-- `v3.42.2`
-
-## v3.40 ➔ v3.41
-
-No upgrade notes.
-
-## v3.39 ➔ v3.40
-
-**Patch releases**:
-
-- `v3.40.1`
-- `v3.40.2`
-
-## v3.38 ➔ v3.39
-
-**Patched releases**:
-
-- `v3.39.1`
-
-## v3.37 ➔ v3.38
-
-**Patch releases**:
-
-- `v3.38.1`
-
-## v3.36 ➔ v3.37
-
-No upgrade notes.
-
-## v3.35 ➔ v3.36
-
-No upgrade notes.
-
## v3.34 ➔ v3.35
-**Patch releases**:
-
-- `v3.35.1`
-
-**Notes**:
+#### Notes:
- There is a [known issue](/code_insights/how-tos/Troubleshooting#oob-migration-has-made-progress-but-is-stuck-before-reaching-100) with the Code Insights out-of-band settings migration not reaching 100% complete when encountering deleted users or organizations.
-## v3.33 ➔ v3.34
-
-No upgrade notes.
-
-## v3.32 ➔ v3.33
-
-No upgrade notes.
-
-## v3.31 ➔ v3.32
-
-No upgrade notes.
-
## v3.30 ➔ v3.31
> WARNING: **This upgrade must originate from `v3.30.3`.**
-**Notes**:
+#### Notes:
- The **built-in** main Postgres (`pgsql`) and codeintel (`codeintel-db`) databases have switched to an alpine-based Docker image. Upon upgrading, Sourcegraph will need to re-index the entire database. All users that use our bundled (built-in) database instances **must** read through the [3.31 upgrade guide](/admin/migration/3_31) _before_ upgrading.
@@ -233,47 +64,21 @@ No upgrade notes.
> WARNING: **If you have already upgraded to 3.30.0, 3.30.1, or 3.30.2** please follow [this migration guide](/admin/migration/3_30).
-**Patch releases**:
-
-- `v3.30.1`
-- `v3.30.2`
-- `v3.30.3`
-
-## v3.28 ➔ v3.29
-
-No upgrade notes.
-
-## v3.27 ➔ v3.28
-
-No upgrade notes.
-
## v3.26 ➔ v3.27
> WARNING: Sourcegraph 3.27 now requires **Postgres 12+**.
-**Notes**:
-
-- If you are using an external database, [upgrade your database](https://docs.sourcegraph.com/admin/postgres#upgrading-external-postgresql-instances) to Postgres 12 or above prior to upgrading Sourcegraph. If you are using the embedded database, [prepare your data for migration](https://docs.sourcegraph.com/admin/postgres#upgrading-single-node-docker-deployments) prior to upgrading Sourcegraph.
+#### Notes:
-## v3.25 ➔ v3.26
-
-No upgrade notes.
+- If you are using an external database, [upgrade your database](/admin/postgres#upgrading-external-postgresql-instances) to Postgres 12 or above prior to upgrading Sourcegraph. If you are using the embedded database, [prepare your data for migration](/admin/postgres#upgrading-single-node-docker-deployments) prior to upgrading Sourcegraph.
## v3.24 ➔ v3.25
-No upgrade notes.
-
-**Notes**:
+#### Notes:
- Go `1.15` introduced changes to SSL/TLS connection validation which requires certificates to include a `SAN`. This field was not included in older certificates and clients relied on the `CN` field. You might see an error like `x509: certificate relies on legacy Common Name field`. We recommend that customers using Sourcegraph with an external database and and connecting to it using SSL/TLS check whether the certificate is up to date.
- AWS RDS customers please reference [AWS' documentation on updating the SSL/TLS certificate](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL-certificate-rotation.html) for steps to rotate your certificate.
-## v3.23 ➔ v3.24
-
-No upgrade notes.
-## v3.22 ➔ v3.23
-
-No upgrade notes.
## v3.21 ➔ v3.22
> WARNING: **This upgrade must originate from `v3.20.1`.**
@@ -281,34 +86,9 @@ No upgrade notes.
No upgrade notes.
## v3.20 ➔ v3.21
-> WARNING: **This upgrade must originate from `v3.17.2`** due to a [patched](https://github.com/sourcegraph/sourcegraph/pull/11633) [bug](https://github.com/sourcegraph/sourcegraph/issues/11618) in our release.
+> WARNING: **This upgrade must originate from `v3.17.2`** due to a patched bug in our release.
-**Notes**:
+#### Notes:
- This release introduces a second database instance, `codeintel-db`. If you have configured Sourcegraph with an external database, then update the `CODEINTEL_PG*` environment variables to point to a new external database as described in the [external database documentation](/admin/external_services/postgres). Again, these must not point to the same database or the Sourcegraph instance will refuse to start.
- **Turn off database secrets encryption**. In Sourcegraph version 3.20, we would automatically generate a secret key file (`/var/lib/sourcegraph/token`) inside the container for encrypting secrets stored in the database. However, it is not yet ready for general use and format of the secret key file might change. Therefore, it is best to delete the secret key file (`/var/lib/sourcegraph/token`) and turn off the database secrets encryption.
-
-## v3.19 ➔ v3.20
-
-No upgrade notes.
-
-## v3.18 ➔ v3.19
-
-No upgrade notes.
-
-## v3.17 ➔ v3.18
-
-No upgrade notes.
-
-## v3.16 ➔ v3.17
-
-**Patch releases**:
-
-- `v3.17.2`
-
-## v3.15 ➔ v3.16
-
-No upgrade notes.
-## v3.14 ➔ v3.15
-
-No upgrade notes.
diff --git a/docs/admin/workers.mdx b/docs/admin/workers.mdx
index 41dd79502..dd92d465d 100644
--- a/docs/admin/workers.mdx
+++ b/docs/admin/workers.mdx
@@ -62,7 +62,7 @@ This job periodically compares index records against retention policies and mark
#### `codeintel-package-filter-applicator`
-This job periodically updates the blocked status of package repo references and versions when package repo fitlers are updated or deleted.
+This job periodically updates the blocked status of package repo references and versions when package repo filters are updated or deleted.
#### `insights-job`
diff --git a/docs/analytics/air-gapped.mdx b/docs/analytics/air-gapped.mdx
new file mode 100644
index 000000000..be230fef9
--- /dev/null
+++ b/docs/analytics/air-gapped.mdx
@@ -0,0 +1,15 @@
+# Sourcegraph Air-Gapped Analytics
+
+Air-Gapped analytics is an upcoming feature currently in development. If you would like to learn more, please get in touch with your Sourcegraph representative.
+
+Air-Gapped customers can view usage metrics in a locally deployed analytics service built on Grafana to see Sourcegraph usage data.
+
+
+
+We are actively working on the product and will update this page with more information as it becomes available, like:
+
+- Set-up instructions
+- Updates
+- Custom metrics
+
+
diff --git a/docs/analytics/cloud.mdx b/docs/analytics/cloud.mdx
new file mode 100644
index 000000000..5f3ca4397
--- /dev/null
+++ b/docs/analytics/cloud.mdx
@@ -0,0 +1,18 @@
+# Sourcegraph Cloud Analytics
+
+The following instructions are for all Sourcegraph Cloud and self-hosted customers who have upgraded to a sufficient version of Sourcegraph (5.9+) and fully enabled usage telemetry.
+
+
+
+## Enablement instructions
+
+To enable Sourcegraph Analytics:
+
+- Create an account on [Sourcegraph Accounts](https://accounts.sourcegraph.com/), or find the email address associated with your existing account.
+- Contact your Sourcegraph Technical Advisor or point of contact (or email us at support@sourcegraph.com if you don't know your contact), provide them with the email address you used to register above and ask for access to Sourcegraph Analytics.
+- They will validate your account and link it to your Sourcegraph Enterprise instance's usage metrics.
+- Sign in to [Sourcegraph Analytics](https://cody-analytics.sourcegraph.com).
+
+## Data export
+
+Sourcegraph Cloud Analytics also includes a CSV export option with key metrics like the number of searches, chats, autocomplete suggestions, completion acceptance rate (CAR %), and more. The data is split by user, day, client/editor, and programming language, perfect for automating retrieval and analyzing data in ways that make the most sense to your organization.
diff --git a/docs/analytics/index.mdx b/docs/analytics/index.mdx
new file mode 100644
index 000000000..817961fa3
--- /dev/null
+++ b/docs/analytics/index.mdx
@@ -0,0 +1,157 @@
+# Sourcegraph Analytics
+
+Enterprise customers can use Sourcegraph Analytics to get a clear view of usage, engagement, performance, and impact.
+
+## Sourcegraph Cloud Analytics
+This solution is available to:
+- [Sourcegraph Cloud](/cloud) customers
+- Self-hosted customers that have fully enabled usage telemetry, and that are running a supported version of Sourcegraph (5.9+)
+
+[Sourcegraph Cloud](/cloud) customers can use our managed [cloud analytics service](https://cody-analytics.sourcegraph.com) for Cody and Code Search usage data.
+Self-hosted customers can also use this service, but they must:
+- Upgrade to a supported version of Sourcegraph (5.9+)
+- Have fully enabled usage telemetry
+- [Enablement instructions](/analytics/cloud#enablement)
+
+For more details on setting up Sourcegraph Analytics, see our [enablement instructions](/analytics/cloud#enablement)
+
+
+
+## Air-Gapped Analytics
+
+Air-Gapped analytics is an upcoming feature currently in development. If you would like to learn more, please get in touch with your Sourcegraph representative.
+
+Air-Gapped customers can view usage metrics in a locally deployed analytics service built on Grafana to see Sourcegraph usage data.
+
+## Metrics
+
+We provide a set of metrics that can be used to monitor Sourcegraph usage, engagement, performance, and impact within your enterprise.
+
+Learn more about how we think about [the ROI of Sourcegraph in our blog](https://sourcegraph.com/blog/measuring-the-impact-of-ai-coding-tools).
+
+### Overview metrics
+
+| **Metric** | **Description** |
+| ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
+| Percent of code written by Cody | Percentage of code written by Cody out of all code written during the selected time. [Learn more about this metric.](/analytics/pcw) |
+| Lines of code written by Cody | Total lines of code written by Cody during the selected time |
+
+### User metrics
+
+| **Metric** | **Description** |
+| --------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
+| Total active users | Total number of unique users who have used any Sourcegraph product during the selected time |
+| Average daily users | The average number of unique users who use Sourcegraph per day during the selected time |
+| Average days of activity per user | The average number of days each user actively uses Sourcegraph during the selected time |
+| Daily active users | Number of unique users who used Sourcegraph by day |
+| Weekly active users | Number of unique users who used Sourcegraph by week |
+| Daily users by product | Count of daily users across different Sourcegraph products (Cody, Code Search, Code Insights, etc.) |
+| Product usage distribution (by percentage of users) | Percentage breakdown of users across different Sourcegraph product groupings during the selected time |
+| Detailed user activity (top 20 users) | List of the 20 most active users during the selected time and their usage patterns |
+| Frequency of usage | Count of users who used Sourcegraph _n_ times over the past 30 days |
+
+Cody-only user metrics
+
+Many of the metrics above are also available for Cody only. However, some user definitions are slightly different:
+
+| User category | Description |
+| ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| Authenticated users | All users signed in to Cody in an editor or interacted with Cody on the web during the selected period. [Read more](/admin/pricing#authenticated-users). |
+| Active users | All users who sign in to Cody in an editor or interact with Cody on the web during the period selected. [Read more](/admin/pricing#billable-active-users). |
+
+### Code Search & navigation metrics
+
+| **Metric** | **Description** |
+| ------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------- |
+| Total in-product searchers | Number of unique users who performed searches using the Sourcegraph search interface during the selected time |
+| Total result clicks | Count of times users clicked on search results to view files or other resources during the selected time |
+| Total file views | Number of times users viewed individual files through Sourcegraph during the selected time |
+| Hours saved | The number of hours saved by search and code navigation users, assuming 5 minutes saved per search and 30 seconds per code navigation action |
+| Daily in-product search activity | Count of search operations performed each day through the Sourcegraph interface |
+| Daily search users (in-product and API) | Number of unique users performing searches each day, including both UI and API usage |
+| All searches (in-product and API) by type | Breakdown of searches by category (e.g., literal, regex), including both UI and API usage |
+| Total code navigation actions | Count of all code navigation operations performed (e.g., go-to-definition, find references) during the selected time period |
+| Precise code navigation % | Percentage of code navigation actions that used precise intelligence rather than search-based results during the selected time |
+| Daily code navigation activity | Count of code navigation operations performed each day |
+| Daily code navigation users | Number of unique users utilizing code navigation features each day |
+| Precise vs. search-based code navigation actions by language | Comparison of precise vs. search-based navigation success rates broken down by programming language |
+
+### Autocompletion metrics
+
+| **Metric** | **Description** |
+| ------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| Total accepted completions | Count of completions accepted by users during the selected time |
+| Hours saved | The number of hours saved by Cody users, assuming 2 minutes saved per completion |
+| Completions by day | The number of completions suggested by day and by editor. |
+| Completion acceptance rate (CAR) | The percent of completions presented to a user for at least 750ms accepted by day, the editor, day, and month. |
+| Weighted completion acceptance rate (wCAR) | Similar to CAR, but weighted by the number of characters presented in the completion, by the editor, day, and month. This assigns more "weight" to accepted completions that provide more code to the user. |
+| Completion persistence rate | Percent of completions that are retained or mostly retained (67%+ of inserted text) after various time intervals. |
+| Average completion latency (ms) | The average milliseconds of latency before a user is presented with a completion suggestion by an editor. |
+| Acceptance rate by language | CAR and total completion suggestions broken down by editor during the selected time |
+
+### Chat and prompt metrics
+
+| **Metric** | **Description** |
+| ---------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
+| Total chat events | Total number of chat interactions with Cody during the selected time |
+| Hours saved by chats | Total hours saved through Cody chat interactions during the selected time , assuming 5 minutes saved per chat |
+| Cody chats by day | Daily count of chat interactions |
+| Cody chat users | Daily count of chat users |
+| Lines of code inserted | Lines of code generated by Cody in chat that get applied, inserted, or pasted into the editor. Only VS Code is included in this metric for now |
+| Insert rate | Percent of code generated by Cody in chat that gets applied, inserted, or pasted into the editor. Only VS Code is included in this metric for now |
+| Chat apply & insert persistence rate | Percent of code inserted by Apply and Insert actions that are retained or mostly retained (67%+ of inserted text) after various time intervals |
+| Prompts created, edited, and deleted by day | Daily count of prompt management activities, including creation, modification, and removal |
+| Users creating, editing, and deleting prompts by day | Number of unique users performing prompt management activities each day |
+
+### Command metrics (deprecated)
+
+_As of Sourcegraph version 5.10, commands are being deprecated in favor of our new feature, chat prompts. As a result, if your Sourcegraph instance is running version 5.10 or later, you may see decreased command usage. In the coming weeks, these command metrics will be deprecated and replaced with new prompt metrics on the Chats tab._
+
+| **Metric** | **Description** |
+| ----------------------- | ----------------------------------------------------------------------------------------------------------- |
+| Total command events | Total number of command executions during the selected time |
+| Hours saved by commands | Total hours saved through command executions during the selected time, assuming 5 minutes saved per command |
+| Cody commands by day | Daily count of command executions |
+| Cody command users | Daily count of command users |
+| Most used commands | Ranking of most frequently used Cody commands during the selected time |
+
+### CSV export
+
+You can download underlying user activity data from Sourcegraph Analytics as a CSV export. To do this, click the `Export user-level data` button at the top right of any tab within the portal.
+
+When exporting, you can group the data by:
+
+- User
+- User and month
+- User and day
+- User, day, client, and language
+
+Each row in the CSV represents a user's activity for a specific combination of these groupings (e.g., a particular day, month, client, and/or language). The CSV includes metrics such as searches, code navigation actions, chat conversations, code completions, and more.
+
+#### Important Notes
+
+- Not all billable actions are included: Some Sourcegraph features, such as code monitors and batch changes, are not yet represented as columns in the CSV export. We plan to add these fields soon. If a user engages with these features, their activity may appear as a “blank” row in the export. If a user is listed as an “Active Sourcegraph User” (see column D), but the rest of the row is blank, they performed a billable action that isn’t currently tracked in the CSV
+- A zero or blank value in a row can also mean that the user did not perform tracked actions for that specific date, client, or language
+
+| **Column Name** | **Description** |
+| ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| Instance user ID | Unique identifier assigned to each user in the system. |
+| User Email | Email address associated with the user's account. For self-hosted instances, customer must sign the user metadata export addendum for this column to populate. |
+| Username | User's login identifier, usually matches the username from the auth provider (e.g., GitHub). For self-hosted instances, customer must sign the user metadata export addendum for this column to populate. |
+| Active Sourcegraph User | Indicates if the user activity in this row is considered billable. [Read more](/admin/pricing#billable-active-users) |
+| Client Name | Name of the client application or interface used. Common values: - `[IDE_name].cody`: Cody extension interactions from IDEs. - `server.web`: Interactions with the web interface (e.g., searches, code navigation, insights, and some chat events). Variations like `server.svelte-web` may exist. |
+| Timestamp Date (or Month) | When the activity was recorded. |
+| Language | Programming language of the interaction. This is only recorded for a subset of events, mostly completion and code navigation, and will therefore be blank for many rows. |
+| Searches | Number of search queries performed by the user in the web UI. Searches via other methods (e.g., API) are not captured here. |
+| Code Navigation Events | Number of times the user navigated through code structures (e.g., "find references", "go to definition"). |
+| Code Insight Views | Number of times a code insight was viewed. |
+| Chat Events | Number of Cody chats executed. |
+| Command Events | Number of Cody commands executed. |
+| Combined Completion Suggestions | Number of code completion suggestions offered. |
+| Combined Completion Acceptances | Number of code completions accepted by the user. |
+| Total Accepted Char Count | Sum of characters from the user’s accepted code completions (includes both full and partial acceptances). |
+| Combined CAR | Completion acceptance rate (ratio of accepted to suggested completions), combined across editors. |
+| Weighted CAR | Similar to CAR, but weighted by the number of characters presented in the completion. Gives more weight to accepted completions with more code. |
+| Total Characters Written by Cody | Inserted code that Cody generates via chat, prompt responses, accepted autocompletions, or suggestions/fixes. Used as the numerator in the "Percentage of Code Written by Cody" ratio. |
+| Total Characters Written | Total new code inserted into the editor (includes both user-generated and Cody-generated characters). Used as the denominator in the "Percentage of Code Written by Cody" ratio. |
+| Percentage of Code Written by Cody | Measures Cody's impact: (Total Characters Written by Cody ÷ Total Characters Written) × 100. [Learn more about this metric.](/analytics/pcw) |
diff --git a/docs/analytics/pcw.mdx b/docs/analytics/pcw.mdx
new file mode 100644
index 000000000..b0a110803
--- /dev/null
+++ b/docs/analytics/pcw.mdx
@@ -0,0 +1,38 @@
+# Percentage of code written (PCW) by Cody
+
+In order to track Cody's impact, we measure the percentage of new code inserted into users’ editors that is generated by Cody. You can find this data in [Sourcegraph Analytics](https://analytics.sourcegraph.com).
+
+## What it measures
+
+This metric demonstrates how much Cody is contributing to your development process—providing both real productivity gains and improved product velocity. But it's just one of a many metrics we offer to measure Cody's impact on your development workflow. For more, refer to the ROI page in your Sourcegraph Analytics portal.
+
+## How it’s measured
+
+To calculate this metric we measure:
+
+1. Inserted code that Cody generates via:
+
+- Chat or prompt responses that are inserted into the editor
+- Accepted autocompletions
+- Suggestions/fixes
+
+2. Total new code inserted (which includes both user-generated and cody-generated code)
+
+We then create a simple ratio:
+
+`(Inserted code that Cody generates ÷ Total new code inserted) * 100 = Percentage of code written by Cody`
+
+_Note that components are measured in characters of code._
+
+## Technical details
+
+When calculating this metric, we try to include only new code being written by the user or by Cody. This means we exclude insertions from, for example, pasting in large chunks of existing code from a different file, or pulling in changes via `git pull`.
+
+It’s simple to identify which code is generated by Cody, but much more difficult to tell the difference between user-written code and code added to the file from one of the above methods given the data available from VS Code, JetBrains, and other editors. To account for this, we use a variety of heuristics to make a best-effort calculation. Here are a few specific specific heuristics:
+
+- We exclude large, rapid changes - users can type a few characters in 15ms, but if the insertion is much bigger, it's a sign that it's coming from a different source
+- We exclude disjoint insertions - insertions made in multiple places at once, which are likely to come from third party sources
+- We exclude any insertions made in an inactive file/editor window
+- We exclude any insertions into “stale” code - code the user hasn’t touched in the last 5 seconds
+
+This metric only includes data from users on Cody versions 1.42+.
diff --git a/docs/api/graphql/api-docs-copy.mdx b/docs/api/graphql/api-docs-copy.mdx
deleted file mode 100644
index d43245b1f..000000000
--- a/docs/api/graphql/api-docs-copy.mdx
+++ /dev/null
@@ -1,3488 +0,0 @@
-# Sourcegraph API Reference
-
-## Queries
-
-### `areExecutorsConfigured`
-
-#### Description
-
-Returns true if executors have been configured on the Sourcegraph instance. This is based on heuristics and doesn't necessarily mean that they would be working.
-
-#### Response
-
-Returns a `boolean`!
-
-#### Example Query
-
-```
-query areExecutorsConfigured {
- areExecutorsConfigured
-}
-```
-
-#### Example Response
-
-```
-{"data": {"areExecutorsConfigured": false}}
-```
-
-### `autocompleteMembersSearch`
-
-#### Description
-
-Search for users that opt-in to search autocomplete.
-
-#### Response
-
-Returns [AutocompleteMemberSearchItem](#AutocompleteMemberSearchItem)
-
-#### Arguments
-
-| Name | Description |
-| ----------------- | -------------------------------------------------------------- |
-| organization - ID | The organization ID. |
-| query - String | Return users whose usernames or display names match the query. |
-
-#### Example
-
-#### Query
-
-```
-query autocompleteMembersSearch(
- $organization: ID!,
- $query: String!
-) {
- autocompleteMembersSearch(
- organization: $organization,
- query: $query
- ) {
- id
- username
- displayName
- avatarURL
- inOrg
- }
-}
-```
-
-#### Variables
-
-```
-{"organization": 4, "query": "abc123"}
-```
-
-#### Response
-
-```
-{
- "data": {
- "autocompleteMembersSearch": [
- {
- "id": "4",
- "username": "abc123",
- "displayName": "xyz789",
- "avatarURL": "xyz789",
- "inOrg": false
- }
- ]
- }
-}
-```
-
-### backgroundJobs
-
-#### Description
-
-Get a list of background jobs that are currently known in the system.
-
-#### Response
-
-Returns a BackgroundJobConnection!
-
-#### Arguments
-
-| Name | Description |
-| -------------------- | ----------------------------------------------------------------- |
-| first - Int | Returns the first n jobs. If omitted then it returns all of them. |
-| after - String | Opaque pagination cursor. |
-| recentRunCount - Int | The maximum number of recent runs to return for each routine. |
-
-#### Example
-
-#### Query
-
-```
-query backgroundJobs(
- $first: Int,
- $after: String,
- $recentRunCount: Int
-) {
- backgroundJobs(
- first: $first,
- after: $after,
- recentRunCount: $recentRunCount
- ) {
- nodes {
- ...BackgroundJobFragment
- }
- totalCount
- pageInfo {
- ...PageInfoFragment
- }
- }
-}
-```
-
-#### Variables
-
-```
-{
- "first": 987,
- "after": "abc123",
- "recentRunCount": 123
-}
-```
-
-#### Response
-
-```
-{
- "data": {
- "backgroundJobs": {
- "nodes": [BackgroundJob],
- "totalCount": 123,
- "pageInfo": PageInfo
- }
- }
-}
-```
-
-### clientConfiguration
-
-#### Description
-
-The configuration for clients.
-
-#### Response
-
-Returns a ClientConfigurationDetails!
-
-#### Example
-
-#### Query
-
-```
-query clientConfiguration {
- clientConfiguration {
- contentScriptUrls
- parentSourcegraph {
- ...ParentSourcegraphDetailsFragment
- }
- }
-}
-```
-
-#### Response
-
-```
-{
- "data": {
- "clientConfiguration": {
- "contentScriptUrls": ["xyz789"],
- "parentSourcegraph": ParentSourcegraphDetails
- }
- }
-}
-```
-
-### codeHostSyncDue
-
-#### Description
-
-Returns true if any of the code hosts supplied are syncing now or within "seconds" from now.
-
-#### Response
-
-Returns a Boolean!
-
-#### Arguments
-
-| Name | Description |
-| ------------- | ----------- |
-| ids - ID | |
-| seconds — Int | |
-
-#### Example
-
-#### Query
-
-```
-query codeHostSyncDue(
- $ids: [ID!]!,
- $seconds: Int!
-) {
- codeHostSyncDue(
- ids: $ids,
- seconds: $seconds
- )
-}
-```
-
-#### Variables
-
-```
-{"ids": ["4"], "seconds": 123}
-```
-
-#### Response
-
-```
-{"data": {"codeHostSyncDue": true}}
-```
-
-### currentUser
-
-#### Description
-
-The current user.
-
-#### Response
-
-Returns a User
-
-#### Example
-
-#### Query
-
-```
-query currentUser {
- currentUser {
- executorSecrets {
- ...ExecutorSecretConnectionFragment
- }
- id
- username
- email
- displayName
- avatarURL
- url
- settingsURL
- createdAt
- updatedAt
- siteAdmin
- builtinAuth
- latestSettings {
- ...SettingsFragment
- }
- settingsCascade {
- ...SettingsCascadeFragment
- }
- configurationCascade {
- ...ConfigurationCascadeFragment
- }
- organizations {
- ...OrgConnectionFragment
- }
- organizationMemberships {
- ...OrganizationMembershipConnectionFragment
- }
- tags
- tosAccepted
- searchable
- usageStatistics {
- ...UserUsageStatisticsFragment
- }
- eventLogs {
- ...EventLogsConnectionFragment
- }
- emails {
- ...UserEmailFragment
- }
- accessTokens {
- ...AccessTokenConnectionFragment
- }
- externalAccounts {
- ...ExternalAccountConnectionFragment
- }
- session {
- ...SessionFragment
- }
- viewerCanAdminister
- viewerCanChangeUsername
- surveyResponses {
- ...SurveyResponseFragment
- }
- databaseID
- namespaceName
- invitableCollaborators {
- ...PersonFragment
- }
- teams {
- ...TeamConnectionFragment
- }
- }
-}
-```
-
-#### Response
-
-```
-{
- "data": {
- "currentUser": {
- "executorSecrets": ExecutorSecretConnection,
- "id": "4",
- "username": "xyz789",
- "email": "xyz789",
- "displayName": "xyz789",
- "avatarURL": "xyz789",
- "url": "xyz789",
- "settingsURL": "xyz789",
- "createdAt": "2007-12-03T10:15:30Z",
- "updatedAt": "2007-12-03T10:15:30Z",
- "siteAdmin": false,
- "builtinAuth": false,
- "latestSettings": Settings,
- "settingsCascade": SettingsCascade,
- "configurationCascade": ConfigurationCascade,
- "organizations": OrgConnection,
- "organizationMemberships": OrganizationMembershipConnection,
- "tags": ["abc123"],
- "tosAccepted": true,
- "searchable": false,
- "usageStatistics": UserUsageStatistics,
- "eventLogs": EventLogsConnection,
- "emails": [UserEmail],
- "accessTokens": AccessTokenConnection,
- "externalAccounts": ExternalAccountConnection,
- "session": Session,
- "viewerCanAdminister": false,
- "viewerCanChangeUsername": true,
- "surveyResponses": [SurveyResponse],
- "databaseID": 987,
- "namespaceName": "abc123",
- "invitableCollaborators": [Person],
- "teams": TeamConnection
- }
- }
-}
-```
-
-### evaluateFeatureFlag
-
-#### Description
-
-Evaluates a feature flag for the current user Returns null if feature flag does not exist
-
-#### Response
-
-Returns a Boolean
-
-#### Arguments
-
-| Name | Description |
-| ----------------- | ----------- |
-| flagName - String | |
-
-#### Example
-
-#### Query
-
-```
-query evaluateFeatureFlag($flagName: String!) {
- evaluateFeatureFlag(flagName: $flagName)
-}
-```
-
-#### Variables
-
-```
-{"flagName": "abc123"}
-```
-
-#### Response
-
-```
-{"data": {"evaluateFeatureFlag": true}}
-```
-
-### evaluatedFeatureFlags
-
-#### Description
-
-Retrieve all evaluated feature flags for the current user
-
-#### Response
-
-Returns `EvaluatedFeatureFlag`
-
-#### Example
-
-#### Query
-
-```
-query evaluatedFeatureFlags {
- evaluatedFeatureFlags {
- name
- value
- }
-}
-```
-
-#### Response
-
-```
-{
- "data": {
- "evaluatedFeatureFlags": [
- {"name": "xyz789", "value": true}
- ]
- }
-}
-```
-
-### executorSecrets
-
-#### Description
-
-The list of all globally available executor secrets.
-
-#### Response
-
-Returns an `ExecutorSecretConnection`
-
-#### Arguments
-
-| Name | Description |
-| --------------------------- | ---------------------------------------------- |
-| scope — ExecutorSecretScope | The scope for which secrets shall be returned. |
-| first — Int | Only return N records. Default = 50 |
-| after — String | Opaque cursor for pagination. |
-
-#### Example
-
-#### Query
-
-```
-query executorSecrets(
- $scope: ExecutorSecretScope!,
- $first: Int,
- $after: String
-) {
- executorSecrets(
- scope: $scope,
- first: $first,
- after: $after
- ) {
- nodes {
- ...ExecutorSecretFragment
- }
- totalCount
- pageInfo {
- ...PageInfoFragment
- }
- }
-}
-```
-
-#### Variables
-
-```
-{
- "scope": "BATCHES",
- "first": 50,
- "after": "xyz789"
-}
-```
-
-#### Response
-
-```
-{
- "data": {
- "executorSecrets": {
- "nodes": [ExecutorSecret],
- "totalCount": 987,
- "pageInfo": PageInfo
- }
- }
-}
-```
-
-### executors
-
-#### Description
-
-Retrieve active executor compute instances.
-
-#### Response
-
-Returns an `ExecutorConnection`
-
-#### Arguments
-
-| Name | Description |
-| ---------------- | ----------------------------------------------------------------------------------------------------------------- |
-| query — String | An (optional) search query that searches over the hostname, queue name, os, architecture, and version properties. |
-| active — Boolean | Whether to show only executors that have sent a heartbeat in the last fifteen minutes. |
-| first — Int | Returns the first n executors. Default = 50 |
-| after — String | Opaque pagination cursor. |
-
-#### Example
-
-#### Query
-
-```
-query executors(
- $query: String,
- $active: Boolean,
- $first: Int,
- $after: String
-) {
- executors(
- query: $query,
- active: $active,
- first: $first,
- after: $after
- ) {
- nodes {
- ...ExecutorFragment
- }
- totalCount
- pageInfo {
- ...PageInfoFragment
- }
- }
-}
-```
-
-#### Variables
-
-```
-{
- "query": "xyz789",
- "active": false,
- "first": 50,
- "after": "xyz789"
-}
-```
-
-#### Response
-
-```
-{
- "data": {
- "executors": {
- "nodes": [Executor],
- "totalCount": 987,
- "pageInfo": PageInfo
- }
- }
-}
-```
-
-### extensionRegistry
-
-#### Description
-The extension registry.
-
-#### Response
-Returns an `ExtensionRegistry`
-
-#### Example
-#### Query
-
-```
-query extensionRegistry {
- extensionRegistry {
- extensions {
- ...RegistryExtensionConnectionFragment
- }
- }
-}
-```
-
-#### Response
-
-```
-{
- "data": {
- "extensionRegistry": {
- "extensions": RegistryExtensionConnection
- }
- }
-}
-```
-
-### externalServiceNamespaces
-
-#### Description
-Lists all namespaces for a given external service connection. A namespace is an entity on the code host that repositories are assignable to.
-
-#### Response
-Returns an `ExternalServiceNamespaceConnection`
-
-#### Arguments
-
-| Name | Description |
-| -------------------------- | ---------------------------------------------------- |
-| kind — ExternalServiceKind | The kind of the external service. |
-| token — String | The secret token value that is used to authenticate. |
-| url — String | The URL of the external service. |
-
-#### Example
-
-#### Query
-
-```
-query externalServiceNamespaces(
- $kind: ExternalServiceKind!,
- $token: String!,
- $url: String!
-) {
- externalServiceNamespaces(
- kind: $kind,
- token: $token,
- url: $url
- ) {
- nodes {
- ...ExternalServiceNamespaceFragment
- }
- totalCount
- }
-}
-```
-
-#### Variables
-
-```
-{
- "kind": "AWSCODECOMMIT",
- "token": "abc123",
- "url": "abc123"
-}
-```
-
-#### Response
-
-```
-{
- "data": {
- "externalServiceNamespaces": {
- "nodes": [ExternalServiceNamespace],
- "totalCount": 987
- }
- }
-}
-```
-
-### externalServices
-#### Description
-Lists external services under given namespace. If no namespace is given, it returns all external services.
-
-#### Response
-Returns an `ExternalServiceConnection`
-
-#### Arguments
-
-| Name | Description |
-| -------------- | ---------------------------------------------------- |
-| first — Int | Returns the first n external services from the list. |
-| after — String | Opaque pagination cursor. |
-
-#### Example
-
-#### Query
-
-```
-query externalServices(
- $first: Int,
- $after: String
-) {
- externalServices(
- first: $first,
- after: $after
- ) {
- nodes {
- ...ExternalServiceFragment
- }
- totalCount
- pageInfo {
- ...PageInfoFragment
- }
- }
-}
-```
-
-#### Variables
-
-```
-{"first": 123, "after": "abc123"}
-```
-
-#### Response
-
-```
-{
- "data": {
- "externalServices": {
- "nodes": [ExternalService],
- "totalCount": 123,
- "pageInfo": PageInfo
- }
- }
-}
-```
-
-### featureFlag
-
-#### Description
-Retrieve a feature flag
-
-#### Response
-Returns a `FeatureFlag`
-
-#### Arguments
-
-| Name | Description |
-| ------------- | ----------- |
-| name — String | |
-
-#### Example
-
-#### Query
-
-```
-query featureFlag($name: String!) {
- featureFlag(name: $name) {
- ... on FeatureFlagBoolean {
- ...FeatureFlagBooleanFragment
- }
- ... on FeatureFlagRollout {
- ...FeatureFlagRolloutFragment
- }
- }
-}
-```
-
-#### Variables
-
-```
-{"name": "abc123"}
-```
-
-#### Response
-
-```
-{"data": {"featureFlag": FeatureFlagBoolean}}
-```
-
-### featureFlags
-#### Description
-Retrieve the list of defined feature flags
-
-#### Response
-Returns `FeatureFlag`
-
-#### Example
-#### Query
-
-```
-query featureFlags {
- featureFlags {
- ... on FeatureFlagBoolean {
- ...FeatureFlagBooleanFragment
- }
- ... on FeatureFlagRollout {
- ...FeatureFlagRolloutFragment
- }
- }
-}
-```
-
-#### Response
-
-```
-{"data": {"featureFlags": [FeatureFlagBoolean]}}
-```
-
-### highlightCode
-#### Description
-EXPERIMENTAL: Syntax highlights a code string.
-
-#### Response
-Returns a `String`
-
-#### Arguments
-
-| Name | Description |
-| ------------------------ | ----------- |
-| code — String | |
-| fuzzyLanguage — String | |
-| disableTimeout — Boolean | |
-
-#### Example
-#### Query
-
-```
-query highlightCode(
- $code: String!,
- $fuzzyLanguage: String!,
- $disableTimeout: Boolean!
-) {
- highlightCode(
- code: $code,
- fuzzyLanguage: $fuzzyLanguage,
- disableTimeout: $disableTimeout
- )
-}
-```
-
-#### Variables
-
-```
-{
- "code": "xyz789",
- "fuzzyLanguage": "xyz789",
- "disableTimeout": true
-}
-```
-
-#### Response
-
-```
-{"data": {"highlightCode": "xyz789"}}
-```
-
-### invitationByToken
-
-#### Description
-(experimental) Get invitation based on the JWT in the invitation URL
-
-#### Response
-Returns an `OrganizationInvitation`
-
-#### Arguments
-
-| Name | Description |
-| -------------- | ------------------------------------------------- |
-| token — String | he token that uniquely identifies the invitation. |
-
-#### Example
-
-#### Query
-
-```
-query invitationByToken($token: String!) {
- invitationByToken(token: $token) {
- id
- organization {
- ...OrgFragment
- }
- sender {
- ...UserFragment
- }
- recipient {
- ...UserFragment
- }
- recipientEmail
- createdAt
- notifiedAt
- respondedAt
- responseType
- respondURL
- revokedAt
- expiresAt
- isVerifiedEmail
- }
-}
-```
-
-#### Variables
-
-```
-{"token": "xyz789"}
-```
-
-#### Response
-
-```
-{
- "data": {
- "invitationByToken": {
- "id": "4",
- "organization": Org,
- "sender": User,
- "recipient": User,
- "recipientEmail": "xyz789",
- "createdAt": "2007-12-03T10:15:30Z",
- "notifiedAt": "2007-12-03T10:15:30Z",
- "respondedAt": "2007-12-03T10:15:30Z",
- "responseType": "ACCEPT",
- "respondURL": "xyz789",
- "revokedAt": "2007-12-03T10:15:30Z",
- "expiresAt": "2007-12-03T10:15:30Z",
- "isVerifiedEmail": false
- }
- }
-}
-```
-
-### namespace
-
-#### Description
-Look up a namespace by ID.
-
-#### Response
-Returns a `Namespace`
-
-#### Arguments
-
-| Name | Description |
-| ------- | ----------- |
-| id — ID | |
-| | |
-
-#### Example
-
-#### Query
-
-```
-query namespace($id: ID!) {
- namespace(id: $id) {
- id
- namespaceName
- url
- }
-}
-```
-
-#### Variables
-
-```
-{"id": "4"}
-```
-
-#### Response
-
-```
-{
- "data": {
- "namespace": {
- "id": "4",
- "namespaceName": "abc123",
- "url": "abc123"
- }
- }
-}
-```
-
-### namespaceByName
-#### Description
-Look up a namespace by name, which is a username or organization name.
-
-#### Response
-Returns a `Namespace`
-
-#### Arguments
-
-| Name | Description |
-| ------------- | -------------------------- |
-| name — String | The name of the namespace. |
-
-#### Example
-#### Query
-
-```
-query namespaceByName($name: String!) {
- namespaceByName(name: $name) {
- id
- namespaceName
- url
- }
-}
-```
-
-#### Variables
-
-```
-{"name": "abc123"}
-```
-
-#### Response
-
-```
-{
- "data": {
- "namespaceByName": {
- "id": 4,
- "namespaceName": "abc123",
- "url": "xyz789"
- }
- }
-}
-```
-
-### node
-#### Description
-Looks up a node by ID.
-
-#### Response
-Returns a `Node`
-
-#### Arguments
-
-| Name | Description |
-| ------- | ----------- |
-| id — ID | |
-
-#### Example
-#### Query
-
-```
-query node($id: ID!) {
- node(id: $id) {
- id
- }
-}
-```
-
-
-#### Variables
-
-```
-{"id": "4"}
-```
-
-
-#### Response
-
-```
-{"data": {"node": {"id": "4"}}}
-```
-
-### orgMembersSummary
-#### Description
-Get started organization summary
-
-#### Response
-Returns an `OrgMembersSummary`
-
-#### Arguments
-
-| Name | Description |
-| ----------------- | -------------------- |
-| organization — ID | The organization ID. |
-
-#### Example
-#### Query
-
-```
-query orgMembersSummary($organization: ID!) {
- orgMembersSummary(organization: $organization) {
- id
- membersCount
- invitesCount
- }
-}
-```
-
-#### Variables
-
-```
-{"organization": "4"}
-```
-
-#### Response
-
-```
-{
- "data": {
- "orgMembersSummary": {
- "id": "4",
- "membersCount": 123,
- "invitesCount": 987
- }
- }
-}
-```
-
-### organization
-#### Description
-Looks up an organization by name.
-
-#### Response
-
-Returns an `Org`
-
-#### Arguments
-
-| Name | Description |
-| ------------- | ----------- |
-| name — String | |
-
-#### Example
-#### Query
-
-```
-query organization($name: String!) {
- organization(name: $name) {
- executorSecrets {
- ...ExecutorSecretConnectionFragment
- }
- id
- name
- displayName
- createdAt
- members {
- ...NewUsersConnectionFragment
- }
- latestSettings {
- ...SettingsFragment
- }
- settingsCascade {
- ...SettingsCascadeFragment
- }
- configurationCascade {
- ...ConfigurationCascadeFragment
- }
- viewerPendingInvitation {
- ...OrganizationInvitationFragment
- }
- viewerCanAdminister
- viewerIsMember
- url
- settingsURL
- namespaceName
- }
-}
-```
-
-
-#### Variables
-
-```
-{"name": "abc123"}
-```
-
-#### Response
-
-```
-{
- "data": {
- "organization": {
- "executorSecrets": ExecutorSecretConnection,
- "id": 4,
- "name": "xyz789",
- "displayName": "abc123",
- "createdAt": "2007-12-03T10:15:30Z",
- "members": NewUsersConnection,
- "latestSettings": Settings,
- "settingsCascade": SettingsCascade,
- "configurationCascade": ConfigurationCascade,
- "viewerPendingInvitation": OrganizationInvitation,
- "viewerCanAdminister": false,
- "viewerIsMember": true,
- "url": "abc123",
- "settingsURL": "xyz789",
- "namespaceName": "xyz789"
- }
- }
-}
-```
-
-### organizationFeatureFlagOverrides
-#### Description
-Retrieve all organization feature flag overrides for the current user
-
-#### Response
-Returns `FeatureFlagOverride`
-
-#### Example
-#### Query
-
-```
-query organizationFeatureFlagOverrides {
- organizationFeatureFlagOverrides {
- id
- namespace {
- ...NamespaceFragment
- }
- targetFlag {
- ... on FeatureFlagBoolean {
- ...FeatureFlagBooleanFragment
- }
- ... on FeatureFlagRollout {
- ...FeatureFlagRolloutFragment
- }
- }
- value
- }
-}
-```
-
-
-#### Response
-
-```
-{
- "data": {
- "organizationFeatureFlagOverrides": [
- {
- "id": "4",
- "namespace": Namespace,
- "targetFlag": FeatureFlagBoolean,
- "value": true
- }
- ]
- }
-}
-```
-
-### organizationFeatureFlagValue
-#### Description
-Retrieve the value of a feature flag for the organization
-
-#### Response
-Returns a `Boolean`
-
-#### Arguments
-
-| Name | Description |
-| ----------------- | ----------- |
-| orgID — ID | |
-| flagName — String | |
-
-#### Example
-#### Query
-
-```
-query organizationFeatureFlagValue(
- $orgID: ID!,
- $flagName: String!
-) {
- organizationFeatureFlagValue(
- orgID: $orgID,
- flagName: $flagName
- )
-}
-```
-
-
-#### Variables
-
-```
-{
- "orgID": "4",
- "flagName": "xyz789"
-}
-```
-
-#### Response
-
-```
-{"data": {"organizationFeatureFlagValue": true}}
-```
-
-### organizations
-#### Description
-List all organizations.
-
-#### Response
-Returns an `OrgConnection`
-
-#### Arguments
-
-| Name | Description |
-| -------------- | ------------------------------------------------------------------ |
-| first — Int | Returns the first n organizations from the list. |
-| query — String | Return organizations whose names or display names match the query. |
-
-#### Example
-#### Query
-
-```
-query organizations(
- $first: Int,
- $query: String
-) {
- organizations(
- first: $first,
- query: $query
- ) {
- nodes {
- ...OrgFragment
- }
- totalCount
- }
-}
-```
-
-
-#### Variables
-
-```
-{"first": 123, "query": "xyz789"}
-```
-
-#### Response
-
-```
-{
- "data": {
- "organizations": {"nodes": [Org], "totalCount": 123}
- }
-}
-```
-
-### outOfBandMigrations
-#### Description
-Retrieve all registered out-of-band migrations.
-
-#### Response
-Returns `OutOfBandMigration`
-
-#### Example
-#### Query
-
-```
-query outOfBandMigrations {
- outOfBandMigrations {
- id
- team
- component
- description
- introduced
- deprecated
- progress
- created
- lastUpdated
- nonDestructive
- applyReverse
- errors {
- ...OutOfBandMigrationErrorFragment
- }
- }
-}
-```
-
-#### Response
-
-```
-{
- "data": {
- "outOfBandMigrations": [
- {
- "id": 4,
- "team": "xyz789",
- "component": "abc123",
- "description": "xyz789",
- "introduced": "abc123",
- "deprecated": "abc123",
- "progress": 123.45,
- "created": "2007-12-03T10:15:30Z",
- "lastUpdated": "2007-12-03T10:15:30Z",
- "nonDestructive": false,
- "applyReverse": true,
- "errors": [OutOfBandMigrationError]
- }
- ]
- }
-}
-```
-
-### outboundRequests
-#### Description
-Get a log of the latest outbound external requests. Only available to site admins.
-
-#### Response
-Returns an `OutboundRequestConnection`
-
-#### Arguments
-
-| Name | Description |
-| -------------- | ---------------------------------------------------------------------- |
-| first — Int | Returns the first n log items. If omitted then it returns all of them. |
-| after — String | Opaque pagination cursor. |
-
-#### Example
-#### Query
-
-```
-query outboundRequests(
- $first: Int,
- $after: String
-) {
- outboundRequests(
- first: $first,
- after: $after
- ) {
- nodes {
- ...OutboundRequestFragment
- }
- totalCount
- pageInfo {
- ...PageInfoFragment
- }
- }
-}
-```
-
-#### Variables
-
-```
-{"first": 123, "after": "abc123"}
-```
-
-#### Response
-
-```
-{
- "data": {
- "outboundRequests": {
- "nodes": [OutboundRequest],
- "totalCount": 987,
- "pageInfo": PageInfo
- }
- }
-}
-```
-
-### packageRepoReferences
-#### Description
-Query package repo references.
-
-#### Response
-Returns a `PackageRepoReferenceConnection`
-
-#### Arguments
-
-| Name | Description |
-| --------------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
-| scheme — PackageRepoReferenceKind | The exact scheme value to filter by. |
-| name — String | If supplied, only package repo references that match the given terms by their name will be returned. TODO: fuzzy vs exact? |
-| first — Int | Returns the first n external services from the list. |
-| after — String | Opaque pagination cursor. |
-
-#### Example
-#### Query
-
-```
-query packageRepoReferences(
- $scheme: PackageRepoReferenceKind,
- $name: String,
- $first: Int,
- $after: String
-) {
- packageRepoReferences(
- scheme: $scheme,
- name: $name,
- first: $first,
- after: $after
- ) {
- nodes {
- ...PackageRepoReferenceFragment
- }
- totalCount
- pageInfo {
- ...PageInfoFragment
- }
- }
-}
-```
-
-#### Variables
-
-```
-{
- "scheme": "GOMODULES",
- "name": "abc123",
- "first": 123,
- "after": "abc123"
-}
-```
-
-#### Response
-
-```
-{
- "data": {
- "packageRepoReferences": {
- "nodes": [PackageRepoReference],
- "totalCount": 123,
- "pageInfo": PageInfo
- }
- }
-}
-```
-
-### parseSearchQuery
-#### Description
-(experimental) Return the parse tree of a search query.
-
-#### Response
-Returns a `String`
-
-#### Arguments
-
-| Name | Description |
-| --------------- | -------------------------------------------------------------------------------- |
-| query | The search query (such as "repo:myrepo foo"). Default = "" |
-| | Type: String |
-| patternType | The parser to use for this query. Default = standard |
-| | Type: SearchPatternType |
-| outputPhase | The output corresponding to a phase in the parser pipeline. Default = PARSE_TREE |
-| | Type: SearchQueryOutputPhase |
-| outputFormat | The parser output format. Default = JSON |
-| | Type: SearchQueryOutputFormat |
-| outputVerbosity | The level of output format verbosity. Default = BASIC |
-| | Type: SearchQueryOutputVerbosity |
-
-#### Example
-#### Query
-
-```
-query parseSearchQuery(
- $query: String,
- $patternType: SearchPatternType,
- $outputPhase: SearchQueryOutputPhase,
- $outputFormat: SearchQueryOutputFormat,
- $outputVerbosity: SearchQueryOutputVerbosity
-) {
- parseSearchQuery(
- query: $query,
- patternType: $patternType,
- outputPhase: $outputPhase,
- outputFormat: $outputFormat,
- outputVerbosity: $outputVerbosity
- )
-}
-```
-
-#### Variables
-
-```
-{
- "query": "",
- "patternType": "standard",
- "outputPhase": "PARSE_TREE",
- "outputFormat": "JSON",
- "outputVerbosity": "BASIC"
-}
-```
-
-#### Response
-
-```
-{"data": {"parseSearchQuery": "abc123"}}
-```
-
-### pendingInvitations
-#### Description
-Get pending invitations for the specific organization
-
-#### Response
-Returns `OrganizationInvitation`
-
-#### Arguments
-
-| Name | Description |
-| ----------------- | -------------------- |
-| organization — ID | The organization ID. |
-
-#### Example
-#### Query
-
-```
-query pendingInvitations($organization: ID!) {
- pendingInvitations(organization: $organization) {
- id
- organization {
- ...OrgFragment
- }
- sender {
- ...UserFragment
- }
- recipient {
- ...UserFragment
- }
- recipientEmail
- createdAt
- notifiedAt
- respondedAt
- responseType
- respondURL
- revokedAt
- expiresAt
- isVerifiedEmail
- }
-}
-```
-
-#### Variables
-
-```
-{"organization": "4"}
-```
-
-#### Response
-
-```
-{
- "data": {
- "pendingInvitations": [
- {
- "id": "4",
- "organization": Org,
- "sender": User,
- "recipient": User,
- "recipientEmail": "xyz789",
- "createdAt": "2007-12-03T10:15:30Z",
- "notifiedAt": "2007-12-03T10:15:30Z",
- "respondedAt": "2007-12-03T10:15:30Z",
- "responseType": "ACCEPT",
- "respondURL": "abc123",
- "revokedAt": "2007-12-03T10:15:30Z",
- "expiresAt": "2007-12-03T10:15:30Z",
- "isVerifiedEmail": false
- }
- ]
- }
-}
-```
-
-### phabricatorRepo
-#### escription
-Looks up a Phabricator repository by name.
-
-#### Response
-Returns a `PhabricatorRepo`
-
-#### Arguments
-
-| Name | Description |
-| ------------- | ------------------------------------------------ |
-| name — String | The name, for example "github.com/gorilla/mux". |
-| uri — String | An alias for name. DEPRECATED: use name instead. |
-
-#### Example
-#### Query
-
-```
-query phabricatorRepo(
- $name: String,
- $uri: String
-) {
- phabricatorRepo(
- name: $name,
- uri: $uri
- ) {
- name
- uri
- callsign
- url
- }
-}
-```
-
-#### Variables
-
-```
-{
- "name": "abc123",
- "uri": "abc123"
-}
-```
-
-#### Response
-
-```
-{
- "data": {
- "phabricatorRepo": {
- "name": "xyz789",
- "uri": "abc123",
- "callsign": "abc123",
- "url": "xyz789"
- }
- }
-}
-```
-
-### renderMarkdown
-#### Description
-Renders Markdown to HTML. The returned HTML is already sanitized and escaped and thus is always safe to render.
-
-#### Response
-Returns a `String`
-
-#### Arguments
-
-| Name | Description |
-| ------------------------- | ----------- |
-| markdown — String | |
-| options — markdownOptions | |
-
-#### Example
-#### Query
-
-```
-query renderMarkdown(
- $markdown: String!,
- $options: MarkdownOptions
-) {
- renderMarkdown(
- markdown: $markdown,
- options: $options
- )
-}
-```
-
-#### Variables
-
-```
-{
- "markdown": "xyz789",
- "options": MarkdownOptions
-}
-```
-
-#### Response
-
-```
-{"data": {"renderMarkdown": "abc123"}}
-```
-
-### repositories
-#### Description
-List all repositories.
-
-#### Response
-Returns a `NewRepositoryConnection`
-
-#### Arguments
-
-| Name | Description |
-| --------------- | ----------------------------------------------------------------------------------------------------- |
-| first | Returns the first n repositories from the list. |
-| | Type: Int |
-| last | Returns the last n repositories from the list. |
-| | Type: Int |
-| query | Return repositories whose names match the query. |
-| | Type: String |
-| after | An opaque cursor that is used for pagination. |
-| | Type: String |
-| before | An opaque cursor that is used for pagination. |
-| | Type: String |
-| names | Return repositories whose names are in the list. |
-| | Type: [String!] |
-| cloned | Include cloned repositories. Default = true |
-| | Type: Boolean |
-| cloneStatus | Include only repositories of the given clone status. |
-| | Type: CloneStatus |
-| notCloned | Include repositories that are not yet cloned and for which cloning is not in progress. Default = true |
-| | Type: Boolean |
-| indexed | Include repositories that have a text search index. Default = true |
-| | Type: Boolean |
-| notIndexed | Include repositories that do not have a text search index. Default = true |
-| | Type: Boolean |
-| failedFetch | Include only repositories that have encountered errors when cloning or fetching. Default = false |
-| | Type: Boolean |
-| corrupted | Include repositories that are corrupt. Default = false |
-| | Type: Boolean |
-| externalService | Return repositories that are associated with the given external service. |
-| | Type: ID |
-| orderBy | Sort field. Default = REPOSITORY_NAME |
-| | Type: RepositoryOrderBy |
-| descending | Sort direction. Default = false |
-| | Type: Boolean |
-
-#### Example
-#### Query
-
-```
-query repositories(
- $first: Int,
- $last: Int,
- $query: String,
- $after: String,
- $before: String,
- $names: [String!],
- $cloned: Boolean,
- $cloneStatus: CloneStatus,
- $notCloned: Boolean,
- $indexed: Boolean,
- $notIndexed: Boolean,
- $failedFetch: Boolean,
- $corrupted: Boolean,
- $externalService: ID,
- $orderBy: RepositoryOrderBy,
- $descending: Boolean
-) {
- repositories(
- first: $first,
- last: $last,
- query: $query,
- after: $after,
- before: $before,
- names: $names,
- cloned: $cloned,
- cloneStatus: $cloneStatus,
- notCloned: $notCloned,
- indexed: $indexed,
- notIndexed: $notIndexed,
- failedFetch: $failedFetch,
- corrupted: $corrupted,
- externalService: $externalService,
- orderBy: $orderBy,
- descending: $descending
- ) {
- nodes {
- ...RepositoryFragment
- }
- totalCount
- pageInfo {
- ...ConnectionPageInfoFragment
- }
- }
-}
-```
-
-#### Variables
-
-```
-{
- "first": 987,
- "last": 987,
- "query": "xyz789",
- "after": "xyz789",
- "before": "xyz789",
- "names": ["abc123"],
- "cloned": true,
- "cloneStatus": "NOT_CLONED",
- "notCloned": true,
- "indexed": true,
- "notIndexed": true,
- "failedFetch": false,
- "corrupted": false,
- "externalService": 4,
- "orderBy": "REPOSITORY_NAME",
- "descending": false
-}
-```
-
-#### Response
-
-```
-{
- "data": {
- "repositories": {
- "nodes": [Repository],
- "totalCount": 123,
- "pageInfo": ConnectionPageInfo
- }
- }
-}
-```
-
-### repository
-#### Description
-Looks up a repository by either name or cloneURL.
-
-#### Response
-Returns a `Repository`
-
-#### Arguments
-
-| Name | Description |
-| -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| name | Query the repository by name, for example "github.com/gorilla/mux". |
-| | Type: String |
-| cloneURL | Query the repository by a Git clone URL (format documented [here](https://git-scm.com/docs/git-clone#_git_urls_a_id_urls_a)) by checking for a code host configuration that matches the clone URL. Will not actually check the code host to see if the repository actually exists. |
-| | Type: String |
-| uri | An alias for name. DEPRECATED: use name instead. |
-| | Type: String |
-
-#### Example
-#### Query
-
-```
-query repository(
- $name: String,
- $cloneURL: String,
- $uri: String
-) {
- repository(
- name: $name,
- cloneURL: $cloneURL,
- uri: $uri
- ) {
- id
- name
- uri
- description
- language
- createdAt
- updatedAt
- commit {
- ...GitCommitFragment
- }
- firstEverCommit {
- ...GitCommitFragment
- }
- mirrorInfo {
- ...MirrorRepositoryInfoFragment
- }
- externalRepository {
- ...ExternalRepositoryFragment
- }
- isFork
- isArchived
- isPrivate
- externalServices {
- ...ExternalServiceConnectionFragment
- }
- cloneInProgress
- textSearchIndex {
- ...RepositoryTextSearchIndexFragment
- }
- url
- externalURLs {
- ...ExternalLinkFragment
- }
- defaultBranch {
- ...GitRefFragment
- }
- gitRefs {
- ...GitRefConnectionFragment
- }
- branches {
- ...GitRefConnectionFragment
- }
- tags {
- ...GitRefConnectionFragment
- }
- comparison {
- ...RepositoryComparisonFragment
- }
- contributors {
- ...RepositoryContributorConnectionFragment
- }
- viewerCanAdminister
- label {
- ...MarkdownFragment
- }
- detail {
- ...MarkdownFragment
- }
- matches {
- ...SearchResultMatchFragment
- }
- codeIntelligenceCommitGraph {
- ...CodeIntelligenceCommitGraphFragment
- }
- stars
- keyValuePairs {
- ...KeyValuePairFragment
- }
- diskSizeBytes
- }
-}
-```
-
-#### Variables
-
-```
-{
- "name": "abc123",
- "cloneURL": "abc123",
- "uri": "abc123"
-}
-```
-
-#### Response
-
-```
-{
- "data": {
- "repository": {
- "id": "4",
- "name": "xyz789",
- "uri": "abc123",
- "description": "abc123",
- "language": "abc123",
- "createdAt": "2007-12-03T10:15:30Z",
- "updatedAt": "2007-12-03T10:15:30Z",
- "commit": GitCommit,
- "firstEverCommit": GitCommit,
- "mirrorInfo": MirrorRepositoryInfo,
- "externalRepository": ExternalRepository,
- "isFork": true,
- "isArchived": true,
- "isPrivate": true,
- "externalServices": ExternalServiceConnection,
- "cloneInProgress": true,
- "textSearchIndex": RepositoryTextSearchIndex,
- "url": "abc123",
- "externalURLs": [ExternalLink],
- "defaultBranch": GitRef,
- "gitRefs": GitRefConnection,
- "branches": GitRefConnection,
- "tags": GitRefConnection,
- "comparison": RepositoryComparison,
- "contributors": RepositoryContributorConnection,
- "viewerCanAdminister": true,
- "label": Markdown,
- "detail": Markdown,
- "matches": [SearchResultMatch],
- "codeIntelligenceCommitGraph": CodeIntelligenceCommitGraph,
- "stars": 987,
- "keyValuePairs": [KeyValuePair],
- "diskSizeBytes": {}
- }
- }
-}
-```
-
-### repositoryRedirect
-#### Description
-Looks up a repository by either name or cloneURL or hashedName. When the repository does not exist on the server and "disablePublicRepoRedirects" is "false" in the site configuration, it returns a Redirect to an external Sourcegraph URL that may have this repository instead. Otherwise, this query returns null.
-
-#### Response
-Returns a `RepositoryRedirect`
-
-#### Arguments
-
-| Name | Description |
-| ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| name | Query the repository by name, for example "github.com/gorilla/mux". |
-| | Type: String |
-| cloneURL | Query the repository by a Git clone URL (format documented [here](https://git-scm.com/docs/git-clone#_git_urls_a_id_urls_a)) by checking for a code host configuration that matches the clone URL. Will not actually check the code host to see if the repository actually exists. |
-| | Type: String |
-| hashedName | Query the repository by hashed name. Hashed name is a SHA256 checksum of the absolute repo name in lower case, for example "github.com/sourcegraph/sourcegraph" -> "a6c905ceb7dec9a565945ceded8c7fa4154250df8b928fb40673b535d9a24c2f" |
-| | Type: String |
-
-#### Example
-#### Query
-
-```
-query repositoryRedirect(
- $name: String,
- $cloneURL: String,
- $hashedName: String
-) {
- repositoryRedirect(
- name: $name,
- cloneURL: $cloneURL,
- hashedName: $hashedName
- ) {
- ... on Repository {
- ...RepositoryFragment
- }
- ... on Redirect {
- ...RedirectFragment
- }
- }
-}
-```
-
-#### Variables
-
-```
-{
- "name": "abc123",
- "cloneURL": "abc123",
- "hashedName": "abc123"
-}
-```
-
-#### Response
-
-```
-{"data": {"repositoryRedirect": Repository}}
-```
-
-### repositoryStats
-#### Description
-FOR INTERNAL USE ONLY: Query repository statistics for the site.
-
-#### Response
-Returns a `RepositoryStats`
-
-#### Example
-#### Query
-
-```
-query repositoryStats {
- repositoryStats {
- gitDirBytes
- indexedLinesCount
- total
- cloned
- cloning
- notCloned
- failedFetch
- indexed
- corrupted
- }
-}
-```
-
-#### Response
-
-```
-{
- "data": {
- "repositoryStats": {
- "gitDirBytes": {},
- "indexedLinesCount": {},
- "total": 987,
- "cloned": 987,
- "cloning": 987,
- "notCloned": 987,
- "failedFetch": 123,
- "indexed": 987,
- "corrupted": 123
- }
- }
-}
-```
-
-### root
-
-this will be removed.
-
-#### Description
-The root of the query.
-
-#### Response
-Returns a `Query`
-
-#### Example
-#### Query
-
-```
-query root {
- root {
- root {
- ...QueryFragment
- }
- node {
- ...NodeFragment
- }
- repository {
- ...RepositoryFragment
- }
- repositoryRedirect {
- ... on Repository {
- ...RepositoryFragment
- }
- ... on Redirect {
- ...RedirectFragment
- }
- }
- externalServices {
- ...ExternalServiceConnectionFragment
- }
- externalServiceNamespaces {
- ...ExternalServiceNamespaceConnectionFragment
- }
- repositories {
- ...NewRepositoryConnectionFragment
- }
- packageRepoReferences {
- ...PackageRepoReferenceConnectionFragment
- }
- phabricatorRepo {
- ...PhabricatorRepoFragment
- }
- currentUser {
- ...UserFragment
- }
- user {
- ...UserFragment
- }
- users {
- ...UserConnectionFragment
- }
- organization {
- ...OrgFragment
- }
- organizations {
- ...OrgConnectionFragment
- }
- renderMarkdown
- highlightCode
- settingsSubject {
- ...SettingsSubjectFragment
- }
- viewerSettings {
- ...SettingsCascadeFragment
- }
- viewerConfiguration {
- ...ConfigurationCascadeFragment
- }
- clientConfiguration {
- ...ClientConfigurationDetailsFragment
- }
- search {
- ...SearchFragment
- }
- savedSearches {
- ...SavedSearchesConnectionFragment
- }
- parseSearchQuery
- site {
- ...SiteFragment
- }
- surveyResponses {
- ...SurveyResponseConnectionFragment
- }
- extensionRegistry {
- ...ExtensionRegistryFragment
- }
- statusMessages {
- ... on GitUpdatesDisabled {
- ...GitUpdatesDisabledFragment
- }
- ... on CloningProgress {
- ...CloningProgressFragment
- }
- ... on ExternalServiceSyncError {
- ...ExternalServiceSyncErrorFragment
- }
- ... on SyncError {
- ...SyncErrorFragment
- }
- ... on IndexingProgress {
- ...IndexingProgressFragment
- }
- }
- repositoryStats {
- ...RepositoryStatsFragment
- }
- namespace {
- ...NamespaceFragment
- }
- namespaceByName {
- ...NamespaceFragment
- }
- codeHostSyncDue
- outOfBandMigrations {
- ...OutOfBandMigrationFragment
- }
- featureFlags {
- ... on FeatureFlagBoolean {
- ...FeatureFlagBooleanFragment
- }
- ... on FeatureFlagRollout {
- ...FeatureFlagRolloutFragment
- }
- }
- featureFlag {
- ... on FeatureFlagBoolean {
- ...FeatureFlagBooleanFragment
- }
- ... on FeatureFlagRollout {
- ...FeatureFlagRolloutFragment
- }
- }
- evaluateFeatureFlag
- evaluatedFeatureFlags {
- ...EvaluatedFeatureFlagFragment
- }
- organizationFeatureFlagValue
- organizationFeatureFlagOverrides {
- ...FeatureFlagOverrideFragment
- }
- temporarySettings {
- ...TemporarySettingsFragment
- }
- webhookLogs {
- ...WebhookLogConnectionFragment
- }
- outboundRequests {
- ...OutboundRequestConnectionFragment
- }
- backgroundJobs {
- ...BackgroundJobConnectionFragment
- }
- invitationByToken {
- ...OrganizationInvitationFragment
- }
- pendingInvitations {
- ...OrganizationInvitationFragment
- }
- autocompleteMembersSearch {
- ...AutocompleteMemberSearchItemFragment
- }
- orgMembersSummary {
- ...OrgMembersSummaryFragment
- }
- webhooks {
- ...WebhookConnectionFragment
- }
- slowRequests {
- ...SlowRequestConnectionFragment
- }
- executorSecrets {
- ...ExecutorSecretConnectionFragment
- }
- executors {
- ...ExecutorConnectionFragment
- }
- areExecutorsConfigured
- team {
- ...TeamFragment
- }
- teams {
- ...TeamConnectionFragment
- }
- }
-}
-```
-
-#### Response
-
-```
-{
- "data": {
- "root": {
- "root": Query,
- "node": Node,
- "repository": Repository,
- "repositoryRedirect": Repository,
- "externalServices": ExternalServiceConnection,
- "externalServiceNamespaces": ExternalServiceNamespaceConnection,
- "repositories": NewRepositoryConnection,
- "packageRepoReferences": PackageRepoReferenceConnection,
- "phabricatorRepo": PhabricatorRepo,
- "currentUser": User,
- "user": User,
- "users": UserConnection,
- "organization": Org,
- "organizations": OrgConnection,
- "renderMarkdown": "xyz789",
- "highlightCode": "xyz789",
- "settingsSubject": SettingsSubject,
- "viewerSettings": SettingsCascade,
- "viewerConfiguration": ConfigurationCascade,
- "clientConfiguration": ClientConfigurationDetails,
- "search": Search,
- "savedSearches": SavedSearchesConnection,
- "parseSearchQuery": "xyz789",
- "site": Site,
- "surveyResponses": SurveyResponseConnection,
- "extensionRegistry": ExtensionRegistry,
- "statusMessages": [GitUpdatesDisabled],
- "repositoryStats": RepositoryStats,
- "namespace": Namespace,
- "namespaceByName": Namespace,
- "codeHostSyncDue": true,
- "outOfBandMigrations": [OutOfBandMigration],
- "featureFlags": [FeatureFlagBoolean],
- "featureFlag": FeatureFlagBoolean,
- "evaluateFeatureFlag": true,
- "evaluatedFeatureFlags": [EvaluatedFeatureFlag],
- "organizationFeatureFlagValue": true,
- "organizationFeatureFlagOverrides": [
- FeatureFlagOverride
- ],
- "temporarySettings": TemporarySettings,
- "webhookLogs": WebhookLogConnection,
- "outboundRequests": OutboundRequestConnection,
- "backgroundJobs": BackgroundJobConnection,
- "invitationByToken": OrganizationInvitation,
- "pendingInvitations": [OrganizationInvitation],
- "autocompleteMembersSearch": [
- AutocompleteMemberSearchItem
- ],
- "orgMembersSummary": OrgMembersSummary,
- "webhooks": WebhookConnection,
- "slowRequests": SlowRequestConnection,
- "executorSecrets": ExecutorSecretConnection,
- "executors": ExecutorConnection,
- "areExecutorsConfigured": false,
- "team": Team,
- "teams": TeamConnection
- }
- }
-}
-```
-
-### savedSearches
-#### Description
-List of saved searches based on namespace
-
-#### Response
-Returns a `SavedSearchesConnection`
-
-#### Arguments
-
-| Name | Description |
-| --------- | --------------------------------------------- |
-| namespace | The namespace to list the saved searches for. |
-| | Type: ID (non-nullable) |
-| first | The limit argument for forward pagination. |
-| | Type: Int |
-| last | The limit argument for backward pagination. |
-| | Type: Int |
-| after | The cursor argument for forward pagination. |
-| | Type: String |
-| before | The cursor argument for backward pagination. |
-| | Type: String |
-
-#### Example
-#### Query
-
-```
-query savedSearches(
- $namespace: ID!,
- $first: Int,
- $last: Int,
- $after: String,
- $before: String
-) {
- savedSearches(
- namespace: $namespace,
- first: $first,
- last: $last,
- after: $after,
- before: $before
- ) {
- nodes {
- ...SavedSearchFragment
- }
- totalCount
- pageInfo {
- ...ConnectionPageInfoFragment
- }
- }
-}
-```
-#### Variables
-
-```
-{
- "namespace": 4,
- "first": 123,
- "last": 123,
- "after": "abc123",
- "before": "xyz789"
-}
-```
-
-#### Response
-
-```
-{
- "data": {
- "savedSearches": {
- "nodes": [SavedSearch],
- "totalCount": 987,
- "pageInfo": ConnectionPageInfo
- }
- }
-}
-```
-
-### search
-#### Description
-Runs a search.
-
-#### Response
-Returns a `Search`
-
-#### Arguments
-
-| Name | Description |
-| ----------- | ---------------------------------------------------------------------------------------------------------------------------------- |
-| version | The version of the search syntax being used. All new clients should use the latest version. Default = V1 |
-| | Type: SearchVersion |
-| patternType | PatternType controls the search pattern type, if and only if it is not specified in the query string using the patternType: field. |
-| | Type: SearchPatternType |
-| query | The search query (such as "foo" or "repo:myrepo foo"). Default = "" |
-| | Type: String |
-
-#### Example
-#### Query
-
-```
-query search(
- $version: SearchVersion,
- $patternType: SearchPatternType,
- $query: String
-) {
- search(
- version: $version,
- patternType: $patternType,
- query: $query
- ) {
- results {
- ...SearchResultsFragment
- }
- stats {
- ...SearchResultsStatsFragment
- }
- }
-}
-```
-#### Variables
-
-```
-{"version": "V1", "patternType": "standard", "query": ""}
-```
-
-#### Response
-
-```
-{
- "data": {
- "search": {
- "results": SearchResults,
- "stats": SearchResultsStats
- }
- }
-}
-```
-
-### settingsSubject
-#### Description
-Looks up an instance of a type that implements SettingsSubject (i.e., something that has settings). This can be a site (which has global settings), an organization, or a user.
-
-#### Response
-Returns a `SettingsSubject`
-
-#### Arguments
-
-| Name | Description |
-| ------- | ----------- |
-| id — ID | |
-
-#### Example
-#### Query
-
-```
-query settingsSubject($id: ID!) {
- settingsSubject(id: $id) {
- id
- latestSettings {
- ...SettingsFragment
- }
- settingsURL
- viewerCanAdminister
- settingsCascade {
- ...SettingsCascadeFragment
- }
- configurationCascade {
- ...ConfigurationCascadeFragment
- }
- }
-}
-```
-
-#### Variables
-
-```
-{"id": "4"}
-```
-#### Response
-
-```
-{
- "data": {
- "settingsSubject": {
- "id": 4,
- "latestSettings": Settings,
- "settingsURL": "abc123",
- "viewerCanAdminister": false,
- "settingsCascade": SettingsCascade,
- "configurationCascade": ConfigurationCascade
- }
- }
-}
-```
-
-### site
-#### Description
-The current site.
-
-#### Response
-Returns a `Site`
-
-#### Example
-#### Query
-
-```
-query site {
- site {
- id
- siteID
- configuration {
- ...SiteConfigurationFragment
- }
- latestSettings {
- ...SettingsFragment
- }
- settingsCascade {
- ...SettingsCascadeFragment
- }
- configurationCascade {
- ...ConfigurationCascadeFragment
- }
- settingsURL
- canReloadSite
- viewerCanAdminister
- accessTokens {
- ...AccessTokenConnectionFragment
- }
- authProviders {
- ...AuthProviderConnectionFragment
- }
- externalAccounts {
- ...ExternalAccountConnectionFragment
- }
- buildVersion
- productVersion
- updateCheck {
- ...UpdateCheckFragment
- }
- needsRepositoryConfiguration
- externalServicesFromFile
- allowEditExternalServicesWithFile
- freeUsersExceeded
- alerts {
- ...AlertFragment
- }
- hasCodeIntelligence
- sendsEmailVerificationEmails
- productSubscription {
- ...ProductSubscriptionStatusFragment
- }
- usageStatistics {
- ...SiteUsageStatisticsFragment
- }
- analytics {
- ...AnalyticsFragment
- }
- users {
- ...SiteUsersFragment
- }
- monitoringStatistics {
- ...MonitoringStatisticsFragment
- }
- allowSiteSettingsEdits
- enableLegacyExtensions
- upgradeReadiness {
- ...UpgradeReadinessFragment
- }
- }
-}
-```
-
-#### Response
-
-```
-{
- "data": {
- "site": {
- "id": 4,
- "siteID": "abc123",
- "configuration": SiteConfiguration,
- "latestSettings": Settings,
- "settingsCascade": SettingsCascade,
- "configurationCascade": ConfigurationCascade,
- "settingsURL": "abc123",
- "canReloadSite": true,
- "viewerCanAdminister": false,
- "accessTokens": AccessTokenConnection,
- "authProviders": AuthProviderConnection,
- "externalAccounts": ExternalAccountConnection,
- "buildVersion": "xyz789",
- "productVersion": "abc123",
- "updateCheck": UpdateCheck,
- "needsRepositoryConfiguration": true,
- "externalServicesFromFile": false,
- "allowEditExternalServicesWithFile": true,
- "freeUsersExceeded": true,
- "alerts": [Alert],
- "hasCodeIntelligence": false,
- "sendsEmailVerificationEmails": true,
- "productSubscription": ProductSubscriptionStatus,
- "usageStatistics": SiteUsageStatistics,
- "analytics": Analytics,
- "users": SiteUsers,
- "monitoringStatistics": MonitoringStatistics,
- "allowSiteSettingsEdits": true,
- "enableLegacyExtensions": false,
- "upgradeReadiness": UpgradeReadiness
- }
- }
-}
-```
-
-### slowRequests
-#### Description
-List slow GraphQL requests that were recently captured (requires site-admin permissions).
-
-#### Response
-Returns a `SlowRequestConnection`
-
-#### Arguments
-
-| Name | Description |
-| -------------- | -------------------------- |
-| after — String | Opaque pagnination cursor. |
-
-#### Example
-#### Query
-
-```
-query slowRequests($after: String) {
- slowRequests(after: $after) {
- nodes {
- ...SlowRequestFragment
- }
- totalCount
- pageInfo {
- ...PageInfoFragment
- }
- }
-}
-```
-
-#### Variables
-
-```
-{"after": "abc123"}
-```
-
-#### Response
-
-```
-{
- "data": {
- "slowRequests": {
- "nodes": [SlowRequest],
- "totalCount": 123,
- "pageInfo": PageInfo
- }
- }
-}
-```
-
-### statusMessages
-#### Description
-FOR INTERNAL USE ONLY: Lists all status messages
-
-#### Response
-Returns `StatusMessage`
-
-#### Example
-#### Query
-
-```
-query statusMessages {
- statusMessages {
- ... on GitUpdatesDisabled {
- ...GitUpdatesDisabledFragment
- }
- ... on CloningProgress {
- ...CloningProgressFragment
- }
- ... on ExternalServiceSyncError {
- ...ExternalServiceSyncErrorFragment
- }
- ... on SyncError {
- ...SyncErrorFragment
- }
- ... on IndexingProgress {
- ...IndexingProgressFragment
- }
- }
-}
-```
-
-#### Response
-
-```
-{"data": {"statusMessages": [GitUpdatesDisabled]}}
-```
-
-### surveyResponses
-#### Description
-Retrieve responses to surveys.
-
-#### Response
-Returns a `SurveyResponseConnection`
-
-#### Arguments
-
-| Name | Description |
-| ----------- | --------------------------------------------------- |
-| first — Int | Returns the first n survey responses from the list. |
-
-#### Example
-#### Query
-
-```
-query surveyResponses($first: Int) {
- surveyResponses(first: $first) {
- nodes {
- ...SurveyResponseFragment
- }
- totalCount
- last30DaysCount
- averageScore
- netPromoterScore
- }
-}
-```
-
-#### Variables
-
-```
-{"first": 123}
-```
-
-#### Response
-
-```
-{
- "data": {
- "surveyResponses": {
- "nodes": [SurveyResponse],
- "totalCount": 123,
- "last30DaysCount": 987,
- "averageScore": 987.65,
- "netPromoterScore": 123
- }
- }
-}
-```
-
-### team
-#### Description
-Get a single team by name. Returns null if not found.
-
-#### Response
-Returns a `Team`
-
-#### Arguments
-
-| Name | Description |
-| ------------- | ----------- |
-| name — String | |
-
-#### Example
-#### Query
-
-```
-query team($name: String!) {
- team(name: $name) {
- id
- name
- url
- displayName
- readonly
- members {
- ...TeamMemberConnectionFragment
- }
- parentTeam {
- ...TeamFragment
- }
- childTeams {
- ...TeamConnectionFragment
- }
- viewerCanAdminister
- }
-}
-```
-
-#### Variables
-
-```
-{"name": "xyz789"}
-```
-
-#### Response
-
-```
-{
- "data": {
- "team": {
- "id": "4",
- "name": "abc123",
- "url": "xyz789",
- "displayName": "abc123",
- "readonly": false,
- "members": TeamMemberConnection,
- "parentTeam": Team,
- "childTeams": TeamConnection,
- "viewerCanAdminister": false
- }
- }
-}
-```
-
-### teams
-#### Description
-Get the global list of all root teams. (Those without a parent team).
-
-#### Response
-Returns a `TeamConnection`
-
-#### Arguments
-
-| Name | Description |
-| ------ | ----------------------------------------------------------- |
-| first | Returns the first n teams from the list. |
-| | Type: Int |
-| after | Opaque pagination cursor. |
-| | Type: String |
-| search | Search can be used to do a text-search over the team names. |
-| | Type: String |
-
-#### Example
-#### Query
-
-```
-query teams(
- $first: Int,
- $after: String,
- $search: String
-) {
- teams(
- first: $first,
- after: $after,
- search: $search
- ) {
- totalCount
- pageInfo {
- ...PageInfoFragment
- }
- nodes {
- ...TeamFragment
- }
- }
-}
-```
-
-#### Variables
-
-```
-{
- "first": 123,
- "after": "abc123",
- "search": "abc123"
-}
-```
-
-#### Response
-
-```
-{
- "data": {
- "teams": {
- "totalCount": 123,
- "pageInfo": PageInfo,
- "nodes": [Team]
- }
- }
-}
-```
-
-### temporarySettings
-#### Description
-Retrieves the temporary settings for the current user.
-
-#### Response
-Returns a `TemporarySettings`
-
-#### Example
-#### Query
-
-```
-query temporarySettings {
- temporarySettings {
- contents
- }
-}
-```
-
-#### Response
-
-```
-{
- "data": {
- "temporarySettings": {
- "contents": "xyz789"
- }
- }
-}
-```
-
-### user
-#### Description
-Looks up a user by username or email address.
-
-#### Response
-Returns a `User`
-
-#### Arguments
-
-| Name | Description |
-| -------- | ----------------------------------------- |
-| username | Query the user by username. |
-| | Type: String |
-| email | Query the user by verified email address. |
-| | Type: String |
-
-#### Example
-#### Query
-
-```
-query user(
- $username: String,
- $email: String
-) {
- user(
- username: $username,
- email: $email
- ) {
- executorSecrets {
- ...ExecutorSecretConnectionFragment
- }
- id
- username
- email
- displayName
- avatarURL
- url
- settingsURL
- createdAt
- updatedAt
- siteAdmin
- builtinAuth
- latestSettings {
- ...SettingsFragment
- }
- settingsCascade {
- ...SettingsCascadeFragment
- }
- configurationCascade {
- ...ConfigurationCascadeFragment
- }
- organizations {
- ...OrgConnectionFragment
- }
- organizationMemberships {
- ...OrganizationMembershipConnectionFragment
- }
- tags
- tosAccepted
- searchable
- usageStatistics {
- ...UserUsageStatisticsFragment
- }
- eventLogs {
- ...EventLogsConnectionFragment
- }
- emails {
- ...UserEmailFragment
- }
- accessTokens {
- ...AccessTokenConnectionFragment
- }
- externalAccounts {
- ...ExternalAccountConnectionFragment
- }
- session {
- ...SessionFragment
- }
- viewerCanAdminister
- viewerCanChangeUsername
- surveyResponses {
- ...SurveyResponseFragment
- }
- databaseID
- namespaceName
- invitableCollaborators {
- ...PersonFragment
- }
- teams {
- ...TeamConnectionFragment
- }
- }
-}
-```
-
-#### Variables
-
-```
-{
- "username": "xyz789",
- "email": "xyz789"
-}
-```
-
-#### Response
-
-```
-{
- "data": {
- "user": {
- "executorSecrets": ExecutorSecretConnection,
- "id": 4,
- "username": "abc123",
- "email": "xyz789",
- "displayName": "abc123",
- "avatarURL": "abc123",
- "url": "abc123",
- "settingsURL": "xyz789",
- "createdAt": "2007-12-03T10:15:30Z",
- "updatedAt": "2007-12-03T10:15:30Z",
- "siteAdmin": false,
- "builtinAuth": false,
- "latestSettings": Settings,
- "settingsCascade": SettingsCascade,
- "configurationCascade": ConfigurationCascade,
- "organizations": OrgConnection,
- "organizationMemberships": OrganizationMembershipConnection,
- "tags": ["xyz789"],
- "tosAccepted": true,
- "searchable": false,
- "usageStatistics": UserUsageStatistics,
- "eventLogs": EventLogsConnection,
- "emails": [UserEmail],
- "accessTokens": AccessTokenConnection,
- "externalAccounts": ExternalAccountConnection,
- "session": Session,
- "viewerCanAdminister": true,
- "viewerCanChangeUsername": true,
- "surveyResponses": [SurveyResponse],
- "databaseID": 987,
- "namespaceName": "abc123",
- "invitableCollaborators": [Person],
- "teams": TeamConnection
- }
- }
-}
-```
-
-### users
-#### Description
-List all users.
-
-#### Response
-Returns a `UserConnection`!
-
-#### Arguments
-
-| Name | Description |
-| ------------- | ------------------------------------------------------------------- |
-| first | Returns the first n users from the list. |
-| | Type: Int |
-| after | Opaque pagination cursor. |
-| | Type: String |
-| query | Return users whose usernames or display names match the query. |
-| | Type: String |
-| tag | Return only users with the given tag. |
-| | Type: String |
-| activePeriod | Returns users who have been active in a given period of time. |
-| | Type: UserActivePeriod |
-| inactiveSince | Returns users who have NOT been active since a given point in time. |
-| | Type: DateTime |
-
-#### Example
-#### Query
-
-```
-query users(
- $first: Int,
- $after: String,
- $query: String,
- $tag: String,
- $activePeriod: UserActivePeriod,
- $inactiveSince: DateTime
-) {
- users(
- first: $first,
- after: $after,
- query: $query,
- tag: $tag,
- activePeriod: $activePeriod,
- inactiveSince: $inactiveSince
- ) {
- nodes {
- ...UserFragment
- }
- totalCount
- pageInfo {
- ...PageInfoFragment
- }
- }
-}
-```
-
-#### Variables
-
-```
-{
- "first": 987,
- "after": "abc123",
- "query": "xyz789",
- "tag": "xyz789",
- "activePeriod": "TODAY",
- "inactiveSince": "2007-12-03T10:15:30Z"
-}
-```
-
-#### Response
-
-```
-{
- "data": {
- "users": {
- "nodes": [User],
- "totalCount": 987,
- "pageInfo": PageInfo
- }
- }
-}
-```
-
-### viewerConfiguration
-use viewerSettings instead
-#### Description
-DEPRECATED
-
-#### Response
-Returns a `ConfigurationCascade`!
-
-#### Example
-#### Query
-
-```
-query viewerConfiguration {
- viewerConfiguration {
- subjects {
- ...SettingsSubjectFragment
- }
- merged {
- ...ConfigurationFragment
- }
- }
-}
-```
-
-#### Response
-
-```
-{
- "data": {
- "viewerConfiguration": {
- "subjects": [SettingsSubject],
- "merged": Configuration
- }
- }
-}
-```
-### viewerSettings
-#### Description
-The settings for the viewer. The viewer is either an anonymous visitor (in which case viewer settings is global settings) or an authenticated user (in which case viewer settings are the user's settings).
-
-#### Response
-Returns a `SettingsCascade`!
-
-#### Example
-#### Query
-
-```
-query viewerSettings {
- viewerSettings {
- subjects {
- ...SettingsSubjectFragment
- }
- final
- merged {
- ...ConfigurationFragment
- }
- }
-}
-```
-
-#### Response
-
-```
-{
- "data": {
- "viewerSettings": {
- "subjects": [SettingsSubject],
- "final": "xyz789",
- "merged": Configuration
- }
- }
-}
-```
-
-### webhookLogs
-### Description
-Returns recently received webhooks across all external services, optionally limiting the returned values to only those that didn't match any external service.
-
-Only site admins can access this field.
-
-### Response
-Returns a `WebhookLogConnection`
-
-#### Arguments
-
-| Name | Description |
-| ------------- | ----------------------------------------------------------------------- |
-| first | Returns the first n webhook logs. |
-| | Type: Int |
-| after | Opaque pagination cursor. |
-| | Type: String |
-| onlyErrors | Only include webhook logs that resulted in errors. |
-| | Type: Boolean |
-| onlyUnmatched | Only include webhook logs that were not matched to an external service. |
-| | Type: Boolean |
-| since | Only include webhook logs on or after this time. |
-| | Type: DateTime |
-| until | Only include webhook logs on or before this time. |
-| | Type: DateTime |
-| webhookID | Only include webhook logs of given webhook ID. |
-| | Type: ID |
-| legacyOnly | Only include webhook logs that have no webhook ID set. |
-| | Type: Boolean |
-
-#### Example
-#### Query
-
-```
-query webhookLogs(
- $first: Int,
- $after: String,
- $onlyErrors: Boolean,
- $onlyUnmatched: Boolean,
- $since: DateTime,
- $until: DateTime,
- $webhookID: ID,
- $legacyOnly: Boolean
-) {
- webhookLogs(
- first: $first,
- after: $after,
- onlyErrors: $onlyErrors,
- onlyUnmatched: $onlyUnmatched,
- since: $since,
- until: $until,
- webhookID: $webhookID,
- legacyOnly: $legacyOnly
- ) {
- nodes {
- ...WebhookLogFragment
- }
- totalCount
- pageInfo {
- ...PageInfoFragment
- }
- }
-}
-```
-
-#### Variables
-
-```
-{
- "first": 123,
- "after": "abc123",
- "onlyErrors": false,
- "onlyUnmatched": false,
- "since": "2007-12-03T10:15:30Z",
- "until": "2007-12-03T10:15:30Z",
- "webhookID": "4",
- "legacyOnly": true
-}
-```
-
-#### Response
-
-```
-{
- "data": {
- "webhookLogs": {
- "nodes": [WebhookLog],
- "totalCount": 123,
- "pageInfo": PageInfo
- }
- }
-}
-```
-
-### webhooks
-#### Description
-Lists webhooks. Only available to site admins. If no kind is given, it returns all webhooks. If first is omitted, 20 items are returned
-
-#### Response
-Returns a `WebhookConnection`
-
-#### Arguments
-
-| Name | Description |
-|--------|----------------------------------------------------------|
-| first | Returns the first n webhooks from the list. |
-| | Type: Int |
-| after | Opaque pagination cursor. |
-| | Type: String |
-| kind | Optionally filter by kind. |
-| | Type: ExternalServiceKind |
-
-#### Example
-#### Query
-
-```
-query webhooks(
- $first: Int,
- $after: String,
- $kind: ExternalServiceKind
-) {
- webhooks(
- first: $first,
- after: $after,
- kind: $kind
- ) {
- nodes {
- ...WebhookFragment
- }
- totalCount
- pageInfo {
- ...PageInfoFragment
- }
- }
-}
-```
-
-#### Variables
-
-```
-{
- "first": 123,
- "after": "abc123",
- "kind": "AWSCODECOMMIT"
-}
-```
-
-#### Response
-
-```
-{
- "data": {
- "webhooks": {
- "nodes": [Webhook],
- "totalCount": 987,
- "pageInfo": PageInfo
- }
- }
-}
-```
diff --git a/docs/api/graphql/index.mdx b/docs/api/graphql/index.mdx
index 97c688dca..89da31f8d 100644
--- a/docs/api/graphql/index.mdx
+++ b/docs/api/graphql/index.mdx
@@ -8,7 +8,7 @@ The Sourcegraph GraphQL API supports the following types of queries:
- Rich git-level metadata, including commits, branches, blame information, and file tree data
- Repository and user metadata
-The API is under active development. Backwards compatibility will be maintained in most cases, and backwards-incompatible changes will be documented in the [changelog](https://sourcegraph.com/github.com/sourcegraph/sourcegraph/-/blob/CHANGELOG).
+The API is under active development. Backwards compatibility will be maintained in most cases.
## Quickstart
diff --git a/docs/api/graphql/search.mdx b/docs/api/graphql/search.mdx
index 872713358..e97222832 100644
--- a/docs/api/graphql/search.mdx
+++ b/docs/api/graphql/search.mdx
@@ -20,3 +20,7 @@ src search -json 'repo:pallets/flask error'
```
You can then consume the JSON output directly, add `--get-curl` to get a `curl` execution line, and more. See [the `src` CLI tool](https://sourcegraph.com/github.com/sourcegraph/src-cli) for more details.
+
+## Incomplete search results when using Graphql
+
+Sometimes, users find discrepancies in the number of results returned on UI compared to Graphql for the same query. This can be avoided by adding ```"count:all" ``` to the query used in Graphql. This ensures all the matching records are being fetched via Graphql.
diff --git a/docs/api/stream_api/index.mdx b/docs/api/stream_api/index.mdx
index 0f772b5a6..f0ce46a92 100644
--- a/docs/api/stream_api/index.mdx
+++ b/docs/api/stream_api/index.mdx
@@ -1,7 +1,5 @@
# Sourcegraph Stream API
-The Stream API is still evolving. Although parts of it can be considered stable, we don't guarantee backward compatibility just yet. This means it is possible that fields are added, removed, or renamed. All backward incompatible changes to the event stream format will be documented in the [CHANGELOG](https://sourcegraph.com/github.com/sourcegraph/sourcegraph/-/blob/CHANGELOG).
-
With the Stream API you can consume search results and related metadata as
a stream of events. The Sourcegraph UI calls the Stream API for all interactive searches.
Compared to our [GraphQL API](/api/graphql/), it offers shorter times to first results and
@@ -9,6 +7,7 @@ supports running exhaustive searches returning a large volume of results without
putting pressure on the backend.
## Endpoint
+
`/.api/search/stream`
## Request
@@ -19,15 +18,25 @@ curl --header "Accept: text/event-stream" \
--get \
--url "/.api/search/stream" \
--data-urlencode "q=" \
- ["display="]
+ --data-urlencode "v=" \
+ --data-urlencode "t=" \
+ --data-urlencode "max-line-len=" \
+ --data-urlencode "cm=" \
+ --data-urlencode "display=" \
+ --data-urlencode "cl="
```
-| parameter | description |
-| --------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| access token | [Sourcegraph access token](https://docs.sourcegraph.com/cli/how-tos/creating_an_access_token) |
-| Sourcegraph URL | The URL of your Sourcegraph instance, or https://sourcegraph.com. |
-| query | A Sourcegraph query string, see our [search query syntax](/code-search/queries) |
-| display-limit | The maximum number of matches the backend returns. Defaults to -1 (no limit). If the backend finds more then display-limit results, it will keep searching and aggregating statistics, but the matches will not be returned anymore. Note that the display-limit is different from the query filter `count:` which causes the search to stop and return once we found `count:` matches. |
+| Parameter | Description |
+|---------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| access token | [Sourcegraph access token](/cli/how-tos/creating_an_access_token) |
+| Sourcegraph URL | The URL of your Sourcegraph instance, or https://sourcegraph.com. |
+| query | A Sourcegraph query string, see our [search query syntax](/code-search/queries) |
+| version (optional) | The version of the search query syntax. We recommend to explicitly set the version. The latest version is "V3". (Default: "V3") |
+| pattern type (optional) | Either "keyword", "standard", or "regexp". This pattern type is only used if the query doesn't already contain a `patternType:` filter. (Default: "standard") |
+| maximum line length (optional) | If set, will truncate the context field of `ChunkMatch` such that no line is longer than max-line-len. (Default: -1 (no limit)) |
+| enable chunk matches (optional) | Enables chunk matches. Must be parseable as boolean. (Default: false) |
+| display limit (optional) | The maximum number of matches the backend returns. If the backend finds more than display-limit results, it will keep searching and aggregating statistics, but the matches will not be returned anymore. Note that the display-limit is different from the query filter `count:` which causes the search to stop and return once we found `count:` matches. (Default: -1 (no limit)) |
+| context lines (optional) | The number of lines around a match that should be returned. Works only in conjunction with `cm=true`. Must be parseable as boolean. (Default: 1) |
See [Example](#example-curl).
@@ -52,8 +61,9 @@ data: {}
```
> NOTE:
-> Our format is a subset of the event stream format for [server-sent
-> events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#event_stream_format). However, we do not guarantee compatibility with any third-party clients written for server-sent events.
+> The search stream API follows the [server-sent
+> events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#event_stream_format) format. However, we do not guarantee compatibility
+> with any third-party clients written for server-sent events, and recommend using the src-cli tool or writing your own wrapper around the API.
### Event-types
@@ -67,8 +77,6 @@ Events can be of the following types:
| alert | info, warning and error messages |
| done | always the last event |
-Refer to the [interface definitions of our typescript client](https://sourcegraph.com/github.com/sourcegraph/sourcegraph/-/blob/client/shared/src/search/stream.ts?L12) to learn about the schema of the event-types.
-
## Example (curl)
On Sourcegraph.com we can run queries without authentication.
@@ -77,19 +85,27 @@ On Sourcegraph.com we can run queries without authentication.
$ curl --header "Accept: text/event-stream" \
--get \
--url "https://sourcegraph.com/.api/search/stream" \
- --data-urlencode "q=r:sourcegraph/sourcegraph doResults count:1"
+ --data-urlencode "q=r:sourcegraph/sourcegraph stream results patternType:keyword count:1" \
+ --data-urlencode "v=V3"
-event: matches
-data: [{"type":"content","path":"cmd/frontend/graphqlbackend/search_results_stats_languages.go","repositoryID":42693708,"repository":"gitlab.com/rluna-open-source/code-management/sourcegraph/sourcegraph-2020","repoLastFetched":"2021-11-19T21:54:27.009309Z","branches":[""],"commit":"0725aa021040f3c864bd5043caf965e7bc1e7a51","hunks":null,"lineMatches":[{"line":"\t\tresults, err := srs.sr.doResults(ctx, args, jobs)","lineNumber":44,"offsetAndLengths":[[25,9]]}]}]
+
+event: filters
+data: [{"value":"archived:yes","label":"Include archived repos","count":15,"exhaustive":false,"kind":"utility"}]
event: progress
-data: {"done":false,"matchCount":1,"durationMs":39,"skipped":[{"reason":"shard-match-limit","title":"result limit hit","message":"Not all results have been returned due to hitting a match limit. Sourcegraph has limits for the number of results returned from a line, document and repository.","severity":"info","suggested":{"title":"increase limit","queryExpression":"count:1000"}}]}
+data: {"done":false,"matchCount":0,"durationMs":206,"skipped":[{"reason":"excluded-archive","title":"15 archived","message":"By default we exclude archived repositories. Include them with `archived:yes` in your query.","severity":"info","suggested":{"title":"include archived","queryExpression":"archived:yes"}}],"trace":"https://sourcegraph.com/-/debug/jaeger/trace/b1be66f71a79e0dbeda6bb200dae8326"}
+
+event: filters
+data: [{"value":"archived:yes","label":"Include archived repos","count":15,"exhaustive":false,"kind":"utility"},{"value":"type:file","label":"Code","count":1,"exhaustive":false,"kind":"type"},{"value":"type:path","label":"Paths","count":1,"exhaustive":false,"kind":"type"},{"value":"lang:go","label":"Go","count":1,"exhaustive":false,"kind":"lang"},{"value":"repo:^github\\.com/sourcegraph/sourcegraph$","label":"github.com/sourcegraph/sourcegraph","count":1,"exhaustive":false,"kind":"repo"}]
+
+event: matches
+data: [{"type":"content","path":"cmd/frontend/graphqlbackend/search_results.go","pathMatches":[{"start":{"offset":35,"line":0,"column":35},"end":{"offset":42,"line":0,"column":42}}],"repositoryID":36809250,"repository":"github.com/sourcegraph/sourcegraph","repoStars":9918,"repoLastFetched":"2024-07-11T13:40:33.306273Z","branches":[""],"commit":"be0cd097f5f20d1444786ed7bb6c34cbad85c676","hunks":null,"lineMatches":[{"line":"// Results are the results found by the search. It respects the limits set. To","lineNumber":124,"offsetAndLengths":[[3,7]]}],"language":"Go"}]
event: filters
-data: [{"value":"lang:go","label":"lang:go","count":3,"limitHit":false,"kind":"lang"},{"value":"repo:^gitlab\\.com/rluna-open-source/code-management/sourcegraph/sourcegraph-2020$","label":"gitlab.com/rluna-open-source/code-management/sourcegraph/sourcegraph-2020","count":3,"limitHit":true,"kind":"repo"}]
+data: [{"value":"archived:yes","label":"Include archived repos","count":15,"exhaustive":false,"kind":"utility"},{"value":"type:file","label":"Code","count":1,"exhaustive":false,"kind":"type"},{"value":"type:path","label":"Paths","count":1,"exhaustive":false,"kind":"type"},{"value":"lang:go","label":"Go","count":1,"exhaustive":false,"kind":"lang"},{"value":"repo:^github\\.com/sourcegraph/sourcegraph$","label":"github.com/sourcegraph/sourcegraph","count":1,"exhaustive":false,"kind":"repo"}]
event: progress
-data: {"done":true,"repositoriesCount":1,"matchCount":1,"durationMs":39,"skipped":[{"reason":"shard-match-limit","title":"result limit hit","message":"Not all results have been returned due to hitting a match limit. Sourcegraph has limits for the number of results returned from a line, document and repository.","severity":"info","suggested":{"title":"increase limit","queryExpression":"count:1000"}}]}
+data: {"done":true,"repositoriesCount":1,"matchCount":1,"durationMs":359,"skipped":[{"reason":"shard-match-limit","title":"result limit hit","message":"Not all results have been returned due to hitting a match limit. Sourcegraph has limits for the number of results returned from a line, document and repository.","severity":"info","suggested":{"title":"increase limit","queryExpression":"count:1000"}},{"reason":"excluded-archive","title":"15 archived","message":"By default we exclude archived repositories. Include them with `archived:yes` in your query.","severity":"info","suggested":{"title":"include archived","queryExpression":"archived:yes"}}],"trace":"https://sourcegraph.com/-/debug/jaeger/trace/b1be66f71a79e0dbeda6bb200dae8326"}
event: done
data: {}
diff --git a/docs/batch_changes/references/batch_spec_cheat_sheet.mdx b/docs/batch-changes/batch-spec-cheat-sheet.mdx
similarity index 68%
rename from docs/batch_changes/references/batch_spec_cheat_sheet.mdx
rename to docs/batch-changes/batch-spec-cheat-sheet.mdx
index 7574e351f..fe51a721b 100644
--- a/docs/batch_changes/references/batch_spec_cheat_sheet.mdx
+++ b/docs/batch-changes/batch-spec-cheat-sheet.mdx
@@ -1,12 +1,12 @@
-# Batch spec cheat sheet
+# Batch Spec Cheatsheet
-## Overview
+This cheatsheet is a quick reference for common batch change use cases.
-There are some common patterns that we reuse all the time when writing [batch specs](/batch_changes/references/batch_spec_yaml_reference). In this document we collect these patterns to make it easy for others to copy and reuse them. See our own curated collection of [batch change examples](https://github.com/sourcegraph/batch-change-examples) for even more complete examples of batch specs.
+Some common patterns are reused every time when writing [batch specs](/batch-changes/batch-spec-yaml-reference). This documentation lists these patterns to make it easy for you to copy and reuse them. You can also refer to the [batch change examples repo](https://github.com/sourcegraph/batch-change-examples) for more consolidated examples of batch specs.
-Since most of the examples here make use of [batch spec templating](/batch_changes/references/batch_spec_templating), be sure to also take a look at that page.
+It's also recommended to see [batch spec templating](/batch-changes/batch-spec-templating) since most of these examples use templating.
-### Loop over search result paths in shell script
+## Loop over search result paths in shell script
```yaml
on:
@@ -14,14 +14,16 @@ on:
steps:
- run: |
- for file in "${{ join repository.search_result_paths " " }}";
+ IFS=$'\n'
+ files="${{ join repository.search_result_paths "\n" }}"
+ for file in $files;
do
- sed -i 's/OLD-VALUE/NEW-VALUE/g;' ${file}
+ sed -i 's/OLD-VALUE/NEW-VALUE/g;' "${file}"
done
container: alpine:3
```
-### Put search result paths in file and loop over them
+## Put search result paths in file and loop over them
```yaml
on:
@@ -29,16 +31,16 @@ on:
steps:
- run: |
- cat /tmp/search-results | while read file;
+ while IFS= read -r file || [ -n "$file" ]
do
sed -i 's/OLD-VALUE/NEW-VALUE/g;' "${file}"
- done
+ done < /tmp/search-results
container: alpine:3
files:
/tmp/search-results: ${{ join repository.search_result_paths "\n" }}
```
-### Use search result paths as arguments for single command
+## Use search result paths as arguments for single command
```yaml
on:
@@ -49,7 +51,7 @@ steps:
container: comby/comby
```
-### Format files modified by previous step
+## Format files modified by previous step
```yaml
steps:
@@ -59,7 +61,7 @@ steps:
container: unibeautify/goimports
```
-### Dynamically set branch name based on workspace
+## Dynamically set branch name based on workspace
```yaml
workspaces:
@@ -88,7 +90,7 @@ changesetTemplate:
${{ end }}
```
-### Process search result paths with script
+## Process search result paths with script
```yaml
steps:
@@ -107,7 +109,7 @@ steps:
puts YAML.dump(content)
```
-### Use separate file as config file for command
+## Use separate file as config file for command
```yaml
steps:
@@ -124,7 +126,7 @@ steps:
rewrite :[args] { ":[arg~[a-zA-Z0-9.()]+]" -> "\":[arg]\", :[arg]" }'
```
-### Publish only changesets on specific branches
+## Publish only changesets on specific branches
```yaml
changesetTemplate:
@@ -133,7 +135,7 @@ changesetTemplate:
- github.com/my-org/my-repo@my-branch-name: draft
```
-### Create new files in repository
+## Create new files in repository
```yaml
steps:
@@ -154,7 +156,7 @@ steps:
.dir-locals.el
```
-### Execute steps only in repositories matching name
+## Execute steps only in repositories matching name
```yaml
steps:
@@ -164,7 +166,7 @@ steps:
container: alpine:3
```
-### Execute steps based on output of previous command
+## Execute steps based on output of previous command
```yaml
steps:
@@ -179,7 +181,7 @@ steps:
if: ${{ outputs.goModExists }}
```
-### Write a GitHub Actions workflow that includes [GitHub expression syntax](https://docs.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions)
+## Write a GitHub Actions workflow that includes [GitHub expression syntax](https://docs.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions)
```yaml
steps:
@@ -210,13 +212,15 @@ steps:
EOF
```
-Since GitHub expression syntax conflicts with Sourcegraph's own template expression syntax, including the expression again as a quoted string within a template expression means that the inner expression will be output as a string (effectively, "ignoring" the contents of the inner expression). For `run:` fields specifically, to avoid the shell also interpreting the GitHub expression as a variable when executing the script, we need to escape the quoted `$` with two backslashes: firstly for the shell script itself, and secondly to escape the backslash within the template expression string.
+Since GitHub expression syntax conflicts with Sourcegraph's own template expression syntax, including the expression again as a quoted string within a template expression means that the inner expression will be output as a string (effectively, **ignoring** the contents of the inner expression).
-To use the literal sequence `${{ }}` in non-`run:` fields of the batch spec that [supports templating](/batch_changes/references/batch_spec_templating#fields-with-template-support), quoted strings are normally sufficient: `${{ "${{ leave me alone! }}" }}`
+For `run:` fields specifically, to avoid the shell also interpreting the GitHub expression as a variable when executing the script, you need to escape the quoted `$` with two backslashes: first for the shell script itself, and second to escape the backslash within the template expression string.
-### List what files were modified by the batch change in the changeset
+To use the literal sequence `${{ }}` in non-`run:` fields of the batch spec that [supports templating](/batch-changes/batch-spec-templating#fields-with-template-support), quoted strings are normally sufficient: `${{ "${{ leave me alone! }}" }}`
-```
+## List what files were modified by the batch change in the changeset
+
+```yaml
changesetTemplate:
title: A batch change
body: |
diff --git a/docs/batch_changes/references/batch_spec_templating.mdx b/docs/batch-changes/batch-spec-templating.mdx
similarity index 64%
rename from docs/batch_changes/references/batch_spec_templating.mdx
rename to docs/batch-changes/batch-spec-templating.mdx
index 39de18e62..d8f3c36cf 100644
--- a/docs/batch_changes/references/batch_spec_templating.mdx
+++ b/docs/batch-changes/batch-spec-templating.mdx
@@ -1,12 +1,10 @@
-# Batch spec templating
+# Batch Spec Templating
-## Overview
+Understand how to use templating to make your batch changes more powerful.
-[Certain fields](#fields-with-template-support) in a [batch spec YAML](/batch_changes/references/batch_spec_yaml_reference) support templating to create even more powerful and performant batch changes.
+[Certain fields](#fields-with-template-support) in a [batch spec YAML](/batch-changes/batch-spec-yaml-reference) support templating to create even more powerful and performant batch changes. Templating in a batch spec uses the delimiters `${{` and `}}`. Inside the delimiters, [template variables](#template-variables) and [template helper functions](#template-helpers-functions) may be used to produce a text value.
-Templating in a batch spec uses the delimiters `${{` and `}}`. Inside the delimiters, [template variables](#template-variables) and [template helper functions](#template-helpers-functions) may be used to produce a text value.
-
-### Example batch spec
+## Example batch spec with templating
Here is an excerpt of a batch spec that uses templating:
@@ -23,108 +21,102 @@ steps:
container: unibeautify/goimports
```
-Before executing the first `run` command, `repository.search_result_paths` will be replaced with the relative-to-root-dir file paths of each search result yielded by `repositoriesMatchingQuery`. By using the [template helper function](#template-helper-functions) `join`, an argument list of whitespace-separated values is constructed.
+Before executing the first `run` command, `repository.search_result_paths` will be replaced with the relative-to-root-dir file paths of each search result yielded by `repositoriesMatchingQuery`. Using the [template helper function](#template-helper-functions) `join`, an argument list of whitespace-separated values is constructed.
-The final `run` value, that will be executed, will look similar to this:
+The final `run` value that will be executed will look similar to this:
```yaml
run: comby -in-place 'fmt.Sprintf("%d", :[v])' 'strconv.Itoa(:[v])' cmd/src/main.go internal/fmt/fmt.go
```
-The result is that `comby` only search and replaces in those files, instead of having to search through the complete repository.
+The result is that `comby` only searches and replaces in those files instead of having to search through the complete repository.
-Before the second step is executed `previous_step.modified_files` will be replaced with the list of files that the previous `comby` step modified. It will look similar to this:
+Before the second step is executed, `previous_step.modified_files` will be replaced with the list of files that the previous `comby` step modified. It will look similar to this:
```yaml
run: goimports -w cmd/src/main.go internal/fmt/fmt.go
```
-See "[Examples](#examples)" for more examples of how to use and leverage templating in batch specs.
+See [Templating Examples](#templating-examples) for more examples of how to use and leverage templating in batch specs.
## Fields with template support
Templating is supported in the following fields:
-- [`steps.run`](/batch_changes/references/batch_spec_yaml_reference#steps-run)
-- [`steps.env`](/batch_changes/references/batch_spec_yaml_reference#steps-run) values
-- [`steps.files`](/batch_changes/references/batch_spec_yaml_reference#steps-run) values
-- [`steps.outputs..value`](/batch_changes/references/batch_spec_yaml_reference#steps-outputs)
-- [`steps.if`](/batch_changes/references/batch_spec_yaml_reference#steps-if)
-- [`changesetTemplate.title`](/batch_changes/references/batch_spec_yaml_reference#changesettemplate-title)
-- [`changesetTemplate.body`](/batch_changes/references/batch_spec_yaml_reference#changesettemplate-body)
-- [`changesetTemplate.branch`](/batch_changes/references/batch_spec_yaml_reference#changesettemplate-branch)
-- [`changesetTemplate.commit.message`](/batch_changes/references/batch_spec_yaml_reference#changesettemplate-commit-message)
-- [`changesetTemplate.commit.author.name`](/batch_changes/references/batch_spec_yaml_reference#changesettemplate-commit-author)
-- [`changesetTemplate.commit.author.email`](/batch_changes/references/batch_spec_yaml_reference#changesettemplate-commit-author)
+- [`steps.run`](/batch-changes/batch-spec-yaml-reference#stepsrun)
+- [`steps.env`](/batch-changes/batch-spec-yaml-reference#stepsenv) values
+- [`steps.files`](/batch-changes/batch-spec-yaml-reference#stepsfiles) values
+- [`steps.outputs..value`](/batch-changes/batch-spec-yaml-reference#stepsoutputsnamevalue)
+- [`steps.if`](/batch-changes/batch-spec-yaml-reference#stepsif)
+- [`changesetTemplate.title`](/batch-changes/batch-spec-yaml-reference#changesettemplatetitle)
+- [`changesetTemplate.body`](/batch-changes/batch-spec-yaml-reference#changesettemplatebody)
+- [`changesetTemplate.branch`](/batch-changes/batch-spec-yaml-reference#changesettemplatebranch)
+- [`changesetTemplate.commit.message`](/batch-changes/batch-spec-yaml-reference#changesettemplatecommitmessage)
+- [`changesetTemplate.commit.author.name`](/batch-changes/batch-spec-yaml-reference#changesettemplatecommitauthor)
+- [`changesetTemplate.commit.author.email`](/batch-changes/batch-spec-yaml-reference#changesettemplatecommitauthor)
## Template variables
-Template variables are the names that are defined and accessible when using templating syntax in a given context.
-
-Depending on the context in which templating is used, different variables are available.
+Template variables are the names that are defined and accessible when using templating syntax in a given context. Different variables are available depending on the context in which templating is used.
-For example: in the context of `steps` the template variable `previous_step` is available, but not in the context of `changesetTemplate`.
+For example, in the context of `steps`, the template variable `previous_step` is available, but not in the context of `changesetTemplate`.
### `steps` context
-The following template variables are available in the fields under `steps`.
-
-They are evaluated before the execution of each entry in `steps`, except for the `step.*` variables, which only contain values _after_ the step has executed.
-
-| Template variable | Type | Description |
-| -------------------------------- | ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `batch_change.name` | `string` | The `name` of the batch change, as set in the batch spec. |
-| `batch_change.description` | `string` | The `description` of the batch change, as set in the batch spec. |
-| `repository.search_result_paths` | `list of strings` | Unique list of file paths relative to the repository root directory in which the search results of the `on.repositoriesMatchingQuery`s have been found. Empty list if a `select:repo` filter is used in the `on.repositoriesMatchingQuery`, or if only `on.repository` entries are specified. |
-| `repository.branch` | `string` | The target branch of the repository in which the step is being executed. |
-| `repository.name` | `string` | Full name of the repository in which the step is being executed. Example: `org_foo/repo_bar`. |
-| `previous_step.modified_files` | `list of strings` | List of files that have been modified by the previous steps. Empty list if no files have been modified. |
-| `previous_step.added_files` | `list of strings` | List of files that have been added by the previous steps. Empty list if no files have been added. |
-| `previous_step.deleted_files` | `list of strings` | List of files that have been deleted by the previous steps. Empty list if no files have been deleted. |
-| `previous_step.stdout` | `string` | The complete output of the previous step on standard output. |
-| `previous_step.stderr` | `string` | The complete output of the previous step on standard error. |
-| `step.modified_files` | `list of strings` | Only in `steps.outputs`: List of files that have been modified by the just-executed step. Empty list if no files have been modified. |
-| `step.added_files` | `list of strings` | Only in `steps.outputs`: List of files that have been added by the just-executed step. Empty list if no files have been added. |
-| `step.deleted_files` | `list of strings` | Only in `steps.outputs`: List of files that have been deleted by the just-executed step. Empty list if no files have been deleted. |
-| `step.stdout` | `string` | Only in `steps.outputs`: The complete output of the just-executed step on standard output. |
-| `step.stderr` | `string` | Only in `steps.outputs`: The complete output of the just-executed step on standard error. |
-| `steps.modified_files` | `list of strings` | List of files that have been modified by the `steps`. Empty list if no files have been modified. |
-| `steps.added_files` | `list of strings` | List of files that have been added by the `steps`. Empty list if no files have been added. |
-| `steps.deleted_files` | `list of strings` | List of files that have been deleted by the `steps`. Empty list if no files have been deleted. |
-| `steps.path` | `string` | Path (relative to the root of the directory, no leading `/` or `.`) in which the `steps` have been executed. Empty if no workspaces have been used and the `steps` were executed in the root of the repository. |
+The following template variables are available in the fields under `steps`. They are evaluated before executing each entry in `steps`, except for the `step.*` variables, which only contain values **after** the step has executed.
+
+| **Template Variable** | **Type** | **Description** |
+| -------------------------------- | ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `batch_change.name` | `string` | The `name` of the batch change, as set in the batch spec |
+| `batch_change.description` | `string` | The `description` of the batch change, as set in the batch spec |
+| `repository.search_result_paths` | `list of strings` | Unique list of file paths relative to the repository root directory in which the search results of the `on.repositoriesMatchingQuery`s have been found. Empty list if a `select:repo` filter is used in the `on.repositoriesMatchingQuery`, or if only `on.repository` entries are specified |
+| `repository.branch` | `string` | The target branch of the repository in which the step is being executed |
+| `repository.name` | `string` | Full name of the repository in which the step is being executed. For example, `org_foo/repo_bar` |
+| `previous_step.modified_files` | `list of strings` | List of files that the previous steps have modified. Empty list if no files have been modified |
+| `previous_step.added_files` | `list of strings` | List of files that the previous steps have added. Empty list if no files have been added |
+| `previous_step.deleted_files` | `list of strings` | List of files that the previous steps have deleted. Empty list if no files have been deleted |
+| `previous_step.stdout` | `string` | The complete output of the previous step on standard output |
+| `previous_step.stderr` | `string` | The complete output of the previous step on standard error |
+| `step.modified_files` | `list of strings` | Only in `steps.outputs`: List of files that the just-executed step has modified. Empty list if no files have been modified |
+| `step.added_files` | `list of strings` | Only in `steps.outputs`: List of files that the just-executed step has added. Empty list if no files have been added |
+| `step.deleted_files` | `list of strings` | Only in `steps.outputs`: List of files that the just-executed step has deleted. Empty list if no files have been deleted |
+| `step.stdout` | `string` | Only in `steps.outputs`: The complete output of the just-executed step on standard output |
+| `step.stderr` | `string` | Only in `steps.outputs`: The complete output of the just-executed step on standard error |
+| `steps.modified_files` | `list of strings` | List of files modified by the `steps`. Empty list if no files have been modified |
+| `steps.added_files` | `list of strings` | List of files that have been added by the `steps`. Empty list if no files have been added |
+| `steps.deleted_files` | `list of strings` | List of files deleted by the `steps`. Empty list if no files have been deleted |
+| `steps.path` | `string` | Path (relative to the root of the directory, no leading `/` or `.`) in which the `steps` have been executed. Empty if no workspaces have been used and the `steps` were executed in the root of the repository |
### `changesetTemplate` context
-The following template variables are available in the fields under `changesetTemplate`.
-
-They are evaluated after the execution of all entries in `steps`.
-
-| Template variable | Type | Description |
-| -------------------------------- | ----------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
-| `batch_change.name` | `string` | The `name` of the batch change, as set in the batch spec. |
-| `batch_change.description` | `string` | The `description` of the batch change, as set in the batch spec. |
-| `repository.search_result_paths` | `list of strings` | Unique list of file paths relative to the repository root directory in which the search results of the `on.repositoriesMatchingQuery`s have been found. Empty list if a `select:repo` filter is used in the `on.repositoriesMatchingQuery`, or if only `on.repository` entries are specified. |
-| `repository.branch` | `string` | The target branch of the repository in which the step is being executed. |
-| `repository.name` | `string` | Full name of the repository in which the step is being executed. Example: `org_foo/repo_bar`. |
-| `steps.modified_files` | `list of strings` | List of files that have been modified by the `steps`. Empty list if no files have been modified. |
-| `steps.added_files` | `list of strings` | List of files that have been added by the `steps`. Empty list if no files have been added. |
-| `steps.deleted_files` | `list of strings` | List of files that have been deleted by the `steps`. Empty list if no files have been deleted. |
-| `steps.path` | `string` | Path (relative to the root of the directory, no leading `/` or `.`) in which the `steps` have been executed. Empty if no workspaces have been used and the `steps` were executed in the root of the repository. |
-| `outputs.` | depends on `outputs..format`, default: `string` | Value of an [`output`](/batch_changes/references/batch_spec_yaml_reference#steps-outputs) set by `steps`. If the [`outputs..format`](batch_spec_yaml_reference#steps-outputs-format) is `yaml` or `json` and the `value` a data structure (i.e. array, object, ...), then subfields can be accessed too. See "[Examples](#examples)" below. |
-| `batch_change_link` | `string` | Only available in `changesetTemplate.body` Link back to the batch change that produced the changeset on Sourcegraph. If omitted, the link will be automatically appended to the end of the body. Requires [Sourcegraph CLI](/cli/) 3.40.9 or later |
+The following template variables are available in the fields under `changesetTemplate`. They are evaluated after the execution of all entries in `steps`.
+
+| **Template Variable** | **Type** | **Description** |
+| -------------------------------- | ----------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `batch_change.name` | `string` | The `name` of the batch change, as set in the batch spec |
+| `batch_change.description` | `string` | The `description` of the batch change, as set in the batch spec |
+| `repository.search_result_paths` | `list of strings` | Unique list of file paths relative to the repository root directory in which the search results of the `on.repositoriesMatchingQuery`s have been found. Empty list if a `select:repo` filter is used in the `on.repositoriesMatchingQuery`, or if only `on.repository` entries are specified |
+| `repository.branch` | `string` | The target branch of the repository in which the step is being executed |
+| `repository.name` | `string` | Full name of the repository where the step is being executed. For example, `org_foo/repo_bar` |
+| `steps.modified_files` | `list of strings` | List of files that have been modified by the `steps`. Empty list if no files have been modified |
+| `steps.added_files` | `list of strings` | List of files that have been added by the `steps`. Empty list if no files have been added |
+| `steps.deleted_files` | `list of strings` | List of files deleted by the `steps`. Empty list if no files have been deleted |
+| `steps.path` | `string` | Path (relative to the root of the directory, no leading `/` or `.`) in which the `steps` have been executed. Empty if no workspaces have been used and the `steps` were executed in the root of the repository |
+| `outputs.` | depends on `outputs..format`, default: `string` | Value of an [`output`](batch-spec-yaml-reference#stepsoutputs) set by `steps`. If the [`outputs..format`](batch-spec-yaml-reference#stepsoutputsnameformat) is `yaml` or `json` and the `value` a data structure (i.e., array, object, ...), then subfields can be accessed too. See [Templating Examples](#templating-examples) below |
+| `batch_change_link` | `string` | Only available in `changesetTemplate.body` Link back to the batch change that produced the changeset on Sourcegraph. If omitted, the link will be automatically appended to the end of the body. Requires [Sourcegraph CLI](/cli/) 3.40.9 or later |
## Template helper functions
-- `${{ join repository.search_result_paths "\n" }}` - joins the list of strings given as first argument with the separator as last argument.
-- `${{ join_if "---" "a" "b" "" "d" }}` - uses the first argument as separator to join the remaining arguments, ignoring blank strings.
-- `${{ replace "a/b/c/d" "/" "-" }}` - replaces occurrences of second argument in the first one with the last one.
-- `${{ split repository.name "/" }}` - splits the first argument into a list of strings at each occurrence of the last argument.
-- `${{ matches repository.name "github.com/my-org/terra*" }}` - matches the first argument against the glob pattern in the second argument, returning true/false.
-- `${{ "${{ repository.name }}" }}` - outputs the inner expression as a literal string, for example, to [ignore the inner set of `${{ }}`](/batch_changes/references/faq#how-can-i-use-github-expression-syntax-literally-in-my-batch-spec)
+- `${{ join repository.search_result_paths "\n" }}` - Joins the list of strings given as the first argument with the separator as the last argument
+- `${{ join_if "---" "a" "b" "" "d" }}` - Uses the first argument as a separator to join the remaining arguments, ignoring blank strings
+- `${{ replace "a/b/c/d" "/" "-" }}` - Replaces occurrences of the second argument in the first one with the last one
+- `${{ split repository.name "/" }}` - Splits the first argument into a list of strings at each occurrence of the last argument
+- `${{ matches repository.name "github.com/my-org/terra*" }}` - Matches the first argument against the glob pattern in the second argument, returning true/false
+- `${{ "${{ repository.name }}" }}` - Outputs the inner expression as a literal string, for example, to [ignore the inner set of `${{ }}`](/batch-changes/faq#how-can-i-use-github-expression-syntax---literally-in-my-batch-spec)
The features of Go's [`text/template`](https://golang.org/pkg/text/template/) package are also available, including conditionals and loops, since it is the underlying templating engine.
-## Examples
+## Templating Examples
Pass the exact list of search result file paths to a command:
@@ -220,7 +212,7 @@ changesetTemplate:
The second step left this one: ${{ outputs.otherMessage }}
```
-Using the [`steps.outputs..format`](/batch_changes/references/batch_spec_yaml_reference#steps-outputs-name-format) field, it's possible to parse the value of an output as JSON or YAML and access it as a data structure instead of just text:
+Using the [`steps.outputs..format`](/batch-changes/batch-spec-yaml-reference#stepsoutputsnameformat) field, it's possible to parse the value of output as JSON or YAML and access it as a data structure instead of just text:
```yaml
steps:
@@ -252,7 +244,7 @@ changesetTemplate:
${{ end }}
```
-Using the [`steps.if`](/batch_changes/references/batch_spec_yaml_reference#steps-if) field to conditionally execute different steps in different repositories:
+Using the [`steps.if`](/batch-changes/batch-spec-yaml-reference#stepsif) field to conditionally execute different steps in different repositories:
```yaml
steps:
diff --git a/docs/versioned/5.2/batch_changes/references/batch_spec_yaml_reference.mdx b/docs/batch-changes/batch-spec-yaml-reference.mdx
similarity index 62%
rename from docs/versioned/5.2/batch_changes/references/batch_spec_yaml_reference.mdx
rename to docs/batch-changes/batch-spec-yaml-reference.mdx
index 65dd1a591..f3fb103d4 100644
--- a/docs/versioned/5.2/batch_changes/references/batch_spec_yaml_reference.mdx
+++ b/docs/batch-changes/batch-spec-yaml-reference.mdx
@@ -1,12 +1,34 @@
-# batch spec YAML reference
+# Batch Spec YAML Reference
-[Sourcegraph Batch Changes](/batch_changes/) use [batch specs](/batch_changes/explanations/introduction_to_batch_changes#batch-spec) to define batch changes.
+Sourcegraph Batch Changes use [batch specs](/batch-changes/create-a-batch-change#writing-a-batch-spec) to define batch changes. This page is a reference guide to the batch spec YAML format in which batch specs are defined.
-This page is a reference guide to the batch spec YAML format in which batch specs are defined. If you're new to YAML and want a short introduction, see "[Learn YAML in five minutes](https://learnxinyminutes.com/docs/yaml/)."
+## `version`
+
+The `version` of the batch spec. Defaults to 1 if not specified. New batch specs should use version 2.
+We recommend to always specify the version.
+
+### Version 1
+
+The schema version before Sourcegraph version 5.5.
+For now, if no version is specified, batch changes will use this schema version.
+It is recommended to switch to version 2.
+
+### Version 2 (recommended)
+
+Introduced in Sourcegraph version 5.5.
+Queries defined under [`on.repositoriesMatchingQuery`](#onrepositoriesmatchingquery) default to keyword search instead of standard search.
+Authors can override the default by specifying the pattern type explicitly.
+Refer to the [search syntax docs](/code-search/queries) for more information about pattern types.
+
+### Example
+
+```yaml
+version: 2
+```
## `name`
-The name of the batch change, which is unique among all batch changes in the namespace. A batch change's name is case-preserving.
+The `name` of the batch change, which is unique among all batch changes in the namespace. A batch change's name is case-preserving.
### Examples
@@ -20,7 +42,7 @@ name: update-node.js
## `description`
-The description of the batch change. It's rendered as Markdown.
+The `description` of the batch change. It's rendered as Markdown.
### Examples
@@ -41,23 +63,25 @@ description: |
## `on`
-The set of repositories (and branches) to run the batch change on, specified as a list of search queries (that match repositories) and/or specific repositories.
+The set of repositories (and branches) on which the batch change would run. It's specified as a list of search queries (that match repositories) and specific repositories.
### Examples
```yaml
on:
- - repositoriesMatchingQuery: lang:go fmt.Sprintf("%d", :[v]) patterntype:structural
+ - repositoriesMatchingQuery: lang:go fmt.Sprintf\("%d", \w+\) patterntype:regexp
- repository: github.com/sourcegraph/sourcegraph
```
## `on.repositoriesMatchingQuery`
-A Sourcegraph search query that matches a set of repositories (and branches). Each matched repository branch is added to the list of repositories that the batch change will be run on.
+A Sourcegraph search query that matches a set of repositories (and branches). Each matched repository branch is added to the list of repositories on which the batch change will run.
-Your search query should answer the question "where do I want to run this batch change?". Search result matches for things like commits, symbols, or file owners will be ignored.
+Your search query should answer the question, "Where do I want to run this batch change?". Search result matches for things like commits, symbols, or file owners will be ignored.
-See "[Code search](/code-search/)" for more information on Sourcegraph search queries.
+It's good practice to explicitly specify the pattern type. If you don't specify a pattern type, the default is determined by the [batch spec version](#version).
+
+See [Code Search Queries](/code-search/queries/) docs for more information.
### Examples
@@ -68,18 +92,18 @@ on:
```yaml
on:
- - repositoriesMatchingQuery: lang:typescript file:web const changesetStatsFragment
+ - repositoriesMatchingQuery: lang:typescript file:web \"const changesetStatsFragment\" patterntype:keyword
```
## `on.repository`
-A specific repository (and, optionally, one or more branches) to be added to the list of repositories that the batch change will be run on.
+A specific repository (and, optionally, one or more branches) that's added to the list of repositories on which the batch change will run.
-> NOTE: Before Sourcegraph 3.35, only the last named branch would be used if multiple branches were specified, and only a single `branch` could be provided. In Sourcegraph 3.35 and later versions, all branches are used.
+For Sourcegraph version 3.35 or less, if multiple branches are specified, then only the last-named branch will be used, and only a single `branch` could be provided. For Sourcegraph version 3.35 or more, all branches are used.
To match a branch other than the default, `branch` or `branches` can be used to specify one or multiple branches, respectively. Only one of `branch` or `branches` can be set.
-> WARNING: If multiple branches are matched for the same repository, then [`changesetTemplate.branch`](#changesettemplate-branch) will need to have a different value for each branch.
+If multiple branches are matched for the same repository, then [`changesetTemplate.branch`](#changesettemplate-branch) will need to have a different value for each branch.
### Examples
@@ -115,16 +139,15 @@ on:
- 3.23
```
-
## `steps`
-The sequence of commands to run (for each repository branch matched in the `on` property) to produce the batch change's changes.
+The sequence of commands to run (for each repository branch matched in the `on` property) to produce the batch change.
### Examples
```yaml
steps:
- - run: echo "Hello World!" >> README
+ - run: echo "Hello World!">> README
container: alpine:3
```
@@ -149,29 +172,25 @@ steps:
The shell command to run in the container. It can also be a multi-line shell script. The working directory is the root directory of the repository checkout.
-`steps.run` can include [template variables](batch_spec_templating).
+`steps.run` can include [template variables](/batch-changes/batch-spec-templating).
## `steps.container`
-The Docker image used to launch the Docker container in which the shell command is run.
-
-The image has to have either the `/bin/sh` or the `/bin/bash` shell.
+The Docker image used to launch the Docker container in which the shell command is run. The image has to have either the `/bin/sh` or the `/bin/bash` shell.
-It is executed using `docker` on the machine on which the [Sourcegraph CLI (`src`)](https://sourcegraph.com/github.com/sourcegraph/src-cli) is executed. If the image exists locally, that is used. Otherwise it's pulled using `docker pull`.
+It is executed using `docker` on the machine on which the [Sourcegraph CLI (`src`)](https://sourcegraph.com/github.com/sourcegraph/src-cli) is executed. If the image exists locally, that is used. Otherwise, it's pulled using `docker pull.`
## `steps.env`
-Environment variables to set in the environment when running this command.
+Environment variables to set in the environment when running this command. These may be defined either as an [object](#environment-object) or as an [array](#environment-array).
-These may be defined either as an [object](#environment-object) or as an [array](#environment-array).
-
-`steps.env` can include [template variables](batch_spec_templating).
+`steps.env` can include [template variables](/batch-changes/batch-spec-templating).
### Environment object
-In this case, `steps.env` is an object, where the key is the name of the environment variable and the value is the value.
+In this case, `steps.env` is an object, where the key is the environment variable's name and the value is the value.
-#### Examples
+### Examples
```yaml
steps:
@@ -185,11 +204,11 @@ steps:
In this case, `steps.env` is an array. Each array item is either:
-1. An object with a single property, in which case the key is used as the environment variable name and the value the value, or
-2. For src-cli execution: A string that defines an environment variable to include from the environment `src` is being run within. This is useful to define secrets that you don't want to include in the spec file, but this makes the spec dependent on your environment, means that the local execution cache will be invalidated each time the environment variable changes, and means that the batch spec file is no longer [the sole source of truth intended by the Batch Changes design](/batch_changes/explanations/batch_changes_design).
-3. For server-side execution: A string that defines a secret value to expose as an environment variable. Follow [the guide on executor secrets](/admin/executors/executor_secrets) to set them up. The editor will suggest available secrets. This is useful to use secret values that you don't want to include in the spec file. The execution cache will be invalidated each time the secret value changes, and means that the batch spec file is no longer [the sole source of truth intended by the Batch Changes design](/batch_changes/explanations/batch_changes_design).
+- An object with a single property, in which case the key is used as the environment variable name and the value the value, or
+- **For src-cli execution**: A string that defines an environment variable to include from the environment `src` is being run within. This is useful to define secrets that you don't want to include in the spec file, but this makes the spec dependent on your environment, which means that the local execution cache will be invalidated each time the environment variable changes, and means that the batch spec file is no longer [the sole source of truth intended by the Batch Changes design](/batch-changes/design)
+- **For server-side execution**: A string that defines a secret value to expose as an environment variable. Follow [the guide on executor secrets](/admin/executors/executor_secrets) to set them up. The editor will suggest available secrets. This is useful to use secret values you don't want to include in the spec file. The execution cache will be invalidated each time the secret value changes, and this means that the batch spec file is no longer [the sole source of truth intended by the Batch Changes design](/batch-changes/design)
-#### Examples
+### Examples
This example is functionally the same as the [object](#environment-object) example above:
@@ -201,7 +220,7 @@ steps:
- MESSAGE: Hello world!
```
-This example pulls in the `USER` environment variable, or for server-side uses the executor secret called `USER`, and uses it to construct the line that will be appended to `README`:
+This example pulls in the `USER` environment variable, or for server-side, uses the executor secret called `USER`, and uses it to construct the line that will be appended to `README`:
```yaml
steps:
@@ -216,11 +235,9 @@ For instance, if `USER` is set to `adam`, this would append `Hello world! from a
## `steps.files`
-Files to create on the host machine and mount into the container when running `steps.run`.
+Files to create on the host machine and mount into the container when running `steps.run`. `steps.files` is an object, where the key is the name of the file _inside the container_ and the value is the content of the file.
-`steps.files` is an object, where the key is the name of the file _inside the container_ and the value is the content of the file.
-
-`steps.files` can include [template variables](batch_spec_templating).
+`steps.files` can include [template variables](/batch-changes/batch-spec-templating).
### Examples
@@ -324,13 +341,13 @@ Possible values: `text`, `yaml`, `json`. Default is `text`.
## `steps.if`
-Condition to check before executing the step. If the value of the `if:` attribute is `true` (boolean) or `"true"` (string) then the step is executed in the given repository (or workspace, in case [workspaces](#workspaces) are used). Otherwise the step is skipped.
+Condition to check before executing the step. If the value of the `if:` attribute is `true` (boolean) or `"true``` (string), then the step is executed in the given repository (or workspace, in case [workspaces](#workspaces) are used). Otherwise, the step is skipped.
-As an optimization, the [Sourcegraph CLI](/cli/) tries to evaluate the condition _before_ starting to execute any `steps`. If the condition can be evaluated ahead of time and the result of the evaluation is false then the execution of the step won't be attempted for the repository, which leads to better cache utilization.
+As an optimization, the [Sourcegraph CLI](/cli/) tries to evaluate the condition _before_ starting to execute any `steps`. If the condition can be evaluated ahead of time and the result of the evaluation is false, then the execution of the step won't be attempted for the repository, which leads to better cache utilization.
-Ahead-of-time evaluation is possible if the condition contains only static data. Example: `if: ${{ eq repository.name "github.com/my-org/my-repo" }}`. The repository name is known before the execution of the steps, so evaluation succeeds and Sourcegraph CLI will not include the given step in the list of steps to execute for repositories that don't have the matching name. That in turn allows the modification of this step's `run` attribute, for example, without invalidating the cache for the repositories in which it's never executed.
+Ahead-of-time evaluation is possible if the condition contains only static data. Example: `if: ${{ eq repository.name "github.com/my-org/my-repo" }}`. The repository name is known before the execution of the steps, so evaluation succeeds. Sourcegraph CLI will not include the given step in the list of steps to execute for repositories that don't have the matching name. That, in turn, allows the modification of this step's `run` attribute, for example, without invalidating the cache for the repositories in which it's never executed.
-`steps.if` can include [templating](batch_spec_templating).
+`steps.if` can include [templating](/batch_spec_templating).
### Examples
@@ -354,7 +371,7 @@ steps:
steps:
# `if:` uses templating to check for repository name and produce a "true". Only runs in github.com/sourcegraph/automation-testing
- if: ${{ eq repository.name "github.com/sourcegraph/automation-testing" }}
- run: echo "hello from automation-testing" >> message.txt
+ run: echo "hello from automation-testing">> message.txt
container: alpine:3
```
@@ -362,7 +379,7 @@ steps:
steps:
# `if:` uses glob pattern to match repository name and produce "true" on match.
- if: ${{ matches repository.name "*sourcegraph-testing*" }}
- run: echo "name contains sourcegraph-testing" >> message.txt
+ run: echo "name contains sourcegraph-testing">> message.txt
container: alpine:3
```
@@ -384,25 +401,21 @@ steps:
```yaml
steps:
# `if:` checks for path, in case steps are executed in workspace.
- - if: ${{ eq steps.path "sub/directory/in/repo" }}
- run: echo "hello workspace" >> workspace.txt
+ - if: ${{ eq steps.path "sub/directory/in/repo"}}
+ run: echo "hello workspace">> workspace.txt
container: golang
```
## `steps.mount`
-`mount` is a new feature. Using `mount` locally is supported in Sourcegraph 3.41 and [Sourcegraph CLI 3.41](https://sourcegraph.com/github.com/sourcegraph/src-cli). Using `mount` in batch changes server-side is supported in Sourcegraph 4.1 and [Sourcegraph CLI 4.0.1](https://sourcegraph.com/github.com/sourcegraph/src-cli). It's a preview of functionality we're currently exploring to make running custom scripts/binaries easier. If you have any feedback, please let us know!
-
-> NOTE: This feature is currently only available for Sourcegraph CLI .
+This feature is available only for Sourcegraph CLI . Using `mount` locally is supported in Sourcegraph v3.41 and [Sourcegraph CLI 3.41](https://sourcegraph.com/github.com/sourcegraph/src-cli). Using `mount` in batch changes server-side is supported in Sourcegraph v4.1 and [Sourcegraph CLI 4.0.1](https://sourcegraph.com/github.com/sourcegraph/src-cli).
-Mounts a local path to a path in a Docker container. Mounted paths are accessible to the step's `run` command.
+`steps.mount` functionality makes running custom scripts/binaries easier. It mounts a local `path` to a `path` in a Docker container. Mounted paths are accessible to the step's `run` command.
-A `path` can point to a file or a directory. The `path` can be an absolute path or a relative path. Regardless if the
-path is absolute or relative, the path must be within the same directory as the batch spec that is being run (the batch
-spec directory is considered the "working directory"). If the batch spec is provided using standard input, the current
+A `path` can point to a file or a directory. The `path` can be **absolute** or **relative**. Regardless of the type, the path must be within the same directory as the batch spec being run (the batch spec directory is considered the **working directory**). If the batch spec is provided using standard input, the current
directory is used as the working directory.
-Individual files are restricted to a max size of 10MB. Do not include any sensitive information in files being uploaded.
+Individual files are restricted to a **max size of 10MB**. Do not include any sensitive information in the files being uploaded.
### Examples
@@ -468,13 +481,13 @@ The repository name as configured on your Sourcegraph instance.
## `importChangesets.externalIDs`
-The changesets to import from the code host. For GitHub this is the pull request number, for GitLab this is the merge request number, and for Bitbucket Server, Bitbucket Data Center, or Bitbucket Cloud this is the pull request number.
+The changesets to import from the code host. For GitHub, this is the pull request number; for GitLab, this is the merge request number; and for Bitbucket Server, Bitbucket Data Center, or Bitbucket Cloud, this is the pull request number.
## `changesetTemplate`
A template describing how to create (and update) changesets with the file changes produced by the command steps.
-This defines what the changesets on the code hosts (pull requests on GitHub, merge requests on Gitlab, ...) will look like.
+This defines what the changesets on the code hosts (pull requests on GitHub, merge requests on Gitlab, etc.) will look like.
### Examples
@@ -521,19 +534,19 @@ changesetTemplate:
The title of the changeset on the code host.
-`changesetTemplate.title` can include [template variables](batch_spec_templating).
+`changesetTemplate.title` can include [template variables](/batch-changes/batch-spec-templating).
## `changesetTemplate.body`
The body (description) of the changeset on the code host. If the code supports Markdown you can use it here.
-`changesetTemplate.body` can include [template variables](batch_spec_templating).
+`changesetTemplate.body` can include [template variables](/batch-changes/batch-spec-templating).
## `changesetTemplate.branch`
-The name of the Git branch to create or update on each repository with the changes.
+The name of the Git branch to create or update each repository with the changes.
-If multiple branches within the same repository are matched in [`on.repository`](#on-repository), then this value must be dynamic, since it is impossible to create multiple branches with the same name in the same repository. This is often most easily accomplished with the `repository.branch` template variable. For example, this will create `new-feature-3.34` and `new-feature-3.35` branches:
+If multiple branches within the same repository are matched in [`on.repository`](#on-repository), then this value must be dynamic since creating multiple branches with the same name in the same repository is impossible. This is often most easily accomplished with the `repository.branch` template variable. For example, this will create `new-feature-3.34` and `new-feature-3.35` branches:
```yaml
on:
@@ -546,23 +559,23 @@ changesetTemplate:
branch: new-feature-${{ repository.branch }}
```
-`changesetTemplate.branch` can include [template variables](batch_spec_templating).
+`changesetTemplate.branch` can include [template variables](/batch-changes/batch-spec-templating).
## `changesetTemplate.commit`
-The Git commit to create with the changes.
+The Git commit to create with the batch changes.
## `changesetTemplate.commit.message`
The Git commit message.
-`changesetTemplate.commit.message` can include [template variables](batch_spec_templating).
+`changesetTemplate.commit.message` can include [template variables](/batch-changes/batch-spec-templating).
## `changesetTemplate.commit.author`
The `name` and `email` of the Git commit author.
-`changesetTemplate.commit.author` can include [template variables](batch_spec_templating).
+`changesetTemplate.commit.author` can include [template variables](/batch-changes/batch-spec-templating).
### Examples
@@ -576,19 +589,19 @@ changesetTemplate:
## `changesetTemplate.published`
-Whether to publish the changesets as soon as the spec is applied. This may be a boolean value (ie `true` or `false`), `'draft'`, or [an array to only publish some changesets within the batch change](#publishing-only-specific-changesets). This may also be omitted, in which case the publication state will be controlled through the Sourcegraph UI, and will default to unpublished (that is, the same as specifying `false`).
+`changesetTemplate.published` tells whether to publish the changesets as soon as the spec is applied. This may be a boolean value (i.e., `true` or `false`), "draft", or [an array to only publish some changesets within the batch change](#publishing-only-specific-changesets). This may also be omitted, in which case the publication state will be controlled through the Sourcegraph UI and default to unpublished (the same as specifying `false`).
-An unpublished changeset can be previewed on Sourcegraph by any person who can view the batch change, but its commit, branch, and pull request aren't created on the code host.
+An unpublished changeset can be previewed on Sourcegraph by any user who can view the batch change, but its commit, branch, and pull requests aren't created on the code host.
-When `published` is set to `draft` a commit, branch, and pull request / merge request are being created on the code host **in draft mode**. This means:
+When `published` is set to `draft`, a commit, branch, and pull request/merge request are created on the code host **in draft mode**. This means:
- On GitHub the changeset will be a [draft pull request](https://docs.github.com/en/free-pro-team@latest/github/collaborating-with-issues-and-pull-requests/about-pull-requests#draft-pull-requests).
-- On GitLab the changeset will be a merge request whose title is be prefixed with `'WIP: '` to [flag it as a draft merge request](https://docs.gitlab.com/ee/user/project/merge_requests/work_in_progress_merge_requests.html#adding-the-draft-flag-to-a-merge-request).
-- On Bitbucket Server, Bitbucket Data Center, and Bitbucket Cloud draft pull requests are not supported and changesets published as `draft` won't be created.
+- On GitLab, the changeset will be a merge request whose title is prefixed with "WIP:" to [flag it as a draft merge request](https://docs.gitlab.com/ee/user/project/merge_requests/work_in_progress_merge_requests.html#adding-the-draft-flag-to-a-merge-request).
+- On Bitbucket Server, Bitbucket Data Center, and Bitbucket Cloud, draft pull requests are not supported, and changesets published as `draft` won't be created.
-> NOTE: Changesets that have already been published on a code host as a non-draft (`published: true`) cannot be converted into drafts. Changesets can only go from unpublished to draft to published, but not from published to draft. That also allows you to take it out of draft mode on your code host, without risking Sourcegraph to revert to draft mode.
+Changesets that have already been published on a code host as a non-draft (`published: true`) cannot be converted to drafts. Changesets can only go from **unpublished** to **draft** to **published**, but not from **published** to **draft**. That also allows you to take it out of draft mode on your code host without risking Sourcegraph to revert to draft mode.
-A published changeset results in a commit, branch, and pull request being created on the code host.
+A published changeset creates a commit, branch, and pull request on the code host.
### Publishing only specific changesets
@@ -603,7 +616,7 @@ published:
Each key will be matched against the repository name using [glob](https://godoc.org/github.com/gobwas/glob#Compile) syntax. The [gobwas/glob library](https://godoc.org/github.com/gobwas/glob#Compile) is used for matching, with the key operators being:
-| Term | Meaning |
+| **Term** | **Meaning** |
| ----------- | -------------------------------------------------- |
| `*` | Match any sequence of characters |
| `?` | Match any single character |
@@ -611,7 +624,7 @@ Each key will be matched against the repository name using [glob](https://godoc.
| `[a-z]` | Match any character between `a` and `z`, inclusive |
| `{abc,def}` | Match either `abc` or `def` |
-If multiple entries match a repository, then the last entry will be used. For example, `github.com/a/b` will _not_ be published given this configuration:
+If multiple entries match a repository, the last entry will be used. For example, `github.com/a/b` will **not** be published given this configuration:
```yaml
published:
@@ -627,7 +640,7 @@ published:
- github.com/*: false
```
-> NOTE: The standalone `"*"` is quoted in the key to avoid ambiguity in the YAML document.
+The standalone `"*``` is quoted in the key to avoid ambiguity in the YAML document.
By adding a `@` at the end of a match-rule, the rule is only matched against changesets with that branch:
@@ -689,19 +702,19 @@ changesetTemplate:
- github.com/sourcegraph/*@my-branch-name-2: false
```
-(Multiple changesets in a single repository can be produced, for example, [per project in a monorepo](/batch_changes/how-tos/creating_changesets_per_project_in_monorepos) or by [transforming large changes into multiple changesets](/batch_changes/how-tos/creating_multiple_changesets_in_large_repositories)).
+(Multiple changesets in a single repository can be produced, for example, [per project in a monorepo](/batch-changes/creating-changesets-per-project-in-monorepos) or by [transforming large changes into multiple changesets](/batch-changes/creating-multiple-changesets-in-large-repositories)).
## `changesetTemplate.fork`
It is supported on Sourcegraph versions 5.1 or more.
-Whether or not each changeset should be created on a fork of the upstream repository in the namespace of the user publishing them (or the namespace of the service account if [global credentials](/batch_changes/how-tos/configuring_credentials#global-service-account-tokens) are used).
+Whether or not each changeset should be created on a fork of the upstream repository in the namespace of the user publishing them (or the namespace of the service account if [global credentials](/batch-changes/configuring-credentials#global-service-account-tokens) are used).
-If the site config setting [`batchChanges.enforceForks`](/admin/config/batch_changes#forks) is enabled, this value will override the setting. For example, explicitly setting `fork: false` when the site config setting is enabled will result in changesets being published directly to the target repos. If omitted, the site config setting will be used.
+This value will override the setting if the site config setting [`batchChanges.enforceForks`](/admin/config/batch_changes#forks) is enabled. For example, explicitly setting `fork: false` when the site config setting is enabled will publish changesets directly to the target repos. If omitted, the site config setting will be used.
-The name of the fork Sourcegraph creates will be prefixed with the name of the original repo's namespace in order to prevent potential repo name collisions. For example, a batch spec targeting `github.com/my-org/project` would create or use any existing fork by the name `github.com/user/my-org-project`.
+The name of the fork Sourcegraph creates will be prefixed with the name of the original repo's namespace to prevent potential repo name collisions. For example, a batch spec targeting `github.com/my-org/project` would create or use any existing fork named `github.com/user/my-org-project`.
-> NOTE: If your code host does not support forking (e.g. Gerrit), trying to publish a changeset with `fork: true` will result in an error.
+If your code host does not support forking (e.g., Gerrit), trying to publish a changeset with `fork: true` will result in an error.
### Examples
@@ -741,7 +754,6 @@ transformChanges:
repository: github.com/sourcegraph/src-cli # optional: only apply the rule in this repository
```
-
```yaml
transformChanges:
group:
@@ -756,35 +768,31 @@ transformChanges:
## `transformChanges.group`
-A list of groups to define which file diffs to group together to create an additional changeset in the given repository.
+A list of groups to define which file diffs to group together to create an additional changeset in the given repository. The **order of the list matters**, since each file diff's `filepath` is matched against the `directory` of a group, and the **last match** is used.
-The **order of the list matters**, since each file diff's filepath is matched against the `directory` of a group and the **last match** is used.
-
-If no changes have been produced in a `directory` then no changeset will be created.
+If no changes have been produced in a `directory`, no changeset will be created.
## `transformChanges.group.directory`
-The name of the directory in which file diffs should be grouped together.
-
-The name is relative to the root of the repository.
+The name of the directory in which file diffs should be grouped together. The name is relative to the root of the repository.
## `transformChanges.group.branch`
The branch that should be used for this additional changeset. This **overwrites the [`changesetTemplate.branch`](#changesettemplate-branch)** when creating the additional changeset.
-**Important**: the branch can _not_ be nested under the [`changesetTemplate.branch`](#changesettemplate-branch), i.e. if the `changesetTemplate.branch` is `my-batch-change` then this can _not_ be `my-batch-change/my-subdirectory` since [git doesn't allow that](https://stackoverflow.com/a/22630664). Additionally branch names must be unique and cannot be used as arguments for multiple `directory` fields.
+The branch cannot be nested under the [`changesetTemplate.branch`](#changesettemplate-branch), i.e. if the `changesetTemplate.branch` is `my-batch-change` then this can _not_ be `my-batch-change/my-subdirectory` since [git doesn't allow that](https://stackoverflow.com/a/22630664). Additionally, branch names must be unique and cannot be used as arguments for multiple `directory` fields.
## `transformChanges.group.repository`
-Optional: the file diffs matching the given directory will only be grouped in a repository with that name, as configured on your Sourcegraph instance.
+(Optional) The file diffs matching the given directory will only be grouped in a repository with that name, as configured on your Sourcegraph instance.
## `workspaces`
-The optional `workspaces` property allows users to define where projects are located in repositories and cause the [`steps`](#steps) to be executed for each project, instead of once per repository. That allows easier creation of multiple changesets in large repositories.
+The optional `workspaces` property allows users to define where projects are located in repositories and cause the [`steps`](#steps) to be executed for each project instead of once per repository. That allows easier creation of multiple changesets in large repositories.
-For each repository that's yielded by [`on`](#on), Sourcegraph search is used to get the locations of the `rootAtLocationOf` file. Each location then serves as a workspace for the execution of the `steps`, instead of the root of the repository. Use the [`workspaces.in`](#workspaces-in) property to scope the workspaces definitions. Omitting it is treated as `*`.
+For each repository yielded by [`on`](#on), a Sourcegraph search is used to get the locations of the `rootAtLocationOf` file. Each location serves as a workspace for executing the `steps` instead of the repository's root. Use the [`workspaces.in`](#workspaces-in) property to scope the definitions of workspaces. Omitting it is treated as `*`.
-**Important**: Since multiple workspaces in the same repository can produce multiple changesets, it's **required** to use templating to produce a unique [`changesetTemplate.branch`](#changesettemplate-branch) for each produced changeset. See the [examples](#workspaces-examples) below.
+Since multiple workspaces in the same repository can produce multiple changesets, it's **required** to use templating to produce a unique [`changesetTemplate.branch`](#changesettemplate-branch) for each produced changeset. See the [examples](#workspaces-examples) below.
### Examples
@@ -806,10 +814,10 @@ changesetTemplate:
# We can use templating and helper functions get the `path` in which
# the `steps` executed and turn that into a branch name:
- branch: my-multi-workspace-batch-change-${{ replace steps.path "/" "-" }}
+ branch: my-multi-workspace-batch-change-${{ replace steps.path "/" "-"}}
```
-Using templating to produce a unique branch name in repositories _with_ workspaces and repositories without workspaces:
+Using templating to produce a unique branch name in repositories with workspaces and repositories without workspaces:
```yaml
on:
@@ -824,7 +832,7 @@ changesetTemplate:
# [...]
# Since the steps in `github.com/sourcegraph/src-cli` are executed in the
- # root, where path is "", we can use `join_if` to drop it from the branch name
+ # root, where path is"", we can use `join_if` to drop it from the branch name
# if it's a blank string:
branch: ${{ join_if "-" "my-multi-workspace-batch-change" (replace steps.path "/" "-") }}
```
@@ -910,9 +918,7 @@ changesetTemplate:
## `workspaces.rootAtLocationOf`
-The full name of the file that sits at the root of one or more workspaces in a given repository.
-
-Sourcegraph code search is used to find the location of files with this name in the repositories returned by [`on`](#on).
+The full name of the file that sits at the root of one or more workspaces in a given repository. Sourcegraph [Code Search](/code-search) is used to find the location of files with this name in the repositories returned by [`on`](#on).
For example, in a repository with the following files:
@@ -927,13 +933,11 @@ workspaces:
in: "*"
```
-would create _two changesets_ in the repository, one in `packages/sourcegraph-ui` and one in `packages/sourcegraph-test-helper`.
+Would create **two changesets** in the repository, one in `packages/sourcegraph-ui` and one in `packages/sourcegraph-test-helper`.
## `workspaces.in`
-The repositories in which the workspace should be discovered.
-
-This field supports **globbing** by using [glob](https://godoc.org/github.com/gobwas/glob#Compile) syntax. See "[Publishing only specific changesets](#publishing-only-specific-changesets)" for more information on globbing.
+The repositories in which the workspace should be discovered. This field supports **globbing** by using [glob](https://godoc.org/github.com/gobwas/glob#Compile) syntax. See "[Publishing only specific changesets](#publishing-only-specific-changesets)" for more information on globbing.
A repository matching multiple entries results in an error.
@@ -957,13 +961,9 @@ workspaces:
## `workspaces.onlyFetchWorkspace`
-When set to `true`, only the folder containing the workspace is downloaded to execute the `steps`.
-
-This field is not required and when not set the default is `false`.
-
-Additional files — `.gitignore` and `.gitattributes` as of now — are downloaded from the location of the workspace up to the root of the repository.
+When set to `true`, only the folder containing the workspace is downloaded to execute the `steps`. This field is not required; when not set, the default is `false`.
-For example, with the following file layout in a repository
+Additional files — `.gitignore` and `.gitattributes` — are downloaded from the workspace location up to the repository's root. For example, with the following file layout in a repository
```
.
@@ -994,7 +994,7 @@ then
- the `steps` will be executed in `b`
- the complete contents of `b` will be downloaded and are available to the steps
-- the `.gitattributes` and `.gitignore` files in `a` will be downloaded and put in `a`, **but only those**
+- the `.gitattributes` and `.gitignore` files in `a' will be downloaded and put in `a', **but only those**
- the `.gitignore` files in the root will be downloaded and put in the root folder, **but only that file**
### Examples
diff --git a/docs/batch-changes/bulk-operations-on-changesets.mdx b/docs/batch-changes/bulk-operations-on-changesets.mdx
new file mode 100644
index 000000000..a2b48cc43
--- /dev/null
+++ b/docs/batch-changes/bulk-operations-on-changesets.mdx
@@ -0,0 +1,46 @@
+# Bulk Operations on Changesets
+
+These docs explain how to perform bulk operations on changesets.
+
+Bulk operations allow a single action to be performed across many changesets in a batch change.
+
+## Selecting changesets for a bulk operation
+
+To perform a bulk operation on changesets,
+
+- Click the checkbox next to a changeset in the list view. You can select all changesets you have permission to view
+
+
+
+- If you like, select all changesets in the list by using the checkbox in the list header. To select **all** changesets that meet the filters and search currently set, click the **(Select XX changesets)** link in the header toolbar
+
+
+
+- Next, from the top right, select the action to perform on all the changesets
+
+
+
+- Once changesets are selected, a query is made to determine the bulk operations that can be applied to the selected changesets
+
+## Supported types of bulk operations
+
+Depending on the changesets selected, different types of bulk operations can be applied to the selected changesets. For a bulk operation to be available, it has to be applicable to all the selected changesets.
+
+Below is a list of supported bulk operations for changesets and the conditions with which they're applicable:
+
+| **Types** | **Description** |
+| ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| **Commenting** | Post a comment on all selected changesets. Useful for pinging people, reminding them to take a look at the changeset, or posting your favorite emoji |
+| **Detach** | Detach a selection of changesets from the batch change to remove them from the archived tab |
+| **Re-enqueue** | Re-enqueues the pending changes for all selected changesets that failed |
+| **Merge (experimental)** | Merge the selected changesets on code hosts. Some changesets may be unmergeable due to their states, which does not impact the overall bulk operation. Failed merges are listed under the bulk operations tab. In the confirmation modal, you can opt for a squash merge strategy, available on GitHub, GitLab, and Bitbucket Cloud. For Bitbucket Server/Data Center, only regular merges are performed |
+| **Close** | Close the selected changesets on the code hosts |
+| **Publish** | Publishes the selected changesets, provided they don't have a [`published` field](/batch-changes/batch-spec-yaml-reference#changesettemplatepublished) in the batch spec. You can choose between draft and normal changesets in the confirmation modal |
+| **Export** | Export selected changesets that you can use for later use |
+| **Re-execute** | Users can re-execute individual changeset creation logic for selected workspaces. This allows for creating new changesets for users who are using non-deterministic run steps (for example,LLMs) |
+
+## Monitoring bulk operations
+
+On the **Bulk operations** tab, you can view all bulk operations that have been run over the batch change. Some bulk operations can involve quite some operations to perform, you can track the progress, and see what operations have been performed in the past.
+
+
diff --git a/docs/batch-changes/configuring-credentials.mdx b/docs/batch-changes/configuring-credentials.mdx
new file mode 100644
index 000000000..52ec0cd95
--- /dev/null
+++ b/docs/batch-changes/configuring-credentials.mdx
@@ -0,0 +1,299 @@
+# Configuring Credentials
+
+Learn how to configure access tokens for code hosts when creating changesets.
+
+Interacting with a code host (such as creating, updating, or syncing changesets) is made possible by configuring credentials for that code host. Sourcegraph uses these credentials to manage changesets on your behalf and with your specific permissions.
+
+## Requirements
+
+- Sourcegraph instance with repositories in it. Read more in the [Quickstart](/batch-changes/quickstart) guide on how to set up a Sourcegraph instance.
+- Account on the code host with access to the repositories you wish to target with your batch changes.
+
+## Types of credentials used by Batch Changes
+
+Batch Changes can use access tokens for all code hosts, and [GitHub apps (experimental)](#github-apps) for GitHub code hosts.
+
+Two types of credentials can be configured to use with Batch Changes:
+
+1. **User Credential** - A credential set by an individual Batch Changes user for their personal code host user account.
+2. **Global Service Credential** (Configurable by admins only) - A credential that can be used by any Batch Changes user who does not have a personal credential configured. These are also required for [importing changesets](/batch-changes/tracking-existing-changesets) and syncing changeset state from the code host when webhooks are not configured. Although currently importing changesets is not supported without a global credential, if you’re concerned about individual user permissions, using a global credential is not recommended.
+
+Different credentials are used for different types of operations, as shown in the table below.
+
+- 🟢 **Preferred**: Sourcegraph will prefer to use this credential for this operation if it is configured.
+- 🟡 **Fallback**: Sourcegraph will fall back to use this credential for this operation if it is configured.
+- 🔴 **Unsupported**: Sourcegraph cannot use this credential for this operation.
+
+| **Operation** | **User Credential** | **Global Service Credential** |
+| ---------------------------------------------------------------------------- | :----------------------------------------------: | :------------------------------------------------------------: |
+| Pushing a branch with the changes | 🟢 | 🟡 |
+| Publishing a changeset | 🟢 | 🟡 |
+| Updating a changeset | 🟢 | 🟡 |
+| Closing a changeset | 🟢 | 🟡 |
+| Importing a changeset | 🔴 | 🟢 |
+| Syncing a changeset | 🔴 | 🟢 |
+
+When creating a changeset on a code host, the author of the changeset will reflect the credential used (e.g., on GitHub, the user will be the pull request author). This is why a user credential is preferred for most operations.
+
+## Personal access tokens
+
+Personal access tokens are not strictly required if a global access token has also been configured, but users should add one if they want Sourcegraph to create changesets under their name.
+
+Commit author is determined by your spec file or local `git config` at the time of running `src batch [apply|preview]`, completely independent from code host credentials.
+
+### Adding personal access token
+
+Adding a personal access token is done through the Batch Changes section of your user settings:
+
+- From any Sourcegraph page, click on your avatar at the top right of the page
+- Select **Settings** from the dropdown menu
+- Click **Batch Changes** on the sidebar menu
+- Click **Add credentials**, and follow the steps to [create a new token](#creating-a-code-host-token) for the code host. If the code host is GitHub, select **Personal Access Token** as the **Authentication strategy**.
+
+
+
+
+
+Code hosts with tokens configured are indicated by a green tick to the left of the code host name, while code hosts without credentials have an empty red circle next to them.
+
+### Removing a personal access token
+
+To remove a token, navigate back to the same section of your user settings, then click **Remove**:
+
+
+
+
+
+Once the token is removed, the code host's indicator should revert to the empty red circle.
+
+## Global service account tokens
+
+Global credentials are usable by all users of the Sourcegraph instance who have not added their own personal access tokens for Batch Changes. This makes them a handy fallback but optional if users are adding their own tokens for publishing changesets.
+
+However, a global service account token is currently required for [importing existing changesets](/batch-changes/tracking-existing-changesets) on your code hosts into batch changes.
+
+Additionally, if you have not [configured webhooks](/admin/config/batch_changes#incoming-webhooks) from your code host, Sourcegraph requires a global service account to keep changesets up to date.
+
+If [forks are enabled](/admin/config/batch_changes#forks), then note that repositories will also be forked into the service account.
+
+### Adding a global service token
+
+Adding a global service account token is done through the Batch Changes section of the site admin area:
+
+- From any Sourcegraph page, click on your avatar at the top right of the page
+- Select **Site admin** from the dropdown menu
+- Click **Settings** under the **Batch Changes** sub-heading on the sidebar menu
+- Click **Add credentials** and follow the steps to [create a new token](#creating-a-code-host-token) for the code host. If the code host is GitHub, select **Personal Access Token** as the **Authentication strategy**.
+
+Code hosts with tokens configured are indicated by a green tick to the left of the code host name, while code hosts without credentials have an empty red circle next to them.
+
+### Removing a global service token
+
+To remove a token, navigate to the same section of the site admin area, then click **Remove**. Once the token is removed, the code host's indicator should revert to the empty red circle.
+
+## Creating a code host token
+
+To finish configuring the new credentials, you will need to create a new personal access token on your code host and paste it into the input field on the **Add credentials** modal.
+
+
+
+Let's learn how you can do it for different code hosts.
+
+### GitHub
+
+On GitHub.com, create a personal access token or fine-grained access token with the correct scopes.
+
+The `workflow` scope is technically only required if your batch changes modify files in the `.github` directory of a repository. Still, it's recommended to enable it regardless to avoid confusing errors at a later time.
+
+When working with organizations that have SAML SSO (Single Sign On) enabled, configuring credentials requires an additional step that [involves white-listing the token for use in that organization](https://docs.github.com/en/enterprise-cloud@latest/authentication/authenticating-with-saml-single-sign-on/authorizing-a-personal-access-token-for-use-with-saml-single-sign-on).
+
+Currently, classic and fine-grained access tokens are supported only. Alternative token types like OAuth access tokens (for example, OAuth apps) are not supported.
+
+#### Personal Access Token
+
+Personal access tokens will have access to all repositories you have access to.
+
+[Click here to prefill the form](https://github.com/settings/tokens/new?scopes=repo,read:org,user:email,read:discussion,workflow).
+
+Required Scopes:
+
+- `repo`
+- `read:org`
+- `user:email`
+- `read:discussion`
+- `workflow`
+
+#### Fine-Grained Access Token
+
+Fine-grained access tokens allow more granular control of what actions can be performed for a given set of repositories. Most notably, fine-grained access tokens don't grant access by default to all repositories you have access to.
+
+In contrast to personal access tokens, fine-grained access tokens for organization resources may be restricted, may have an expiration, and may require approval.
+
+- **Restriction**: If an administrator of your GitHub organization has restricted access via fine-grained access tokens, you may not be able to use them for Batch Changes
+- **Expiration**: If your organization has configured fine-grained access tokens to have maximum lifetimes, you may need to recreate the token when it has expired
+- **Approval**: If your organization has configured fine-grained access tokens to require approval, you may need to wait for an administrator to approve the token before you can use it with Batch Changes
+
+Start by navigating to create a [new fine-grained access token](https://github.com/settings/personal-access-tokens/new).
+
+Pick the resource owner that owns the repositories you want to use with Batch Changes. This will likely be your company's GitHub organization.
+
+
+
+Scroll down and select "All repositories" so that your token can access all current and future repositories that you have access to. You may restrict it to "Only select repositories", but you may have to generate a new token when you want to handle a new repository with Batch Changes.
+
+
+
+Under "Permissions," click on the arrows on the right-hand side to expand the list of repository and organization permissions.
+
+
+
+Under "Repository permissions", select the following permissions:
+
+- Contents: Read and write
+- Metadata: Read-only
+- Pull requests: Read and write
+- Workflows: Read and write
+
+Under "Organization permissions", select the following permissions:
+
+- Custom properties: Read-only
+
+Once you created the token, copy it and add it to your Batch Changes credentials.
+
+
+
+If your organization requires approval for fine-grained access tokens, you must wait for an administrator to approve the token before you can publish changesets with it.
+
+The fine-grained access token is now ready to use. Create a new batch change to start using it.
+
+### GitHub Enterprise
+
+Follow the steps to [create a personal access token (classic)](https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/creating-a-personal-access-token) on GitHub Enterprise. Batch Changes requires the following scopes:
+
+- `repo`
+- `read:org`
+- `user:email`
+- `read:discussion`
+- `workflow`
+
+This is done by selecting the relevant checkboxes when creating the token:
+
+
+
+The `workflow` scope is technically only required if your batch changes modify files in the `.github` directory of a repository, but we recommend enabling it regardless to avoid confusing errors at a later time.
+
+When working with organizations that have SAML SSO (Single Sign On) enabled, configuring credentials requires an additional step that [involves white-listing the token for use in that organization](https://docs.github.com/en/enterprise-cloud@latest/authentication/authenticating-with-saml-single-sign-on/authorizing-a-personal-access-token-for-use-with-saml-single-sign-on).
+
+Currently, for customers on an instance of GitHub Enterprise Cloud that uses [SSH certificate authorities](https://docs.github.com/en/enterprise-cloud@latest/organizations/managing-git-access-to-your-organizations-repositories/about-ssh-certificate-authorities) and requires SSH certificates to authenticate, we are unable to provide a means of authenticating Batch Changes to your code host.
+
+Currently, classic personal and fine-grained access tokens are supported only. Alternative token types like OAuth access tokens (for example, OAuth apps) are not supported.
+
+### GitLab
+
+Follow the steps to [create a personal access token](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html#creating-a-personal-access-token) on GitLab. Batch Changes requires the following scopes:
+
+- `api`
+- `read_repository`
+- `write_repository`
+
+This is done by selecting the relevant checkboxes when creating the token:
+
+
+
+### Bitbucket Server/Bitbucket Data Center
+
+Follow the steps to [create a personal access token](https://confluence.atlassian.com/bitbucketserver0516/personal-access-tokens-966061199.html?utm_campaign=in-app-help&utm_medium=in-app-help&utm_source=stash#Personalaccesstokens-Generatingpersonalaccesstokens) on Bitbucket.
+
+Batch Changes require the access token to have the `write` permission on both projects and repositories. This is done by selecting the **Write** level in the **Projects** dropdown and letting repositories inherit it:
+
+
+
+### Bitbucket Cloud
+
+On Bitbucket, follow the steps to [create an app password](https://support.atlassian.com/bitbucket-cloud/docs/app-passwords/). Batch Changes requires the following scopes:
+
+- `account:read`
+- `repo:read`
+- `repo:write`
+- `pr:write`
+- `pipeline:read`
+
+
+
+### Azure DevOps
+
+Follow the steps to [create a PAT](https://learn.microsoft.com/en-us/azure/devops/organizations/accounts/use-personal-access-tokens-to-authenticate?view=azure-devops&tabs=Windows#create-a-pat) on Azure DevOps. Batch Changes requires the following scopes:
+
+- `Organization:All accessible organizations`
+- `Code:Full`
+- `Code:Status`
+- `Pull Request Thread:Read & Write`
+- `User Profile:Read`
+
+Click **Show all scopes** at the bottom of the **Create a new PAT** popup to get the full list of available scopes.
+
+
+
+### Gerrit
+
+- Permissions to create, comment, close, merge, and delete a Change in Gerrit
+- Create an HTTP password in the user settings page
+
+
+
+### SSH access to code host
+
+When Sourcegraph is configured to [clone repositories using SSH via the `gitURLType` setting](/admin/repo/auth), an SSH keypair will be generated for you, and the public key needs to be added to the code host to allow push access. You will be given that public key when adding your personal access token. You can also come back later and copy and paste it into your code host's SSH access settings page.
+
+
+
+## GitHub Apps
+
+EXPERIMENTAL: Using GitHub Apps to authenticate Batch Changes is currently experimental, and there may still be some rough edges.
+
+GitHub apps follow the same concepts as [personal and global access tokens](#types-of-access-tokens-used-by-batch-changes).
+
+### Limitations
+
+- GitHub apps can only be used with GitHub code hosts.
+- The forking mechanism (`fork:true`) is only supported if the GitHub app has access to all repositories of the installation, and if the origin repository and the fork are in the same organization that the GitHub app is installed to ([GitHub Docs](https://docs.github.com/en/rest/repos/forks?apiVersion=2022-11-28#create-a-fork)).
+- Your network must allow bidirectional communication between Sourcegraph and GitHub.
+
+### Migrating from PATs to GitHub Apps
+
+You can migrate your credentials from PATs to GitHub Apps by deleting the PAT credential and creating a GitHub app credential.
+
+Batch Changes will look at the available credentials, and pick one that matches the targeted namespace (code host, organization, repository).
+
+You can continue to use existing batch changes without modifications.
+
+### Adding a GitHub app
+
+Adding a GitHub app is done through the Batch Changes section of your user settings:
+
+- Navigate to the credentials settings, as shown in the [personal](#personal-access-tokens) and [global service account token](#global-service-account-tokens) sections
+- Click **Add credentials**, select **GitHub App** as the **Authentication strategy** and follow the steps to create a GitHub app
+
+
+
+
+
+It may take a few seconds before Sourcegraph receives the callback from GitHub. Please refresh your page until you see a success message.
+
+Code hosts with GitHub apps configured are indicated by a green tick to the left of the code host name as well as details about the GitHub app on the right, while code hosts without credentials have an empty red circle next to them.
+
+### Updating Installations and Permissions for a GitHub App
+
+Currently, Sourcegraph doesn't handle changed installations or permissions for a GitHub app.
+
+To update those properties, you can delete the current credential and create a new one.
+
+### Removing a GitHub app
+
+To remove a GitHub app from your Sourcegraph instance, navigate back to the same section of your settings, then click **Remove**. Once the GitHub app is removed, the code host's indicator should revert to the empty red circle, unless there's still a global credential configured.
+
+
+
+
+
+If you want to delete the GitHub app entirely, you have to navigate to [GitHub's list of applications](https://github.com/settings/apps/) and delete it from there.
diff --git a/docs/batch-changes/create-a-batch-change.mdx b/docs/batch-changes/create-a-batch-change.mdx
new file mode 100644
index 000000000..5912c3a3e
--- /dev/null
+++ b/docs/batch-changes/create-a-batch-change.mdx
@@ -0,0 +1,201 @@
+# Creating a Batch Change
+
+Learn in detail about how to create, view, and filter your Batch Changes.
+
+Batch Changes are created by writing a [batch spec](/batch-changes/batch-spec-yaml-reference) and executing that batch spec with the [Sourcegraph CLI](https://github.com/sourcegraph/src-cli) `src`.
+
+Batch Changes can also be used on [multiple projects within a monorepo](/batch-changes/creating-changesets-per-project-in-monorepos) by using the `workspaces` key in your batch spec.
+
+There are two ways of creating a batch change:
+
+1. On your local machine, with the [Sourcegraph CLI](#create-a-batch-change-with-the-sourcegraph-cli)
+2. Remotely, with [server-side execution](/batch-changes/server-side)
+
+## Create a batch change with the Sourcegraph CLI
+
+This part of the guide will walk you through creating a batch change on your local machine with the Sourcegraph CLI.
+
+### Requirements
+
+- Sourcegraph instance with repositories in it. See the [Quickstart](/batch-changes/quickstart) guide on how to set up a Sourcegraph instance
+- Installed and configured [Sourcegraph CLI](https://github.com/sourcegraph/src-cli). Read about the detailed process in the [quickstart guide](/batch-changes/quickstart#install-the-sourcegraph-cli)
+- Configure the credentials for the code host(s) on which you'll create changesets. Read more about [Configuring user credentials](/batch-changes/configuring-credentials) docs on how to add and manage credentials
+
+### Writing a batch spec
+
+To create a batch change, you need a **batch spec** describing the change. Here is an example batch spec that describes a batch change to add **Hello World** to all `README` files:
+
+```yaml
+version: 2
+name: hello-world
+description: Add Hello World to READMEs
+
+# Find all repositories that contain a README file.
+on:
+ - repositoriesMatchingQuery: file:README
+
+# In each repository, run this command. Each repository's resulting diff is captured.
+steps:
+ - run: IFS=$'\n'; echo Hello World | tee -a $(find -name README)
+ container: alpine:3
+
+# Describe the changeset (e.g., GitHub pull request) you want for each repository.
+changesetTemplate:
+ title: Hello World
+ body: My first batch change!
+ branch: hello-world # Push the commit to this branch.
+ commit:
+ message: Append Hello World to all README files
+ published: false # Do not publish any changes to the code hosts yet
+```
+
+The commits created from your spec will use the `git config` values for `user.name` and `user.email` from your local environment or `batch-changes@sourcegraph.com` if no user is set. Alternatively, you can also [specify an `author`](/batch-changes/batch-spec-yaml-reference#changesettemplatecommitauthor) in this spec.
+
+See the [batch spec YAML reference](/batch-changes/batch-spec-yaml-reference) for more details on how to write batch specs.
+
+### Creating a batch change after previewing
+
+After writing a batch spec, you use the [Sourcegraph CLI (`src`)](https://github.com/sourcegraph/src-cli) to execute the batch spec and upload it to Sourcegraph, where you can preview the changes and apply the batch spec to create a batch change:
+
+- Run the following command in your terminal:
+
+```shell
+src batch preview -f YOUR_BATCH_SPEC.yaml
+```
+
+- Before any branches are pushed or changesets (e.g., GitHub pull requests) are created, you will see a preview of all changes and can confirm each one before proceeding.
+
+Batch Changes's default behavior is to stop if computing changes in a repository errors. You can choose to ignore errors instead by adding the [`skip-errors`](/cli/references/batch/preview) flag : `src batch preview -f spec.batch.yml -skip-errors`.
+
+- Wait for it to run and compute the changes for each repository (using the repositories and commands in the batch spec).
+
+
+
+- Open the preview URL where the command is printed out.
+
+
+
+- Examine the preview. This is the result of executing the batch spec. Confirm that the changes are what you intended. If not, edit the batch spec and then rerun the command above.
+
+
+
+- Click the **Apply** button to create the batch change.
+
+After you've applied a batch spec, you can [publish changesets](/batch-changes/publishing-changesets) to the code host when you're ready. This will turn the patches into commits, branches, and changesets (such as GitHub pull requests) for others to review and merge.
+
+You can share the link to your batch change with other users if you want their help. Any user on your Sourcegraph instance can [view it in the batch changes list](/batch-changes/create-a-batch-change#viewing-batch-changes).
+
+If a user viewing the batch change lacks read access to a repository in the batch change, they can only see [limited information about the changes to that repository](/batch-changes/permissions-in-batch-changes#repository-permissions-for-batch-changes) (and not the repository name, file paths, or diff).
+
+You can update a batch change's changes at any time, even after you've published changesets. For more information, see [Updating a batch change](/batch-changes/update-a-batch-change).
+
+### Applying a batch spec without a preview
+
+You can use [Sourcegraph CLI (`src`)](https://github.com/sourcegraph/src-cli) to directly apply a batch spec to create or [update](/batch-changes/update-a-batch-change) a batch change without having to use the UI.
+
+Instead of running `src batch preview` you run the following:
+
+```bash
+src batch apply -f YOUR_BATCH_SPEC.yaml
+```
+
+This command won't print a link to a preview. It will create or update the batch change it describes directly.
+
+That can be useful if you want to update a single field in the batch spec, i.e., the `description` or the `changesetTemplate.body`, or if you're going to continuously update a batch change by running `src` in a CI workflow.
+
+### Creating a batch change in a different namespace
+
+Batch Changes are uniquely identified by their name and namespace. The namespace can be any Sourcegraph username or the name of a Sourcegraph organization.
+
+By default, Batch Changes will use your username on Sourcegraph as your namespace. To create Batch Changes in a different namespace, use the `-namespace` flag when previewing or applying a batch spec:
+
+```bash
+src batch preview -f your_batch_spec.yaml -namespace
+```
+
+When creating a batch change server-side using the UI, you can select the namespace to which the batch change belongs when you create it.
+
+### Administration
+
+Once a batch change is open, any Sourcegraph user can view it. However, the namespace determines who can administer it, such as editing or deleting it. When a batch change is created in a user namespace, only that user (and site admins) can administer it. When a batch change is created in an organization namespace, all members of that organization (and site admins) can administer it.
+
+## Create a batch change with server-side execution
+
+Here, you'll learn how to create and run a batch change via server-side execution.
+
+Click the **Create batch change** button on the Batch Changes page, or go to `/batch-changes/create`.
+You will be prompted to choose a name for your namespace and optionally define a custom namespace to put your batch change in.
+
+
+
+Once done, click **Create**.
+
+### Editing the spec file
+
+You should see the editor view now. This view consists of three main areas:
+
+- The library sidebar panel on the left
+- The editor in the middle
+- The workspaces preview panel on the right
+
+
+
+You can pick from the examples in the library pane to get started quickly or begin working on your batch spec in the editor right away. Site admins can configure the examples. The editor will provide documentation as you hover over tokens in the YAML spec and supports auto-completion.
+
+### Previewing workspaces
+
+Once satisfied or to test your batch change's scope, you can run a new preview from the right-hand side panel at any time. After resolution, it will show all the workspaces in repositories that match the given `on` statements. You can search through them and determine if your query is satisfying before starting execution. You can also exclude single workspaces from this list.
+
+
+
+### Executing your batch spec
+
+When the spec is ready to run, ensure the preview is up to date and then click **Run batch spec**. This takes you to the execution screen. On this page, you see:
+
+- Run statistics at the top
+- All the workspaces, including status and diff stat, in the left panel
+- Details on a particular workspace on the right-hand side panel where you can see steps with:
+ - Logs
+ - Results
+ - Command
+ - Per-step diffs
+ - Output variables
+ - Execution timelines for debugging
+
+Once finished, you can proceed to the batch spec preview, as you know it from before.
+
+
+
+### Previewing and applying the batch spec
+
+On this page, you can review the proposed changes and the operations taken by Sourcegraph on each changeset. Once satisfied, click **Apply**.
+
+Congratulations, you ran your first batch change server-side 🎊
+
+
+
+## Viewing batch changes
+
+You can view a list by clicking the **Batch Changes** icon in the top navigation bar:
+
+
+
+### Title-based search
+
+You can search through your previously created batch changes by title. This search experience makes it much easier to find the batch change you’re looking for, especially when you have large volumes of batch changes to monitor.
+
+Start typing the keywords that match the batch change’s title, and you will see a list of relevant results.
+
+
+
+## Filtering Batch Changes
+
+You can also use the filters to switch between showing all open or closed Batch Changes.
+
+
+
+## Filtering changesets
+
+When looking at a batch change, you can search and filter the list of changesets with the controls at the top of the list:
+
+
diff --git a/docs/batch-changes/creating-changesets-per-project-in-monorepos.mdx b/docs/batch-changes/creating-changesets-per-project-in-monorepos.mdx
new file mode 100644
index 000000000..2253747bc
--- /dev/null
+++ b/docs/batch-changes/creating-changesets-per-project-in-monorepos.mdx
@@ -0,0 +1,123 @@
+# Creating Changesets per Project in Monorepos
+
+Learn how to create changesets per project in monorepos.
+
+Large repositories often contain multiple projects, hence named as **Monorepos**. It can make sense to run the batch spec [`steps`](/batch-changes/batch-spec-yaml-reference#steps) separately in each project and create one changeset per project.
+
+This can be done by using [`workspaces`](/batch-changes/batch-spec-yaml-reference#workspaces) in the batch specs via two steps:
+
+1. Define the project locations with the `workspaces` property
+2. Produce unique `changesetTemplate.branch` names
+
+## Define project locations with `workspaces`
+
+Let's say you have a repository containing multiple TypeScript projects in which you want to update TypeScript by running the following command:
+
+```shell
+npm update typescript
+```
+
+The repository has the following directory and file structure:
+
+```bash
+README
+project1/package.json
+project1/src/...
+project2/package.json
+project2/src/...
+examples/project3/package.json
+examples/project3/src/...
+```
+
+The location of the `package.json` files tells us that the TypeScript projects are in `project1`, `project2`, and `examples/project3`. You want to run the `npm update` command in each of these and produce an individual changeset per project.
+
+The [`workspaces`](/batch-changes/batch-spec-yaml-reference#workspaces) property in batch specs allows you to do that:
+
+```yaml
+name: update-typescript-monorepo
+description: This batch change updates the TypeScript dependency to the latest version
+
+on:
+ - repositoriesMatchingQuery: our-large-monorepo
+
+workspaces:
+ - rootAtLocationOf: package.json
+ in: github.com/our-org/our-large-monorepo
+
+steps:
+ - run: npm update typescript
+ container: node:14
+
+# [...]
+```
+
+The `workspaces` property here defines that in `github.com/your-org/your-large-monorepo`, different `workspaces` exist and contain a `package.json` at their root.
+
+When executed with `src batch [apply|preview]`, this would produce up to 3 changesets in `github.com/your-org/your-large-monorepo`, one for each project.
+
+## Produce unique `changesetTemplate.branch` names
+
+Since changesets are uniquely identified by their repository and branch, you **must** ensure that multiple changesets in the same repository will have different branches.
+
+To do that, we make use of [templating](/batch-changes/batch-spec-templating) in the [`changesetTemplate.branch`](/batch-changes/batch-spec-templating#changesettemplate-context) field
+
+```yaml
+# [...]
+changesetTemplate:
+ title: Update TypeScript
+ body: This updates TypeScript to the latest version
+ published: false
+ commit:
+ message: Update TypeScript
+ # Templating and helper functions allow us to get the `path` in which
+ # the `steps` executed and turn that into a branch name:
+ branch: batch-changes/update-typescript-${{ replace steps.path "/" "-" }}
+```
+
+The `steps.path` [templating variable](/batch-changes/batch-spec-templating) contains the path in which the `steps` were executed relative to the root of the repository.
+
+With the file and directory structure above, that means you'd end up with the following branch names:
+
+- `batch-changes/update-typescript-project1`
+- `batch-changes/update-typescript-project2`
+- `batch-changes/update-typescript-examples-project3`
+
+And with that, you're done and ready to produce multiple changesets in a single repository, with the full batch spec looking like this:
+
+```yaml
+name: update-typescript-monorepo
+description: This batch change updates the TypeScript dependency to the latest version
+
+on:
+ - repository: github.com/sourcegraph/automation-testing
+
+workspaces:
+ - rootAtLocationOf: package.json
+ in: github.com/sourcegraph/automation-testing
+
+steps:
+ - run: npm update typescript
+ container: node:14
+
+changesetTemplate:
+ title: Update TypeScript
+ body: This updates TypeScript to the latest version
+ branch: batch-changes/update-typescript-${{ replace steps.path "/" "-" }}
+ commit:
+ message: Update TypeScript
+ published: false
+```
+
+You only need to run `src batch [apply|preview]` to execute your batch spec.
+
+## Dynamic discovery of workspaces
+
+The `workspace` property leverages Sourcegraph search to find the location of the defined workspaces in the repositories yielded by the [`on`](/batch-changes/batch-spec-yaml-reference#on) property of the batch spec.
+
+That has the advantage that it's dynamic: whenever `src batch [apply|preview]` is re-executed, Sourcegraph search is used again to find workspaces, automatically picking up new ones and removing workspaces that no longer exist.
+
+## Only downloading workspace data in large repositories
+
+If the repository containing the workspaces is really large and it's not feasible to download to make it available for the `steps` execution, the [`workspaces.onlyFetchWorkspaces`](/batch-changes/batch-spec-yaml-reference#workspacesonlyfetchworkspace) field can be set to `true` to only download the workspaces, without the rest of the repository.
+
+To learn more about `workspaces`, read in the [batch spec YAML reference](/batch-changes/batch-spec-yaml-reference#workspaces).
diff --git a/docs/batch-changes/creating-multiple-changesets-in-large-repositories.mdx b/docs/batch-changes/creating-multiple-changesets-in-large-repositories.mdx
new file mode 100644
index 000000000..2654815bb
--- /dev/null
+++ b/docs/batch-changes/creating-multiple-changesets-in-large-repositories.mdx
@@ -0,0 +1,67 @@
+# Creating Multiple Changesets in Large Repositories
+
+Learn how to create multiple changesets in large-sized repos.
+
+Creating multiple changesets in large repos functionality is in the Beta stage.
+
+Batch changes can produce a lot of changes in a single repository. Splitting the changes into multiple changesets makes reviewing and merging the changes easier.
+
+This can be done by using [`transformChanges`](/batch-changes/batch-spec-yaml-reference#transformchanges) in the batch spec to group the changes produced in one single repository by directory and create a changeset for each group.
+
+In some monorepos, it makes more sense to run the batch spec `steps` per project. Read [Creating changesets per project in monorepos](/batch-changes/creating-changesets-per-project-in-monorepos)to find out how to use the `workspaces` property for it.
+
+## Using `transformChanges`
+
+The following batch spec uses the `transformChanges` property to create up to 4 changesets in a single repository by grouping the changes made in different directories:
+
+```yaml
+name: hello-world
+description: Add Hello World to READMEs
+
+# Find all repositories that contain a README file.
+on:
+ - repositoriesMatchingQuery: file:README
+
+# In each repository, run this command. Each repository's resulting diff is captured.
+steps:
+ - run: IFS=$'\n'; echo Hello World | tee -a $(find -name README)
+ container: alpine:3
+
+# Transform the changes produced in each repository.
+transformChanges:
+ # Group the file diffs by directory and produce one additional changeset per group.
+ # Changes that haven't been grouped will be be in the standard changeset.
+ group:
+ - directory: client
+ branch: hello-world-client # will replace the `branch` in the `changesetTemplate`
+ - directory: docker-images
+ # Optional: only apply the rule in this repository
+ repository: github.com/sourcegraph/sourcegraph
+ branch: hello-world-infra
+ - directory: monitoring
+ repository: github.com/sourcegraph/sourcegraph
+ branch: hello-world-monitoring
+
+# Describe the changeset (e.g., GitHub pull request) you want for each repository.
+changesetTemplate:
+ title: Hello World
+ body: My first batch change!
+ branch: hello-world # This branch is the default branch and will be
+ # overwritten for each additional changeset.
+ commit:
+ message: Append Hello World to all README files
+ published: false # Do not publish any changes to the code hosts yet
+```
+
+This batch spec will produce up to 4 changesets in the `github.com/sourcegraph/sourcegraph` repository:
+
+1. A changeset with the changes in the `client` directory
+1. A changeset with the changes in `docker-images`
+1. A changeset with the changes in `monitoring`
+1. A changeset with the changes in the other directories.
+
+Since code hosts and Git don't allow creating multiple, different changesets on the same branch, it is **required** to specify a unique `branch` for each `directory` that will be used for the additional changesets. That `branch` will overwrite the default branch specified in `changesetTemplate`.
+
+If no changes have been made in a `directory` specified in a `group`, no additional changeset will be produced. If the optional `repository` property is specified, only the changes in that repository will be grouped.
+
+Read more in [batch spec YAML reference about `transformChanges`](/batch-changes/batch-spec-yaml-reference#transformchanges).
diff --git a/docs/batch-changes/delete-a-batch-change.mdx b/docs/batch-changes/delete-a-batch-change.mdx
new file mode 100644
index 000000000..5b5230c1a
--- /dev/null
+++ b/docs/batch-changes/delete-a-batch-change.mdx
@@ -0,0 +1,53 @@
+# Close and Delete a Batch Change
+
+Learn in detail about how to close, delete, and opt out of a Batch Change.
+
+You can close a batch change when you no longer need it, when all changes have been merged, or when you decide not to make changes. A closed batch change still appears in the [batch changes list](/batch-changes/create-a-batch-change#viewing-batch-changes). To completely remove it, you can delete the batch change.
+
+Any user with [admin access to the batch change](/batch-changes/permissions-in-batch-changes#permission-levels-for-batch-changes) can close or delete it.
+
+## Close a batch change
+
+To close the batch change, do the following:
+
+- Click the **Batch Changes** icon in the top navigation bar
+
+
+
+- From this list, click the batch change that you'd like to close or delete
+- In the top right, click the **Close** button
+
+
+
+- Select whether you want to close all of the batch change's open changesets (e.g., closing all associated GitHub pull requests on the code host)
+
+
+
+- Click **Close batch change**
+- Once a batch change is closed, it can't be updated or reopened anymore
+
+## Delete a batch change
+
+To delete a batch change, follow these steps:
+
+- First, close the batch change
+- Instead of a **Close batch change** button you'll now see a **Delete** button
+
+
+
+- Click **Delete**. The batch change has been deleted from the Sourcegraph instance. The changesets it created (and possibly closed) will still exist on the code hosts since most code hosts don't support deleting changesets
+
+## Opt out of batch changes
+
+Repository owners that are not interested in batch change changesets can opt-out so that their repository will be skipped when a batch spec is executed. To opt-out:
+
+- Create a file called `.batchignore` at the root of the repository you wish to be skipped
+- Now, `src batch [apply|preview]` will skip that repository if it's yielded by the `on` part of the batch spec
+
+You can use the `-force-override-ignore` flag to override that behavior and not skip any ignored repositories.
+
+## Ownership
+
+When a user is deleted, their Batch Changes become inaccessible in the UI but the data is not permanently deleted. This allows recovering the Batch Changes if the user is restored.
+
+However, if the user deletion is permanent, deleting both account and data, then the associated Batch Changes are also permanently deleted from the database. This frees storage space and removes dangling references.
diff --git a/docs/versioned/5.2/batch_changes/explanations/batch_changes_design.mdx b/docs/batch-changes/design.mdx
similarity index 92%
rename from docs/versioned/5.2/batch_changes/explanations/batch_changes_design.mdx
rename to docs/batch-changes/design.mdx
index 616a99bdd..e5f54dfc2 100644
--- a/docs/versioned/5.2/batch_changes/explanations/batch_changes_design.mdx
+++ b/docs/batch-changes/design.mdx
@@ -1,6 +1,6 @@
# Batch Changes design
-Why is the [Batch Changes](/batch_changes/) feature designed the way it is?
+Why is the Batch Changes feature designed the way it is?
## Principles
@@ -9,7 +9,7 @@ Why is the [Batch Changes](/batch_changes/) feature designed the way it is?
- **Define a batch change in a file** (not some online API). The source of truth of a batch change's definition is a file that can be stored in version control, reviewed in code review, and re-applied by CI. This is in the same spirit as IaaC (infrastructure as code; e.g., storing your Terraform/Kubernetes/etc. files in Git). We prefer this approach over a (worse) alternative where you define a batch change in a UI with a bunch of text fields, checkboxes, buttons, etc., and need to write a custom API client to import/export the batch change definition.
- **Shareable and portable.** You can share your batch specs, and it's easy for other people to use them. A batch spec expresses an intent that's high-level enough to (usually) not be specific to your own particular repositories. You declare and inject configuration and secrets to customize it instead of hard-coding those values.
- **Large-scale.** You can run batch changes across 10,000s of repositories. It might take a while to compute and push everything, and the current implementation might cap out lower than that, but the fundamental design scales well.
-- **Accommodates a variety of code hosts and review/merge processes.** Specifically, we don't want Batch Changes to only work for GitHub pull requests. (See [current support list](/batch_changes/#supported-code-hosts-and-changeset-types).)
+- **Accommodates a variety of code hosts and review/merge processes.** Specifically, we don't want Batch Changes to only work for GitHub pull requests. (See [current support list](/batch-changes#supported-code-hosts-and-changeset-types).)
## Comparison to other distributed systems
@@ -21,7 +21,7 @@ Kubernetes is a distributed system with an API that many people are familiar wit
| Spec YAML |  |  |
| How desired state is computed | Evaluate `replicas`, etc. to determine pod count and other template inputs Instantiate `template` once for each pod to produce PodSpecs | Evaluate `on`, `steps` to determine list of patches Instantiate `changesetTemplate` once for each patch to produce ChangesetSpecs |
| Desired state consists of... | DeploymentSpec file (the YAML above) List of PodSpecs (template instantiations) | batch spec file (the YAML above) List of ChangesetSpecs (template instantiations) |
-| Where is the desired state computed? | The deployment controller (part of the Kubernetes cluster) consults the DeploymentSpec and continuously computes the desired state.| The [Sourcegraph CLI](https://github.com/sourcegraph/src-cli) (running on your local machine, not on the Sourcegraph server) consults the batch spec and computes the desired state when you invoke `src batch apply`. **Difference vs. Kubernetes**: A batch change's desired state is computed locally, not on the server. It requires executing arbitrary commands, which is not yet supported by the Sourcegraph server. See Batch Changes known issue "[Batch Changes steps are run locally...](https://docs.sourcegraph.com/batch_changes/explanations/introduction_to_batch_changes#server-execution)". |
+| Where is the desired state computed? | The deployment controller (part of the Kubernetes cluster) consults the DeploymentSpec and continuously computes the desired state.| The [Sourcegraph CLI](https://github.com/sourcegraph/src-cli) (running on your local machine, not on the Sourcegraph server) consults the batch spec and computes the desired state when you invoke `src batch apply`. **Difference vs. Kubernetes**: A batch change's desired state is computed locally, not on the server. It requires executing arbitrary commands, which is not yet supported by the Sourcegraph server. |
| Reconciling desired state vs. actual state | The "deployment controller" reconciles the resulting PodSpecs against the current actual PodSpecs (and does smart things like rolling deploy).| The "Batch Changes controller" (i.e., our backend) reconciles the resulting ChangesetSpecs against the current actual changesets (and does smart things like gradual roll-out/publishing and auto-merging when checks pass).|
diff --git a/docs/batch-changes/examples.mdx b/docs/batch-changes/examples.mdx
new file mode 100644
index 000000000..0027c5f46
--- /dev/null
+++ b/docs/batch-changes/examples.mdx
@@ -0,0 +1,10 @@
+# Batch Changes Examples
+
+Find examples of common use cases for Batch Changes.
+
+- [Refactoring Go code using Comby](/batch-changes/refactor-go-comby)
+- [Updating Go import statements using Comby](/batch-changes/updating-go-import-statements)
+- [Update base images in Dockerfiles](/batch-changes/update-base-images-in-dockerfiles)
+- [Search and replace specific terms](/batch-changes/search-and-replace-specific-terms)
+
+Take a look at our [examples repository](https://github.com/sourcegraph/batch-change-examples) for a collection of ready-to-be-executed batch specs.
diff --git a/docs/batch-changes/faq.mdx b/docs/batch-changes/faq.mdx
new file mode 100644
index 000000000..44f5965f3
--- /dev/null
+++ b/docs/batch-changes/faq.mdx
@@ -0,0 +1,259 @@
+# FAQs
+
+Find answers to the most common questions about Batch Changes.
+
+## What are the requirements for running Batch Changes?
+
+Batch Changes has specific requirements for running on the Sourcegraph server version, its connected code hosts, and developer environments. Read [requirements documentation](/batch-changes/requirements) for more details.
+
+## What happens when a user is deleted?
+
+When a user is deleted, their Batch Changes become inaccessible in the UI, but the data is not permanently deleted.
+This allows the batch changes to be recovered if the user is restored.
+
+You can change the ownership of a batch change before or after soft deletion by using the instructions[here](https://help.sourcegraph.com/hc/en-us/articles/28471221973133-Changing-Ownership-Of-A-Batch-Change-Before-User-Deletion).
+
+However, if the user deletion is permanent (using the "Delete forever" option), deleting both account and data, then the associated Batch Changes are also permanently deleted from the database. This frees storage space and removes dangling references.
+
+## Are there any limitations with the Batch Changes feature?
+
+- **Code hosts**: Batch Changes currently support **GitHub**, **GitLab** and **Bitbucket Server and Bitbucket Data Center** repositories. If you want to use Batch Changes on other code hosts, [let us know](https://about.sourcegraph.com/contact).
+- **Server-side execution**: Batch change steps are run locally (in the [Sourcegraph CLI](https://github.com/sourcegraph/src-cli)) or [server-side](/batch-changes/server-side) `Beta`. For this reason, the APIs for creating and updating a batch change require you to upload all of the changeset specs (which are produced by executing the batch spec locally). Also, see [how scalable Batch Changes are](/batch-changes/faq#how-scalable-are-batch-changes-how-many-changesets-can-i-create).
+- **Multi-user access**: It is yet to be possible for multiple users to edit the same batch change that was created under an organization.
+- It is yet to be possible to reuse a branch in a repository across multiple batch changes.
+- The only type of user credential supported by Sourcegraph right now is a [personal access token](/batch-changes/configuring-credentials), either per user, or via a global service account. Further credential types may be supported in the future.
+
+## What happens if my batch change creation breaks down at 900 changesets out of 1,000? Do I have to re-run it?
+
+The default behavior of Batch Changes is to stop creating the diff on repo errors. You can ignore errors by adding the [`-skip-errors`](/cli/references/batch/preview) flag to the `src batch preview` command.
+
+## Can I close a batch change and leave the changesets open?
+
+Yes. A confirmation page shows you all the actions that will occur on the various changesets in the batch change after you close it. Open changesets will be marked 'Kept open', meaning batch change won't alter them.
+
+See [closing a batch change](/batch-changes/delete-a-batch-change#close-a-batch-change).
+
+## How scalable are Batch Changes? How many changesets can I create?
+
+Batch Changes can create tens of thousands of changesets. This is something we run testing on internally. Some known limitations include:
+
+- Since diffs are created locally by running a docker container, performance depends on the capacity of your machine. See [How `src` executes a batch spec](/batch-changes/how-src-executes-a-batch-spec)
+- Batch Changes create changesets in parallel locally. You can set up the maximum number of parallel jobs with [`-j`](/cli/references/batch/apply)
+- Manipulating (commenting, notifying users, etc.) changesets at that scale can be clumsy.
+
+## How long does it take to create a batch change?
+
+There's a rule of thumb:
+
+- Measure the time it takes to run your change container on a typical repository
+- Multiply by the number of repositories
+- Divide by the number of changeset creation jobs running in parallel set by the [`-j`](/cli/references/batch/apply) CLI flag. It defaults to GOMAXPROCS, [roughly](https://golang.org/pkg/runtime/#NumCPU) the number of available cores
+
+If you run memory-intensive jobs, you might need to reduce the number of parallel job executions. You can run `docker stats` locally to get an idea of memory usage.
+
+## Why does my batch change, not open changesets on all the repositories it should?
+
+- Do you have enough permissions? Batch Changes will give you an error on the repositories you cannot access. See [Repository permissions for Batch Changes](/batch-changes/permissions-in-batch-changes)
+- Does your `repositoriesMatchingQuery` contain all the necessary flags? If you copied the query from the Sourcegraph UI, note that some flags are represented as buttons (case sensitivity, regex) and do not appear in the query unless you use the copy query button
+- Are the files you are trying to change in your repository's `.gitignore`? Batch Changes respects .gitignore files when creating the diff
+
+## Can I create tickets or issues along with Batch Changes?
+
+Batch Changes does not support a declarative syntax for issues or tickets.
+However, [steps](/batch-changes/batch-spec-yaml-reference#stepsrun) can run any container. Some users have built scripts to create tickets for each apply:
+
+- [Jira tickets](https://github.com/sourcegraph/batch-change-examples/blob/main/ticketing-systems/jira-tickets/README)
+- [GitHub issues](https://github.com/sourcegraph/batch-change-examples/blob/main/ticketing-systems/github-issues/README)
+
+## Can I use GitHub/GitLab runners to automate my batch changes?
+To an extent, yes, you can use GitHub Actions or GitLab CI/CD runners to automate Sourcegraph batch changes to allow you to trigger batch changes automatically after events like library updates or on a schedule.
+The implementation requirements are network access where your CI/CD runners must be able to reach your Sourcegraph instance and have authentication through a Sourcegraph access token for API access along with appropriate permissions to create batch changes.
+
+If you'd want to implement this automation:
+
+The best way would be to contact your SRE/Infrastructure team to verify if your CI/CD runners can access your Sourcegraph instance and if access is not available, work with your SRE team to request this capability.
+Once access is confirmed, you can proceed with implementing the automation
+
+However, this requires your CI/CD runners to have network access to your Sourcegraph instance. In many enterprise environments, this access may be restricted by default.
+
+## What happens to the preview page if the batch spec is not applied?
+
+Unapplied batch specs are removed from the database after **seven days**.
+
+## Can I pull containers from private container registries in a batch change?
+
+Yes. When [executing a batch spec](/batch-changes/how-src-executes-a-batch-spec), `src` will attempt to pull missing docker images. If you are logged into the private container registry, it will pull from it.
+
+Also, see [`steps.container`](/batch-changes/batch-spec-yaml-reference#stepscontainer). Within the spec, it will work as expected if `docker pulls` points to your private registry from the command line.
+
+However, outside the spec, `src` pulls an image from Docker Hub when running in volume workspace mode. This is the default on macOS, so you will need to use one of the following three workarounds:
+
+1. Run `src` with the `-workspace bind` flag. This will be slower but prevent `src` from pulling the image.
+2. If you have a way of replicating trusted images onto your private registry, you can replicate [our image](https://hub.docker.com/r/sourcegraph/src-batch-change-volume-workspace) to your private registry. Ensure the replicated image has the same tags, or this will fail.
+3. If you can ad hoc pull images from public Docker Hub, you can run `docker pull -a sourcegraph/src-batch-change-volume-workspace` to pull the image and its tags.
+
+If you choose to replicate or pull the Docker image, you should ensure that it is frequently synchronized, as a new tag is pushed each time `src` is released.
+
+## What tool can I use for changing or refactoring a ``?
+
+Batch Changes supports any tool that can run in a container and change file contents on a disk. You can use the tool/script that works for your stack or build your own, but here is a list of [examples](https://github.com/sourcegraph/batch-change-examples) to get started.
+Common language agnostic starting points:
+
+- `sed`, [`yq`](https://github.com/mikefarah/yq), `awk` are common utilities for changing text
+- [comby](https://comby.dev/docs/overview) is a language-aware structural code search and replace tool. It can match expressions and function blocks and is great for more complex changes
+
+## Why can't I run steps with different container user IDs in the same batch change?
+
+This is an artifact of [how Batch Changes executes batch specs](/batch-changes/how-src-executes-a-batch-spec). Consider this partial spec:
+
+```yaml
+steps:
+ - run: /do-it.sh
+ container: my-alpine-running-as-root
+
+ - run: /do-it.sh
+ container: my-alpine-running-as-uid-1000
+
+ - run: /do-it.sh
+ container: my-alpine-running-as-uid-500
+```
+
+Files created by the first step will be owned by UID 0 and (by default) have 0644 permissions, which means that the subsequent steps will be unable to modify or delete those files, as they are running as different, unprivileged users.
+
+Even if the first step is replaced by one that runs as UID 1000, the same scenario will occur when the final step runs as UID 500: files created by the previous steps cannot be modified or deleted.
+
+In theory, it's possible to run the first `n` steps in a batch spec as an unprivileged user and then run the last `n` steps as root, but we don't recommend this due to the likelihood that later changes may cause issues. We strongly recommend only using containers that run as the same user in a single batch spec.
+
+## How can I use [GitHub expression syntax](https://docs.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions) (`${{ }}` literally) in my batch spec?
+
+To tell Sourcegraph not to evaluate `${{ }}` like a regular [template delimiter](/batch-changes/batch-spec-templating), you can quote it and wrap it in a second set of `${{ }}` like so:
+
+```bash
+${{ "${{ leave me alone! }}" }}
+```
+
+Remember the context in which the inner `${{ }}` will be evaluated, and be sure to escape characters as appropriate. Check out the cheat sheet for an [example](/batch-changes/batch-spec-cheat-sheet#write-a-github-actions-workflow-that-includes-github-expression-syntax) within a shell script.
+
+## How is commit author determined for commits produced from Batch Changes?
+
+Commit author is determined when running `src batch [apply|preview]`. If no [author](/batch-changes/batch-spec-yaml-reference#changesettemplatecommitauthor) key is defined in the batch spec, `src` will try to use the git config values for `user.name` and `user.email` from your local environment, or `batch-changes@sourcegraph.com` if no user is set.
+
+## Why is the checkbox on my changeset disabled when previewing a batch change?
+
+Since Sourcegraph 3.31, it is possible to publish many types of changesets when previewing a batch change by modifying the publication state for the changeset directly from the UI (see ["Publishing changesets"](/batch-changes/publishing-changesets#from-the-preview)). However, not every changeset can be published by Sourcegraph. By hovering over your changeset's disabled checkbox, you can see why that specific changeset is not currently publishable. The most common reasons include:
+
+- The changeset is already published (we cannot unpublish a changeset or convert it back to a draft)
+- The changeset's publication state is being controlled from your batch spec file (i.e., you have the [`published` flag set in your batch spec](/batch-changes/batch-spec-yaml-reference#changesettemplatepublished)); the batch spec takes precedence over the UI
+- You do not have permission to publish to the repository the changeset would be opened against
+- The changeset was imported (and was therefore already published by someone or something else)
+
+The changeset may also be in a state that we cannot currently publish from: for example, because a previous push to the code host failed (in which case you should re-apply the batch change), or if you are actively detaching the changeset from your batch change.
+
+## Why do my changesets take a long time to sync?
+
+Have you [set up webhooks](/batch-changes/requirements#batch-changes-effect-on-code-host-rate-limits)?
+
+### Why has my changeset been archived?
+
+When re-running a batch spec on an existing batch change, the scope of repositories affected may change if you modify your `on` statement or if Sourcegraph finds a different set of results than last time.
+
+If the new batch spec no longer matches a repository for which Sourcegraph has already published a changeset, that changeset will be closed on the codehost and marked as *archived* in the batch change when you apply the new batch spec.
+
+You can see these actions from the preview screen before you apply the batch spec. Archived changesets are still associated with the batch change but will appear under the "Archived" tab on the batch change page instead.
+
+See [how to remove changesets](/batch-changes/update-a-batch-change#removing-changesets) to learn more about archiving changesets, including how to unarchive a changeset and how to remove a changeset from the batch change entirely.
+
+## Why is my changeset read-only?
+
+Unmerged changesets on repositories that have been archived on the code host will move into a **Read-Only** state, which reflects that they cannot be modified any further on the code host. Re-applying the batch change will result in no operations being performed on those changesets, even if they would otherwise be updated. The only exception is those changesets that would be [archived](#why-has-my-changeset-been-archived) due to the `on` statement or change in search results will still be archived.
+
+If the repository is unarchived, Batch Changes will move the changeset back into its previous state the next time Sourcegraph syncs it.
+
+## Why do I get different results count when I run the same search query as a normal search vs. for my `repositoriesMatchingQuery` in a batch spec?
+
+By default, a normal Sourcegraph search will return the total number of matches for a given query, counting matches in the same file or repository as separate results.
+
+However, when you use the search query in your batch spec, the results are grouped based on the repository (or "workspace", if you're [working with monorepos](/batch-changes/creating-changesets-per-project-in-monorepos)) they belong to, giving you the total number of **repositories** (or **workspaces**) that match the query. This is because Batch Changes produces one changeset for each matching repository (or workspace).
+
+So, if you have a search query that returns ten results in a single repo, the batch spec will only return one result for that repo. This is the equivalent of supplying the `select:repo` aggregator parameter to your search query.
+
+## Why do I get fewer changes in my changeset diff when I run a batch spec than there are results when I run the same search query?
+
+Sourcegraph search shows you results on any repositories that you have read access to. However, Sourcegraph and Batch Changes need to know which repositories you have **write** access to.
+
+This disparity most often stems from needing write access to one or more of the repositories where your search query returns results. Consider asking an admin to set up a [global service account token](/batch-changes/configuring-credentials#global-service-account-tokens) if your batch change must update all matching repositories.
+
+## Why is my batch change preview hanging?
+
+When working with `src,` there are occurrences where applying your batch spec might get stuck on a particular step. More so in the `Determining workspace type` step. The `Determining workspace type` is a simple step that decides if bind or volume modes should be used based on the command line flags and the OS and architecture.
+
+If volume mode is used (which is default on Mac OS), then `src` will attempt to pull the `sourcegraph/src-batch-change-volume-workspace` Docker image from the docker hub since that's required for the batch spec to be executed. The "hanging" is typically caused by the local machine's CLI state. Restarting your computer and applying the batch spec again should fix this.
+
+## Can I create a batch change and use a team's namespace so that the team owns the batch change?
+
+Yes, you can create a batch change under a team's namespace so that the team owns and manages the batch change. Here are the steps to achieve this:
+
+1. Create an [organization](/admin/organizations) on Sourcegraph for your team
+1. Add all members of your team to the organization
+1. When creating the batch change, select the organization's namespace instead of your namespace. This can be done via the UI or using the `-namespace` flag with `src batch preview/apply`
+1. The batch change will now be created under the organization's namespace
+1. All members of the organization (your team) will have admin permissions to manage the batch change
+
+So, by using an organization's namespace, you can create a batch change that is owned and editable by the entire team, not just yourself.
+
+## Running Batch Change Server Side
+
+### Can large batch changes execution be distributed on multiple executors?
+
+They can! Each changeset that is computed can be assigned to a separate executor, provided there are enough executors available.
+
+### What additional resources do I need to provision to run batch changes server-side?
+
+See [deploying executors](/admin/executors/deploy_executors) page. You'll require little as a single compute instance and a docker registry mirror if you just want to process batch changes at a small scale; an autoscaling group of instances if you want to process large batch changes very fast.
+
+### Can someone accidentally take down the Sourcegraph instance if they run too big a batch change?
+
+No. Executors have been designed for the Sourcegraph instance to offload resource-intensive tasks. The Sourcegraph instance itself only queues up batch changes for processing, tracks execution, then uses the resulting diffs to open and track changesets just as it would for batch changes created locally using the `src-cli`.
+
+### I have several machines configured as executors, and they don't have the same specs (eg. memory). Can I submit some batch changes specifically to a given machine?
+
+No, for now all executors are equal in the eyes of Sourcegraph. We suggest using only one type of machine.
+
+### What happens if the execution of a step fails?
+
+If the execution of a step on a given repository fails, that repository will be skipped, and execution on the other repositories will continue. Standard error and output will be available to the user for debugging purposes.
+
+### How do executors interact with code hosts? Will they clone repos directly?
+
+Executors do not interact directly with code hosts. They behave in a way [similar to src CLI](/batch-changes/how-src-executes-a-batch-spec) today: executors interact with the Sourcegraph instance, the Sourcegraph instance interacts with the code host. In particular, executors download code from the Sourcegraph instance and executors do not need to access code hosts credentials directly.
+
+## From Campaigns to Batch Changes
+
+We are sunsetting the name **Campaigns** and renaming it to **Batch Changes** starting from Sourcegraph version 3.26 (released 2021-03-20). The name change happened so that it is more descriptive and approachable for new users.
+
+### What action should I take?
+
+- Campaigns is called **Batch Changes** from Sourcegraph v3.26
+- We recommend migrating and upgrading to the latest Sourcegraph version to benefit from the new functionalities
+- There are no breaking changes in **release 3.26 to 3.33**, and URLs, CLI commands, and API endpoints using the previous name (campaigns) will still work. **These will be removed in Sourcegraph 3.34.**
+
+### What changes with the name change?
+
+- **Campaigns** is replaced by **Batch Changes** in the GUI, docs, customer and internal material
+- `/campaigns/*` URLs are changed to `/batch-changes/*`
+- The CLI prompt `src campaigns` is replaced by `src batch`
+- Campaign specs are now called **batch specs**
+
+### What's the deprecation plan?
+
+From v3.26 to v3.33 (inclusive):
+
+- All `/campaigns/*` URLs are deprecated. They will still work and will be removed in the future
+- The CLI prompt `src campaigns` and its alias `src campaign` are deprecated. They will still work and will be removed in the future
+- `campaigns` GraphQL API endpoints are deprecated. They are intended to work, so contact us if you are querying the GraphQL API to ensure we can support you. They will be removed in the future
+
+From v3.34:
+
+- All `/campaigns/*` URLs are removed
+- The CLI prompt `src campaigns` and its alias `src campaign` are removed
+- `/campaigns` GraphQL API endpoints are removed
diff --git a/docs/batch-changes/handling-errored-changesets.mdx b/docs/batch-changes/handling-errored-changesets.mdx
new file mode 100644
index 000000000..713ee8b82
--- /dev/null
+++ b/docs/batch-changes/handling-errored-changesets.mdx
@@ -0,0 +1,84 @@
+# Error Handling of Changesets
+
+ Learn how to fix errors when you run a changeset.
+
+Publishing a changeset can result in an error, and there can be different reasons. Sometimes, the error can be fixed by automatically retrying to publish the changeset, but other errors require the user to take some action.
+
+Errored changesets that are marked as **Retrying** are automatically retried:
+
+
+
+Changesets that are marked as **Failed** can be [retried manually](#manual-retrying-of-errored-changesets):
+
+
+
+## Types of errors
+
+Two types of errors can occur when running a changeset:
+
+- [Automatic retrying](#automatic-retrying-of-errored-changesets)
+- [Manual retrying](#manual-retrying-of-errored-changesets)
+
+## Automatic retrying of errored changesets
+
+If an operation on a changeset results in an error that looks like it could be transient or resolvable if retried, Sourcegraph will automatically retry that operation. Only internal errors and errors from the code host with HTTP status codes in the `500` range will typically be retried.
+
+This will be indicated by the changeset entering a **Retrying** state. Sourcegraph will automatically retry the operation up to ten times.
+
+Examples of errors that can be fixed by [automatically retrying](#automatic-retrying-of-errored-changesets) are as follows:
+
+- Connecting to the code host failed
+- Code host responds with an error when trying to open a pull request
+- Internal network errors
+
+## Manual retrying of errored changesets
+
+Changesets that are marked as **Failed** won't be retried automatically. That's either because the number of automatic retries has been exhausted or because retrying won't fix the error without user intervention.
+
+When a changeset fails to publish, the user can click **Retry** on the error message. No re-applying is needed.
+
+Additionally, to retry all **Failed** (or even **Retrying**) changesets manually, you can re-apply the batch spec via the following two ways:
+
+1. Preview and re-apply the batch spec in the UI by running the following command and then click the printed URL to apply the uploaded batch spec
+
+```bash
+src batch preview -f YOUR_BATCH_SPEC.batch.yaml
+```
+
+2. Re-apply directly by running the following command.
+
+```bash
+src batch apply -f YOUR_BATCH_SPEC.batch.yaml
+```
+
+Read [Creating a batch change](/batch-changes/create-a-batch-change) for more information on these commands.
+
+Examples of errors that requires [manual retrying](#manual-retrying-by-re-applying-the-batch-change-spec) are as follows:
+
+- No [Batch Changes credentials](/batch-changes/configuring-credentials) have been set up for the affected code host
+- The configured code host connection needs a different type of credentials (for example, with SSH keys)
+- A pull request for the specified branch already exists in another batch change
+
+## Handling changeset YAML formatting errors
+
+You may encounter `Format YAML` errors when running a changeset. These are often a result of misconfiguration or formatting errors. Some common YAML errors can look like the following:
+
+### Published value error
+
+```txt
+cannot publish a changeset that has a published value set in its changesetTemplate
+```
+
+This YAML error occurs when you have a `published:` field in the spec and then try to run the Publish bulk action on a batch change. For example:
+
+```yaml
+format-yaml
+ commit:
+ message: Format all YAML
+ published: false
+```
+
+To fix this error, you can:
+
+- Change `published: false` to `published: true` in your spec and re-apply or
+- Remove the `published` field altogether. Doing so will allow you to control the publication state from the UI
diff --git a/docs/batch-changes/how-src-executes-a-batch-spec.mdx b/docs/batch-changes/how-src-executes-a-batch-spec.mdx
new file mode 100644
index 000000000..a3efb1cc8
--- /dev/null
+++ b/docs/batch-changes/how-src-executes-a-batch-spec.mdx
@@ -0,0 +1,192 @@
+# How src executes a Batch Spec
+
+This document helps you debug and troubleshoot the writing and execution of Batch Specs with the [Sourcegraph CLI `src`](/cli/) command.
+
+Here, you will learn what happens when a user applies or previews a Batch Spec by running `src batch apply` or `src batch preview` commands.
+
+## Overview
+
+`src batch apply` and `src batch preview` execute a batch spec the same way by following these steps:
+
+- [How src executes a Batch Spec](#how-src-executes-a-batch-spec)
+ - [Overview](#overview)
+ - [Parse the batch spec](#parse-the-batch-spec)
+ - [Resolving namespace](#resolving-namespace)
+ - [Preparing container images](#preparing-container-images)
+ - [Resolving repositories](#resolving-repositories)
+ - [Executing steps](#executing-steps)
+ - [Download archive and prepare](#download-archive-and-prepare)
+ - [Run the steps](#run-the-steps)
+ - [Create final diff](#create-final-diff)
+ - [Saving a changeset spec](#saving-a-changeset-spec)
+ - [Importing changesets](#importing-changesets)
+ - [Sending changeset specs](#sending-changeset-specs)
+ - [Sending the batch spec](#sending-the-batch-spec)
+ - [Preview or apply the batch spec](#preview-or-apply-the-batch-spec)
+ - [Halt execution](#halt-execution)
+
+The only difference is the last step, i.e., Preview or apply the batch spec. Here, the `src batch apply` command applies the batch spec, and the `src batch preview` prints a URL that gives you a preview of what would change if you applied the batch spec.
+
+Let's learn about each step in more detail.
+
+## Parse the batch spec
+
+`src` reads in, parses, and validates the batch spec YAML specified with the `-f` flag. It validates the batch spec against its [schema](https://github.com/sourcegraph/src-cli/blob/main/schema/batch_spec.schema.json). It then performs some semantic checks to make sure that, for example, `changesetTemplate` is specified if `steps` are specified or that no feature is used that's not supported by the Sourcegraph instance.
+
+## Resolving namespace
+
+`src` resolves the given namespace to apply/preview the batch spec by sending a GraphQL request to the Sourcegraph instance to fetch the ID for the given namespace name.
+
+If no namespace is specified with `-namespace` (or `-n`) then the currently authenticated user is used as the namespace. Learn more about how to [Connect to Sourcegraph](/cli/quickstart#connect-to-sourcegraph) in the CLI docs for details on how to authenticate.
+
+## Preparing container images
+
+If the batch spec contains `steps`, then for each step, `src` checks its `container` image to see whether it's locally available.
+
+To do so, it runs `docker image inspect --format {{.Id}} -- ` to get the specific image ID for the container image.
+
+If that fails with a **No such image** error, `src` tries to pull the image by running `docker image pull ` and then running `docker image inspect --format {{.Id}} -- ` again.
+
+## Resolving repositories
+
+`src` resolves each entry in the batch spec's `on` property to produce a **unique list of repositories (!)** in which to execute the batch spec's `steps`. With an `on` property like this:
+
+```yaml
+on:
+ - repositoriesMatchingQuery: lang:go fmt.Sprintf("%d", :[v]) patterntype:structural -file:vendor
+ - repositoriesMatchingQuery: repohasfile:README
+ - repository: github.com/sourcegraph/sourcegraph
+ - repository: github.com/sourcegraph/automation-testing
+ branch: thorstens-test-branch
+```
+
+`src` will do the following:
+
+- For each `repositoriesMatchingQuery`, it will:
+ - Send a request to the Sourcegraph API to execute the search query
+ - Collect each result's repository: The ID, name, default branch, and the current revision of the default branch. If the search result is a **repository result**, i.e., a search query of `type:repo` only produces repositories, that's used. If it's a file match, then the file match's repository is used
+ - (Optional): If the results are file matches, then their path in the repository is also saved so that they can be used in the `steps` with [templating](/batch-changes/batch-spec-templating)
+
+- For each `repository` **without** a `branch`, it will:
+ - Send a request to the Sourcegraph API to get the repository's ID, name, default branch, and the current revision of the default branch
+
+- For each `repository` **with** a `branch`, it will:
+ - Send a request to the Sourcegraph API to get the repository's ID, name, and the current revision of the specified `branch`
+ - It then creates a unique list of all repositories yielded by the previous three steps by going through all repositories and comparing them, skipping those where no current revision of a branch could be resolved, and checking whether they're on a supported code host. If they are on unsupported code hosts and no `-allow-unsupported` flag is given, then a warning is printed, and the repositories are not added to the list
+
+## Executing steps
+
+If a batch spec contains `steps`, then `src` executes the steps **locally** on the machine on which `src` is run for each repository yielded by the previous [Resolving repositories](#resolving-repositories) step.
+
+If `-clear-cache` is not set and it previously executed the same `steps` for the same repository at the same revision of the base branch, it will try to use cached results instead of re-executing the steps.
+
+`src` does the following for each repository:
+
+### Download archive and prepare
+
+Downloads the archive of a repository. It's equivalent to:
+
+```bash
+curl -L -v -X GET -H 'Accept: application/zip' \
+-H 'Authorization: token ' \
+'http://sourcegraph.example.com/github.com/my-org/my-repo@refs/heads/master/-/raw' \
+--output ~/tmp/my-repo.zip
+```
+
+- Unzip the archive into the workspace. Where the workspace lives depends on the workspace mode, which can be controlled by the `-workspace` flag. The two modes are:
+ - **Bind mount mode** (the default everywhere except Intel macOS), this will be somewhere on the filesystem, e.g., `~/.cache/sourcegraph/batch-changes` (see `src batch preview -h` for the default value of cache directory, overwrite with `-cache`)
+ - **Volume mount mode** (the default on Intel macOS), a Docker volume will be created using `docker volume create` and attached to all running containers, then removed before `src` exits
+- `cd` into the workspace, which now contains the unzipped archive
+- In the workspace, create a Git repository. Configure `git` to not use local configuration (see [the code for explanations on what each variable does](https://github.com/sourcegraph/src-cli/blob/54fedaf3bfcf21ad3a8d89d9d2d361c8c6da6441/internal/batches/git.go#L13-L26)):
+
+```bash
+export GIT_CONFIG_NOSYSTEM=1 \
+GIT_CONFIG=/dev/null \
+GIT_AUTHOR_NAME=Sourcegraph \
+GIT_AUTHOR_EMAIL=batch-changes@sourcegraph.com \
+GIT_COMMITTER_NAME=Sourcegraph \
+GIT_COMMITTER_EMAIL=batch-changes@sourcegraph.com
+```
+
+ - Next, use the following:
+ - Run `git init`
+ - Run `git config --local user.name Sourcegraph`
+ - Run `git config --local user.email batch-changes@sourcegraph.com`
+ - Run `git add --force --all`
+ - Run `git commit --quiet --all -m sourcegraph-batch-changes`
+
+### Run the steps
+
+For each step in the batch spec `steps`:
+
+- Probe container image (the `container` property of the step) to see whether it has `/bin/sh` or `/bin/bash`
+- Write the step's `run` command to a temp file on the host, e.g., `/tmp-script`
+- Run `chmod 644 /tmp-script`
+- Run the Docker container. The exact command will depend on the workspace mode:
+ - For the **Bind mount** mode:
+
+```bash
+docker run --rm --init --workdir /work \
+--mount type=bind,source=/unzipped-archive-locally,target=/work \
+--mount type=bind,source=/tmp-script,target=/tmp-file-in-container \
+--entrypoint /bin/bash -- /tmp-file-in-container
+```
+
+ - For the **Volume mount** mode:
+
+```bash
+docker run --rm --init --workdir /work \
+--mount type=volume,source=temporary-docker-volume-id,target=/work \
+--mount type=bind,source=/tmp-script,target=/tmp-file-in-container \
+--entrypoint /bin/bash -- /tmp-file-in-container
+```
+
+- Finally, add all produced changes to the git index via `git add --all`
+
+### Create final diff
+
+In the workspace, create a diff by running: `git diff --cached --no-prefix --binary`
+
+### Saving a changeset spec
+
+`src` adds the produced diff to the local cache so that re-executing the same steps in the same repository can be skipped if the base branch has not changed.
+
+`src` then creates a changeset spec from:
+
+- The diff
+- The `changesetTemplate`, and
+- Information about the repository in which the changes have been made (the name and ID of the repository, the revision of its base branch)
+
+A changeset spec is a description of what the changeset should look like.
+
+## Importing changesets
+
+If the batch spec contains [`importChangesets`](/batch-changes/batch-spec-yaml-reference#importchangesets), then `src` goes through the list of `importChangesets`, and for each entry it:
+
+- Resolves the repository name, trying to get an ID, base branch, and revision for the given repository name
+- Parses the `externalIDs`, checking that they're valid strings or numbers
+- For each external ID, it saves a changeset spec that describes that a changeset with the given external ID in the given repository should be imported and tracked in the batch change
+
+## Sending changeset specs
+
+The previous two steps, [Executing steps](#executing-steps) and [Importing changesets](#importing-changesets), can produce changeset specs, each one describing either a changeset to create or to import. These changeset specs are now uploaded to the connected Sourcegraph instance, with one request per changeset spec.
+
+Each request yields an ID that uniquely identifies the changeset spec on the Sourcegraph instance. These IDs are used for the next step.
+
+## Sending the batch spec
+
+The IDs of the changeset specs that were created in the previous step, [Sending changeset specs](#sending-changeset-specs), are collected into a list and used for the next request with which `src` uploads the batch spec to the connected Sourcegraph instance.
+
+`src` creates the batch spec on the Sourcegraph instance, together with the changeset spec IDs, so that the batch spec fully describes the desired state of a batch change: its name, its description, and which changesets should be created or imported from which repository on which code host.
+
+That request yields an ID uniquely identifying this expanded batch spec version.
+
+## Preview or apply the batch spec
+
+If `src batch apply` was used, then the ID of the batch change is used to send another request to the Sourcegraph instance to apply the batch spec.
+
+If `src batch preview` was used to execute and create the batch spec, then a URL is printed, pointing to a preview page on the Sourcegraph instance, on which you can see what would happen if you were to apply the batch spec.
+
+### Halt execution
+
+If you encounter an error while running the `src batch preview` command, there is a fail-fast mode that halts the batch change execution immediately. To implement this, you can add a `-fail-fast` flag to the `src batch preview` and `src batch apply` commands. Once added, your execution should immediately halt on the first error instead of continuing with other repositories. This streamlines the iteration loop for users building a batch change who want to identify errors quickly.
diff --git a/docs/batch-changes/index.mdx b/docs/batch-changes/index.mdx
new file mode 100644
index 000000000..77302c1c0
--- /dev/null
+++ b/docs/batch-changes/index.mdx
@@ -0,0 +1,86 @@
+# Batch Changes
+
+
+ Supported on [Enterprise](/pricing/enterprise) plans.
+
+ Currently available via the Web app.
+
+
+
+This section is about Batch Changes, which helps you automate and ship large-scale code changes across many repositories and code hosts.
+
+Batch Changes helps you ship large-scale code changes across many repositories and code hosts. You can create pull requests on all affected repositories, and it tracks their progress until they're all merged. You can also preview the changes and update them at any time.
+
+
+
+
+
+## Get Started
+
+
+
+
+
+
+
+
+## Key Concepts
+
+As you learn about Batch Changes, it's helpful to understand the following terms:
+
+| **Term** | **Description** |
+| ---------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| **batch-change** | A group of related changes to code, along with a title and description |
+| **batch-spec** | A YAML file that defines a batch change, including target repositories, commands to execute, and templates for changesets and commits. It represents your high-level intent, like "linting files in repositories with a `package.json` file" |
+| **changesets** | Refers to associated pull requests, merge requests, or any reviewable code segments linked to a batch change |
+| **published-changeset** | A **published changeset** is a commit, branch, and changeset that has been created on the code host. An **unpublished changeset** is a preview visible in the batch change but not yet existing on the code host |
+| **spec** | A spec is a record of intent for batch changes or changesets. It guides the system to align the actual outcomes with your specified intent continuously |
+| **changeset-spec** | A batch change has many **changeset specs**, which are produced by executing the batch spec (i.e., running the commands on each selected repository) and then using its changeset template to produce a list of changesets, including the diffs, commit messages, changeset title, and changeset body |
+| **batch-changes-controller** | The **batch change controller** reconciles the actual state of the batch change's changesets on the code host to match your desired intent (as described in the changeset specs) |
+
+## Create a Batch Change
+
+To create a batch change, use [Code Search](/code-search) to run a [search query](/code-search/queries) to find all occurrences of code to change and make every change with a single declarative spec file.
+
+A batch change then tracks all of its changesets (a generic term for pull requests or merge requests) for updates to:
+
+- **Status**: Open, merged, or closed
+- **Checks**: Passed (green), failed (red), or pending (yellow)
+- **Review status**: Approved, changes requested, pending, or other statuses (depending on your code host or code review tool)
+
+
+
+You can see the overall trend of a batch change in the burndown chart, which shows the proportion of changesets that have been merged over time since the batch change was created.
+
+
+
+You can also [create a batch change on a monorepo](/batch-changes/creating-changesets-per-project-in-monorepos) by specifying which projects to run the script on. A batch change can also be used to track and manage manually created changesets.
+
+## Supported code hosts and changeset types
+
+A single batch change can span many repositories and many code hosts. The generic term **changeset** is used to refer to any of the following:
+
+- GitHub pull requests
+- Bitbucket Server/Bitbucket Data Center and Bitbucket Data Center pull requests
+- GitLab merge requests
+- Bitbucket Cloud pull requests
+- Gerrit changes
+- Perforce changelists (Beta)
+- Phabricator diffs (not yet supported)
+
+## Common use cases
+
+You can use Batch Changes to make the following kinds of changes:
+
+- Upgrading dependencies
+- Patching critical security issues
+- Updating uses of deprecated library APIs
+- Cleaning up common problems using linters
+- Standardizing build, configuration, and deployment files
+
+## More Resources
+
+
+
+
+
diff --git a/docs/batch-changes/permissions-in-batch-changes.mdx b/docs/batch-changes/permissions-in-batch-changes.mdx
new file mode 100644
index 000000000..7f87b4944
--- /dev/null
+++ b/docs/batch-changes/permissions-in-batch-changes.mdx
@@ -0,0 +1,83 @@
+# Permissions in Batch Changes
+
+Learn how to control access permissions levels among your team members.
+
+You can customize access to a batch change and propose changes to repositories with varying permission levels. Other users can view the batch change's proposed changes to a repository if they can view it; otherwise, they can see only limited, non-identifying information about the change.
+
+## Permission levels for Batch Changes
+
+The permission levels for a batch change are:
+
+- **Read:** For people who need to view the batch change
+- **Admin:** For people who need full access to the batch change, including editing, closing, and deleting it
+
+To see the batch change's proposed changes on a repository, a user requires **read** access. Read or admin access to the batch change does not entitle a user to view all of the batch change's changesets.
+
+For more information, see [Repository permissions for Batch Changes](#repository-permissions-for-batch-changes).
+
+Site admins have admin permissions on all batch changes. However, other users can only have admin permissions on the batch changes they created and read access to other batch changes.
+
+### Namespaces
+
+Batch changes can be created under the user's or an organization's namespace. If the organization is configured to allow [member administration of organization-namespaced batch changes](/admin/config/batch_changes#enable-organization-members-to-administer), all organization users have admin access to the batch change if it is placed under an organization namespace.
+
+### Batch Change access for each permission level
+
+The following table shows the access for each permission level for a batch change.
+
+ **Batch change action** | **Read** | **Admin**
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------: | :-------:
+View batch change name and description (Also shows input branch name, create/update dates, and batch change status) | ✅ | ✅
+View burndown chart (aggregate changeset statuses over time) | ✅ | ✅
+View list of patches and changesets | ✅ | ✅
+View `diffstat` (aggregate count of added/changed/deleted lines) | ✅ | ✅
+View error messages (related to creating or syncing changesets) | ❌ | ✅
+Edit batch change name, description, and branch name | ❌ | ✅
+Update batch change patches (and changesets on code hosts) | ❌ | ✅
+Publish changesets to code host | ❌ | ✅
+Add/remove existing changesets to/from batch change | ❌ | ✅
+Refresh changeset statuses | ❌ | ✅
+Close batch change | ❌ | ✅
+Delete batch change | ❌ | ✅
+
+Authorization for all actions is also subject to [repository permissions](#repository-permissions-for-batch-changes).
+
+## Setting and viewing permissions in Batch Changes
+
+When you create a batch change, you get **admin-level** permissions on the batch change. All other users automatically get **read** permissions for that batch change.
+
+Granular permissions, assigning admin permissions to other users or organization members, and transferring batch change ownership are not yet supported.
+
+## Code host interactions in Batch Changes
+
+Interactions with a code host are made possible by [configuring credentials](/batch-changes/configuring-credentials) for that code host. When publishing a changeset to the code host with Batch Changes, the author and permissions will reflect the token used (e.g., on GitHub, the pull request author will be you).
+
+## Repository permissions for Batch Changes
+
+Your [repository permissions](/admin/permissions/) determine what information in a batch change you can view. You can only see a batch change's proposed changes to a repository if you have **read** access to that repository. Read or admin permissions on a batch change do not allow you to view all changes.
+
+When you view a batch change, you can see a list of **patches** and **changesets**. For each patch and changeset:
+
+- **If you have read access**, you can see the diff, changeset title, changeset link, detailed status, and other information
+- **If you do not have read access**, you can only see the status, last-updated date, and whether an error occurred (but not the error message). You can't see the diff, changeset title, changeset link, repository name, or any other information
+
+When you perform any batch change operation involving repositories or code host interaction, your current repository permissions are considered. Therefore for,
+
+- **Creating, updating, or publishing** a batch change or publishing a single changeset, you must have access to view the repositories, and the configured token must have the rights to push a branch and create the changesets on your code host (for example, the [```repo```](https://docs.github.com/en/developers/apps/building-oauth-apps/scopes-for-oauth-apps#available-scopes) scope gives a GitHub access token the rights to push to branches and open pull requests on GitHub repositories)
+- **Adding existing changesets** to a batch change: You must have read access to the existing changeset's repository
+- **Closing or deleting a batch change**, you must have access to do so on the code host. If you do not have access, the changeset will remain in its current state. A user with repository permissions for the remaining changesets can view them and manually close them
+
+Your repository permissions can change at any time:
+
+- If you've already published a changeset to a repository you no longer have access to, you won't be able to view its details or update it in your batch change. The changeset on the code host will remain in its current state. A user with permission to access the changeset on the code host will need to manage or close it manually. When possible, you'll be informed of this when updating a batch change that contains changesets you've lost access to
+- You need access to all repositories mentioned in a batch change plan to use it when updating a batch change
+
+If you are not permitted to view a repository on Sourcegraph, you won't be able to perform any operations on it, even if you are authorized on the code host.
+
+## Disabling Batch Changes
+
+A site admin can disable Batch Changes for a Sourcegraph instance by setting the [site configuration](/admin/config/site_config) property `"batch-changes.enabled"` to `false`.
+
+## Disabling Batch Changes for non-site-admin users
+
+A site admin can disable batch changes for regular users by setting the [site configuration](/admin/config/site_config) property `"batch-changes.restrictToAdmins"` to `true`.
diff --git a/docs/batch-changes/publishing-changesets.mdx b/docs/batch-changes/publishing-changesets.mdx
new file mode 100644
index 000000000..699647671
--- /dev/null
+++ b/docs/batch-changes/publishing-changesets.mdx
@@ -0,0 +1,196 @@
+# Publishing changesets to the code host
+
+Learn how to publish changesets to the code host.
+
+After you've [created a batch change](/batch-changes/create-a-batch-change) with the `published` field set to `false` or omitted in its batch spec, you can see a preview of the changesets (e.g., GitHub pull requests) that will be created on the code host once they're published:
+
+
+
+To create these changesets on the code hosts, you need to publish them.
+
+## Requirements
+
+To publish a changeset, you need:
+
+- [Admin permissions for the batch change](/batch-changes/permissions-in-batch-changes#permission-levels-for-batch-changes)
+- Write access to the changeset's repository (on the code host)
+- A [personal access token](/batch-changes/configuring-credentials#personal-access-tokens) or a [global service account token](/batch-changes/configuring-credentials#global-service-account-tokens) configured for the code host
+
+For more information, see [Code host interactions in Batch Changes](/batch-changes/permissions-in-batch-changes#code-host-interactions-in-batch-changes).
+
+## Publishing changesets
+
+You can publish changesets either by:
+
+- [Setting the `published` field in the batch spec](#within-the-spec), or
+- [Through the Sourcegraph UI](#within-the-ui)
+
+Each of these options has its pros and cons. Here is a summary:
+
+
+
+
+ Workflow
+ Pros
+ Cons
+
+
+
+
+
+
+ Setting published in the batch spec
+
+
+
+
+
+ If you reuse your batch spec or share it with others, the new batch changes will have the same changesets published
+
+
+ Easy to publish changesets in large batch changes based on specific criteria, such as the organization each repository is in
+
+
+
+
+
+
+ Requires the batch spec to be re-applied before changes take effect, which can be slower
+
+
+ Requires more context switching from the UI back to the spec file when previewing diffs
+
+
+
+
+
+
+
+ Publishing from the UI
+
+
+
+
+
+ Rapid feedback loop: you can check a specific diff and immediately publish it
+
+
+ Easy to publish random changesets without having to specify rules in the published field
+
+
+
+
+
+
+ Publication state isn't reproducible across multiple batch changes
+
+
+
+
+
+
+
+We currently do not support changing the state of a `published` changeset to `draft` or `unpublished`. Once a changeset is published, it can't be `unpublished` or changed to a `draft`.
+
+## Within the spec
+
+When you're ready, you can publish all of a batch change's changesets by changing the `published: false` in your batch spec to `true`:
+
+```yaml
+name: hello-world
+
+# ...
+
+changesetTemplate:
+ # ...
+ published: true
+```
+
+Then run the `src batch preview` command again or `src batch apply` to publish the changesets immediately. Publishing a changeset will:
+
+- Create a commit with the changes from the patches for that repository
+- Push a branch using the branch name you defined in the batch spec with [`changesetTemplate.branch`](/batch-changes/batch-spec-yaml-reference#changesettemplatebranch). If [forks are enabled](/admin/config/batch_changes#forks), then the branch will be pushed to a fork of the repository
+- Create a changeset (e.g., GitHub pull request) on the code host for review and merging
+
+When pushing the branch Sourcegraph will use a **force push**. Make sure that the branch names are unused otherwise, previous commits will be overwritten.
+
+In the Sourcegraph web UI, you'll see a progress indicator for the changesets that are being published and any possible errors:
+
+
+
+If you run into any errors, you can retry publishing after you've resolved the problem by running `src batch apply` again. You don't need to worry about multiple branches or pull requests being created when you retry because the same branch name will be used, and the commit will be overwritten.
+
+### Publishing a subset of changesets
+
+Instead of publishing all changesets at the same time, you can also publish some of a batch change's changesets by specifying which changesets you want to publish in the `published` field:
+
+```yaml
+# ...
+
+changesetTemplate:
+ # ...
+ published:
+ - github.com/sourcegraph/src-cli: true
+ - github.com/sourcegraph/*: true
+ - github.com/sourcegraph-private/*: false
+```
+
+See [`changesetTemplate.published`](/batch-changes/batch-spec-yaml-reference#changesettemplatepublished) in the batch spec reference for more details.
+
+### Publishing changesets as drafts
+
+Some code hosts (GitHub, GitLab) allow publishing changesets as **drafts**. To publish a changeset as a draft, use the `'draft`' value in the `published` field:
+
+```yaml
+# ...
+
+changesetTemplate:
+ # ...
+ published: draft
+```
+
+See [`changesetTemplate.published`](/batch-changes/batch-spec-yaml-reference#changesettemplatepublished) in the batch spec reference for more details.
+
+### Fully publishing draft changesets
+
+If you have previously published changesets as drafts on code hosts by setting `published` to `draft`, you then fully publish them and take them out of draft mode by updating the `published` to `true`.
+
+See [`changesetTemplate.published`](/batch-changes/batch-spec-yaml-reference#changesettemplatepublished) in the batch spec reference for more details.
+
+## Within the UI
+
+ This feature is supported in Sourcegraph versions 3.30 or more.
+
+To publish from the Sourcegraph UI, you'll need to remove (or omit) the `published` field from your batch spec. When you apply a batch change without an explicit `published` field, all changesets are left unpublished.
+
+### From the preview
+
+ This feature is supported in Sourcegraph versions 3.31 or more.
+
+When you run `src batch preview` against your batch spec and open the preview link, you'll see the current status of each of your changesets, as well as a preview of the actions that will be performed when you apply:
+
+
+
+For any changesets that are currently unpublished or only published as drafts, you can select the checkbox and choose an action from the dropdown menu to indicate what publication state you want to set the changesets to apply on:
+
+
+
+Certain types of changeset cannot be published from the UI and will have their checkbox disabled. Not sure why your changeset is disabled? Check the [FAQ](/batch-changes/faq#why-is-the-checkbox-on-my-changeset-disabled-when-previewing-a-batch-change).
+
+Once the preview actions look good, click **Apply** to publish the changesets. You should see an alert appear indicating that the publication states actions have been updated, and the changesets' "Actions" will reflect the new publication states:
+
+
+
+### From an open batch change
+
+Once applied, you can select the changesets you want to publish from the batch change page and publish them using the [publish bulk operation](/batch-changes/bulk-operations-on-changesets), as demonstrated in this video:
+
+
+
+
+
+## Specifying Git commit details
+
+Regardless of how you publish your changesets, the commit created and pushed to the branch uses the details specified in the batch spec's `changesetTemplate` field.
+
+See [`changesetTemplate.commit`](/batch-changes/batch-spec-yaml-reference#changesettemplatecommit) for details on how to set the author and the commit message.
diff --git a/docs/batch-changes/quickstart.mdx b/docs/batch-changes/quickstart.mdx
new file mode 100644
index 000000000..27c2b5cba
--- /dev/null
+++ b/docs/batch-changes/quickstart.mdx
@@ -0,0 +1,153 @@
+# Quickstart
+
+In this quickstart guide, you'll learn how to get started and create your first Batch Change in a few minutes. Here, you'll create a Sourcegraph batch change that appends text to `README` files in all of your repositories.
+
+## Requirements
+
+- A Sourcegraph instance with some repositories in it
+- A local environment matching [requirements](/batch-changes/requirements) to create batch changes with the Sourcegraph CLI.
+
+## Install the Sourcegraph CLI
+
+To create Batch Changes, first [install the Sourcegraph CLI](/cli/) (`src`).
+
+Next, install the version of `src` that is compatible with your Sourcegraph instance. To do so, run the following commands in your terminal:
+
+### For macOS
+
+```bash
+curl -L https:///.api/src-cli/src_darwin_amd64 -o /usr/local/bin/src
+chmod +x /usr/local/bin/src
+```
+
+### For Linux
+
+```bash
+curl -L https:///.api/src-cli/src_linux_amd64 -o /usr/local/bin/src
+chmod +x /usr/local/bin/src
+```
+
+Authenticate `src` with your Sourcegraph instance by running `src login` and following the instructions:
+
+```bash
+src login https://
+```
+
+
+
+Once `src login` reports that you're authenticated, you're ready for the next step.
+
+## Write a batch spec
+
+A **batch spec** is a YAML file that defines a batch change. It specifies which changes should be made in which repositories. See the [batch spec YAML reference](/batch-changes/batch-spec-yaml-reference) for details.
+
+Save the following batch spec as `hello-world.batch.yaml`:
+
+```yaml
+version: 2
+name: hello-world
+description: Add Hello World to READMEs
+
+# Find all repositories that contain a README file.
+on:
+ - repositoriesMatchingQuery: file:README
+
+# In each repository, run this command. Each repository's resulting diff is captured.
+steps:
+ - run: IFS=$'\n'; echo Hello World | tee -a $(find -name README)
+ container: alpine:3
+
+# Describe the changeset (e.g., GitHub pull request) you want for each repository.
+changesetTemplate:
+ title: Hello World
+ body: My first batch change!
+ branch: hello-world # Push the commit to this branch.
+ commit:
+ message: Append Hello World to all README files
+```
+
+The commits you create here will use the `git config` values for `user.name` and `user.email` from your local environment or `batch-changes@sourcegraph.com` if no user is set. Alternatively, you can also [specify an `author`](/batch-changes/batch-spec-yaml-reference#changesettemplatecommitauthor) in this spec.
+
+## Create the batch change
+
+Let's see what changes will be made. Until now, no commits, branches, or changesets will be published (i.e., the repositories on your code host will be untouched).
+
+In your terminal, run the following command:
+
+```bash
+src batch preview -f hello-world.batch.yaml
+```
+
+Wait for it to run and compute the changes for each repository.
+
+
+
+When it's done, follow the link to the **preview page** to see all the changes that will be made.
+
+
+
+Make sure the changes look right.
+
+
+
+Click **Apply** to create the batch change. You should see something like this:
+
+
+
+You've created your first Batch Change! 🎉
+
+The batch change's **changesets** still need to be published, which means they exist only on Sourcegraph and have yet to be pushed to your code host. This is for your benefit, as you probably want to refrain from publishing these **Hello World** changesets to actively developed repositories. In the following steps, we'll prepare to publish a single test changeset.
+
+## Publish a changeset
+
+So far, nothing has been created on your code hosts. To do so, you must tell Sourcegraph to **publish a changeset**.
+
+Publishing causes commits, branches, and pull/merge requests to be written to your code host.
+
+### Configure code host credentials
+
+Batch Changes needs permission to publish changesets on your behalf. To grant permission, you must [add a personal access token](/batch-changes/configuring-credentials#personal-access-tokens) for each code host on which you publish changesets.
+
+This is a one-time operation and is not required for every batch change. You can also ask the administrators of your Sourcegraph instance to [configure global credentials](/batch-changes/configuring-credentials#global-service-account-tokens) instead.
+
+### (Optional) Modify the batch spec to only target a specific repository
+
+Before publishing, you might want to change the `repositoriesMatchingQuery` in `hello-world.batch.yaml` to target only a single test repository that you could open a pull request/merge request on, such as one you own. For example:
+
+```yaml
+# Find all repositories that contain a README file and whose name matches our test repo.
+on:
+ - repositoriesMatchingQuery: file:README repo:sourcegraph-testing/batch-changes-test-repo
+```
+
+With your updated batch spec, re-run the preview command, `src batch preview -f hello-world.batch.yaml`. Once again, follow the link to the **preview page**. You should now see something like this:
+
+
+
+This time, you get a preview before any changes are applied, but now, you are **updating your existing changesets**. Now, all of the changesets listed will be **archived**, except for the one you're about to publish. Archiving will close the changesets on the code host, but leave them attached to your batch change for historical referencing.
+
+Once you are ready, click **Apply** again to apply the update to your batch change.
+
+### Publish to code host
+
+There are [multiple ways to publish a changeset](/batch-changes/publishing-changesets#publishing-changesets). Let's look at how to do so from the screen you are currently on.
+
+- Select the changeset you would like to publish (in our case, it's the only one).
+
+
+
+- Choose the **Publish changesets** action from the dropdown.
+
+
+
+Click **Publish changesets**. You'll be prompted to confirm. You can publish your changeset(s) as draft(s) if the code host supports it.
+
+
+
+- Click **Publish**, and wait for an alert to appear (it may take a couple of seconds). Once it's done, the page should update, and you should see something like this:
+
+
+
+Congratulations! You've published your first Batch Changes changeset! 🎉
+
+Feel free to customize your batch spec and experiment with making other changes. You can also read this section of docs to [explore more about Batch Changes](/batch-changes/).
diff --git a/docs/batch-changes/rebasing-changesets.mdx b/docs/batch-changes/rebasing-changesets.mdx
new file mode 100644
index 000000000..ed2c38446
--- /dev/null
+++ b/docs/batch-changes/rebasing-changesets.mdx
@@ -0,0 +1,36 @@
+# Rebasing changesets
+
+Learn how to rebase your existing changesets.
+
+This feature is supported for Sourcegraph versions 6.2 or more.
+
+If your codehost requires changesets to be up to date with the main branch, you can use the rebase functionality of the Web UI to update the changesets.
+
+Rebasing does not resolve merge conflicts.
+
+## Requirements
+
+- Sourcegraph instance with repositories in it. See the [Quickstart](/#quick-install) guide on how to set up a Sourcegraph instance
+- A [global service account token](/batch-changes/configuring-credentials#global-service-account-tokens) for Batch Changes (**a personal access token cannot currently be used for importing changesets**)
+
+## Select changesets to rebase
+
+After navigating to the changesets of your batch change, select one or more **published** changesets to rebase. You can only rebase changesets after they have been published to the codehost.
+
+
+
+If a changeset is already up to date with the main branch, rebasing will result in no changes.
+
+## Start the rebase bulk operation
+
+With all applicable changesets selected, click the **Select action** button, and then select **Rebase changesets**.
+
+
+
+Confirm the popup to start the rebase bulk operation.
+
+
+
+You can see the progress of the rebase operation in the **Bulk Actions** tab.
+
+
diff --git a/docs/batch-changes/reexecuting-batch-specs-multiple-times.mdx b/docs/batch-changes/reexecuting-batch-specs-multiple-times.mdx
new file mode 100644
index 000000000..338fc2b1c
--- /dev/null
+++ b/docs/batch-changes/reexecuting-batch-specs-multiple-times.mdx
@@ -0,0 +1,32 @@
+# Re-executing Batch Specs Multiple Times
+
+Learn what happens when you need to re-execute batch specs multiple times via the Sourcegraph CLI `src` command.
+
+## Idempotency as goal
+
+One goal behind the [design of Batch Changes](/batch-changes/design) and the `src batch [apply|preview]` commands in the [Sourcegraph CLI](/cli/) is **idempotency**.
+
+Re-applying the same batch spec produces the same batch change and changesets.
+
+In practical terms, a user should be able to run `src batch apply -f my.batch.yaml` multiple times, and if `my.batch.yaml` didn't change, the batch change shouldn't change.
+
+## Exceptions
+
+That can only work if the inputs to the batch spec stay the same, too.
+
+Since a batch spec's [`on.repositoriesMatchingQuery`](/batch-changes/batch-spec-yaml-reference#onrepositoriesmatchingquery) uses Sourcegraph's search functionality to **dynamically** produce a list of repositories in which to execute the [`steps`](/batch-changes/batch-spec-yaml-reference#steps), the list of repositories might change between executions of `src batch apply`.
+
+If that's the case, the `steps` need to be re-executed in any newly found repositories. Changesets in repositories that are not found anymore will be closed and archived in the batch change (see [Updating a batch change](/batch-changes/update-a-batch-change) for more details). In unchanged repositories, [Sourcegraph CLI](/cli/) tries to use cached results to avoid re-executing the `steps`.
+
+## Local caching
+
+Whenever [Sourcegraph CLI](/cli/) re-executes the same batch spec, it checks a **local cache** to see if it already executed the same [`steps`](/batch-changes/batch-spec-yaml-reference#steps) in a given repository.
+
+Whether a cached result can be used is dependent on multiple things:
+
+- The repository's default branch's revision didn't change (because if new commits have been pushed to the repository, re-executing the `steps` might lead to different results)
+- The `steps` themselves didn't change, including all their inputs, such as [`steps.env`](/batch-changes/batch-spec-yaml-reference#environmentarray), and the `steps.run` field (which can change between executions if it uses [templating](/batch-changes/batch-spec-templating) and is dynamically built from search results)
+
+That also means that [Sourcegraph CLI](/cli/) can use cached results when re-executing a **changed batch spec**, as long as the changes didn't affect the `steps` and the results they produce.
+
+For example, if only the [`changesetTemplate.title`](/batch-changes/batch-spec-yaml-reference#changesettemplatetitle) field has been changed, cached results can be used, since that field doesn't have any influence on the `steps` and their results.
diff --git a/docs/batch-changes/refactor-go-comby.mdx b/docs/batch-changes/refactor-go-comby.mdx
new file mode 100644
index 000000000..e3a17fa62
--- /dev/null
+++ b/docs/batch-changes/refactor-go-comby.mdx
@@ -0,0 +1,72 @@
+# Refactor Go Code using Comby
+
+This guide explains how to use Comby to refactor Go code in a batch change.
+
+To refactor Go code using Comby in a batch change, use Sourcegraph's [structural search](/code-search/types/structural) and [Comby](https://comby.dev/) to rewrite Go statements.
+
+From:
+
+```go
+fmt.Sprintf("%d", number)
+```
+
+To:
+
+```go
+strconv.Itoa(number)
+```
+
+The statements are semantically equivalent, but the latter is more precise.
+
+Since the replacements could require importing the `strconv` package, it uses [`goimports`](https://godoc.org/golang.org/x/tools/cmd/goimports) to update the list of imported packages in all `*.go` files.
+
+## Prerequisites
+
+It's recommended to use the latest version of Sourcegraph when working with Batch Changes.
+
+Before you start, it's better to read the following docs:
+
+- [Batch Changes Quickstart](/batch-changes/quickstart)
+- [How to create and run a Batch Spec?](/batch-changes/create-a-batch-change)
+
+## Create the batch spec
+
+Save the following batch spec YAML as `sprintf-to-itoa.batch.yaml`:
+
+```yaml
+name: sprintf-to-itoa
+description: |
+ This batch change uses [Comby](https://comby.dev) to replace `fmt.Sprintf` calls
+ in Go code with the equivalent but clearer `strconv.Iota` call.
+
+on:
+ - repositoriesMatchingQuery: lang:go fmt.Sprintf("%d", :[v]) patterntype:structural
+
+steps:
+ - run: comby -in-place 'fmt.Sprintf("%d", :[v])' 'strconv.Itoa(:[v])' .go -matcher .go -exclude-dir .,vendor
+ container: comby/comby
+ - run: goimports -w $(find . -type f -name '*.go' -not -path "./vendor/*")
+ container: unibeautify/goimports
+
+changesetTemplate:
+ title: Replace fmt.Sprintf with equivalent strconv.Itoa
+ body: This batch change replaces `fmt.Sprintf` with `strconv.Itoa`
+ branch: batch-changes/sprintf-to-itoa
+ commit:
+ message: Replacing fmt.Sprintf with strconv.Iota
+ published: false
+```
+
+## Create the batch change
+
+- In your terminal, run the following command:
+
+```shell
+src batch preview -f sprintf-to-itoa.batch.yaml
+```
+
+- Wait for it to run and compute the changes for each repository
+- Open the preview URL that the command printed out
+- Examine the preview. Confirm that the changesets are the ones you intended to track. If not, edit the batch spec and then re-run the command above
+- Click the **Apply** button to create the batch change
+- Feel free to then publish the changesets (i.e., create pull requests and merge requests) by [modifying the `published` attribute in the batch spec](/batch-changes/batch-spec-yaml-reference#changesettemplatepublished) and re-running the `src batch preview` command
diff --git a/docs/batch-changes/requirements.mdx b/docs/batch-changes/requirements.mdx
new file mode 100644
index 000000000..e9fd1150b
--- /dev/null
+++ b/docs/batch-changes/requirements.mdx
@@ -0,0 +1,59 @@
+# Requirements
+
+This document describes the requirements for running Batch Changes.
+
+Batch Changes has specific requirements for running on the Sourcegraph server version, its connected code hosts, and developer environments.
+
+## Sourcegraph Server
+
+While the latest version of the Sourcegraph server is always recommended, **version 3.22** is the minimum version required to run Batch Changes.
+
+## Code hosts
+
+Batch Changes is compatible with the following code hosts:
+
+* Github.com
+* GitHub Enterprise 2.20 and later
+* GitLab 12.7 and later (burndown charts are only supported with 13.2 and later)
+* Bitbucket Server 5.7 and later, Bitbucket Data Center 7.6 and later
+* Bitbucket Cloud (bitbucket.org)
+* Azure DevOps Services
+* Gerrit 3.1.7 and later
+* Perforce (Beta)
+
+For Sourcegraph to interface with these, admins and users must first [configure credentials](/batch-changes/configuring-credentials) for each relevant code host.
+
+Currently, for customers on an instance of GitHub Enterprise Cloud that uses [SSH certificate authorities](https://docs.github.com/en/enterprise-cloud@latest/organizations/managing-git-access-to-your-organizations-repositories/about-ssh-certificate-authorities) and requires SSH certificates to authenticate, we are unable to provide a means of authenticating Batch Changes to your code host.
+
+### Batch Changes effect on code host rate limits
+
+For each changeset, Sourcegraph periodically makes API requests to its code host to update its status. Sourcegraph intelligently schedules these requests to avoid overwhelming the code host's rate limits. In environments with many open batch changes, this can result in outdated changesets as they await their turn in the update queue.
+
+It's **highly recommended** to enable the webhooks on code hosts where batch change changesets are created. Doing so removes the lag time in updating the status of a changeset and reduces the API requests associated with large batch changes. We have instructions for each supported code host:
+
+* [GitHub](/admin/code_hosts/github#webhooks)
+* [Bitbucket/Bitbucket Data Center](/admin/code_hosts/bitbucket_server#webhooks)
+* [GitLab](/admin/code_hosts/gitlab#webhooks)
+
+If you are unable to enable webhooks, you can disable the warning Sourcegraph displays when viewing batch changes by setting the `batchChanges.disableWebhooksWarning` [site configuration setting](/admin/config/site_config) to `true`.
+
+### Batch Changes effect on CI systems
+
+Batch Changes makes it possible to create changesets in tens, hundreds, or thousands of repositories. Opening and updating these changesets may trigger many checks or continuous integration jobs and, in turn, may stress the resources allotted to these systems. Batch Changes supports [partial publishing for changesets](/batch-changes/publishing-changesets#publishing-a-subset-of-changesets) to help mitigate these issues. You may also consider publishing your changesets at times of low activity.
+
+## Requirements for batch change creators
+
+* Latest version of the [Sourcegraph CLI `src`](/cli/)
+ * `src` is supported on Linux or Intel macOS
+ * ARM (for example, M1) macOS support is in Beta
+* Docker
+ * macOS:
+ * If using Docker 3.x, ensure your version is at least 3.0.1
+ * In 3.x versions, the gRPC setting must be disabled
+ * You must be able to run `docker` commands as the same user `src` is running. On Linux, this may require either `sudo` or adding your user to the `docker` group
+ * Note: podman is not supported ([#855](https://github.com/sourcegraph/src-cli/issues/855))
+* Disk space
+ * The required disk space is equal to each batch change's largest repository plus any dependencies or requirements specified by the run steps, times the number of parallel jobs
+ * The default number of parallel jobs defaults to the number of CPU cores on the system running src-cli. This setting can be configured with the [`-j` flag when running `src batch apply` or `src batch preview`](/cli/references/batch/apply)
+ * Disk space is also required for the generated patches. This requirement is cumulative across each repository altered
+* Git
diff --git a/docs/batch_changes/tutorials/search_and_replace_specific_terms.mdx b/docs/batch-changes/search-and-replace-specific-terms.mdx
similarity index 53%
rename from docs/batch_changes/tutorials/search_and_replace_specific_terms.mdx
rename to docs/batch-changes/search-and-replace-specific-terms.mdx
index 135ccc33d..78647b430 100644
--- a/docs/batch_changes/tutorials/search_and_replace_specific_terms.mdx
+++ b/docs/batch-changes/search-and-replace-specific-terms.mdx
@@ -1,25 +1,25 @@
-# Search and replace specific terms
+# Search and Replace Specific Terms
-Create a batch change that changes wording in every repository.
+Create a batch change that changes specific words in every repository.
-### Introduction
-
-This tutorial shows you how to create [a batch spec](/batch_changes/explanations/introduction_to_batch_changes#batch-spec) that replaces the words `whitelist` and `blacklist` with `allowlist` and `denylist` in every Markdown file across your entire code base.
+This example shows you how to create [a batch spec](/batch-changes/create-a-batch-change) that replaces the words `whitelist` and `blacklist` with `allowlist` and `denylist` in every Markdown file across your entire code base.
The batch spec can be easily changed to search and replace other terms in other file types.
-
+
+
+## Prerequisites
-### Prerequisites
+It's recommended to use the latest version of Sourcegraph when working with Batch Changes.
-We recommend using the latest version of Sourcegraph when working with Batch Changes and that you have a basic understanding of how to create batch specs and run them. See the following documents for more information:
+Before you start, it's better to read the following docs:
-1. ["Quickstart"](/batch_changes/quickstart)
-1. ["Introduction to Batch Changes"](/batch_changes/explanations/introduction_to_batch_changes)
+- [Batch Changes Quickstart](/batch-changes/quickstart)
+- [How to create and run a Batch Spec?](/batch-changes/create-a-batch-change)
-### Create the batch spec
+## Create the batch spec
Save the following batch spec YAML as `allowlist-denylist.batch.yaml`:
@@ -51,21 +51,30 @@ changesetTemplate:
published: false
```
-### Create the batch change
+## Create the batch change
+
+1. In your terminal, run the following command:
+
+```shell
+src batch preview -f use-allowlist-denylist-wording.batch.yaml
+```
+
+- Wait for it to run and compute the changes for each repository
-1. In your terminal, run this command:
+
- src batch preview -f use-allowlist-denylist-wording.batch.yaml
-1. Wait for it to run and compute the changes for each repository.
-
-1. Open the preview URL that the command printed out.
-
-1. Examine the preview. Confirm that the changes are what you intended. If not, edit your batch spec and then rerun the command above.
-
-1. Click the **Apply** button to create the batch change.
-1. Feel free to then publish the changesets (i.e. create pull requests and merge requests) by [modifying the `published` attribute in the batch spec](/batch_changes/references/batch_spec_yaml_reference#changesettemplate-published) and re-running the `src batch preview` command.
+- Open the preview URL that the command printed out
-### Using `ruplacer` to replace terms in multiple case styles
+
+
+- Examine the preview. Confirm that the changes are what you intended. If not, edit your batch spec and then re-run the command above
+
+
+
+- Click the **Apply** button to create the batch change
+- Feel free to then publish the changesets (i.e., create pull requests and merge requests) by [modifying the `published` attribute in the batch spec](/batch-changes/batch-spec-yaml-reference#changesettemplatepublished) and re-running the `src batch preview` command
+
+## Using `ruplacer` to replace terms in multiple case styles
With [ruplacer](https://github.com/TankerHQ/ruplacer) we can easily search and replace terms in multiple case styles: `white_list`, `WhiteList`, `WHITE_LIST` etc.
@@ -83,9 +92,7 @@ steps:
container: keegancsmith/ruplacer
```
-Save the file and run the `src batch preview` command from above again to use `ruplacer` to replace variations of terms.
-
-Alternatively if you want to run it on all files:
+Save the file and run the `src batch preview` command from above again to use `ruplacer` to replace variations of terms. Alternatively if you want to run it on all files:
```yaml
steps:
diff --git a/docs/batch-changes/server-side.mdx b/docs/batch-changes/server-side.mdx
new file mode 100644
index 000000000..55418fcfa
--- /dev/null
+++ b/docs/batch-changes/server-side.mdx
@@ -0,0 +1,115 @@
+# Running Batch Changes Server Side
+
+Learn how to run Batch Changes server-side using executors and file mounts.
+
+Running Batch Changes server-side is in Experimental stage and comes with certains [limitations](#limitations).
+
+By default, Batch Changes uses a command line interface in your local environment to [compute diffs](/batch-changes/how-src-executes-a-batch-spec) and create changesets. This can be impractical for creating batch changes affecting hundreds or thousands of repositories, with large numbers of workspaces, or if the batch change steps require CPU, memory, or disk resources that are unavailable locally.
+
+Instead of computing Batch Changes locally using `src-cli`, you can offload this task to one or many remote server called an [executor](/admin/executors/deploy_executors). Executors are also required to enable code navigation [auto-indexing](/code-search/code-navigation/auto_indexing).
+
+This allows to:
+
+- Run large-scale batch changes that would be impractical to compute locally
+- Speed up batch change creation time by distributing batch change computing over several executors
+- Reduce the setup time required to onboard new users to Batch Changes
+
+## Setup
+
+This is a one-time process. Once a site-admin of the Sourcegraph instance sets up executors and enables running batch changes server-side, all users of the Sourcegraph instance can get started with no additional setup required.
+
+Make sure that [executors are deployed and are online](/admin/executors/deploy_executors).
+
+It's recommended to read [Getting started with running batch changes server-side](/batch-changes/server-side) for better understanding.
+
+## Limitations
+
+- Running batch changes server-side requires setting up executors. Executors are configured ready-to-use on Sourcegraph Cloud
+- Running batch changes server-side is limited to user namespaces
+- The newly introduced APIs for server-side are still experimental and will likely change
+- Executors can only be deployed using Terraform (AWS or GCP) or using pre-built binaries (see [deploying executors](/admin/executors/deploy_executors)).
+
+Running batch changes server-side has been tested to run a simple **45K changeset batch change**. Actual performance and setup requirements depend on the complexity of the batch change.
+
+### Note for Apple Silicon Mac users
+
+By default, docker on mac will build docker images for `linux/arm64`, which will result in errors when running server-side because executors provide `linux/amd64` hosts. If you're creating your own images to run in batch changes, this can be a problem. Use the `--platform linux/amd64` flag with `docker build` to build images compatible with the server-side host.
+
+## Using file mounts with server-side execution
+
+Running a batch spec server-side with file mounts is currently only supported with [Sourcegraph CLI](https://github.com/sourcegraph/src-cli).
+
+File [`mounts`](/batch-changes/batch-spec-yaml-reference#stepsmount) are a powerful way to run custom files without directly embedding the files in your batch spec.
+
+### Writing a batch spec
+
+In the following example, you have a Python script that appends "Hello World" to all `README` files.
+
+```python
+#!/usr/bin/env python3
+import os.path
+
+
+def main():
+ if os.path.exists('README'):
+ with open('README', 'a') as f:
+ f.write('\nHello World')
+
+
+if __name__ == "__main__":
+ main()
+```
+
+To use the Python script in your batch change, mount the script in a `step` using the [`mounts`](/batch-changes/batch-spec-yaml-reference#stepsmount) field. The following is an example of mounting
+the above Python script in a `step`.
+
+```yaml
+name: hello-world
+description: Add Hello World to READMEs
+
+# Find all repositories that contain a README file.
+on:
+ - repositoriesMatchingQuery: file:README
+
+# In each repository, run this command. Each repository's resulting diff is captured.
+steps:
+ - run: python /tmp/hello_appender.py
+ container: python:latest
+ mount:
+ - path: ./hello_appender.py
+ mountpoint: /tmp/hello_appender.py
+
+# Describe the changeset (e.g., GitHub pull request) you want for each repository.
+changesetTemplate:
+ title: Hello World
+ body: My first batch change!
+ branch: hello-world # Push the commit to this branch.
+ commit:
+ message: Append Hello World to all README files
+ published: false # Do not publish any changes to the code hosts yet
+```
+
+In this example, the Python script should live beside the batch spec file, as indicated by the `path`:
+
+```text
+.
+├── batch-spec.yml
+└── hello_appender.py
+```
+
+Note that a `container` appropriate for the mounted file has also been chosen for this step.
+
+### Running server-side
+
+After writing the batch spec, use the Sourcegraph CLI (`src`) command [`remote`](/cli/references/batch/remote) to execute the batch spec server-side.
+
+```shell
+src batch remote -f batch-spec.yml
+```
+
+Once successful, `src` provides a URL to the execution of the batch change.
+
+
+
+
+
diff --git a/docs/batch-changes/site-admin-configuration.mdx b/docs/batch-changes/site-admin-configuration.mdx
new file mode 100644
index 000000000..57ef2a0f2
--- /dev/null
+++ b/docs/batch-changes/site-admin-configuration.mdx
@@ -0,0 +1,25 @@
+# Site Admin Configuration for Batch Changes
+
+Learn what configuration permissions site admins have with Batch Changes.
+
+Using Batch Changes requires a [code host connection](/admin/external_services/) to a supported code host (currently GitHub, Bitbucket Server/Bitbucket Data Center, GitLab, and Bitbucket Cloud). Site admins can configure the following when setting and disabling Batch Changes:
+
+## Set up Batch Changes
+
+- [Configure which users have access to Batch Changes](/admin/access_control/batch_changes) (Beta): By default, all users can create and view batch changes, but only the batch change's author or a site admin can administer a given batch change
+ - Additionally, you can also [customize org settings](/admin/config/batch_changes#enable-organization-members-to-administer) to allow members of an organization to share administration privileges over batch changes created in that organization
+- (Optional) [Configure repository permissions](/admin/permissions/), that Batch Changes will follow
+- [Configure credentials](/batch-changes/configuring-credentials)
+- [Setup incoming webhooks](/admin/config/webhooks/incoming) to make sure changesets sync fast. Learn more about [Batch Changes effect on code host rate limits](/batch-changes/requirements#batch-changes-effect-on-code-host-rate-limits)
+- Configure any desired optional features, such as:
+ - [Rollout windows](/admin/config/batch_changes#rollout-windows), which control the rate at which Batch Changes will publish changesets on code hosts
+ - [Forks](/admin/config/batch_changes#forks), which push branches created by Batch Changes onto forks of the upstream repository instead of the repository itself
+ - [Outgoing webhooks](/admin/config/webhooks/outgoing), which publish events related to batch changes and changesets to enable deeper integrations with your other tools and systems
+ - [Auto-delete branch on merge/close](/admin/config/batch_changes#automatically-delete-branches-on-merge-close), which automatically deletes branches created by Batch Changes when changesets are merged or closed
+ - [Commit signing for GitHub](/admin/config/batch_changes#commit-signing-for-github), which signs commits created by Batch Changes via a GitHub App (Beta)
+ - [Batch spec library](/admin/config/batch_changes#batch-spec-library), which help your users write batch specs and follow best practices
+
+## Disable Batch Changes
+
+- [Disable Batch Changes](/batch-changes/permissions-in-batch-changes#disabling-batch-changes).
+- [Disable Batch Changes for non-site-admin users](/batch-changes/permissions-in-batch-changes#disabling-batch-changes-for-non-site-admin-users)
diff --git a/docs/batch-changes/tracking-existing-changesets.mdx b/docs/batch-changes/tracking-existing-changesets.mdx
new file mode 100644
index 000000000..4f5b726fd
--- /dev/null
+++ b/docs/batch-changes/tracking-existing-changesets.mdx
@@ -0,0 +1,45 @@
+# Tracking existing changesets
+
+Learn how to track your existing changesets.
+
+Batch Changes allow you not only to [publish changesets](/batch-changes/publishing-changesets) but also to **import and track changesets** that already exist on different code hosts. That allows you to get an overview of the status of multiple changesets, with the ability to filter and drill down into the details of a specific changeset. After you have successfully imported changesets, you can perform the following bulk actions:
+
+- Write comments on each of the imported changesets
+- Merge each of the imported changesets to main
+- Close each of the imported changesets
+
+
+
+## Requirements
+
+- Sourcegraph instance with repositories in it. See the [Quickstart](/#quick-install) guide on how to set up a Sourcegraph instance
+- A [global service account token](/batch-changes/configuring-credentials#global-service-account-tokens) for Batch Changes (**a personal access token cannot currently be used for importing changesets**)
+
+## Importing changesets into a batch change
+
+To track existing changesets in a batch change, you add them to the [batch spec](/batch-changes/create-a-batch-change#writing-a-batch-spec) under the `importChangesets` property and apply the batch spec.
+
+The following example batch spec tracks multiple existing changesets in different repositories on different code hosts:
+
+```yaml
+name: track-important-milestone
+description: Track all changesets related to our important milestone
+
+importChangesets:
+- repository: github.com/sourcegraph/sourcegraph
+ externalIDs: [15397, 15590, 15597, 15583, 15806, 15798]
+- repository: github.com/sourcegraph/src-cli
+ externalIDs: [378, 373, 374, 369, 368, 361, 380]
+- repository: bitbucket.sgdev.org/SOUR/vegeta
+ externalIDs: [8]
+- repository: gitlab.sgdev.org/sourcegraph/src-cli
+ externalIDs: [113, 119]
+```
+
+You can learn more about how to create a batch spec from our [creating a batch change](/batch-changes/create-a-batch-change) docs.
+
+You can combine the tracking of existing changesets and creating new ones by adding `importChangesets:` to your batch specs that have `on:`, `steps:` and `changesetTemplate:` properties.
+
+Once you've created the batch change, you'll see the existing changeset in the list of changesets. The batch change will track the changeset's status and include it in the overall batch change progress (in the same way as if the batch change had created it).
+
+
diff --git a/docs/batch_changes/references/troubleshooting.mdx b/docs/batch-changes/troubleshooting.mdx
similarity index 56%
rename from docs/batch_changes/references/troubleshooting.mdx
rename to docs/batch-changes/troubleshooting.mdx
index 3f324847a..c101b494e 100644
--- a/docs/batch_changes/references/troubleshooting.mdx
+++ b/docs/batch-changes/troubleshooting.mdx
@@ -1,12 +1,14 @@
# Troubleshooting
-This page is meant to help narrow down and eliminate problems when trying to execute a batch spec with `src batch [apply|preview]` or managing an already created batch change and its changesets.
+This docs helps you to troubleshoot and eliminate problems when trying to execute a batch spec with `src batch [apply|preview]` or managing an already created batch change and its changesets.
## Executing batch change steps
-Since `src batch [apply|preview]` execute a batch spec on the host machine on which it is executed (and not on the Sourcegraph instance), there are a lot of different possibilities that can cause it to fail: from missing dependencies to missing credentials when trying to connect ot the Sourcegraph instance.
+Since `src batch [apply|preview]` executes a batch spec on the host machine on which it is executed (and not on the Sourcegraph instance), there are a lot of different possibilities that can cause it to fail, from missing dependencies to missing credentials when trying to connect to the Sourcegraph instance.
-The following questions can be used to find out what's causing the problem and should ideally be answered with "yes".
+The following questions can be used to determine what's causing the problem.
+
+The answer to these questions should be **yes**.
### Is `src` connected to the right Sourcegraph instance?
@@ -18,15 +20,13 @@ src login https://sourcegraph.example.com
If `src` is correctly configured, then the output should look similar to the following:
-```
-
+```bash
✔️ Authenticated as my-username on https://sourcegraph.example.com
-
```
### Are dependencies installed?
-When executing batch specs `src` uses Docker and git. Make sure that those are installed and accessible to you on your machine.
+When executing batch specs, `src` uses Docker and Git. Make sure that those are installed and accessible to you on your machine.
To test whether `git` is installed and accessible, run the following:
@@ -36,17 +36,17 @@ git version
To test whether Docker is installed and configured correctly, run the following:
-```
+```bash
docker run hello-world
```
-That command will pull Docker's `hello-world` image and try to execute a container using that image. If it works, you should see a "Hello from Docker!" message telling you that your installation seems to work.
+The above command will pull Docker's `hello-world` image and try to execute a container using that image. If it works, you should see a **Hello from Docker!** message telling you your installation works.
### Does "Hello World" work?
-If executing your batch spec fails and you haven't tested Batch Changes with another batch spec before, it can help to run the "Hello World" batch change to nail down what the problem is.
+If executing your batch spec fails and you haven't tested Batch Changes with another batch spec before, it can help to run the **Hello World** batch change to identify the problem.
-Go through the "[Quickstart](/batch_changes/quickstart)" to run a batch change that adds "Hello World" to `README` files with the following batch spec:
+Go through the [Quickstart](/batch-changes/quickstart) to run a batch change that adds **Hello World** to `README` files with the following batch spec:
```yaml
name: hello-world
@@ -71,19 +71,15 @@ changesetTemplate:
published: false
```
-If even that doesn't work, then we can at least exclude the possibility that _only_ something with _your batch spec_ is wrong.
+If that doesn't work, you can exclude the possibility that only something with your batch spec is wrong.
### Does it work with a single repository? Five? Ten?
-Debugging large batch changes that make changes in hundreds of repositories is hard.
+Debugging large batch changes that make changes in hundreds of repositories is hard. To find out whether a problem is related to the **size** or **scope** of a batch change or what it's trying to achieve, try reducing the scope of your batch change.
-In order to find out whether a problem is related to the _size_ or _scope_ of a batch change or with _what_ it's trying to achieve, try reducing the scope of your batch change.
+You can do so by changing the [`on.repositoriesMatchingQuery`](/batch-changes/batch-spec-yaml-reference#onrepositoriesmatchingquery) to yield fewer results or by using a concrete list of repositories with [`on.repository`](/batch-changes/batch-spec-yaml-reference#onrepository).
-You can do so by changing the [`on.repositoriesMatchingQuery`](/batch_changes/references/batch_spec_yaml_reference#on-repositoriesmatchingquery) to yield less results or by using a concrete list of repositories with [`on.repository`](/batch_changes/references/batch_spec_yaml_reference#on-repository).
-
-For the former you can use Sourcegraph's [search filters](/code-search/queries#filters-all-searches).
-
-For example, this query will only yield repositories that have `github.com/my-org` in their name:
+For the former, you can use Sourcegraph's [search filters](/code-search/queries#filters-all-searches). For example, this query will only yield repositories that have `github.com/my-org` in their name:
```yaml
# [...]
@@ -108,15 +104,15 @@ on:
- repository: github.com/my-org/my-repo2
```
-Once you know that executing the batch spec works with one or more repositories, you can expand the scope back to its original form and hopefully nail down in which repository execution breaks.
+Once you know that executing the batch spec works with one or more repositories, you can expand the scope back to its original form and identify which repository execution breaks.
### Can you download a repository archive?
-> NOTE: Using Batch Changes with Windows Subsytem For Linux (WSL) will add [network latency](https://github.com/microsoft/WSL/issues/4901) that can cause timeouts.
+Using Batch Changes with Windows Subsystem For Linux (WSL) will add [network latency](https://github.com/microsoft/WSL/issues/4901) that can cause timeouts.
-If `src` is stuck in the "Initializing workspace" phase for a repository or fails to initialize the workspace, try to see whether you can download an archive of the repository manually on your command line with `curl`:
+If `src` is stuck in the **Initializing workspace** phase for a repository or fails to initialize the workspace, try to see whether you can download an archive of the repository manually on your command line with `curl`:
-```
+```bash
curl -L -v -X GET -H 'Accept: application/zip' \
-H "Authorization: token $SRC_ACCESS_TOKEN" \
"$SRC_ENDPOINT/github.com/my-org/my-repo@refs/heads/master/-/raw" \
@@ -125,7 +121,7 @@ curl -L -v -X GET -H 'Accept: application/zip' \
That command is equivalent to what `src` does under the hood when downloading an archive of `github.com/my-org/my-repo@master` to execute batch spec `steps`.
-If that fails, then that points to the Sourcegraph setup or infrastructure as a likely source of the problem, not `src`.
+If that fails, it points to the Sourcegraph setup or infrastructure as a likely source of the problem, not `src`.
### Can you manually execute the `steps.run` command in a container?
@@ -133,7 +129,7 @@ If executing the `steps.run` command fails, you can try to recreate whether exec
An approximation of what `src` does under the hood is the following command:
-```
+```bash
docker run --rm --init --workdir /work \
--mount type=bind,source=/unzipped-archive-locally,target=/work \
--mount type=bind,source=/tmp-script,target=/tmp-file-in-container \
@@ -144,23 +140,23 @@ Make sure that you put your `steps.run` command in `/tmp-script` (or any other l
### Does it work if you switch to using the workspace mode using Docker volumes?
-If executing the `steps` in the batch spec fails with a message that looks similar to this one (i.e. permission error)
+If executing the `steps` in the batch spec fails with a message that looks similar to this one (i.e., permission error).
-```
+```bash
/bin/sh: can't open '/tmp/tmp.IbdkiA': Permission denied
```
-or if you are in a locked-down environment, it's possible that Docker bind mounts won't work.
+Or if you are in a locked-down environment, it's possible that Docker bind mounts won't work.
Try using the `-workspace volume` flag (see [`src batch apply`](/cli/references/batch/apply#flags) for a list of all flags) to make `src` use Docker volumes instead:
-```
+```bash
src batch apply -workspace volume -f my-spec.yaml
# or:
src batch preview -workspace volume -f my-spec.yaml
```
-If you're using SELinux then neither workspace is fully supported. See [this issue](https://github.com/sourcegraph/src-cli/issues/570) for more details.
+If you're using SELinux, then neither workspace is fully supported. See [this issue](https://github.com/sourcegraph/src-cli/issues/570) for more details.
### Are the Docker images running as different users?
@@ -174,19 +170,21 @@ If not, please update to the latest version of [Docker Desktop](https://docs.doc
### Have you pruned your Docker Build Cache and restarted the Docker Daemon?
-If you're experiencing `src-cli` hanging at the "Determining Workspace Type" step of the Batch Change we have found that clearing the Docker build cache using `docker builder prune` and restarting the Docker Daemon has resolved the issue. Please contact support if this does not resolve your issue.
+If you're experiencing `src-cli` hanging at the **Determining Workspace Type** step of the Batch Change, then clearing the Docker build cache using `docker builder prune` and restarting the Docker Daemon will resolve the issue. [Please contact support](https://sourcegraph.com/contact) if this does not resolve your issue.
### Using Rancher Desktop or Colima?
If you encounter the error `docker: Error response from daemon: invalid mount config for type 'bind': bind source path does not exist`, try configuring the env var SRC_BATCH_TMP_DIR to reference an accessible directory.
For Colima:
-```
+
+```bash
export SRC_BATCH_TMP_DIR=/tmp/colima/batchchange
```
For Rancher Desktop:
-```
+
+```bash
export SRC_BATCH_TMP_DIR=/tmp/rancher-desktop/batchchange
```
@@ -194,17 +192,25 @@ export SRC_BATCH_TMP_DIR=/tmp/rancher-desktop/batchchange
### Do you have the right credentials?
-When publishing changesets fails, make sure that you have [configured credentials](/batch_changes/how-tos/configuring_credentials) with all of the required scopes and from an account with write access to the changeset's repository on the code host.
+When publishing changesets fails, make sure that you have [configured credentials](/batch-changes/configuring-credentials) with all of the required scopes and from an account with write access to the changeset's repository on the code host.
### Do you have email privacy enabled on GitHub?
-In case you encounter an error informing that your push was rejected due to the presence of an email address that isn't
+In case you encounter an error informing you that your push was rejected due to the presence of an email address that isn't
permitted to be public, there are a couple of possible solutions.
You can choose either to:
-1. Permit your email address to be public.
-2. Disable the feature **Block command line pushes that expose my email**.
+- Permit your email address to be public.
+- Disable the feature **Block command line pushes that expose my email**.
Instructions for both of these potential solutions can be found in
the [GitHub Email Settings](https://github.com/settings/emails).
+
+## Debug running batch changes server side
+
+When you run batch changes server-side, you can monitor various execution artifacts, like per-step logs, timing information, and output variables in a persisted, sharable UI.
+
+From the UI, you can start from a high-level perspective for the entire batch spec and then drill down to find the problem.
+
+Start by going to the workspace that failed. Then, you get an overview of all the steps that ran and the ones that failed. From there on, you can dive into logs, previous steps, outputs, and more.
diff --git a/docs/batch-changes/update-a-batch-change.mdx b/docs/batch-changes/update-a-batch-change.mdx
new file mode 100644
index 000000000..417c233bf
--- /dev/null
+++ b/docs/batch-changes/update-a-batch-change.mdx
@@ -0,0 +1,151 @@
+# Update a batch change
+
+Learn in detail about how to update your Batch Changes.
+
+Updating a batch change works by applying a batch spec to an **existing** batch change in the same namespace.
+
+Since batch changes are uniquely identified by their [`name`](/batch-changes/batch-spec-yaml-reference#name) and the namespace in which they were created, you can edit any other part of a batch spec and apply it again.
+
+When a new batch spec is applied to an existing batch change, the existing batch change is updated, and its changesets are updated to match the new desired state.
+
+## Requirements
+
+To update a changeset, you need:
+
+- [Admin permissions for the batch change](/batch-changes/permissions-in-batch-changes#permission-levels-for-batch-changes)
+- Write access to the changeset's repository (on the code host)
+- A [personal access token](/batch-changes/configuring-credentials#personal-access-tokens) or a [global service account token](/batch-changes/configuring-credentials#global-service-account-tokens) configured for the code host
+
+For more information, see [Code host interactions in Batch Changes](/batch-changes/permissions-in-batch-changes#code-host-interactions-in-batch-changes).
+
+## Preview and apply a new batch spec
+
+To update a batch change after previewing the changes, do the following:
+
+- Edit the [batch spec](/batch-changes/batch-spec-yaml-reference) with which you created the batch change to include the changes you want to make to the batch change. For example, change [the commit message in the `changesetTemplate`](/batch-changes/batch-spec-yaml-reference#changesettemplatecommitmessage), or add a new changeset id [to the importedChangesets](/batch-changes/references/batch-spec-yaml-reference#importchangesets), or [modify the repositoriesMatchingQuery](/batch-changes/references/batch-spec-yaml-reference#onrepositoriesmatchingquery) to return different search results
+- Use the [Sourcegraph CLI (`src`)](https://github.com/sourcegraph/src-cli) to execute and preview the batch spec
+
+```bash
+src batch preview -f YOUR_BATCH_SPEC.yaml
+
+```
+
+- Open the URL to preview the changes that will be made by applying the new batch spec
+- Click **Apply** to update the batch change.
+
+All changesets on your code host will be updated to the desired state shown in the preview.
+
+## Apply a new batch spec directly
+
+To update a batch change directly, without preview, do the following:
+
+- Edit the [batch spec](/batch-changes/batch-spec-yaml-reference) with which you created the batch change to include the changes you want to make to the batch change
+- Use the [Sourcegraph CLI (`src`)](https://github.com/sourcegraph/src-cli) to execute, upload, and the batch specs
+
+```bash
+src batch apply -f YOUR_BATCH_SPEC.yaml
+```
+
+The new batch spec will be applied directly, and the batch change and its changesets will be updated.
+
+## How batch change updates are processed
+
+Changes in the batch spec that affect the batch change, such as the [`description`](/batch-changes/batch-spec-yaml-reference#description), are applied directly when you apply the new batch spec.
+
+Changes affecting the changesets are processed asynchronously to update the desired state. Different fields are processed differently.
+
+Here are some examples:
+
+- When the diff or attributes that affect the resulting commit of a changeset directly (such as the [`changesetTemplate.commit.message`](/batch-changes/batch-spec-yaml-reference##changesettemplatecommitmessage) or the [`changesetTemplate.commit.author`](/batch-changes/batch-spec-yaml-reference#changesettemplatecommitauthor)) and the changeset has been published, the commit on the code host will be overwritten by a new commit that includes the updated diff
+- When the [`changesetTemplate.title`](/batch-changes/batch-spec-yaml-reference#changesettemplatetitle) or the [`changesetTemplate.body`](/batch-changes/batch-spec-yaml-reference#changesettemplatecommitauthor) are changed and the changeset has been published, the changeset on the code host will be updated accordingly
+- When the [`changesetTemplate.branch`](/batch-changes/batch-spec-yaml-reference#changesettemplatetitle) is changed after the changeset has been published on the code host, the existing changeset will be closed on the code host and the new one, with the new branch, will be created
+- When the batch spec is changed in such a way that no diff is produced in a repository in which the batch change has already created and published a changeset, the existing changeset will be closed on the code host and archived in the batch change
+- When the changeset has been published and the batch spec is changed in such a way that a commit on the code host will be overwritten, any commits that have been manually added to the changeset on the code host will be deleted
+
+See the [Batch Changes design](/batch-changes/design) docs for more information on the declarative nature of the Batch Changes system.
+
+## Updating a batch change to change its scope
+
+### Adding changesets
+
+You can gradually increase the number of repositories to which a batch change applies by modifying the entries in the [`on`](/batch-changes/batch-spec-yaml-reference#on) property of the batch spec.
+
+That means you can start with an `on` property like this in your batch spec:
+
+```yaml
+# [...]
+
+# Find all repositories that contain a README file, in the GitHub my-company org.
+on:
+ - repositoriesMatchingQuery: file:README repo:github.com/my-company
+
+# [...]
+```
+
+After you applied that batch spec, you can extend the scope of batch change by changing the `on` property to result in more repositories:
+
+```yaml
+# [...]
+
+# Find all repositories that contain a README file, in the GitHub my-company and my-company-ci org.
+on:
+ - repositoriesMatchingQuery: file:README repo:github.com/my-company|github.com/my-company-ci
+
+# [...]
+```
+
+The updated [`repo:` filter](/code-search/queries#filters-all-searches) in the search query will result in more repositories being returned by the search.
+
+If you apply the updated batch spec, new changesets will be created for each additional repository.
+
+### Removing changesets
+
+You can also decrease the number of repositories to which a batch change applies by modifying the entries in the [`on`](/batch-changes/batch-spec-yaml-reference#on) property.
+
+For example, let's say you started with this batch spec:
+
+```yaml
+# [...]
+
+# Find all repositories that contain a README file, in the GitHub my-company org.
+on:
+ - repositoriesMatchingQuery: file:README repo:github.com/my-company
+
+# [...]
+```
+
+Next, you applied it and [published changesets](/batch-changes/publishing-changesets) to multiple repositories. You can then modify your repo query only to target a subset of the repositories, for example, by adding the `repo` parameter:
+
+```yaml
+# [...]
+
+# Find all repositories that contain a README file, in the GitHub my-company org.
+on:
+ - repositoriesMatchingQuery: file:README repo:github.com/my-company/my-one-repository
+
+# [...]
+```
+
+When you apply this new batch spec, all the changesets published in repositories other than `my-one-repository` will be closed on the code host and archived from the batch change. Archived changesets are still associated with the batch change, but they will appear under the **Archived** tab on the batch change page instead:
+
+
+
+To fully remove the changesets from the batch change, you can detach them from this tab in the UI.
+
+Unpublished and [imported changesets](/batch-changes/tracking-existing-changesets) will skip archiving and immediately be detached from the batch change instead.
+
+#### Unarchiving changesets
+
+Archiving is not permanent, and published changesets can be unarchived by reversing the process that archived them. To unarchive a changeset, modify your `on` property once more to match the repository whose changeset you want to bring back. The easiest way to target an individual repository is by adding an [`on.repository`](/batch-changes/batch-spec-yaml-reference#onrepository) statement for it:
+
+```yaml
+# [...]
+
+# Find all repositories that contain a README file, in the GitHub my-company org.
+on:
+ - repositoriesMatchingQuery: file:README repo:github.com/my-company
+ # Also include one repository from outside my-company.
+ - repository: github.com/another-org/my-one-repository
+
+# [...]
+```
diff --git a/docs/versioned/5.2/batch_changes/tutorials/update_base_images_in_dockerfiles.mdx b/docs/batch-changes/update-base-images-in-dockerfiles.mdx
similarity index 59%
rename from docs/versioned/5.2/batch_changes/tutorials/update_base_images_in_dockerfiles.mdx
rename to docs/batch-changes/update-base-images-in-dockerfiles.mdx
index 313906e29..0dfdc6195 100644
--- a/docs/versioned/5.2/batch_changes/tutorials/update_base_images_in_dockerfiles.mdx
+++ b/docs/batch-changes/update-base-images-in-dockerfiles.mdx
@@ -1,30 +1,28 @@
-# Updating base images in Dockerfiles
+# Updating Base Images in Dockerfiles
-
-Create a batch change to update Dockerfiles in every one of your repositories.
+
+Create a batch change to update Dockerfiles in each repository.
-### Introduction
+In this example, Batch Changes will allow you to update the base images used in your Dockerfiles across many repositories in just a few commands. First you will create [a batch spec](/batch-changes/create-a-batch-change) that:
-Batch Changes allow us to update the base images used in our Dockerfiles, across many repositories, in just a few commands.
-
-This tutorial shows you how to create [a batch spec](/batch_changes/explanations/introduction_to_batch_changes#batch-spec) that
-
-1. finds `Dockerfile`s that make use of `google/dart:2.x` base images and
-2. changes those `Dockerfiles` to use `google/dart:2.10`
+- Finds `Dockerfile` that make use of `google/dart:2.x` base images, and
+- Changes those `Dockerfiles` to use `google/dart:2.10`
The batch spec and instructions here can [easily be adapted to update other base images](#updating-other-base-images).
-
+
+
+## Prerequisites
-### Prerequisites
+It's recommended to use the latest version of Sourcegraph when working with Batch Changes.
-We recommend using the latest version of Sourcegraph when working with Batch Changes and that you have a basic understanding of how to create batch specs and run them. See the following documents for more information:
+Before you start, it's better to read the following docs:
-1. ["Quickstart"](/batch_changes/quickstart)
-1. ["Introduction to Batch Changes"](/batch_changes/explanations/introduction_to_batch_changes)
+- [Batch Changes Quickstart](/batch-changes/quickstart)
+- [How to create and run a Batch Spec?](/batch-changes/create-a-batch-change)
-### Create the batch spec
+## Create the batch spec
Save the following batch spec YAML as `update-dart-base-images-2-10.batch.yaml`:
@@ -66,23 +64,32 @@ changesetTemplate:
published: false
```
-### Create the batch change
+## Create the batch change
+
+- In your terminal, run the following command:
+
+```shell
+src batch preview -f update-dart-base-images-2-10.batch.yaml
+```
+
+- Wait for it to run and compute the changes for each repository
+
+
+
+- Open the preview URL that the command printed out
+
+
+
+- Examine the preview. Confirm that the changesets are the ones you intended to track. If not, edit the batch spec and then re-run the command above
-1. In your terminal, run this command:
+
- src batch preview -f update-dart-base-images-2-10.batch.yaml
-1. Wait for it to run and compute the changes for each repository.
-
-1. Open the preview URL that the command printed out.
-
-1. Examine the preview. Confirm that the changesets are the ones you intended to track. If not, edit the batch spec and then rerun the command above.
-
-1. Click the **Apply** button to create the batch change.
-1. Feel free to then publish the changesets (i.e. create pull requests and merge requests) by [modifying the `published` attribute in the batch spec](/batch_changes/references/batch_spec_yaml_reference#changesettemplate-published) and re-running the `src batch preview` command.
+- Click the **Apply** button to create the batch change
+- Feel free to then publish the changesets (i.e., create pull requests and merge requests) by [modifying the `published` attribute in the batch spec](/batch-changes/batch-spec-yaml-reference#changesettemplatepublished) and re-running the `src batch preview` command.
-### Updating other base images
+## Updating other base images
-In order to update other base images in `Dockerfile`s you can either extend the batch spec or create another batch spec in which you change the `repositoriesMatchingQuery` and the `steps.run` properties.
+In order to update other base images in Dockerfiles you can either extend the batch spec or create another batch spec in which you change the `repositoriesMatchingQuery` and the `steps.run` properties.
You can keep using regexp-based search and `sed`, or you can use [structural search](/code-search/types/structural) combined with [comby](https://comby.dev) to update base images.
diff --git a/docs/versioned/5.2/batch_changes/tutorials/updating_go_import_statements.mdx b/docs/batch-changes/updating-go-import-statements.mdx
similarity index 56%
rename from docs/versioned/5.2/batch_changes/tutorials/updating_go_import_statements.mdx
rename to docs/batch-changes/updating-go-import-statements.mdx
index f97136f55..490921cc6 100644
--- a/docs/versioned/5.2/batch_changes/tutorials/updating_go_import_statements.mdx
+++ b/docs/batch-changes/updating-go-import-statements.mdx
@@ -1,10 +1,10 @@
-# Updating Go import statements using Comby
+# Updating Go Import Statements using Comby
-### Introduction
+This guide explains how to use Comby to update Go import statements in a batch change.
-This batch change rewrites Go import paths for the `log15` package from `gopkg.in/inconshreveable/log15.v2` to `github.com/inconshreveable/log15` using [Comby](https://comby.dev/).
+This batch change example rewrites Go import paths for the `log15` package from `gopkg.in/inconshreveable/log15.v2` to `github.com/inconshreveable/log15` using [Comby](https://comby.dev/).
-It can handle single-package import statements like this one:
+It can handle single-package import statements like the following:
```go
import "gopkg.in/inconshreveable/log15.v2"
@@ -12,7 +12,6 @@ import "gopkg.in/inconshreveable/log15.v2"
Single-package imports with an alias:
-
```go
import log15 "gopkg.in/inconshreveable/log15.v2"
```
@@ -28,14 +27,16 @@ import (
)
```
-### Prerequisites
+## Prerequisites
+
+It's recommended to use the latest version of Sourcegraph when working with Batch Changes.
-We recommend that use the latest version of Sourcegraph when working with Batch Changes and that you have a basic understanding of how to create batch specs and run them. See the following documents for more information:
+Before you start, it's better to read the following docs:
-1. ["Quickstart"](/batch_changes/quickstart)
-1. ["Introduction to Batch Changes"](/batch_changes/explanations/introduction_to_batch_changes)
+- [Batch Changes Quickstart](/batch-changes/quickstart)
+- [How to create and run a Batch Spec?](/batch-changes/create-a-batch-change)
-### Create the batch spec
+## Create the batch spec
Save the following batch spec YAML as `update-log15-import.batch.yaml`:
@@ -66,13 +67,16 @@ changesetTemplate:
published: false
```
-### Create the batch change
+## Create the batch change
-1. In your terminal, run this command:
+- In your terminal, run the following command:
+
+```shell
+src batch preview -f update-log15-import.batch.yaml
+```
- src batch preview -f update-log15-import.batch.yaml
-1. Wait for it to run and compute the changes for each repository.
-1. Open the preview URL that the command printed out.
-1. Examine the preview. Confirm that the changesets are the ones you intended to track. If not, edit the batch spec and then rerun the command above.
-1. Click the **Apply** button to create the batch change.
-1. Feel free to then publish the changesets (i.e. create pull requests and merge requests) by [modifying the `published` attribute in the batch spec](/batch_changes/references/batch_spec_yaml_reference#changesettemplate-published) and re-running the `src batch preview` command.
+- Wait for it to run and compute the changes for each repository
+- Open the preview URL that the command printed out
+- Examine the preview. Confirm that the changesets are the ones you intended to track. If not, edit the batch spec and then re-run the command above
+- Click the **Apply** button to create the batch change
+- Feel free to then publish the changesets (i.e., create pull requests and merge requests) by [modifying the `published` attribute in the batch spec](/batch-changes/batch-spec-yaml-reference#changesettemplatepublished) and re-running the `src batch preview` command
diff --git a/docs/batch_changes/CODENOTIFY b/docs/batch_changes/CODENOTIFY
deleted file mode 100644
index 2d499565a..000000000
--- a/docs/batch_changes/CODENOTIFY
+++ /dev/null
@@ -1 +0,0 @@
-**/* @eseliger
diff --git a/docs/batch_changes/batch_changes-icon.svg b/docs/batch_changes/batch_changes-icon.svg
deleted file mode 100644
index 2b6380d22..000000000
--- a/docs/batch_changes/batch_changes-icon.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/docs/batch_changes/explanations/batch_changes_design.mdx b/docs/batch_changes/explanations/batch_changes_design.mdx
deleted file mode 100644
index 616a99bdd..000000000
--- a/docs/batch_changes/explanations/batch_changes_design.mdx
+++ /dev/null
@@ -1,38 +0,0 @@
-# Batch Changes design
-
-Why is the [Batch Changes](/batch_changes/) feature designed the way it is?
-
-## Principles
-
-- **Declarative API** (not imperative). You declare your intent, such as "lint files in all repositories with a `package.json` file"{/* . Batch Changes figures out how to achieve your desired state. The external state (of repositories, changesets, code hosts, access tokens, etc.) can change at any time, and temporary errors frequently occur when reading and writing to code hosts. These factors would make an imperative API very cumbersome because each API client would need to handle the complexity of the distributed system. */}
-
-- **Define a batch change in a file** (not some online API). The source of truth of a batch change's definition is a file that can be stored in version control, reviewed in code review, and re-applied by CI. This is in the same spirit as IaaC (infrastructure as code; e.g., storing your Terraform/Kubernetes/etc. files in Git). We prefer this approach over a (worse) alternative where you define a batch change in a UI with a bunch of text fields, checkboxes, buttons, etc., and need to write a custom API client to import/export the batch change definition.
-- **Shareable and portable.** You can share your batch specs, and it's easy for other people to use them. A batch spec expresses an intent that's high-level enough to (usually) not be specific to your own particular repositories. You declare and inject configuration and secrets to customize it instead of hard-coding those values.
-- **Large-scale.** You can run batch changes across 10,000s of repositories. It might take a while to compute and push everything, and the current implementation might cap out lower than that, but the fundamental design scales well.
-- **Accommodates a variety of code hosts and review/merge processes.** Specifically, we don't want Batch Changes to only work for GitHub pull requests. (See [current support list](/batch_changes/#supported-code-hosts-and-changeset-types).)
-
-## Comparison to other distributed systems
-
-Kubernetes is a distributed system with an API that many people are familiar with. Batch Changes is also a distributed system. All APIs for distributed systems need to handle a similar set of concerns around robustness, consistency, etc. Here's a comparison showing how these concerns are handled for a Kubernetes [Deployment](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/) and a batch change. In some cases, we've found Kubernetes to be a good source of inspiration for the Batch Changes API, but resembling Kubernetes is **not** an explicit goal.
-
-| | **[Kubernetes Deployment](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/)** | **Sourcegraph Batch Changes** |
-|----------|----------|----------|
-| What underlying thing does this API manage? | Pods running on many (possibly unreliable) nodes | Branches and changesets on many repositories that can be rate-limited and externally modified (and our authorization can change) |
-| Spec YAML |  |  |
-| How desired state is computed | Evaluate `replicas`, etc. to determine pod count and other template inputs Instantiate `template` once for each pod to produce PodSpecs | Evaluate `on`, `steps` to determine list of patches Instantiate `changesetTemplate` once for each patch to produce ChangesetSpecs |
-| Desired state consists of... | DeploymentSpec file (the YAML above) List of PodSpecs (template instantiations) | batch spec file (the YAML above) List of ChangesetSpecs (template instantiations) |
-| Where is the desired state computed? | The deployment controller (part of the Kubernetes cluster) consults the DeploymentSpec and continuously computes the desired state.| The [Sourcegraph CLI](https://github.com/sourcegraph/src-cli) (running on your local machine, not on the Sourcegraph server) consults the batch spec and computes the desired state when you invoke `src batch apply`. **Difference vs. Kubernetes**: A batch change's desired state is computed locally, not on the server. It requires executing arbitrary commands, which is not yet supported by the Sourcegraph server. See Batch Changes known issue "[Batch Changes steps are run locally...](https://docs.sourcegraph.com/batch_changes/explanations/introduction_to_batch_changes#server-execution)". |
-| Reconciling desired state vs. actual state | The "deployment controller" reconciles the resulting PodSpecs against the current actual PodSpecs (and does smart things like rolling deploy).| The "Batch Changes controller" (i.e., our backend) reconciles the resulting ChangesetSpecs against the current actual changesets (and does smart things like gradual roll-out/publishing and auto-merging when checks pass).|
-
-
-
-
-
-These docs explain more about Kubernetes' design:
-
-- [Kubernetes Object Management](https://kubernetes.io/docs/concepts/overview/working-with-objects/object-management/)
-- [Kubernetes Controllers](https://kubernetes.io/docs/concepts/architecture/controller/)
- - [Desired versus current state](https://kubernetes.io/docs/concepts/architecture/controller/#desired-vs-current)
-- [Kubernetes Architecture](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/architecture/architecture)
-- [Kubernetes General Configuration Tips](https://kubernetes.io/docs/concepts/configuration/overview/#general-configuration-tips)
-- [Kubernetes Design and Development Explained](https://thenewstack.io/kubernetes-design-and-development-explained/)
diff --git a/docs/batch_changes/explanations/how_src_executes_a_batch_spec.mdx b/docs/batch_changes/explanations/how_src_executes_a_batch_spec.mdx
deleted file mode 100644
index 38277f18c..000000000
--- a/docs/batch_changes/explanations/how_src_executes_a_batch_spec.mdx
+++ /dev/null
@@ -1,182 +0,0 @@
-# How `src` executes a batch spec
-
-This document is meant to help with debugging and troubleshooting the writing and execution of batch specs with [Sourcegraph CLI `src`](/cli/).
-
-It explains what happens under the hood when a user uses applies or previews a batch spec by running `src batch apply` or `src batch preview`.
-
-## Overview
-
-`src batch apply` and `src batch preview` execute a batch spec the same way:
-
-1. [Parse the batch spec](#parse-the-batch-spec)
-1. [Resolve the namespace](#resolving-namespace)
-1. [Prepare container images](#preparing-container-images)
-1. [Resolve repositories](#resolving-repositories)
-1. [Executing steps](#executing-steps)
-1. [Sending changeset specs](#sending-changeset-specs)
-1. [Sending batch spec](#sending-the-batch-spec)
-1. [Preview or apply the batch spec](#preview-or-apply-the-batch-spec)
-
-The difference is the last step: `src batch apply` _applies_ the batch spec where the `src batch preview` only prints a URL at which you can preview what would happen if you apply it.
-
-The rest of the document explains each step in more detail.
-
-## Parse the batch spec
-
-`src` reads in, parses and validates the batch spec YAML specified with the `-f` flag.
-
-It validates the batch spec against its [schema](https://github.com/sourcegraph/src-cli/blob/main/schema/batch_spec.schema.json) and does some semantic checks to make sure that, for example, `changesetTemplate` is specified if `steps` are specified, or that no feature is used that's not supported by the Sourcegraph instance.
-
-## Resolving namespace
-
-`src` resolves the given namespace in which to apply/preview the batch spec by sending a GraphQL request to the Sourcegraph instance to fetch the ID for the given namespace name.
-
-If no namespace is specified with `-namespace` (or `-n`) then the currently authenticated user is used as the namespace. See "[Connect to Sourcegraph](/cli/quickstart#connect-to-sourcegraph)" in the CLI docs for details on how to authenticate.
-
-## Preparing container images
-
-If the batch spec contains `steps`, then for each step `src` checks its `container` image to see whether it's already available locally.
-
-To do that it runs `docker image inspect --format {{.Id}} -- ` to get the specific image ID for the container image.
-
-If that fails with a "No such image" error, `src` tries to pull the image by running `docker image pull ` and then running `docker image inspect --format {{.Id}} -- ` again.
-
-## Resolving repositories
-
-`src` resolves each entry in the batch spec's `on` property to produce a _unique list of repositories (!)_ in which to execute the batch spec's `steps`.
-
-With an `on` property like this
-
-```yaml
-on:
- - repositoriesMatchingQuery: lang:go fmt.Sprintf("%d", :[v]) patterntype:structural -file:vendor
- - repositoriesMatchingQuery: repohasfile:README
- - repository: github.com/sourcegraph/sourcegraph
- - repository: github.com/sourcegraph/automation-testing
- branch: thorstens-test-branch
-```
-
-`src` will do the following:
-
-1. For each `repositoriesMatchingQuery` it will:
- 1. Send a request to the Sourcegraph API to execute the search query.
- 1. Collect each result's _repository_: the ID, the name, the default branch and the current revision of the default branch. If the search result _is a repository result_ (i.e. a search query of `type:repo` only produces repositories) that's used. If it's a file match the file match's repository is used.
- 1. _Optional_: if the results are file matches, then their path in the repository is also saved, so that they can be used in the `steps` with [templating](/batch_changes/references/batch_spec_templating).
-1. For each `repository` without a `branch` it will:
- 1. Send a request to the Sourcegraph API to get the repository's ID, name, its default branch and the current revision of the default branch.
-1. For each `repository` _with_ a `branch` it will:
- 1. Send a request to the Sourcegraph API to get the repository's ID, and name and the current revision of the specified `branch`.
-1. It then creates a _unique_ list of all repositories yielded by the previous three steps by going through all repositories and comparing them, skipping those where no current revision of a branch could be resolved, checking whether they're on a supported code host. If they are on unsupported code hosts and no `-allow-unsupported` flag is given, then a warning is printed and the repositories are not added to the list.
-
-## Executing steps
-
-If a batch spec contains `steps` then `src` executes the steps _locally_, on the machine on which `src` is run, for _each repository yielded by the previous "[Resolving repositories](#resolving-repositories)" step_.
-
-If `-clear-cache` is _not_ set and it previously executed _the same `steps`_ for the _same repository_ at the _same revision of the base branch_, it will try to use cached results instead of re-executing the steps.
-
-The following is what `src` does _for each repository_:
-
-### 1. Download archive and prepare
-
-1. Download archive of repository. What it does is equivalent to:
-
- ```
- curl -L -v -X GET -H 'Accept: application/zip' \
- -H 'Authorization: token ' \
- 'http://sourcegraph.example.com/github.com/my-org/my-repo@refs/heads/master/-/raw' \
- --output ~/tmp/my-repo.zip
- ```
-2. Unzip archive into the workspace. Where the workspace lives depends on the workspace mode, which can be controlled by the `-workspace` flag. The two modes are:
- * _Bind_ mount mode (the default everywhere except Intel macOS), this will be somewhere on the filesystem, e.g. `~/.cache/sourcegraph/batch-changes` (see `src batch preview -h` for the default value of cache directory, overwrite with `-cache`)
- * _Volume_ mount mode (the default on Intel macOS): a Docker volume will be created using `docker volume create` and attached to all running containers, then removed before `src` exits
-3. `cd` into the workspace, which now contains the unzipped archive
-4. In the workspace, create a git repository:
- - Configure `git` to not use local configuration (see [the code for explanations on what each variable does](https://github.com/sourcegraph/src-cli/blob/54fedaf3bfcf21ad3a8d89d9d2d361c8c6da6441/internal/batches/git.go#L13-L26)):
-
- ```
- export GIT_CONFIG_NOSYSTEM=1 \
- GIT_CONFIG=/dev/null \
- GIT_AUTHOR_NAME=Sourcegraph \
- GIT_AUTHOR_EMAIL=batch-changes@sourcegraph.com \
- GIT_COMMITTER_NAME=Sourcegraph \
- GIT_COMMITTER_EMAIL=batch-changes@sourcegraph.com
- ```
- - Run `git init`
- - Run `git config --local user.name Sourcegraph`
- - Run `git config --local user.email batch-changes@sourcegraph.com`
- - Run `git add --force --all`
- - Run `git commit --quiet --all -m sourcegraph-batch-changes`
-
-### 2. Run the steps
-
-For each step in the batch spec `steps`:
-
-1. Probe container image (the `container` property of the step) to see whether it has `/bin/sh` or `/bin/bash`
-2. Write the step's `run` command to a temp file on the host, e.g. `/tmp-script`
-3. Run `chmod 644 /tmp-script`
-4. Run the Docker container. The exact command will depend on the workspace mode:
- * _Bind_:
-
- ```
- docker run --rm --init --workdir /work \
- --mount type=bind,source=/unzipped-archive-locally,target=/work \
- --mount type=bind,source=/tmp-script,target=/tmp-file-in-container \
- --entrypoint /bin/bash -- /tmp-file-in-container
- ```
- * _Volume_:
-
- ```
- docker run --rm --init --workdir /work \
- --mount type=volume,source=temporary-docker-volume-id,target=/work \
- --mount type=bind,source=/tmp-script,target=/tmp-file-in-container \
- --entrypoint /bin/bash -- /tmp-file-in-container
- ```
-5. Add all produced changes to the git index: `git add --all`
-
-### 3. Create final diff
-
-In the workspace:
-
-1. Create a diff by running: `git diff --cached --no-prefix --binary`
-
-### 4. Saving a changeset spec
-
-`src` adds the produced diff to the local cache, so that re-executing the same steps in the same repository can be skipped if the base branch has not changed.
-
-`src` then creates a changeset spec from:
-
-- the diff
-- information about the repository in which the changes have been made (the name and ID of the repository, the revision of its base branch)
-- the `changesetTemplate`
-
-A changeset spec is a description of what the changeset should look like.
-
-## Importing changesets
-
-If the batch spec contains [`importChangesets`](/batch_changes/references/batch_spec_yaml_reference#importchangesets) then `src` goes through the list of `importChangesets` and for each entry it:
-
-1. Resolves the repository name, trying to get to get an ID, base branch, and revision for the given repository name.
-1. Parses the `externalIDs`, checking that they're valid strings or numbers.
-1. For each external ID it saves a changeset spec that describes that a changeset with the given external ID, in the given repository, should be imported and tracked in the batch change.
-
-## Sending changeset specs
-
-The previous two steps, "[Executing steps](#executing-steps)" and "[Importing changesets](#importing-changesets)", can produce changeset specs, each one describing either a changeset to create or to import.
-
-These changeset specs are now uploaded to the connected Sourcegraph instance, one request per changeset spec.
-
-Each request yields an ID that uniquely identifies the changeset spec on the Sourcegraph instance. These IDs are used for the next step.
-
-## Sending the batch spec
-
-The IDs of the changeset specs that were created in the previous step, "[Sending changeset specs](#sending-changeset-specs)", are collected into a list and used for the next request with which `src` uploads the batch spec to the connected Sourcegraph instance.
-
-`src` _creates_ the batch spec on the Sourcegraph instance, together with the changeset spec IDs, so that the batch spec fully describes the desired state of a batch change: its name, its description, and which changesets should be created or imported from which repository on which code host.
-
-That request yields an ID that uniquely identifies this expanded version of the batch spec.
-
-## Preview or apply the batch spec
-
-If `src batch apply` was used, then the ID of the batch change is then used to send another request to the Sourcegraph instance, to _apply_ the batch spec.
-
-If `src batch preview` was used to execute and create the batch spec, then a URL is printed, pointing to a preview page on the Sourcegraph instance on which we can see what _would_ happen if we were to apply the batch spec.
diff --git a/docs/batch_changes/explanations/index.mdx b/docs/batch_changes/explanations/index.mdx
deleted file mode 100644
index 83089485f..000000000
--- a/docs/batch_changes/explanations/index.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
-# Explanations
-
-The following articles explain different parts of [Sourcegraph Batch Changes](/batch_changes/) in depth:
-
-- [Introduction to Batch Changes](/batch_changes/explanations/introduction_to_batch_changes)
-- [Permissions in Batch Changes](/batch_changes/explanations/permissions_in_batch_changes)
-- [Batch Changes design](/batch_changes/explanations/batch_changes_design)
-- [How `src` executes a batch spec](/batch_changes/explanations/how_src_executes_a_batch_spec)
-- [Re-executing batch specs multiple times](/batch_changes/explanations/reexecuting_batch_specs_multiple_times)
-- [Running batch changes server-side](/batch_changes/explanations/server_side) (Beta)
diff --git a/docs/batch_changes/explanations/introduction_to_batch_changes.mdx b/docs/batch_changes/explanations/introduction_to_batch_changes.mdx
deleted file mode 100644
index cd7d029eb..000000000
--- a/docs/batch_changes/explanations/introduction_to_batch_changes.mdx
+++ /dev/null
@@ -1,66 +0,0 @@
-# Introduction to Batch Changes
-
-## Overview
-
-Batch Changes let you make large-scale code changes across many repositories and code hosts. Batch Change lets you create pull requests on all affected repositories, and it tracks their progress until they're all merged. You can preview the changes and update them at any time.
-
-People usually use Batch Changes to make the following kinds of changes:
-
-- Cleaning up common problems using linters.
-- Updating uses of deprecated library APIs.
-- Upgrading dependencies.
-- Patching critical security issues.
-- Standardizing build, configuration, and deployment files.
-
-A batch change tracks all of its changesets (a generic term for pull requests or merge requests) for updates to:
-
-- Status: open, merged, or closed
-- Checks: passed (green), failed (red), or pending (yellow)
-- Review status: approved, changes requested, pending, or other statuses (depending on your code host or code review tool)
-
-
-
-You can see the overall trend of a batch change in the burndown chart, which shows the proportion of changesets that have been merged over time since the batch change was created.
-
-
-
-## Supported code hosts and changeset types
-
-The generic term **changeset** is used to refer to any of the following:
-
-- GitHub pull requests.
-- Bitbucket Server / Bitbucket Data Center and Bitbucket Data Center pull requests.
-- GitLab merge requests.
-- Bitbucket Cloud pull requests.
-- Gerrit changes.
-- Beta Perforce changelists.
-- Phabricator diffs (not yet supported).
-
-A single batch change can span many repositories and many code hosts.
-
-## Concepts
-
-- **batch-change**: A **batch change** is a group of related changes to code, along with a title and description.
-- **batch-spec**: A **batch spec** is a YAML file describing the batch change: repositories to change, commands to run, and a template for changesets and commits. You describe your high-level intent in the batch spec, such as "lint files in all repositories with a `package.json` file".
-- **changesets**: The batch change has associated **changesets**, which is a generic term for pull requests, merge requests, or any other reviewable chunk of code. (Code hosts use different terms for this, which is why we chose a generic term.)
-- **published-changeset**: A **published changeset** means the commit, branch, and changeset have been created on the code host. An **unpublished changeset** is just a preview that you can view in the batch change but does not exist on the code host yet.
-- **spec**: A **spec** (batch spec or changeset spec) is a "record of intent". When you provide a spec for a thing, the system will continuously try to reconcile the actual thing with your desired intent (as described by the spec). This involves creating, updating, and deleting things as needed.
-- **changeset-spec**: A batch change has many **changeset specs**, which are produced by executing the batch spec (i.e., running the commands on each selected repository) and then using its changeset template to produce a list of changesets, including the diffs, commit messages, changeset title, and changeset body. You don't need to view or edit the raw changeset specs; you will edit the batch spec and view the changesets in the UI.
-- **batch-changes-controller**: The **batch change controller** reconciles the actual state of the batch change's changesets on the code host so that they match your desired intent (as described in the changeset specs).
-
-To learn about the internals of Batch Changes, see [Batch Changes](/dev/background-information/batch_changes/index) in the developer documentation.
-
-## Ownership
-
-When a user is deleted, their Batch Changes become inaccessible in the UI but the data is not permanently deleted.
-This allows recovering the Batch Changes if the user is restored.
-
-However, if the user deletion is permanent, deleting both account and data, then the associated Batch Changes are also permanently deleted from the database. This frees storage space and removes dangling references.
-
-## Known issues
-
-- Batch Changes currently support **GitHub**, **GitLab** and **Bitbucket Server and Bitbucket Data Center** repositories. If you're interested in using Batch Changes on other code hosts, [let us know](https://about.sourcegraph.com/contact).
-- server-execution: Batch change steps are run locally (in the [Sourcegraph CLI](https://github.com/sourcegraph/src-cli)) or [server-side](https://docs.sourcegraph.com/batch_changes/explanations/server_side) `Beta`. For this reason, the APIs for creating and updating a batch change require you to upload all of the changeset specs (which are produced by executing the batch spec locally). Also see [how scalable is Batch Changes](/batch_changes/references/faq#how-scalable-is-batch-changes-how-many-changesets-can-i-create).
-- It is not yet possible for multiple users to edit the same batch change that was created under an organization.
-- It is not yet possible to reuse a branch in a repository across multiple batch changes.
-- The only type of user credential supported by Sourcegraph right now is a [personal access token](/batch_changes/how-tos/configuring_credentials), either per user, or via a global service account. Further credential types may be supported in the future.
diff --git a/docs/batch_changes/explanations/permissions_in_batch_changes.mdx b/docs/batch_changes/explanations/permissions_in_batch_changes.mdx
deleted file mode 100644
index 8087de052..000000000
--- a/docs/batch_changes/explanations/permissions_in_batch_changes.mdx
+++ /dev/null
@@ -1,79 +0,0 @@
-# Permissions in Batch Changes
-
-You can customize access to a batch change and propose changes to repositories with varying permission levels. Other people see the batch change's proposed changes to a repository if they can view that repository; otherwise, they can see only limited, non-identifying information about the change.
-
-## Permission levels for Batch Changes
-
-The permission levels for a batch change are:
-
-- **Read:** For people who need to view the batch change.
-- **Admin:** For people who need full access to the batch change, including editing, closing, and deleting it.
-
-To see the batch change's proposed changes on a repository, a person *also* needs read access to that specific repository. Read or admin access on the batch change does not (by itself) entitle a person to viewing all of the batch changes's changesets. For more information, see "[Repository permissions for Batch Changes](#repository-permissions-for-batch-changes)".
-
-Site admins have admin permissions on all batch changes.
-
-Users have admin permissions on the batch changes they created and read access to other batch changes.
-
-### Namespaces
-
-Batch changes can be created either under the user's or an organization's namespace. If placed under an organization namespace, all users of the organization have admin access on the batch change.
-
-### Batch Change access for each permission level
-
- Batch change action | Read | Admin
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---: | :---:
-View batch change name and descriptionAlso applies to viewing the input branch name, created/updated date, and batch change status | ⬤ | ⬤
-View burndown chart (aggregate changeset statuses over time) | ⬤ | ⬤
-View list of patches and changesets | ⬤ | ⬤
-View diffstat (aggregate count of added/changed/deleted lines) | ⬤ | ⬤
-View error messages (related to creating or syncing changesets) | | ⬤
-Edit batch change name, description, and branch name | | ⬤
-Update batch change patches (and changesets on code hosts) | | ⬤
-Publish changesets to code host | | ⬤
-Add/remove existing changesets to/from batch change | | ⬤
-Refresh changeset statuses | | ⬤
-Close batch change | | ⬤
-Delete batch change | | ⬤
-
-Authorization for all actions is also subject to [repository permissions](#repository-permissions-for-batch-changes).
-
-## Setting and viewing permissions in Batch Changes
-
-When you create a batch change, you are given admin permissions on the batch change.
-
-All users are automatically given read permissions to a batch change. Granular permissions are not yet supported. Assigning admin permissions on a batch change to another person or to all organization members is not yet supported. Transferring ownership of a batch change is not yet supported.
-
-## Code host interactions in Batch Changes
-
-Interactions with a code host are made possible by [configuring credentials](/batch_changes/how-tos/configuring_credentials) for that code host. When publishing a changeset to the code host with Batch Changes, the author and permissions will reflect the token used (e.g., on GitHub, the pull request author will be you).
-
-## Repository permissions for Batch Changes
-
-Your [repository permissions](/admin/permissions/) determine what information in a batch change you can view. You can only see a batch change's proposed changes to a repository if you have read access to that repository. Read or admin permissions on a batch change does not (by itself) permit you to view all of the batch change's changes.
-
-When you view a batch change, you can see a list of patches and changesets. For each patch and changeset:
-
-- **If you have read access** to the repository for a patch or changeset, you can see the diff, changeset title, changeset link, detailed status, and other information.
-- **If you do not have read access** to the repository for a patch or changeset, you can only see the status, last-updated date, and whether an error occurred (but not the error message). You can't see the diff, changeset title, changeset link, repository name, or any other information.
-
-When you perform any batch change operation that involves repositories or code host interaction, your current repository permissions are taken into account.
-
-- Creating, updating, or publishing a batch change; or publishing a single changeset: You must have access to view the repositories and the configured token must have the rights to push a branch and create the changesets on your code host (e.g., the [```repo```](https://docs.github.com/en/developers/apps/building-oauth-apps/scopes-for-oauth-apps#available-scopes) scope gives a GitHub access token the rights to push to branches and open pull requests on GitHub repositories).
-- Adding existing changesets to a batch change: You must have read access to the existing changeset's repository.
-- Closing or deleting a batch change: If you choose to also close associated changesets on the code host, you must have access to do so on the code host. If you do not have access to close a changeset on the code host, the changeset will remain in its current state. A person with repository permissions for the remaining changesets can view them and manually close them.
-
-Your repository permissions can change at any time:
-
-- If you've already published a changeset to a repository that you no longer have access to, then you won't be able to view its details or update it in your batch change. The changeset on the code host will remain in its current state. A person with permissions to the changeset on the code host will need to manually manage or close it. When possible, you'll be informed of this when updating a batch change that contains changesets you've lost access to.
-- You need access to all repositories mentioned in a batch change plan to use it when updating a batch change.
-
-If you are not permitted to view a repository on Sourcegraph, then you won't be able to perform any operations on it, even if you are authorized on the code host.
-
-## Disabling Batch Changes
-
-A site admin can disable Batch Changes for the entire site by setting the [site configuration](/admin/config/site_config) property `"batch-changes.enabled"` to `false`.
-
-## Disabling Batch Changes for non-site-admin users
-
-A site admin can disable batch changes for normal users by setting the [site configuration](/admin/config/site_config) property `"batch-changes.restrictToAdmins"` to `true`.
diff --git a/docs/batch_changes/explanations/reexecuting_batch_specs_multiple_times.mdx b/docs/batch_changes/explanations/reexecuting_batch_specs_multiple_times.mdx
deleted file mode 100644
index f95561a20..000000000
--- a/docs/batch_changes/explanations/reexecuting_batch_specs_multiple_times.mdx
+++ /dev/null
@@ -1,28 +0,0 @@
-# Re-executing batch specs multiple times
-
-## Idempotency as goal
-
-One goal behind the [design of Batch Changes](/batch_changes/explanations/batch_changes_design) and the `src batch [apply|preview]` commands in the [Sourcegraph CLI](/cli/) is **idempotency**.
-
-Re-applying the same batch spec produces the same batch change and changesets.
-
-In practical terms: a user should be able to run `src batch apply -f my.batch.yaml` multiple times and, if `my.batch.yaml` didn't change, the batch change shouldn't change.
-
-## Exceptions
-
-That can only work, though, if the _inputs_ to the batch spec stay the same too.
-
-Since a batch spec's [`on.repositoriesMatchingQuery`](/batch_changes/references/batch_spec_yaml_reference#on-repositoriesmatchingquery) uses Sourcegraph's search functionality to **dynamically** produce a list of repositories in which to execute the [`steps`](/batch_changes/references/batch_spec_yaml_reference#steps), the list of repositories might change between executions of `src batch apply`.
-
-If that's the case, the `steps` need to be re-executed in any newly found repositories. Changesets in repositories that are not found anymore will be closed and archived in the batch change (see "[Updating a batch change](/batch_changes/how-tos/updating_a_batch_change)" for more details). In repositories that are unchanged [Sourcegraph CLI](/cli/) tries to use cached results to avoid having to re-execute the `steps`.
-
-## Local caching
-
-Whenever [Sourcegraph CLI](/cli/) re-executes the same batch spec it checks a _local cache_ to see if it already executed the same [`steps`](/batch_changes/references/batch_spec_yaml_reference#steps) in a given repository.
-
-Whether a cached result can be used is dependent on multiple things:
-
-1. the repository's default branch's revision didn't change (because if new commits have been pushed to the repository, re-executing the `steps` might lead to different results)
-1. the `steps` themselves didn't change, including and all their inputs, such as [`steps.env`](/batch_changes/references/batch_spec_yaml_reference#environment-array), and the `steps.run` field (which _can_ change between executions if it uses [templating](/batch_changes/references/batch_spec_templating) and is dynamically built from search results)
-
-That also means that [Sourcegraph CLI](/cli/) can use cached results when re-executing _a changed batch spec_, as long as the changes didn't affect the `steps` and the results they produce. For example: if only the [`changesetTemplate.title`](/batch_changes/references/batch_spec_yaml_reference#changesettemplate-title) field has been changed, cached results can be used, since that field doesn't have any influence on the `steps` and their results.
diff --git a/docs/batch_changes/explanations/server_side.mdx b/docs/batch_changes/explanations/server_side.mdx
deleted file mode 100644
index 65214367b..000000000
--- a/docs/batch_changes/explanations/server_side.mdx
+++ /dev/null
@@ -1,68 +0,0 @@
-# Running batch changes server-side
-
-By default, Batch Changes uses a command line interface in your local environment to [compute diffs](/batch_changes/explanations/how_src_executes_a_batch_spec) and create changesets. This can be impractical for creating batch changes affecting hundreds or thousands of repositories, with large numbers of workspaces, or if the batch change steps require CPU, memory, or disk resources that are unavailable locally.
-
-Instead of computing Batch Changes locally using `src-cli`, you can offload this task to one or many remote server called an [executor](/admin/executors/deploy_executors). Executors are also required to enable code navigation [auto-indexing](/code-search/code-navigation/auto_indexing).
-
-This allows to:
-
-- run large-scale batch changes that would be impractical to compute locally
-- speed up batch change creation time by distributing batch change computing over several executors
-- reduce the setup time required to onboard new users to Batch Changes
-- get a better experience: (nearly) real-time logs, integration with other Sourcegraph features (upcoming!), creating batch changes from templates in just a few clicks (also upcoming!)
-
-## Setup
-
-This is a one-time process. Once a site-admin of the Sourcegraph instance sets up executors and enables running batch changes server-side, all users of the Sourcegraph instance can get started with no additional setup required.
-
-Make sure that [executors are deployed and are online](/admin/executors/deploy_executors).
-
-## Explanations
-
-- [Getting started with running batch changes server-side](/batch_changes/explanations/server_side_getting_started)
-- [Debugging batch changes ran server-side](/batch_changes/explanations/server_side_debugging)
-
-## Limitations
-
-This feature is experimental. In particular, it comes with the following limitations, that we plan to resolve before GA.
-
-- Running batch changes server-side requires setting up executors. Executors are configured ready-to-use on Sourcegraph Cloud.
-- The execution UX is work in progress and will change a lot before the GA release.
-- Documentation is minimal and will change a lot before the GA release.
-- Running batch changes server-side will be limited to user namespaces in this release.
-- The newly introduced APIs for server-side are still experimental and will likely change as we evolve the product towards GA.
-- Executors can only be deployed using Terraform (AWS or GCP) or using pre-built binaries (see [deploying executors](/admin/executors/deploy_executors)).
-
-Running batch changes server-side has been tested to run a simple 45k changeset batch change. Actual performance and setup requirements depend on the complexity of the batch change.
-
-Feedback on running batch changes server-side is very welcome, feel free to open an [issue](https://github.com/sourcegraph/sourcegraph/issues), reach out through your usual support channel, or send a [direct message](https://twitter.com/MaloMarrec).
-
-### Note for Apple Silicon Mac users
-
-By default, docker on mac will build docker images for `linux/arm64`, which will result in errors when running server-side because executors provide `linux/amd64` hosts. If you're creating your own images to run in batch changes, this can be a problem. Use the `--platform linux/amd64` flag with `docker build` to build images compatible with the server-side host.
-
-## FAQ
-
-### Can large batch changes execution be distributed on multiple executors?
-
-They can! Each changeset that is computed can be assigned to a separate executor, provided there are enough executors available.
-
-### What additional resources do I need to provision to run batch changes server-side?
-
-See [deploying executors](/admin/executors/deploy_executors) page. The short answer is: as little as a single compute instance and a docker registry mirror if you just want to process batch changes at a small scale; an autoscaling group of instances if you want to process large batch changes very fast.
-
-### Can someone accidentally take down the Sourcegraph instance if they run too big a batch change?
-
-No. Executors have been designed for the Sourcegraph instance to offload resource-intensive tasks. The Sourcegraph instance itself only queues up batch changes for processing, tracks execution, then uses the resulting diffs to open and track changesets just as it would for batch changes created locally using the `src-cli`.
-
-### I have several machines configured as executors, and they don't have the same specs (eg. memory). Can I submit some batch changes specifically to a given machine?
-
-No, for now all executors are equal in the eyes of Sourcegraph. We suggest using only one type of machine.
-
-### What happens if the execution of a step fails?
-
-If the execution of a step on a given repository fails, that repository will be skipped, and execution on the other repositories will continue. Standard error and output will be available to the user for debugging purposes.
-
-### How do executors interact with code hosts? Will they clone repos directly?
-
-Executors do not interact directly with code hosts. They behave in a way [similar to src CLI](/batch_changes/explanations/how_src_executes_a_batch_spec) today: executors interact with the Sourcegraph instance, the Sourcegraph instance interacts with the code host. In particular, executors download code from the Sourcegraph instance and executors do not need to access code hosts credentials directly.
diff --git a/docs/batch_changes/explanations/server_side_debugging.mdx b/docs/batch_changes/explanations/server_side_debugging.mdx
deleted file mode 100644
index 7e512337e..000000000
--- a/docs/batch_changes/explanations/server_side_debugging.mdx
+++ /dev/null
@@ -1,8 +0,0 @@
-# Debugging when you run batch changes server-side
-
-When you run batch changes server-side, you can monitor various artifacts of an execution, like per-step logs, timing information and output variables in a persisted, sharable UI.
-
-From the UI, you can start from a high level perspective for the entire batch spec and then drill down to find the problem.
-
-Start by going to the workspace that failed. Then, you get an overview of all the steps that ran and the one that failed.
-From there on, you can dive into logs, previous steps outputs and more.
diff --git a/docs/batch_changes/explanations/server_side_getting_started.mdx b/docs/batch_changes/explanations/server_side_getting_started.mdx
deleted file mode 100644
index 737d14dc9..000000000
--- a/docs/batch_changes/explanations/server_side_getting_started.mdx
+++ /dev/null
@@ -1,61 +0,0 @@
-# Getting started with running batch changes server-side
-
-## Creating your first batch change
-
-To get started, click on the "Create batch change" button on the Batch Changes page, or go to `/batch-changes/create`.
-You will be prompted to choose a name for your namespace and optionally define a custom namespace to put your batch change in.
-
-
-
-Once done, click "Create".
-
-### Editing the spec file
-
-You should see the editor view now. This view consists of three main areas:
-
-- The library sidebar panel on the left
-- The editor in the middle
-- The workspaces preview panel on the right
-
-
-
-You can pick from the examples in the library pane to get started quickly, or begin working on your batch spec in the editor right away. The editor will provide documentation as you hover over tokens in the YAML spec and supports auto-completion.
-
-### Previewing workspaces
-
-Once satisfied or to test your batch change's scope, you can at any time run a new preview from the right hand side panel. After resolution, it will show all the workspaces in repositories that matched the given `on` statements. You can search through them and determine if your query is satisfying before starting execution. You can also exclude single workspaces from this list.
-
-
-
-### Executing your batch spec
-
-When the spec is ready to run, make sure the preview is up to date and then click "Run batch spec". You will be taken to the execution screen.
-
-On this page, you see
-
-- Run statistics at the top
-- All the workspaces including status and diff stat in the left panel
-- Details on a particular workspace on the right hand side panel where you can see
- - Steps with
- - Command
- - Logs
- - Output variables
- - Per-step diffs
- - Results
- - Execution timelines for debugging
-
-Once finished, you can proceed to the batch spec preview as you know it from before.
-
-
-
-### Previewing and applying the batch spec
-
-On this page, you can review the changes proposed one more time and also review the operations taken by Sourcegraph on each changeset. Once satisfied, click "Apply".
-
-Congratulations, you ran your first batch change server-side 🎊
-
-
-
-## Updating your batch change
-
-This section is a work in progress.
diff --git a/docs/batch_changes/file-icon.svg b/docs/batch_changes/file-icon.svg
deleted file mode 100644
index 4d03f0699..000000000
--- a/docs/batch_changes/file-icon.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/docs/batch_changes/how-tos/bulk_operations_on_changesets.mdx b/docs/batch_changes/how-tos/bulk_operations_on_changesets.mdx
deleted file mode 100644
index e7ff3d330..000000000
--- a/docs/batch_changes/how-tos/bulk_operations_on_changesets.mdx
+++ /dev/null
@@ -1,40 +0,0 @@
-# Bulk operations on changesets
-
-Bulk operations allow a single action to be performed across many changesets in a batch change.
-
-## Selecting changesets for a bulk operation
-
-1. Click the checkbox next to a changeset in the list view. You can select all changesets you have permission to view.
-
-
-1. If you like, select all changesets in the list by using the checkbox in the list header.
-
-
-
- If you want to select _all_ changesets that meet the filters and search currently set, click the **(Select XX changesets)** link in the header toolbar.
-
-
-1. In the top right, select the action to perform on all the changesets.
-
-
-
-1. Once changesets are selected, a query is made to determine the bulk operations that can be applied to the selected changesets.
-
-## Supported types of bulk operations
-
-Depending on the changesets selected, different types of bulk operations can be applied to the selected changesets. For a bulk operation to be available, it has to be applicable to all the selected changesets.
-
-Below is a list of supported bulk operations for changesets and the conditions with which they're applicable:
-
-- Commenting: Post a comment on all selected changesets. This can be particularly useful for pinging people, reminding them to take a look at the changeset, or posting your favorite emoji 🦡.
-- Detach: Detach a selection of changesets from the batch change to remove them from the archived tab.
-- Re-enqueue: Re-enqueues the pending changes for all selected changesets that failed.
-- Merge (experimental): Tries to merge the selected changesets on the code hosts. Due to the nature of changesets, there are many states in which a changeset is not mergeable. This won't break the entire bulk operation, but single changesets may not be merged after the run for this reason. The bulk operations tab lists those where merging failed below the bulk operation in that case. In the confirmation modal, you can select to merge using the squash merge strategy. This is supported on GitHub, GitLab, and Bitbucket Cloud, but not on Bitbucket Server / Bitbucket Data Center. In this case, regular merges are always used for merging the changesets.
-- Close: Tries to close the selected changesets on the code hosts.
-- Publish: Publishes the selected changesets, provided they don't have a [`published` field](/batch_changes/references/batch_spec_yaml_reference#changesettemplate-published) in the batch spec. You can choose between draft and normal changesets in the confirmation modal.
-
-## Monitoring bulk operations
-
-On the **Bulk operations** tab, you can view all bulk operations that have been run over the batch change. Since bulk operations can involve quite some operations to perform, you can track the progress, and see what operations have been performed in the past.
-
-
diff --git a/docs/batch_changes/how-tos/closing_or_deleting_a_batch_change.mdx b/docs/batch_changes/how-tos/closing_or_deleting_a_batch_change.mdx
deleted file mode 100644
index 34dc18e25..000000000
--- a/docs/batch_changes/how-tos/closing_or_deleting_a_batch_change.mdx
+++ /dev/null
@@ -1,31 +0,0 @@
-# Closing or deleting a batch change
-
-You can close a batch change when you don't need it anymore, when all changes have been merged, or when you decide not to proceed with making changes. A closed batch change still appears in the [batch changes list](/batch_changes/how-tos/viewing_batch_changes). To completely remove it, you can delete the batch change.
-
-Any person with [admin access to the batch change](/batch_changes/explanations/permissions_in_batch_changes#permission-levels-for-batch-changes) can close or delete it.
-
-## Closing a batch change
-
-1. Click the Batch Changes icon in the top navigation bar.
-
-
-1. In the list of batch changes, click the batch change that you'd like to close or delete.
-1. In the top right, click the **Close** button.
-
-
-1. Select whether you want to close all of the batch change's open changesets (e.g., closing all associated GitHub pull requests on the code host).
-
-
-1. Click **Close batch change**.
-
-Once a batch change is closed it can't be updated or reopened anymore.
-
-## Delete a batch change
-
-1. First, close the batch change.
-1. Instead of a "Close batch change" button you'll now see a **Delete** button.
-
-
-1. Click **Delete**.
-
-The batch change is now deleted from the Sourcegraph instance. The changesets it created (and possibly closed) will still exist on the code hosts, since most code hosts don't support deleting changesets.
diff --git a/docs/batch_changes/how-tos/configuring_credentials.mdx b/docs/batch_changes/how-tos/configuring_credentials.mdx
deleted file mode 100644
index 1a0aa0c33..000000000
--- a/docs/batch_changes/how-tos/configuring_credentials.mdx
+++ /dev/null
@@ -1,199 +0,0 @@
-# Configuring credentials
-
-Interacting with a code host (such as creating, updating, or syncing changesets) is made possible by configuring an access token for that code host. Sourcegraph uses these tokens to manage changesets on your behalf, and with your specific permissions.
-
-## Requirements
-
-- Sourcegraph instance with repositories in it. See the "[Quickstart](/batch_changes/how-tos/#quick-install)" guide on how to setup a Sourcegraph instance.
-- Account on the code host with access to the repositories you wish to target with your batch changes.
-
-## Types of access tokens used by Batch Changes
-
-There are two types of access token that can be configured for use with Batch Changes:
-
-1. [**Personal access token**](#personal-access-tokens) - A token set by an individual Batch Changes user for their personal code host user account.
-1. [**Global service account token**](#global-service-account-tokens) (*Configurable by admins only*) - A token that can be used by any Batch Changes user who does not have a personal access token configured. These are also required for [importing changesets](/batch_changes/how-tos/tracking_existing_changesets) and syncing changeset state from the code host when webhooks are not configured. Although currently importing changesets is not supported without a global access token, if you’re concerned about individual user permissions, we would not advise using a global access token.
-
-Different tokens are used for different types of operations, as is illustrated in the hierarchy table below.
-
-🟢 **Preferred** - Sourcegraph will prefer to use this token for this operation, if it is configured.
-
-🟡 **Fallback** - Sourcegraph will fall back to use this token for this operation, if it is configured.
-
-🔴 **Unsupported** - Sourcegraph cannot use this token for this operation.
-
- Operation | [Personal Access Token](#personal-access-tokens) | [Global Service Account Token](#global-service-account-tokens)
----------------------------------------------------------- | :----------------------------------------------: | :------------------------------------------------------------:
-Pushing a branch with the changes | 🟢 | 🟡
-[Publishing a changeset](/batch_changes/how-tos/publishing_changesets) | 🟢 | 🟡
-Updating a changeset | 🟢 | 🟡
-Closing a changeset | 🟢 | 🟡
-[Importing a changeset](/batch_changes/how-tos/tracking_existing_changesets) | 🔴 | 🟢
-Syncing a changeset | 🔴 | 🟢
-
-When writing a changeset to the code host, the author will reflect the token used (e.g., on GitHub, the pull request author will be you). It is for this reason that a personal access token is preferred for most operations.
-
-## Personal access tokens
-
-### Do I need to add a personal access token?
-
-Personal access tokens are not strictly required if a global access token has also been configured, but users should add one if they want Sourcegraph to create changesets under their name.
-
-> NOTE: Commit author is determined by your spec file or local git config at the time of running `src batch [apply|preview]`, completely independent from code host credentials.
-
-### Adding a token
-
-Adding a personal access token is done through the Batch Changes section of your user settings:
-
-1. From any Sourcegraph page, click on your avatar at the top right of the page.
-1. Select **Settings** from the dropdown menu.
-1. Click **Batch Changes** on the sidebar menu.
-1. Click **Add credentials** and follow the steps to [create a new token](#creating-a-code-host-token) for the code host
-
-
-
-
-
-Code hosts with tokens configured are indicated by a green tick to the left of the code host name, while code hosts without tokens have an empty red circle next to them.
-
-### Removing a token
-
-To remove a token, navigate back to the same section of your user settings, then click **Remove**:
-
-
-
-
-
-The code host's indicator should revert to the empty red circle once the token is removed.
-
-## Global service account tokens
-
-### Do I need to add a global service account token?
-
-Global credentials are usable by all users of the Sourcegraph instance who have not added their own personal access tokens for Batch Changes. This makes them a handy fallback, but not strictly required if users are adding their own tokens for publishing changesets.
-
-However, currently a global service account token is required for [importing existing changesets](/batch_changes/how-tos/tracking_existing_changesets) on your code hosts into batch changes.
-
-Additionally, if you have not [configured webhooks](/admin/config/batch_changes#incoming-webhooks) from your code host, Sourcegraph requires a global service account keep changesets up to date.
-
-If [forks are enabled](/admin/config/batch_changes#forks), then note that repositories will also be forked into the service account.
-
-### Adding a token
-
-Adding a global service account token is done through the Batch Changes section of the site admin area:
-
-1. From any Sourcegraph page, click on your avatar at the top right of the page.
-1. Select **Site admin** from the dropdown menu.
-1. Click **Settings** under the **Batch Changes** sub-heading on the sidebar menu.
-1. Click **Add credentials** and follow the steps to [create a new token](#creating-a-code-host-token) for the code host
-
-Code hosts with tokens configured are indicated by a green tick to the left of the code host name, while code hosts without tokens have an empty red circle next to them.
-
-### Removing a token
-
-To remove a token, navigate back to the same section of the site admin area, then click **Remove**. The code host's indicator should revert to the empty red circle once the token is removed.
-
-## Creating a code host token
-
-To finish configuring the new credentials, you will need to create a new personal access token on your code host and paste it into the input field on the **Add credentials** modal:
-
-
-
-### GitHub
-
-#### GitHub.com
-
-On GitHub.com, [create a personal access token (classic) with the correct scopes](https://github.com/settings/tokens/new?scopes=repo,read:org,user:email,read:discussion,workflow).
-
-The `workflow` scope is technically only required if your batch changes modify files in the `.github` directory of a repository, but we recommend enabling it regardless to avoid confusing errors at a later time.
-
-When working with organizations that have SAML SSO (Single Sign On) enabled, configuring credentials requires an additional step that [involves white-listing the token for use in that organization](https://docs.github.com/en/enterprise-cloud@latest/authentication/authenticating-with-saml-single-sign-on/authorizing-a-personal-access-token-for-use-with-saml-single-sign-on).
-
-> NOTE: At present, only classic personal access tokens (PATs) are supported. The following alternative token types are untested or unsupported:
-> * OAuth Access Tokens (e.g. OAuth Apps)
-> * Installation Access Token (e.g. GitHub Apps)
-> * Fine-grained personal access tokens (PATv2)
-
-#### GitHub Enterprise
-
-Follow the steps to [create a personal access token (classic)](https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/creating-a-personal-access-token) on GitHub Enterprise. Batch Changes requires the following scopes:
-
-- `repo`
-- `read:org`
-- `user:email`
-- `read:discussion`
-- `workflow`
-
-This is done by selecting the relevant checkboxes when creating the token:
-
-
-
-The `workflow` scope is technically only required if your batch changes modify files in the `.github` directory of a repository, but we recommend enabling it regardless to avoid confusing errors at a later time.
-
-When working with organizations that have SAML SSO (Single Sign On) enabled, configuring credentials requires an additional step that [involves white-listing the token for use in that organization](https://docs.github.com/en/enterprise-cloud@latest/authentication/authenticating-with-saml-single-sign-on/authorizing-a-personal-access-token-for-use-with-saml-single-sign-on).
-
-> WARNING: Currently, for customers on an instance of GitHub Enterprise Cloud that uses [SSH certificate authorities](https://docs.github.com/en/enterprise-cloud@latest/organizations/managing-git-access-to-your-organizations-repositories/about-ssh-certificate-authorities) and requires SSH certificates to authenticate, we are unable to provide a means of authenticating Batch Changes to your code host.
-
-> NOTE: At present, only classic personal access tokens (PATs) are supported. The following alternative token types are untested or unsupported:
-> * OAuth Access Tokens (e.g. OAuth Apps)
-> * Installation Access Token (e.g. GitHub Apps)
-> * Fine-grained personal access tokens (PATv2)
-
-### GitLab
-
-Follow the steps to [create a personal access token](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html#creating-a-personal-access-token) on GitLab. Batch Changes requires the following scopes:
-
-- `api`
-- `read_repository`
-- `write_repository`
-
-This is done by selecting the relevant checkboxes when creating the token:
-
-
-
-### Bitbucket Server / Bitbucket Data Center
-
-Follow the steps to [create a personal access token](https://confluence.atlassian.com/bitbucketserver0516/personal-access-tokens-966061199.html?utm_campaign=in-app-help&utm_medium=in-app-help&utm_source=stash#Personalaccesstokens-Generatingpersonalaccesstokens) on Bitbucket.
-
-Batch Changes requires the access token to have the `write` permission on both projects and repositories. This is done by selecting the **Write** level in the **Projects** dropdown, and letting it be inherited by repositories:
-
-
-
-### Bitbucket Cloud
-
-Follow the steps to [create an app password](https://support.atlassian.com/bitbucket-cloud/docs/app-passwords/) on Bitbucket. Batch Changes requires the following scopes:
-
-- `account:read`
-- `repo:read`
-- `repo:write`
-- `pr:write`
-- `pipeline:read`
-
-
-
-### Azure DevOps
-
-Follow the steps to [create a PAT](https://learn.microsoft.com/en-us/azure/devops/organizations/accounts/use-personal-access-tokens-to-authenticate?view=azure-devops&tabs=Windows#create-a-pat) on Azure DevOps. Batch Changes requires the following scopes:
-
-- `Organization:All accessible organizations`
-- `Code:Full`
-- `Code:Status`
-- `Pull Request Thread:Read & Write`
-- `User Profile:Read`
-
-> NOTE: Click "Show all scopes" at the bottom of the "Create a new PAT" popup to get the full list of available scopes.
-
-
-
-### Gerrit
-
-- Permissions to create, comment, close, merge, and delete a Change in Gerrit.
-- Create an HTTP password in the user settings page.
-
-
-
-### SSH access to code host
-
-When Sourcegraph is configured to [clone repositories using SSH via the `gitURLType` setting](/admin/repo/auth), an SSH keypair will be generated for you and the public key needs to be added to the code host to allow push access. In the process of adding your personal access token you will be given that public key. You can also come back later and copy it to paste it in your code host's SSH access settings page.
-
-
diff --git a/docs/batch_changes/how-tos/creating_a_batch_change.mdx b/docs/batch_changes/how-tos/creating_a_batch_change.mdx
deleted file mode 100644
index 366d55eee..000000000
--- a/docs/batch_changes/how-tos/creating_a_batch_change.mdx
+++ /dev/null
@@ -1,106 +0,0 @@
-# Creating a batch change
-
-Batch changes are created by writing a [batch spec](/batch_changes/references/batch_spec_yaml_reference) and executing that batch spec with the [Sourcegraph CLI](https://github.com/sourcegraph/src-cli) `src`.
-
-Batch changes can also be used on [multiple projects within a monorepo](/batch_changes/how-tos/creating_changesets_per_project_in_monorepos) by using the `workspaces` key in your batch spec.
-
-There are two paths to creating a batch change:
-
-- On your local machine, with the [Sourcegraph CLI](https://github.com/sourcegraph/src-cli)
-- Remotely, with [server-side execution](/batch_changes/explanations/server_side)
-
-Many concepts are shared between the two paths. However, this guide will walk you through creating a batch change the first way, on your local machine.
-
-## Requirements
-
-- Sourcegraph instance with repositories in it. See the "[Quickstart](/batch_changes/how-tos/#quick-install)" guide on how to setup a Sourcegraph instance.
-- Installed and configured [Sourcegraph CLI](https://github.com/sourcegraph/src-cli) (see "[Install the Sourcegraph CLI](/batch_changes/quickstart#install-the-sourcegraph-cli)" in the Batch Changes quickstart for detailed instructions).
-- Configured credentials for the code host(s) that you'll be creating changesets on. See "[Configuring user credentials](/batch_changes/how-tos/configuring_credentials)" for a guide on how to add and manage credentials.
-
-## Writing a batch spec
-
-In order to create a batch change, you need a batch spec that describes the batch change. Here is an example batch spec that describes a batch change to add "Hello World" to all `README` files:
-
-```yaml
-name: hello-world
-description: Add Hello World to READMEs
-
-# Find all repositories that contain a README file.
-on:
- - repositoriesMatchingQuery: file:README
-
-# In each repository, run this command. Each repository's resulting diff is captured.
-steps:
- - run: IFS=$'\n'; echo Hello World | tee -a $(find -name README)
- container: alpine:3
-
-# Describe the changeset (e.g., GitHub pull request) you want for each repository.
-changesetTemplate:
- title: Hello World
- body: My first batch change!
- branch: hello-world # Push the commit to this branch.
- commit:
- message: Append Hello World to all README files
- published: false # Do not publish any changes to the code hosts yet
-```
-
-The commits created from your spec will use the git config values for `user.name` and `user.email` from your local environment, or "batch-changes@sourcegraph.com" if no user is set. Alternatively, you can also [specify an `author`](/batch_changes/references/batch_spec_yaml_reference#changesettemplate-commit-author) in this spec.
-
-See the ["batch spec YAML reference"](/batch_changes/references/batch_spec_yaml_reference) and the [tutorials](/batch_changes/tutorials/) for more details on how to write batch specs.
-
-## Creating a batch change after previewing
-
-After writing a batch spec you use the [Sourcegraph CLI (`src`)](https://github.com/sourcegraph/src-cli) to execute the batch spec and upload it to Sourcegraph, where you can preview the changes and apply the batch spec to create a batch change:
-
-1. Run the following command in your terminal:
-
- src batch preview -f YOUR_BATCH_SPEC.batch.yaml
-
- > **Don't worry!** Before any branches are pushed or changesets (e.g., GitHub pull requests) are created, you will see a preview of all changes and can confirm each one before proceeding.
- > NOTE: Batch Changes's default behavior is to stop if computing changes in a repository errors. You can choose to ignore errors instead by adding the [`skip-errors`](/cli/references/batch/preview) flag : `src batch preview -f spec.batch.yml -skip-errors`
-
-1. Wait for it to run and compute the changes for each repository (using the repositories and commands in the batch spec).
-
-1. Open the preview URL that the command printed out.
-
-1. Examine the preview. This is the result of executing the batch spec. Confirm that the changes are what you intended. If not, edit the batch spec and then rerun the command above.
-
-1. Click the **Apply** button to create the batch change.
-
-After you've applied a batch spec, you can [publish changesets](/batch_changes/how-tos/publishing_changesets) to the code host when you're ready. This will turn the patches into commits, branches, and changesets (such as GitHub pull requests) for others to review and merge.
-
-You can share the link to your batch change with other people if you want their help. Any person on your Sourcegraph instance can [view it in the batch changes list](/batch_changes/how-tos/viewing_batch_changes).
-
-If a person viewing the batch change lacks read access to a repository in the batch change, they can only see [limited information about the changes to that repository](/batch_changes/explanations/permissions_in_batch_changes#repository-permissions-for-batch-changes) (and not the repository name, file paths, or diff).
-
-You can update a batch change's changes at any time, even after you've published changesets. For more information, see [Updating a batch change](/batch_changes/how-tos/updating_a_batch_change).
-
-## Applying a batch spec without preview
-
-You can use [Sourcegraph CLI (`src`)](https://github.com/sourcegraph/src-cli) to directly apply a batch spec to create or [update](/batch_changes/how-tos/updating_a_batch_change) a batch change without having to use the UI.
-
-Instead of running `src batch preview` you run the following:
-
-```bash
-src batch apply -f YOUR_BATCH_SPEC.batch.yaml
-```
-
-This command won't print a link to a preview. It will create or update the batch change it describes directly.
-
-That can be useful if you just want to update a single field in the batch spec, i.e. the `description` or the `changesetTemplate.body`, or if you want to continously update a batch change by running `src` in a CI workflow.
-
-## Creating a batch change in a different namespace
-
-Batch changes are uniquely identified by their name and namespace. The namespace can be any Sourcegraph username or the name of a Sourcegraph organization.
-
-By default, batch changes will use your username on Sourcegraph as your namespace. To create batch changes in a different namespace use the `-namespace` flag when previewing or applying a batch spec:
-
-```
-src batch preview -f your_batch_spec.batch.yaml -namespace USERNAME_OR_ORG
-```
-
-When creating a batch change server-side using the UI, you can select the namespace for the batch change to belong to at the time that you're creating it.
-
-### Administration
-
-Once a batch change is open, any Sourcegraph user can view it. However, the namespace determines who has the ability to administer it, such as editing or deleting it. When a batch change is created in a user namespace, only that user (and site admins) can administer it. When a batch change is created in an organization namespace, all members of that organization (and site admins) can administer it.
diff --git a/docs/batch_changes/how-tos/creating_changesets_per_project_in_monorepos.mdx b/docs/batch_changes/how-tos/creating_changesets_per_project_in_monorepos.mdx
deleted file mode 100644
index 744049371..000000000
--- a/docs/batch_changes/how-tos/creating_changesets_per_project_in_monorepos.mdx
+++ /dev/null
@@ -1,135 +0,0 @@
-# Creating changesets per project in monorepos
-
-## Overview
-
-Large repositories often contain multiple projects, making them so-called monorepos. It can make sense to run the batch spec [`steps`][steps] separately in each project and create one changeset per project.
-
-That can be done by using [`workspaces`][workspaces] in the batch specs in two steps:
-
-1. Define the project locations with the `workspaces` property
-2. Produce unique `changesetTemplate.branch` names
-
-## 1. Define project locations with `workspaces`
-
-Let's say we have a repository containing multiple TypeScript projects in which we want to update TypeScript by running the following command:
-
-```
-npm update typescript
-```
-
-The repository has the following directory and file structure:
-
-```
-README
-project1/package.json
-project1/src/...
-project2/package.json
-project2/src/...
-examples/project3/package.json
-examples/project3/src/...
-```
-
-The location of the `package.json` files tell us that the TypeScript projects are in `project1`, `project2` and `examples/project3`. In each of these we to run the `npm update` command and produce an individual changeset per project.
-
-The [`workspaces`][workspaces] property in batch specs allows us to do that:
-
-```yaml
-name: update-typescript-monorepo
-description: This batch change updates the TypeScript dependency to the latest version
-
-on:
- - repositoriesMatchingQuery: our-large-monorepo
-
-workspaces:
- - rootAtLocationOf: package.json
- in: github.com/our-org/our-large-monorepo
-
-steps:
- - run: npm update typescript
- container: node:14
-
-# [...]
-```
-
-The `workspaces` property here defines that in `github.com/our-org/our-large-monorepo` different `workspaces` exist and contain a `package.json` at their root.
-
-When executed with `src batch [apply|preview]` this would produce up to 3 changesets in `github.com/our-org/our-large-monorepo`, one for each project.
-
-## 2. Produce unique `changesetTemplate.branch` names
-
-Since changesets are uniquely identified by their repository and branch, we **must** ensure that multiple changesets in the same repository will different branches.
-
-To do that, we make use of [templating][templating] in the [`changesetTemplate.branch`][branch] field
-
-```yaml
-# [...]
-changesetTemplate:
- title: Update TypeScript
- body: This updates TypeScript to the latest version
- published: false
- commit:
- message: Update TypeScript
- # Templating and helper functions allow us to get the `path` in which
- # the `steps` executed and turn that into a branch name:
- branch: batch-changes/update-typescript-${{ replace steps.path "/" "-" }}
-```
-
-The `steps.path` [templating variable][templating] contains the path in which the `steps` were executed, relative to the root of the repository.
-
-With the file and directory structure above, that means we'd end up with the following branch names:
-
-- `batch-changes/update-typescript-project1`
-- `batch-changes/update-typescript-project2`
-- `batch-changes/update-typescript-examples-project3`
-
-And with that, we're done and ready to produce multiple changesets in a single repository, with the full batch spec looking like this:
-
-```yaml
-name: update-typescript-monorepo
-description: This batch change updates the TypeScript dependency to the latest version
-
-on:
- - repository: github.com/sourcegraph/automation-testing
-
-workspaces:
- - rootAtLocationOf: package.json
- in: github.com/sourcegraph/automation-testing
-
-steps:
- - run: npm update typescript
- container: node:14
-
-changesetTemplate:
- title: Update TypeScript
- body: This updates TypeScript to the latest version
- branch: batch-changes/update-typescript-${{ replace steps.path "/" "-" }}
- commit:
- message: Update TypeScript
- published: false
-```
-
-Now we only need to run `src batch [apply|preview]` to execute our batch spec.
-
-## Dynamic discovery of workspaces
-
-The `workspace` property leverages Sourcegraph search to find the location of the defined workspaces in the repositories yielded by the [`on`][on] property of the batch spec.
-
-That has the advantage that it's _dynamic_: whenever `src batch [apply|preview]` is re-executed, Sourcegraph search is used again to find workspaces, automatically picking up new ones and removing workspaces that no longer exist.
-
-## Only downloading workspace data in large repositories
-
-If the repository containing the workspaces is really large and it's not feasible to download to make it available for the `steps` execution, the [`workspaces.onlyFetchWorkspaces`][onlyFetchWorkspaces] field can be set to `true` to only download the workspaces, without the rest of the repository.
-
-## Learn more
-
-To learn more about `workspaces`, take a look at its entry in the "[batch spec YAML reference][workspaces]".
-
-{/* References for easier reading of text above:
-
-[cli]: ../cli/index
-[steps]: ../references/batch_spec_yaml_reference#steps
-[workspaces]: ../references/batch_spec_yaml_reference#workspaces
-[onlyfetchworkspace]: ../references/batch_spec_yaml_reference#workspaces-onlyfetchworkspace
-[on]: ../references/batch_spec_yaml_reference#on
-[branch]: ../references/batch_spec_yaml_reference#changesettemplate-branch
-[templating]: ../references/batch_spec_templating */}
diff --git a/docs/batch_changes/how-tos/creating_multiple_changesets_in_large_repositories.mdx b/docs/batch_changes/how-tos/creating_multiple_changesets_in_large_repositories.mdx
deleted file mode 100644
index caf254e22..000000000
--- a/docs/batch_changes/how-tos/creating_multiple_changesets_in_large_repositories.mdx
+++ /dev/null
@@ -1,76 +0,0 @@
-# Creating multiple changesets in large repositories
-
-
-This feature is in beta and might change in the future.
-
-
-## Overview
-
-Batch changes can produce a lot of changes in a single repository. In order to make reviewing and merging the changes easier, it can be helpful to split the changes up into multiple changesets.
-
-That can be done by using [`transformChanges`](/batch_changes/references/batch_spec_yaml_reference#transformchanges) in the batch spec to group the changes produced in one single repository by directory and create a changeset for each group.
-
-> NOTE: In some monorepos it makes more sense to run the batch spec `steps` per project. Take a look at "[Creating changesets per project in monorepos](/batch_changes/how-tos/creating_changesets_per_project_in_monorepos)" to find out how to use the `workspaces` property to do that.
-
-## Using `transformChanges`
-
-The following batch spec uses the `transformChanges` property to create up to 4 changesets in a single repository by grouping the changes made in different directories:
-
-```yaml
-name: hello-world
-description: Add Hello World to READMEs
-
-# Find all repositories that contain a README file.
-on:
- - repositoriesMatchingQuery: file:README
-
-# In each repository, run this command. Each repository's resulting diff is captured.
-steps:
- - run: IFS=$'\n'; echo Hello World | tee -a $(find -name README)
- container: alpine:3
-
-# Transform the changes produced in each repository.
-transformChanges:
- # Group the file diffs by directory and produce one additional changeset per group.
- # Changes that haven't been grouped will be be in the standard changeset.
- group:
- - directory: client
- branch: hello-world-client # will replace the `branch` in the `changesetTemplate`
- - directory: docker-images
- # Optional: only apply the rule in this repository
- repository: github.com/sourcegraph/sourcegraph
- branch: hello-world-infra
- - directory: monitoring
- repository: github.com/sourcegraph/sourcegraph
- branch: hello-world-monitoring
-
-# Describe the changeset (e.g., GitHub pull request) you want for each repository.
-changesetTemplate:
- title: Hello World
- body: My first batch change!
- branch: hello-world # This branch is the default branch and will be
- # overwritten for each additional changeset.
- commit:
- message: Append Hello World to all README files
- published: false # Do not publish any changes to the code hosts yet
-```
-
-This batch spec will produce up to 4 changesets in the `github.com/sourcegraph/sourcegraph` repository:
-
-1. a changeset with the changes in the `client` directory
-1. a changeset with the changes in `docker-images`
-1. a changeset with the changes in `monitoring`
-1. a changeset with the changes in the other directories.
-
-Since code hosts and git don't allow creating multiple, _different_ changesets on the same branch, it is **required** to specify a unique `branch` for each `directory` that will be used for the additional changesets. That `branch` will overwrite the default branch specified in `changesetTemplate`.
-
-In case no changes have been made in a `directory` specified in a `group`, no additional changeset will be produced.
-
-If the optional `repository` property is specified only the changes in that repository will be grouped.
-
-See the [batch spec YAML reference on `transformChanges`](/batch_changes/references/batch_spec_yaml_reference#transformchanges) for more details.
-
-{/* References for easier reading of text above:
-
-[steps]: /batch_changes/references/batch_spec_yaml_reference#steps
-[workspaces]: /batch_changes/references/batch_spec_yaml_reference#workspaces */}
diff --git a/docs/batch_changes/how-tos/handling_errored_changesets.mdx b/docs/batch_changes/how-tos/handling_errored_changesets.mdx
deleted file mode 100644
index 3b7ea3410..000000000
--- a/docs/batch_changes/how-tos/handling_errored_changesets.mdx
+++ /dev/null
@@ -1,59 +0,0 @@
-# Handling errored changesets
-
-Publishing a changeset can result in an error for different reasons.
-
-Sometimes the problem can be fixed by automatically retrying to publish the changeset, but other errors require the user to take some action.
-
-Errored changesets that are marked as **Retrying** are being automatically retried:
-
-
-
-Changesets that are marked as **Failed** can be [retried manually](#manual-retrying-of-errored-changesets):
-
-
-
-## Types of errors
-
-Examples of errors that can be fixed by [automatically retrying](#automatic-retrying-of-errored-changesets):
-
-- Connecting to the code host failed
-- Code host responds with an error when trying to open a pull request
-- Internal network errors
-- ...
-
-Examples of errors that requires [manual retrying](#manual-retrying-by-re-applying-the-batch-change-spec):
-
-- No [Batch Changes credentials](/batch_changes/how-tos/configuring_credentials) have been setup for the affected code host
-- The configured code host connection needs a different type of credentials (e.g. with SSH keys)
-- A pull request for the specified branch already exists in another batch change
-- ...
-
-## Automatic retrying of errored changesets
-
-If an operation on a changeset results in an error that looks like it could be transient or resolvable if retried, Sourcegraph will automatically retry that operation. Typically, only internal errors and errors from the code host with HTTP status codes in the 500 range will be retried.
-
-This will be indicated by the changeset entering a **Retrying** state. Sourcegraph will automatically retry the operation up to ten times.
-
-## Manual retrying of errored changesets
-
-Changesets that are marked as **Failed** won't be retried automatically. That's either because the number of automatic retries has been exhausted, or because retrying won't fix the error without user intervention.
-
-When a changeset failed publishing, the user can click _Retry_ on the error message. No re-applying needed.
-
-Additionally, in order to retry all **Failed** (or even **Retrying**) changesets manually, you can re-apply the batch spec.
-
-**Option 1:** Preview and re-apply the batch spec in the UI by running
-
-```bash
-src batch preview -f YOUR_BATCH_SPEC.batch.yaml
-```
-
-and clicking on the printed URL to apply the uploaded batch spec.
-
-**Option 2:** Re-apply directly by running the following:
-
-```bash
-src batch apply -f YOUR_BATCH_SPEC.batch.yaml
-```
-
-See "[Creating a batch change](/batch_changes/how-tos/creating_a_batch_change)" for more information on these commands.
diff --git a/docs/batch_changes/how-tos/index.mdx b/docs/batch_changes/how-tos/index.mdx
deleted file mode 100644
index 625a70e12..000000000
--- a/docs/batch_changes/how-tos/index.mdx
+++ /dev/null
@@ -1,23 +0,0 @@
-# How-tos
-
-The following is a list of how-tos that show how to use [Sourcegraph Batch Changes](/batch_changes/):
-
-- [Creating a batch change](/batch_changes/how-tos/creating_a_batch_change)
-- [Publishing changesets to the code host](/batch_changes/how-tos/publishing_changesets)
-- [Updating a batch change](/batch_changes/how-tos/updating_a_batch_change)
-- [Viewing batch changes](/batch_changes/how-tos/viewing_batch_changes)
-- [Tracking existing changesets](/batch_changes/how-tos/tracking_existing_changesets)
-- [Closing or deleting a batch change](/batch_changes/how-tos/closing_or_deleting_a_batch_change)
-- [Configuring credentials for Batch Changes](/batch_changes/how-tos/configuring_credentials)
-- [Handling errored changesets](/batch_changes/how-tos/handling_errored_changesets)
-- [Changeset yaml formatting errors](/batch_changes/how-tos/yaml_changeset_errors)
-- [Opting out of Batch Changes](/batch_changes/how-tos/opting_out_of_batch_changes)
-- [Bulk operations on changesets](/batch_changes/how-tos/bulk_operations_on_changesets)
-- [Using file mounts with server-side execution](/batch_changes/how-tos/server_side_file_mounts)
-- Batch changes in monorepos
- - [Creating changesets per project in monorepos](/batch_changes/how-tos/creating_changesets_per_project_in_monorepos)
- - [Creating multiple changesets in large repositories](/batch_changes/how-tos/creating_multiple_changesets_in_large_repositories) (Beta)
-
-### Administering Batch Changes
-
-- [Site admin configuration for Batch Changes](/batch_changes/how-tos/site_admin_configuration)
diff --git a/docs/batch_changes/how-tos/opting_out_of_batch_changes.mdx b/docs/batch_changes/how-tos/opting_out_of_batch_changes.mdx
deleted file mode 100644
index 725c2144d..000000000
--- a/docs/batch_changes/how-tos/opting_out_of_batch_changes.mdx
+++ /dev/null
@@ -1,7 +0,0 @@
-# Opting out of batch changes
-
-Repository owners that are not interested in batch change changesets can opt out so that their repository will be skipped when a batch spec is executed.
-
-To opt out: create a file called `.batchignore` at the root of the repository you wish to be skipped. `src batch [apply|preview]` will now skip that repository if it's yielded by the `on` part of the batch spec.
-
->NOTE: You can use the `-force-override-ignore` flag to override that behaviour and not skip any ignored repositories.
diff --git a/docs/batch_changes/how-tos/publishing_changesets.mdx b/docs/batch_changes/how-tos/publishing_changesets.mdx
deleted file mode 100644
index 1ab4b26ab..000000000
--- a/docs/batch_changes/how-tos/publishing_changesets.mdx
+++ /dev/null
@@ -1,196 +0,0 @@
-# Publishing changesets to the code host
-
-After you've [created a batch change](/batch_changes/how-tos/creating_a_batch_change) with the `published` field set to `false` or omitted in its batch spec, you can see a preview of the changesets (e.g., GitHub pull requests) that will be created on the code host once they're published:
-
-
-
-In order to create these changesets on the code hosts, you need to publish them.
-
-## Requirements
-
-To publish a changeset, you need:
-
-1. [admin permissions for the batch change](/batch_changes/explanations/permissions_in_batch_changes#permission-levels-for-batch-changes),
-1. write access to the changeset's repository (on the code host), and
-1. a [personal access token](/batch_changes/how-tos/configuring_credentials#personal-access-tokens) or a [global service account token](/batch_changes/how-tos/configuring_credentials#global-service-account-tokens) configured for the code host.
-
-For more information, see "[Code host interactions in Batch Changes](/batch_changes/explanations/permissions_in_batch_changes#code-host-interactions-in-batch-changes)".
-[Forking the repository](/batch_changes/explanations/introduction_to_batch_changes#known-issues) is not yet supported.
-
-## Publishing changesets
-
-You can publish changesets either by [setting the `published` field in the batch spec](#within-the-spec), or [through the Sourcegraph UI](#within-the-ui). Both workflows are described in full below.
-
-A brief summary of the pros and cons of each workflow is:
-
-
-
-
- Workflow
- Pros
- Cons
-
-
-
-
-
-
- Setting published in the batch spec
-
-
-
-
-
- If you reuse your batch spec, or share it with others, the new batch changes will have the same changesets published.
-
-
- Easy to publish changesets in large batch changes based on specific criteria, such as the organization each repository is in.
-
-
-
-
-
-
- Requires the batch spec to be re-applied before changes take effect, which can be slower.
-
-
- Requires more context switching from the UI back to the spec file when previewing diffs.
-
-
-
-
-
-
-
- Publishing from the UI
-
-
-
-
-
- Rapid feedback loop: you can check a specific diff and immediately publish it.
-
-
- Easy to publish random changesets without having to specify rules in the published field.
-
-
-
-
-
-
- Publication state isn't reproducible across multiple batch changes.
-
-
-
-
-
-
-
->NOTE: We currently do not support changing the state of a `published` changeset to `draft` or `unpublished`. Once a changeset is published, it can't be `unpublished` or changed to a `draft`.
-
-### Within the spec
-
-When you're ready, you can publish all of a batch change's changesets by changing the `published: false` in your batch spec to `true`:
-
-```yaml
-name: hello-world
-
-# ...
-
-changesetTemplate:
- # ...
- published: true
-```
-
-Then run the `src batch preview` command again, or `src batch apply` to immediately publish the changesets.
-
-Publishing a changeset will:
-
-- Create a commit with the changes from the patches for that repository.
-- Push a branch using the branch name you defined in the batch spec with [`changesetTemplate.branch`](/batch_changes/references/batch_spec_yaml_reference#changesettemplate-branch). If [forks are enabled](/admin/config/batch_changes#forks), then the branch will be pushed to a fork of the repository.
-- Create a changeset (e.g., GitHub pull request) on the code host for review and merging.
-
-> NOTE: When pushing the branch Sourcegraph will use a **force push**. Make sure that the branch names are unused, otherwise previous commits will be overwritten.
-
-In the Sourcegraph web UI you'll see a progress indicator for the changesets that are being published and any possible errors:
-
-
-
-If you run into any errors, you can retry publishing after you've resolved the problem by running `src batch apply` again.
-
-You don't need to worry about multiple branches or pull requests being created when you retry, because the same branch name will be used and the commit will be overwritten.
-
-#### Publishing a subset of changesets
-
-Instead of publishing all changesets at the same time, you can also publish some of a batch change's changesets, by specifying which changesets you want to publish in the `published` field:
-
-```yaml
-# ...
-
-changesetTemplate:
- # ...
- published:
- - github.com/sourcegraph/src-cli: true
- - github.com/sourcegraph/*: true
- - github.com/sourcegraph-private/*: false
-```
-
-See [`changesetTemplate.published`](/batch_changes/references/batch_spec_yaml_reference#changesettemplate-published) in the batch spec reference for more details.
-
-#### Publishing changesets as drafts
-
-Some code hosts (GitHub, GitLab) allow publishing changesets as _drafts_. To publish a changeset as a draft, use the `'draft`' value in the `published` field:
-
-```yaml
-# ...
-
-changesetTemplate:
- # ...
- published: draft
-```
-
-See [`changesetTemplate.published`](/batch_changes/references/batch_spec_yaml_reference#changesettemplate-published) in the batch spec reference for more details.
-
-#### Fully publishing draft changesets
-
-If you have previously published changesets as drafts on code hosts by setting `published` to `draft`, you then fully publish them and take them out of draft mode by updating the `published` to `true`.
-
-See [`changesetTemplate.published`](/batch_changes/references/batch_spec_yaml_reference#changesettemplate-published) in the batch spec reference for more details.
-
-### Within the UI
-
-Sourcegraph 3.30+
-
-To publish from the Sourcegraph UI, you'll need to remove (or omit) the `published` field from your batch spec. When you first apply a batch change without an explicit `published` field, all changesets are left unpublished.
-
-#### From the preview
-
-Sourcegraph 3.31+
-
-When you run `src batch preview` against your batch spec and open the preview link, you'll see the current states of each of your changesets, as well as a preview of the actions that will be performed when you apply:
-
-
-
-For any changesets that are currently unpublished or only published as drafts, you can select the checkbox and choose an action from the dropdown menu to indicate what publication state you want to set the changesets to on apply:
-
-
-
-> NOTE: Certain types of changeset cannot be published from the UI and will have their checkbox disabled. Not sure why your changeset is disabled? Check the [FAQ](/batch_changes/references/faq#why-is-the-checkbox-on-my-changeset-disabled-when-i-m-previewing-a-batch-change).
-
-Once the preview actions look good, you can click **Apply** to publish the changesets. You should see an alert appear indicating that the publication states actions have updated, and the changesets' "Actions" will reflect the new publication states:
-
-
-
-#### From an open batch change
-
-Once applied, you can select the changesets you want to publish from the batch change page and publish them using the [publish bulk operation](/batch_changes/how-tos/bulk_operations_on_changesets), as demonstrated in this video:
-
-
-
-
-
-## Specifying Git commit details
-
-Regardless of how you publish your changesets, the commit that's created and pushed to the branch uses the details specified in the batch spec's `changesetTemplate` field.
-
-See [`changesetTemplate.commit`](/batch_changes/references/batch_spec_yaml_reference#changesettemplate-commit) for details on how to set the author and the commit message.
diff --git a/docs/batch_changes/how-tos/server_side_file_mounts.mdx b/docs/batch_changes/how-tos/server_side_file_mounts.mdx
deleted file mode 100644
index 308ac0f5e..000000000
--- a/docs/batch_changes/how-tos/server_side_file_mounts.mdx
+++ /dev/null
@@ -1,79 +0,0 @@
-# Using file mounts with server-side execution
-
- This is an all-new feature. We appreciate your feedback.
-
-> NOTE: Running a batch spec [server-side](/batch_changes/explanations/server_side) with file mounts is
-> currently only supported with Sourcegraph CLI .
-
-File [`mounts`](/batch_changes/references/batch_spec_yaml_reference#steps-mount) are a powerful way to run custom files without
-directly embedding the files in your batch spec.
-
-## Writing a batch spec
-
-In the following example, you have a Python script that appends "Hello World" to all `README` files.
-
-```python
-#!/usr/bin/env python3
-import os.path
-
-
-def main():
- if os.path.exists('README'):
- with open('README', 'a') as f:
- f.write('\nHello World')
-
-
-if __name__ == "__main__":
- main()
-```
-
-To use the Python script in your batch change, mount the script in a `step` using
-the [`mounts`](/batch_changes/references/batch_spec_yaml_reference#steps-mount) field. The following is an example of mounting
-the above Python script in a `step`.
-
-```yaml
-name: hello-world
-description: Add Hello World to READMEs
-
-# Find all repositories that contain a README file.
-on:
- - repositoriesMatchingQuery: file:README
-
-# In each repository, run this command. Each repository's resulting diff is captured.
-steps:
- - run: python /tmp/hello_appender.py
- container: python:latest
- mount:
- - path: ./hello_appender.py
- mountpoint: /tmp/hello_appender.py
-
-# Describe the changeset (e.g., GitHub pull request) you want for each repository.
-changesetTemplate:
- title: Hello World
- body: My first batch change!
- branch: hello-world # Push the commit to this branch.
- commit:
- message: Append Hello World to all README files
- published: false # Do not publish any changes to the code hosts yet
-```
-
-In this example, the Python script should live besides the batch spec file, as indicated by the `path`:
-
-```text
-.
-├── batch-spec.yml
-└── hello_appender.py
-```
-
-Note that a `container` appropriate for the mounted file has also been chosen for this step.
-
-## Running server-side
-
-After writing the batch spec, use the Sourcegraph CLI (`src`)
-command [`remote`](/cli/references/batch/remote) to execute the batch spec server-side.
-
-```shell
-src batch remote -f batch-spec.yml
-```
-
-Once successful, `src` provides a URL to the execution of the batch change.
diff --git a/docs/batch_changes/how-tos/site_admin_configuration.mdx b/docs/batch_changes/how-tos/site_admin_configuration.mdx
deleted file mode 100644
index 4ed25f7f5..000000000
--- a/docs/batch_changes/how-tos/site_admin_configuration.mdx
+++ /dev/null
@@ -1,25 +0,0 @@
-# Site admin configuration for Batch Changes
-
-#### Setup Batch Changes
-
-1. Using Batch Changes requires a [code host connection](/admin/external_services/) to a supported code host (currently GitHub, Bitbucket Server / Bitbucket Data Center, GitLab, and Bitbucket Cloud).
-
-1. (Optional) [Configure which users have access to Batch Changes](/admin/access_control/batch_changes) Beta . By default, all users can create and view batch changes, but only the batch change's author or a site admin can administer a given batch change.
- * Additionally, you can also [customize org settings](/admin/config/batch_changes#enable-organization-members-to-administer) to allow members of an organization to share administration privileges over batch changes created in that organization.
-
-1. (Optional) [Configure repository permissions](/admin/permissions/), which Batch Changes will respect.
-
-1. [Configure credentials](/batch_changes/how-tos/configuring_credentials).
-
-1. [Setup incoming webhooks](/admin/config/webhooks/incoming) to make sure changesets sync fast. See [Batch Changes effect on codehost rate limits](/batch_changes/references/requirements#batch-changes-effect-on-code-host-rate-limits).
-
-1. Configure any desired optional features, such as:
- * [Rollout windows](/admin/config/batch_changes#rollout-windows), which control the rate at which Batch Changes will publish changesets on code hosts.
- * [Forks](/admin/config/batch_changes#forks), which push branches created by Batch Changes onto forks of the upstream repository instead than the repository itself.
- * [Outgoing webhooks](/admin/config/webhooks/outgoing), which publish events related to batch changes and changesets to enable deeper integrations with your other tools and systems.
- * [Auto-delete branch on merge/close](/admin/config/batch_changes#automatically-delete-branches-on-merge-close), which automatically deletes branches created by Batch Changes when changesets are merged or closed.
- * [Commit signing for GitHub](/admin/config/batch_changes#commit-signing-for-github), which signs commits created by Batch Changes via a GitHub App (Beta).
-
-#### Disable Batch Changes
-- [Disable Batch Changes](/batch_changes/explanations/permissions_in_batch_changes#disabling-batch-changes).
-- [Disable Batch Changes for non-site-admin users](/batch_changes/explanations/permissions_in_batch_changes#disabling-batch-changes-for-non-site-admin-users).
diff --git a/docs/batch_changes/how-tos/tracking_existing_changesets.mdx b/docs/batch_changes/how-tos/tracking_existing_changesets.mdx
deleted file mode 100644
index 7e613314a..000000000
--- a/docs/batch_changes/how-tos/tracking_existing_changesets.mdx
+++ /dev/null
@@ -1,39 +0,0 @@
-# Tracking existing changesets
-
-Batch Changes allow you not only to [publish changesets](/batch_changes/how-tos/publishing_changesets) but also to **import and track changesets** that already exist on different code hosts. That allows you to get an overview of the status of multiple changesets, with the ability to filter and drill down into the details of a specific changeset.
-
-
-
-## Requirements
-
-- Sourcegraph instance with repositories in it. See the "[Quickstart](/#quick-install)" guide on how to setup a Sourcegraph instance.
-- A [global service account token](/batch_changes/how-tos/configuring_credentials#global-service-account-tokens) for Batch Changes (**a personal access token cannot currently be used for importing changesets**)
-
-## Importing changesets into a batch change
-
-To track existing changesets in a batch change you add them to the [batch spec](/batch_changes/explanations/introduction_to_batch_changes#batch-spec) under the `importChangesets` property and apply the batch spec.
-
-The following example batch spec tracks multiple existing changesets in different repositories on different code hosts:
-
-```yaml
-name: track-important-milestone
-description: Track all changesets related to our important milestone
-
-importChangesets:
-- repository: github.com/sourcegraph/sourcegraph
- externalIDs: [15397, 15590, 15597, 15583, 15806, 15798]
-- repository: github.com/sourcegraph/src-cli
- externalIDs: [378, 373, 374, 369, 368, 361, 380]
-- repository: bitbucket.sgdev.org/SOUR/vegeta
- externalIDs: [8]
-- repository: gitlab.sgdev.org/sourcegraph/src-cli
- externalIDs: [113, 119]
-```
-
-See "[Creating a batch change](/batch_changes/how-tos/creating_a_batch_change)" on how to create a batch change from the batch spec.
-
-> NOTE: You can combine the tracking of existing changesets and creating new ones by adding `importChangesets:` to your batch specs that have `on:`, `steps:` and `changesetTemplate:` properties.
-
-Once you've created the batch change you'll see the existing changeset show up in the list of changesets. The batch change will track the changeset's status and include it in the overall batch change progress (in the same way as if it had been created by the batch change):
-
-
diff --git a/docs/batch_changes/how-tos/updating_a_batch_change.mdx b/docs/batch_changes/how-tos/updating_a_batch_change.mdx
deleted file mode 100644
index d28153857..000000000
--- a/docs/batch_changes/how-tos/updating_a_batch_change.mdx
+++ /dev/null
@@ -1,142 +0,0 @@
-# Updating a batch change
-
-Updating a batch change works by applying a batch spec to an **existing** batch change in the same namespace.
-
-Since batch changes are uniquely identified by their name (the `name` property in the batch spec) and the namespace in which they were created, you can edit any other part of a batch spec and apply it again.
-
-When a new batch spec is applied to an existing batch change the existing batch change is updated and its changesets are updated to match the new desired state.
-
-## Requirements
-
-To update a changeset, you need:
-
-1. [admin permissions for the batch change](/batch_changes/explanations/permissions_in_batch_changes#permission-levels-for-batch-changes),
-1. write access to the changeset's repository (on the code host), and
-1. a [personal access token](/batch_changes/how-tos/configuring_credentials#personal-access-tokens) or a [global service account token](/batch_changes/how-tos/configuring_credentials#global-service-account-tokens) configured for the code host.
-
-For more information, see [Code host interactions in Batch Changes](/batch_changes/explanations/permissions_in_batch_changes#code-host-interactions-in-batch-changes).
-
-## Preview and apply a new batch spec
-
-In order to update a batch change after previewing the changes, do the following:
-
-1. Edit the [batch spec](/batch_changes/references/batch_spec_yaml_reference) with which you created the batch change to include the changes you want to make to the batch change. For example, change [the commit message in the `changesetTemplate`](/batch_changes/references/batch_spec_yaml_reference#changesettemplate-commit-message), or add a new changeset id [to the importedChangesets](https://docs.sourcegraph.com/batch-changes/references/batch_spec_yaml_reference#importchangesets), or [modify the repositoriesMatchingQuery](https://docs.sourcegraph.com/batch-changes/references/batch_spec_yaml_reference#on-repositoriesmatchingquery) to return different search results.
-1. Use the [Sourcegraph CLI (`src`)](https://github.com/sourcegraph/src-cli) to execute and preview the batch spec.
-
- src batch preview -f YOUR_BATCH_SPEC.batch.yaml
-1. Open on the URL that's printed to preview the changes that will be made by applying the new batch spec.
-1. Click **Apply** to update the batch change.
-
-All of the changesets on your code host will be updated to the desired state that was shown in the preview.
-
-## Apply a new batch spec directly
-
-In order to update a batch change directly, without preview, do the following:
-
-1. Edit the [batch spec](/batch_changes/references/batch_spec_yaml_reference) with which you created the batch change to include the changes you want to make to the batch change.
-1. Use the [Sourcegraph CLI (`src`)](https://github.com/sourcegraph/src-cli) to execute, upload, and the batch spec.
-
- src batch apply -f YOUR_BATCH_SPEC.batch.yaml
-
-The new batch spec will be applied directly and the batch change and its changesets will be updated.
-
-## How batch change updates are processed
-
-Changes in the batch spec that affect the batch change itself, such as the [`description`](/batch_changes/references/batch_spec_yaml_reference#description), are applied directly when you apply the new batch spec.
-
-Changes that affect the changesets are processed asynchronously to update the changeset to its new desired state. Different fields are processed differently.
-
-Here are some examples:
-
-- When the diff or attributes that affect the resulting commit of a changeset directly (such as the [`changesetTemplate.commit.message`](/batch_changes/references/batch_spec_yaml_reference#changesettemplate-commit-message) or the [`changesetTemplate.commit.author`](/batch_changes/references/batch_spec_yaml_reference#changesettemplate-commit-author)) and the changeset has been published, the commit on the code host will be overwritten by a new commit that includes the updated diff.
-- When the [`changesetTemplate.title`](/batch_changes/references/batch_spec_yaml_reference#changesettemplate-title) or the [`changesetTemplate.body`](/batch_changes/references/batch_spec_yaml_reference#changesettemplate-commit-author) are changed and the changeset has been published, the changeset on the code host will be updated accordingly.
-- When the [`changesetTemplate.branch`](/batch_changes/references/batch_spec_yaml_reference#changesettemplate-title) is changed after the changeset has been published on the code host, the existing changeset will be closed on the code host and new one, with the new branch, will be created.
-- When the batch spec is changed in such a way that no diff is produced in a repository in which the batch change already created and published a changeset, the existing changeset will be closed on the code host and archived in the batch change.
-
-See the "[Batch Changes design](/batch_changes/explanations/batch_changes_design)" doc for more information on the declarative nature of the Batch Changes system.
-
-## Updating a batch change to change its scope
-
-### Adding changesets
-
-You can gradually increase the number of repositories to which a batch change applies by modifying the entries in the [`on`](/batch_changes/references/batch_spec_yaml_reference#on) property of the batch spec.
-
-That means you can start with an `on` property like this in your batch spec:
-
-```yaml
-# [...]
-
-# Find all repositories that contain a README file, in the GitHub my-company org.
-on:
- - repositoriesMatchingQuery: file:README repo:github.com/my-company
-
-# [...]
-```
-
-After you applied that batch spec, you can extend the scope of batch change by changing the `on` property to result in more repositories:
-
-```yaml
-# [...]
-
-# Find all repositories that contain a README file, in the GitHub my-company and my-company-ci org.
-on:
- - repositoriesMatchingQuery: file:README repo:github.com/my-company|github.com/my-company-ci
-
-# [...]
-```
-
-The updated [`repo:` filter](/code-search/queries#filters-all-searches) in the search query will result in more repositories being returned by the search.
-
-If you apply the updated batch spec new changesets will be created for each additional repository.
-
-### Removing changesets
-
-You can also decrease the number of repositories to which a batch change applies the by modifying the entries in the [`on`](/batch_changes/references/batch_spec_yaml_reference#on) property.
-
-For example, let's say you started with this batch spec:
-
-```yaml
-# [...]
-
-# Find all repositories that contain a README file, in the GitHub my-company org.
-on:
- - repositoriesMatchingQuery: file:README repo:github.com/my-company
-
-# [...]
-```
-
-Next, you applied it and [published changesets](/batch_changes/how-tos/publishing_changesets) to multiple repositories. You can then modify your repo query to only target a subset of the repositories, for example by adding the `repo` parameter:
-
-```yaml
-# [...]
-
-# Find all repositories that contain a README file, in the GitHub my-company org.
-on:
- - repositoriesMatchingQuery: file:README repo:github.com/my-company/my-one-repository
-
-# [...]
-```
-
-When you apply this new batch spec, all the changesets that were published in repositories other than `my-one-repository` will be closed on the code host and archived from the batch change. Archived changesets are still associated with the batch change, but they will appear under the "Archived" tab on the batch change page instead:
-
-
-
-To fully remove the changesets from the batch change, you can detach them from this tab in the UI.
-
-> NOTE: Unpublished and [imported changesets](/batch_changes/how-tos/tracking_existing_changesets) will skip archiving and immediately be detached from the batch change instead.
-
-#### Unarchiving changesets
-
-Archiving is not permanent, and published changesets can be unarchived just as easily by reversing the process that archived them. To unarchive a changeset, modify your `on` property once more to match the repository whose changeset you want to bring back. The easiest way to target an individual repository is by adding an [`on.repository`](/batch_changes/references/batch_spec_yaml_reference#on-repository) statement for it:
-
-```yaml
-# [...]
-
-# Find all repositories that contain a README file, in the GitHub my-company org.
-on:
- - repositoriesMatchingQuery: file:README repo:github.com/my-company
- # Also include one repository from outside my-company.
- - repository: github.com/another-org/my-one-repository
-
-# [...]
-```
diff --git a/docs/batch_changes/how-tos/viewing_batch_changes.mdx b/docs/batch_changes/how-tos/viewing_batch_changes.mdx
deleted file mode 100644
index 3a8b6b9b3..000000000
--- a/docs/batch_changes/how-tos/viewing_batch_changes.mdx
+++ /dev/null
@@ -1,17 +0,0 @@
-# Viewing batch changes
-
-You can view a list of all batch changes by clicking the Batch Changes icon in the top navigation bar:
-
-
-
-## Filtering batch changes
-
-Use the filters to switch between showing all batch changes, open batch changes, or closed batch changes.
-
-
-
-## Filtering changesets
-
-When looking at a batch change you can search and filter the list of changesets with the controls at the top of the list:
-
-
diff --git a/docs/batch_changes/how-tos/yaml_changeset_errors.mdx b/docs/batch_changes/how-tos/yaml_changeset_errors.mdx
deleted file mode 100644
index 825074cf8..000000000
--- a/docs/batch_changes/how-tos/yaml_changeset_errors.mdx
+++ /dev/null
@@ -1,21 +0,0 @@
-# Handling changeset yaml formatting errors
-
-Sometimes you may encounter `Format YAML` errors when trying to run a changeset. These are often a result of misconfiguration or formatting errors. This document attempts to explain some common yaml errors and their meaning.
-
-### Published value error:
-
-```json
-cannot publish a changeset that has a published value set in its changesetTemplate
-```
-This occurs when you have a `published:` field in the spec and then try to run the Publish bulk action on a batch change. Example:
-
-```json
-format-yaml
- commit:
- message: Format all YAML
- published: false
-```
-
-Solution A: Change `published: false` to `published: true` in your spec and re-apply.
-
-Solution B: Remove the `published` field altogether. Doing so will allow you to control the publication state from the UI.
diff --git a/docs/batch_changes/index.mdx b/docs/batch_changes/index.mdx
deleted file mode 100644
index 5d5ca55c2..000000000
--- a/docs/batch_changes/index.mdx
+++ /dev/null
@@ -1,58 +0,0 @@
-# Batch Changes
-
-Make large-scale code changes across many repositories and code hosts
-
-Create a batch change by specifying a search query to get a list of repositories and a script to run in each. You can also [create a batch change on a monorepo](/batch_changes/how-tos/creating_changesets_per_project_in_monorepos) by specifying which projects to run the script on. The batch change then lets you create changesets (a generic term for pull requests or merge requests) on all affected repositories or projects. Batch Changes allows you to track their progress until they're all merged. You can preview the changes and update them at any time. A batch change can also be used to track and manage manually created changesets.
-
-
-
-
-
-
-
-
-## Explanations
-
-- [Introduction to Batch Changes](/batch_changes/explanations/introduction_to_batch_changes)
-- [Permissions in Batch Changes](/batch_changes/explanations/permissions_in_batch_changes)
-- [Batch Changes design](/batch_changes/explanations/batch_changes_design)
-- [How `src` executes a batch spec](/batch_changes/explanations/how_src_executes_a_batch_spec)
-- [Re-executing batch specs multiple times](/batch_changes/explanations/reexecuting_batch_specs_multiple_times)
-- [Running batch changes server-side](/batch_changes/explanations/server_side)
-
-## How-tos
-
-- [Creating a batch change](/batch_changes/how-tos/creating_a_batch_change)
-- [Publishing changesets to the code host](/batch_changes/how-tos/publishing_changesets)
-- [Updating a batch change](/batch_changes/how-tos/updating_a_batch_change)
-- [Viewing batch changes](/batch_changes/how-tos/viewing_batch_changes)
-- [Tracking existing changesets](/batch_changes/how-tos/tracking_existing_changesets)
-- [Closing or deleting a batch change](/batch_changes/how-tos/closing_or_deleting_a_batch_change)
-- [Site admin configuration for Batch Changes](/batch_changes/how-tos/site_admin_configuration)
-- [Configuring credentials for Batch Changes](/batch_changes/how-tos/configuring_credentials)
-- [Handling errored changesets](/batch_changes/how-tos/handling_errored_changesets)
-- [Opting out of batch changes](/batch_changes/how-tos/opting_out_of_batch_changes)
-- [Bulk operations on changesets](/batch_changes/how-tos/bulk_operations_on_changesets)
-- [Using file mounts with server-side execution](/batch_changes/how-tos/server_side_file_mounts)
-- Batch changes in monorepos (Beta)
- - [Creating changesets per project in monorepos](/batch_changes/how-tos/creating_changesets_per_project_in_monorepos)
- - (Beta) [Creating multiple changesets in large repositories](/batch_changes/how-tos/creating_multiple_changesets_in_large_repositories)
-
-## Tutorials
-
-- [Refactoring Go code using Comby](/batch_changes/tutorials/refactor_go_comby)
-- [Updating Go import statements using Comby](/batch_changes/tutorials/updating_go_import_statements)
-- [Update base images in Dockerfiles](/batch_changes/tutorials/update_base_images_in_dockerfiles)
-- [Search and replace specific terms](/batch_changes/tutorials/search_and_replace_specific_terms)
-- [Examples repository](https://github.com/sourcegraph/batch-change-examples)
-
-## References
-
-- [Requirements](/batch_changes/references/requirements)
-- [Batch spec YAML reference](/batch_changes/references/batch_spec_yaml_reference)
-- [Batch spec templating](/batch_changes/references/batch_spec_templating)
-- [Batch spec cheat sheet](/batch_changes/references/batch_spec_cheat_sheet)
-- [Site admin configuration reference](/admin/config/batch_changes)
-- [Troubleshooting](/batch_changes/references/troubleshooting)
-- [FAQ](/batch_changes/references/faq)
-- [CLI](/cli/references/batch/)
diff --git a/docs/batch_changes/quickstart.mdx b/docs/batch_changes/quickstart.mdx
deleted file mode 100644
index 037e31fb4..000000000
--- a/docs/batch_changes/quickstart.mdx
+++ /dev/null
@@ -1,142 +0,0 @@
-# Quickstart for Batch Changes
-
-Get started and create your first [batch change](/batch_changes/) in 10 minutes or less.
-
-## Introduction
-
-In this guide, you'll create a Sourcegraph batch change that appends text to `README` files in all of your repositories.
-
-For more information about Batch Changes, watch the [Batch Changes demo video](https://www.youtube.com/watch?v=EfKwKFzOs3E).
-
-## Requirements
-
-- A Sourcegraph instance with some repositories in it. See "[Quick install](/#quick-install)" on how to set up a Sourcegraph instance.
-- A local environment matching "[Requirements](/batch_changes/references/requirements)" to create batch changes with the Sourcegraph CLI.
-
-## Install the Sourcegraph CLI
-
-In order to create batch changes we need to [install the Sourcegraph CLI](/cli/) (`src`).
-
-1. Install the version of `src` that's compatible with your Sourcegraph instance:
-
- **macOS**:
- ```
- curl -L https://YOUR-SOURCEGRAPH-INSTANCE/.api/src-cli/src_darwin_amd64 -o /usr/local/bin/src
- chmod +x /usr/local/bin/src
- ```
- **Linux**:
- ```
- curl -L https://YOUR-SOURCEGRAPH-INSTANCE/.api/src-cli/src_linux_amd64 -o /usr/local/bin/src
- chmod +x /usr/local/bin/src
- ```
-1. Authenticate `src` with your Sourcegraph instance by running **`src login`** and following the instructions:
-
- ```
- src login https://YOUR-SOURCEGRAPH-INSTANCE
- ```
-
-
-
-Once `src login` reports that you're authenticated, we're ready for the next step.
-
-## Write a batch spec
-
-A **batch spec** is a YAML file that defines a batch change. It specifies which changes should be made in which repositories.
-
-See the ["batch spec YAML reference"](/batch_changes/references/batch_spec_yaml_reference) for details.
-
-Save the following batch spec as `hello-world.batch.yaml`:
-
-```yaml
-name: hello-world
-description: Add Hello World to READMEs
-
-# Find all repositories that contain a README file.
-on:
- - repositoriesMatchingQuery: file:README
-
-# In each repository, run this command. Each repository's resulting diff is captured.
-steps:
- - run: IFS=$'\n'; echo Hello World | tee -a $(find -name README)
- container: alpine:3
-
-# Describe the changeset (e.g., GitHub pull request) you want for each repository.
-changesetTemplate:
- title: Hello World
- body: My first batch change!
- branch: hello-world # Push the commit to this branch.
- commit:
- message: Append Hello World to all README files
-```
-
-The commits you create here will use the git config values for `user.name` and `user.email` from your local environment, or "batch-changes@sourcegraph.com" if no user is set. Alternatively, you can also [specify an `author`](/batch_changes/references/batch_spec_yaml_reference#changesettemplate-commit-author) in this spec.
-
-## Create the batch change
-
-Let's see the changes that will be made. Don't worry---no commits, branches, or changesets will be published yet (the repositories on your code host will be untouched).
-
-1. In your terminal, run this command:
-
- src batch preview -f hello-world.batch.yaml
-1. Wait for it to run and compute the changes for each repository.
-
-1. When it's done, follow the link to the *preview page* to see all the changes that will be made.
-
-1. Make sure the changes look right.
-
-1. Click **Apply** to create the batch change. You should see something like this:
-
-
-**You've now created your first batch change!**
-
-The batch change's *changesets* are still unpublished, which means they exist only on Sourcegraph and haven't been pushed to your code host yet. This is good news, as you probably don't want to publish these toy "Hello World" changesets to actively-developed repositories, because that might confuse people ("Why did you add this line to our READMEs?"). In the next steps, we'll prepare to publish a single test changeset.
-
-## Publish a changeset
-
-So far, nothing has been created on your code hosts. For that to happen, we need to tell Sourcegraph to *publish a changeset*.
-
-Publishing causes commits, branches, and pull requests/merge requests to be written to your code host.
-
-### Configure code host credentials
-
-Batch Changes needs permission to publish changesets on your behalf. To grant permission, you will need to [add a personal access token](/batch_changes/how-tos/configuring_credentials#adding-a-token) for each code host you'll be publishing changesets on.
-
-This is a one-time operation, so don't worry---we won't need to do this for every batch change. You can also ask the administrators of your Sourcegraph instance to [configure global credentials](/batch_changes/how-tos/configuring_credentials#global-service-account-tokens) instead.
-
-### (Optional) Modify the batch spec to only target a specific repository
-
-Before publishing, you might want to change the `repositoriesMatchingQuery` in `hello-world.batch.yaml` to target only a single, test repository that you could open a toy pull request/merge request on, such as one that you are the owner of. For example:
-
-```yaml
-# Find all repositories that contain a README file and whose name matches our test repo.
-on:
- - repositoriesMatchingQuery: file:README repo:sourcegraph-testing/batch-changes-test-repo
-```
-
-With your updated batch spec, re-run the preview command, `src batch preview -f hello-world.batch.yaml` (you should notice it's a lot quicker this time thanks to the caching!). Once again, follow the link to the *preview page*. You should now see something like this:
-
-
-
-As before, you get a preview before any changes are applied, but this time, you are *updating your existing changesets*. Now, all of the changesets listed will be *archived*, except for the one you're about to publish. Archiving will close the changesets on the codehost but leave them attached to your batch change for historical referencing.
-
-Once you are ready, click **Apply** again to apply the update to your batch change.
-
-### Publish to code host
-
-There are [multiple ways to publish a changeset](/batch_changes/how-tos/publishing_changesets#publishing-changesets). Let's look at how to do so from the screen you are currently on.
-
-1. Select the changeset you would like to publish (in our case it's the only one).
-
-1. Choose the "Publish changesets" action from the dropdown.
-
-1. Click **Publish changesets**. You'll be prompted to confirm. You may also choose to publish your changeset(s) as draft(s), if the code host supports it.
-
-1. Click **Publish**, and wait for an alert to appear (it may take a couple seconds).
-1. Sit tight---once it's done, the page should update, and you should see something like this:
-
-
-## Congratulations!
-
-**You've published your first Batch Changes changeset!** 🎉
-
-Feel free to customize your batch spec and experiment with making other types of changes. You can also [explore the documentation](/batch_changes/) to learn what else you can do with Batch Changes!
diff --git a/docs/batch_changes/references/batch_spec_yaml_reference.mdx b/docs/batch_changes/references/batch_spec_yaml_reference.mdx
deleted file mode 100644
index 65dd1a591..000000000
--- a/docs/batch_changes/references/batch_spec_yaml_reference.mdx
+++ /dev/null
@@ -1,1009 +0,0 @@
-# batch spec YAML reference
-
-[Sourcegraph Batch Changes](/batch_changes/) use [batch specs](/batch_changes/explanations/introduction_to_batch_changes#batch-spec) to define batch changes.
-
-This page is a reference guide to the batch spec YAML format in which batch specs are defined. If you're new to YAML and want a short introduction, see "[Learn YAML in five minutes](https://learnxinyminutes.com/docs/yaml/)."
-
-## `name`
-
-The name of the batch change, which is unique among all batch changes in the namespace. A batch change's name is case-preserving.
-
-### Examples
-
-```yaml
-name: update-go-import-statements
-```
-
-```yaml
-name: update-node.js
-```
-
-## `description`
-
-The description of the batch change. It's rendered as Markdown.
-
-### Examples
-
-```yaml
-description: This batch change changes all `fmt.Sprintf` calls to `strconv.Iota`.
-```
-
-```yaml
-description: |
- This batch change changes all imports from
-
- `gopkg.in/sourcegraph/sourcegraph-in-x86-asm`
-
- to
-
- `github.com/sourcegraph/sourcegraph-in-x86-asm`
-```
-
-## `on`
-
-The set of repositories (and branches) to run the batch change on, specified as a list of search queries (that match repositories) and/or specific repositories.
-
-### Examples
-
-```yaml
-on:
- - repositoriesMatchingQuery: lang:go fmt.Sprintf("%d", :[v]) patterntype:structural
- - repository: github.com/sourcegraph/sourcegraph
-```
-
-## `on.repositoriesMatchingQuery`
-
-A Sourcegraph search query that matches a set of repositories (and branches). Each matched repository branch is added to the list of repositories that the batch change will be run on.
-
-Your search query should answer the question "where do I want to run this batch change?". Search result matches for things like commits, symbols, or file owners will be ignored.
-
-See "[Code search](/code-search/)" for more information on Sourcegraph search queries.
-
-### Examples
-
-```yaml
-on:
- - repositoriesMatchingQuery: file:README -repo:github.com/sourcegraph/src-cli
-```
-
-```yaml
-on:
- - repositoriesMatchingQuery: lang:typescript file:web const changesetStatsFragment
-```
-
-## `on.repository`
-
-A specific repository (and, optionally, one or more branches) to be added to the list of repositories that the batch change will be run on.
-
-> NOTE: Before Sourcegraph 3.35, only the last named branch would be used if multiple branches were specified, and only a single `branch` could be provided. In Sourcegraph 3.35 and later versions, all branches are used.
-
-To match a branch other than the default, `branch` or `branches` can be used to specify one or multiple branches, respectively. Only one of `branch` or `branches` can be set.
-
-> WARNING: If multiple branches are matched for the same repository, then [`changesetTemplate.branch`](#changesettemplate-branch) will need to have a different value for each branch.
-
-### Examples
-
-```yaml
-on:
- - repository: github.com/sourcegraph/src-cli
-```
-
-```yaml
-on:
- - repository: github.com/sourcegraph/sourcegraph
- branch: 3.19-beta
- - repository: github.com/sourcegraph/src-cli
-```
-
-In the following example, the `repositoriesMatchingQuery` returns both repositories with their default branch, but the `3.23` branch is used for `github.com/sourcegraph/sourcegraph`, since it is more specific:
-
-```yaml
-on:
- - repositoriesMatchingQuery: repo:sourcegraph\/(sourcegraph|src-cli)$
- - repository: github.com/sourcegraph/sourcegraph
- branch: 3.23
-```
-
-In this example, both the `3.19-beta` and `3.23` branches are used:
-
-```yaml
-on:
- - repositoriesMatchingQuery: repo:sourcegraph\/(sourcegraph|src-cli)$
- - repository: github.com/sourcegraph/sourcegraph
- branches:
- - 3.19-beta
- - 3.23
-```
-
-
-## `steps`
-
-The sequence of commands to run (for each repository branch matched in the `on` property) to produce the batch change's changes.
-
-### Examples
-
-```yaml
-steps:
- - run: echo "Hello World!" >> README
- container: alpine:3
-```
-
-```yaml
-steps:
- - run: comby -in-place 'fmt.Sprintf("%d", :[v])' 'strconv.Itoa(:[v])' .go -matcher .go -exclude-dir .,vendor
- container: comby/comby
- - run: gofmt -w ./
- container: golang:1.15-alpine
-```
-
-```yaml
-steps:
- - run: ./update_dependency.sh
- container: our-custom-image
- env:
- OLD_VERSION: 1.31.7
- NEW_VERSION: 1.33.0
-```
-
-## `steps.run`
-
-The shell command to run in the container. It can also be a multi-line shell script. The working directory is the root directory of the repository checkout.
-
-`steps.run` can include [template variables](batch_spec_templating).
-
-## `steps.container`
-
-The Docker image used to launch the Docker container in which the shell command is run.
-
-The image has to have either the `/bin/sh` or the `/bin/bash` shell.
-
-It is executed using `docker` on the machine on which the [Sourcegraph CLI (`src`)](https://sourcegraph.com/github.com/sourcegraph/src-cli) is executed. If the image exists locally, that is used. Otherwise it's pulled using `docker pull`.
-
-## `steps.env`
-
-Environment variables to set in the environment when running this command.
-
-These may be defined either as an [object](#environment-object) or as an [array](#environment-array).
-
-`steps.env` can include [template variables](batch_spec_templating).
-
-### Environment object
-
-In this case, `steps.env` is an object, where the key is the name of the environment variable and the value is the value.
-
-#### Examples
-
-```yaml
-steps:
- - run: echo $MESSAGE >> README
- container: alpine:3
- env:
- MESSAGE: Hello world!
-```
-
-### Environment array
-
-In this case, `steps.env` is an array. Each array item is either:
-
-1. An object with a single property, in which case the key is used as the environment variable name and the value the value, or
-2. For src-cli execution: A string that defines an environment variable to include from the environment `src` is being run within. This is useful to define secrets that you don't want to include in the spec file, but this makes the spec dependent on your environment, means that the local execution cache will be invalidated each time the environment variable changes, and means that the batch spec file is no longer [the sole source of truth intended by the Batch Changes design](/batch_changes/explanations/batch_changes_design).
-3. For server-side execution: A string that defines a secret value to expose as an environment variable. Follow [the guide on executor secrets](/admin/executors/executor_secrets) to set them up. The editor will suggest available secrets. This is useful to use secret values that you don't want to include in the spec file. The execution cache will be invalidated each time the secret value changes, and means that the batch spec file is no longer [the sole source of truth intended by the Batch Changes design](/batch_changes/explanations/batch_changes_design).
-
-#### Examples
-
-This example is functionally the same as the [object](#environment-object) example above:
-
-```yaml
-steps:
- - run: echo $MESSAGE >> README
- container: alpine:3
- env:
- - MESSAGE: Hello world!
-```
-
-This example pulls in the `USER` environment variable, or for server-side uses the executor secret called `USER`, and uses it to construct the line that will be appended to `README`:
-
-```yaml
-steps:
- - run: echo $MESSAGE from $USER >> README
- container: alpine:3
- env:
- - MESSAGE: Hello world!
- - USER
-```
-
-For instance, if `USER` is set to `adam`, this would append `Hello world! from adam` to `README`.
-
-## `steps.files`
-
-Files to create on the host machine and mount into the container when running `steps.run`.
-
-`steps.files` is an object, where the key is the name of the file _inside the container_ and the value is the content of the file.
-
-`steps.files` can include [template variables](batch_spec_templating).
-
-### Examples
-
-```yaml
-steps:
- - run: cat /tmp/my-temp-file.txt >> README
- container: alpine:3
- files:
- /tmp/my-temp-file.txt: Hello world!
-```
-
-```yaml
-steps:
- - run: cat /tmp/global-gitignore >> .gitignore
- container: alpine:3
- files:
- /tmp/global-gitignore: |
- # Vim
- *.swp
- # JetBrains/IntelliJ
- .idea
- # Emacs
- *~
- \#*\#
- /.emacs.desktop
- /.emacs.desktop.lock
- .\#*
- .dir-locals.el
-```
-
-## `steps.outputs`
-
-Output variables that are set after the [`steps.run`](#steps-run) command has been executed. These variables are available in the global `outputs` namespace as `outputs.` [template variables](batch_spec_templating) in the `run`, `env`, and `outputs` properties of subsequent steps, and the [`changesetTemplate`](#changesettemplate). Two steps with the same output variable name will overwrite the previous contents.
-
-### Examples
-
-```yaml
-steps:
- - run: yarn upgrade
- container: alpine:3
- outputs:
- # Set output `friendlyMessage`
- friendlyMessage:
- value: "Hello there!"
-```
-
-```yaml
-steps:
- - run: echo "Hello there!" >> message.txt && cat message.txt
- container: alpine:3
- outputs:
- friendlyMessage:
- # `value` supports templating variables and can access the just-executed
- # step's stdout/stderr.
- value: "${{ step.stdout }}"
-```
-
-```yaml
-steps:
- - run: echo "Hello there!"
- container: alpine:3
- outputs:
- stepOneOutput:
- value: "${{ step.stdout }}"
- - run: echo "We have access to the output here: ${{ outputs.stepOneOutput }}"
- container: alpine:3
- outputs:
- stepTwoOutput:
- value: "here too: ${{ outputs.stepOneOutput }}"
-```
-
-```yaml
-steps:
- - run: cat .goreleaser.yml >&2
- container: alpine:3
- outputs:
- goreleaserConfig:
- value: "${{ step.stderr }}"
- # Specifying a `format` tells Sourcegraph CLI how to parse the value before
- # making it available as a template variable.
- format: yaml
-
-changesetTemplate:
- # [...]
- body: |
- The `goreleaser.yml` defines the following `before.hooks`:
- ${{ outputs.goreleaserConfig.before.hooks }}
-```
-
-## `steps.outputs..value`
-
-The value the output should be set to.
-
-`steps.outputs.$name.value` can include [template variables](batch_spec_templating).
-
-## `steps.outputs..format`
-
-The format of the corresponding [`steps.outputs..value`](#outputs-value). When this is set to something other than `text`, it will be parsed as the given format.
-
-Possible values: `text`, `yaml`, `json`. Default is `text`.
-
-## `steps.if`
-
-Condition to check before executing the step. If the value of the `if:` attribute is `true` (boolean) or `"true"` (string) then the step is executed in the given repository (or workspace, in case [workspaces](#workspaces) are used). Otherwise the step is skipped.
-
-As an optimization, the [Sourcegraph CLI](/cli/) tries to evaluate the condition _before_ starting to execute any `steps`. If the condition can be evaluated ahead of time and the result of the evaluation is false then the execution of the step won't be attempted for the repository, which leads to better cache utilization.
-
-Ahead-of-time evaluation is possible if the condition contains only static data. Example: `if: ${{ eq repository.name "github.com/my-org/my-repo" }}`. The repository name is known before the execution of the steps, so evaluation succeeds and Sourcegraph CLI will not include the given step in the list of steps to execute for repositories that don't have the matching name. That in turn allows the modification of this step's `run` attribute, for example, without invalidating the cache for the repositories in which it's never executed.
-
-`steps.if` can include [templating](batch_spec_templating).
-
-### Examples
-
-```yaml
-steps:
- # `if:` is true, step always executes.
- - if: true
- run: echo "name of repository is ${{ repository.name }}" >> message.txt
- container: alpine:3
-```
-
-```yaml
-steps:
- # `if:` is a static string that's not "true", step never executes.
- - if: "random string"
- run: echo "name of repository is ${{ repository.name }}" >> message.txt
- container: alpine:3
-```
-
-```yaml
-steps:
- # `if:` uses templating to check for repository name and produce a "true". Only runs in github.com/sourcegraph/automation-testing
- - if: ${{ eq repository.name "github.com/sourcegraph/automation-testing" }}
- run: echo "hello from automation-testing" >> message.txt
- container: alpine:3
-```
-
-```yaml
-steps:
- # `if:` uses glob pattern to match repository name and produce "true" on match.
- - if: ${{ matches repository.name "*sourcegraph-testing*" }}
- run: echo "name contains sourcegraph-testing" >> message.txt
- container: alpine:3
-```
-
-```yaml
-steps:
- # First step prints to standard out and saves to outputs
- - run: if [[ -f "go.mod" ]]; then echo "true"; else echo "false"; fi
- container: alpine:3
- outputs:
- goModExists:
- value: ${{ step.stdout }}
-
- # `if:` uses the just-set `outputs.goModExists` value as condition
- - if: ${{ outputs.goModExists }}
- run: go fmt ./...
- container: golang
-```
-
-```yaml
-steps:
- # `if:` checks for path, in case steps are executed in workspace.
- - if: ${{ eq steps.path "sub/directory/in/repo" }}
- run: echo "hello workspace" >> workspace.txt
- container: golang
-```
-
-## `steps.mount`
-
-`mount` is a new feature. Using `mount` locally is supported in Sourcegraph 3.41 and [Sourcegraph CLI 3.41](https://sourcegraph.com/github.com/sourcegraph/src-cli). Using `mount` in batch changes server-side is supported in Sourcegraph 4.1 and [Sourcegraph CLI 4.0.1](https://sourcegraph.com/github.com/sourcegraph/src-cli). It's a preview of functionality we're currently exploring to make running custom scripts/binaries easier. If you have any feedback, please let us know!
-
-> NOTE: This feature is currently only available for Sourcegraph CLI .
-
-Mounts a local path to a path in a Docker container. Mounted paths are accessible to the step's `run` command.
-
-A `path` can point to a file or a directory. The `path` can be an absolute path or a relative path. Regardless if the
-path is absolute or relative, the path must be within the same directory as the batch spec that is being run (the batch
-spec directory is considered the "working directory"). If the batch spec is provided using standard input, the current
-directory is used as the working directory.
-
-Individual files are restricted to a max size of 10MB. Do not include any sensitive information in files being uploaded.
-
-### Examples
-
-```yaml
-# Mount a Python script and run the script
-steps:
- run: python /tmp/some-script.py # execute the script located at the mountpoint
- container: python:latest
- mount:
- - path: ./some-script.py # or absolute path /my/local/path/some-script.py
- mountpoint: /tmp/some-script.py
-```
-
-```yaml
-# Mount a binary and run the binary
-steps:
- run: /tmp/some-binary # execute the binary located at the mountpoint
- container: alpine:latest
- mount:
- - path: ./some-binary # or absolute path /my/local/path/some-binary
- mountpoint: /tmp/some-binary
-```
-
-```yaml
-# Mount a directory containing scripts and run a script from the directory
-steps:
- run: python /tmp/scripts/some-script.py
- container: python:latest
- mount:
- - path: ./scripts # or absolute path /my/local/path/scripts
- mountpoint: /tmp/scripts
-```
-
-```yaml
-# Mount a Python script and a directory with supporting files for the script and run the script
-steps:
- run: python /tmp/some-script.py
- container: python:latest
- mount:
- - path: ./some-script.py # or absolute path /my/local/path/some-script.py
- mountpoint: /tmp/some-script.py
- - path: ./supporting-files # or absolute path /my/local/path/supporting-files
- mountpoint: /tmp/supporting-files
-```
-
-## `importChangesets`
-
-An array describing which already-existing changesets should be imported from the code host into the batch change.
-
-### Examples
-
-```yaml
-importChangesets:
- - repository: github.com/sourcegraph/sourcegraph
- externalIDs: [13323, "13343", 13342, 13380]
- - repository: github.com/sourcegraph/src-cli
- externalIDs: [260, 271]
-```
-
-## `importChangesets.repository`
-
-The repository name as configured on your Sourcegraph instance.
-
-## `importChangesets.externalIDs`
-
-The changesets to import from the code host. For GitHub this is the pull request number, for GitLab this is the merge request number, and for Bitbucket Server, Bitbucket Data Center, or Bitbucket Cloud this is the pull request number.
-
-## `changesetTemplate`
-
-A template describing how to create (and update) changesets with the file changes produced by the command steps.
-
-This defines what the changesets on the code hosts (pull requests on GitHub, merge requests on Gitlab, ...) will look like.
-
-### Examples
-
-```yaml
-changesetTemplate:
- title: Replace equivalent fmt.Sprintf calls with strconv.Itoa
- body: This batch change replaces `fmt.Sprintf("%d", integer)` calls with semantically equivalent `strconv.Itoa` calls
- branch: batch-changes/sprintf-to-itoa
- commit:
- message: Replacing fmt.Sprintf with strconv.Iota
- author:
- name: Lisa Coder
- email: lisa@example.com
- published: false
-```
-
-```yaml
-changesetTemplate:
- title: Update rxjs in package.json to newest version
- body: This pull request updates rxjs to the newest version, `6.6.2`.
- branch: batch-changes/update-rxjs
- commit:
- message: Update rxjs to 6.6.2
- published: true
-```
-
-```yaml
-changesetTemplate:
- title: Run go fmt over all Go files
- body: Regular `go fmt` run over all our Go files.
- branch: go-fmt
- commit:
- message: Run go fmt
- author:
- name: Anna Wizard
- email: anna@example.com
- published:
- # Do not meddle in the affairs of wizards, for they are subtle and quick to anger.
- - git.istari.example/*: false
- - git.istari.example/anna/*: true
-```
-
-## `changesetTemplate.title`
-
-The title of the changeset on the code host.
-
-`changesetTemplate.title` can include [template variables](batch_spec_templating).
-
-## `changesetTemplate.body`
-
-The body (description) of the changeset on the code host. If the code supports Markdown you can use it here.
-
-`changesetTemplate.body` can include [template variables](batch_spec_templating).
-
-## `changesetTemplate.branch`
-
-The name of the Git branch to create or update on each repository with the changes.
-
-If multiple branches within the same repository are matched in [`on.repository`](#on-repository), then this value must be dynamic, since it is impossible to create multiple branches with the same name in the same repository. This is often most easily accomplished with the `repository.branch` template variable. For example, this will create `new-feature-3.34` and `new-feature-3.35` branches:
-
-```yaml
-on:
- - repository: github.com/sourcegraph/sourcegraph
- branches:
- - 3.34
- - 3.35
-
-changesetTemplate:
- branch: new-feature-${{ repository.branch }}
-```
-
-`changesetTemplate.branch` can include [template variables](batch_spec_templating).
-
-## `changesetTemplate.commit`
-
-The Git commit to create with the changes.
-
-## `changesetTemplate.commit.message`
-
-The Git commit message.
-
-`changesetTemplate.commit.message` can include [template variables](batch_spec_templating).
-
-## `changesetTemplate.commit.author`
-
-The `name` and `email` of the Git commit author.
-
-`changesetTemplate.commit.author` can include [template variables](batch_spec_templating).
-
-### Examples
-
-```yaml
-changesetTemplate:
- commit:
- author:
- name: Alan Turing
- email: alan.turing@example.com
-```
-
-## `changesetTemplate.published`
-
-Whether to publish the changesets as soon as the spec is applied. This may be a boolean value (ie `true` or `false`), `'draft'`, or [an array to only publish some changesets within the batch change](#publishing-only-specific-changesets). This may also be omitted, in which case the publication state will be controlled through the Sourcegraph UI, and will default to unpublished (that is, the same as specifying `false`).
-
-An unpublished changeset can be previewed on Sourcegraph by any person who can view the batch change, but its commit, branch, and pull request aren't created on the code host.
-
-When `published` is set to `draft` a commit, branch, and pull request / merge request are being created on the code host **in draft mode**. This means:
-
-- On GitHub the changeset will be a [draft pull request](https://docs.github.com/en/free-pro-team@latest/github/collaborating-with-issues-and-pull-requests/about-pull-requests#draft-pull-requests).
-- On GitLab the changeset will be a merge request whose title is be prefixed with `'WIP: '` to [flag it as a draft merge request](https://docs.gitlab.com/ee/user/project/merge_requests/work_in_progress_merge_requests.html#adding-the-draft-flag-to-a-merge-request).
-- On Bitbucket Server, Bitbucket Data Center, and Bitbucket Cloud draft pull requests are not supported and changesets published as `draft` won't be created.
-
-> NOTE: Changesets that have already been published on a code host as a non-draft (`published: true`) cannot be converted into drafts. Changesets can only go from unpublished to draft to published, but not from published to draft. That also allows you to take it out of draft mode on your code host, without risking Sourcegraph to revert to draft mode.
-
-A published changeset results in a commit, branch, and pull request being created on the code host.
-
-### Publishing only specific changesets
-
-To publish only specific changesets within a batch change, an array of single-element objects can be provided. For example:
-
-```yaml
-published:
- - github.com/sourcegraph/sourcegraph: true
- - github.com/sourcegraph/src-cli: false
- - github.com/sourcegraph/batchutils: draft
-```
-
-Each key will be matched against the repository name using [glob](https://godoc.org/github.com/gobwas/glob#Compile) syntax. The [gobwas/glob library](https://godoc.org/github.com/gobwas/glob#Compile) is used for matching, with the key operators being:
-
-| Term | Meaning |
-| ----------- | -------------------------------------------------- |
-| `*` | Match any sequence of characters |
-| `?` | Match any single character |
-| `[ab]` | Match either `a` or `b` |
-| `[a-z]` | Match any character between `a` and `z`, inclusive |
-| `{abc,def}` | Match either `abc` or `def` |
-
-If multiple entries match a repository, then the last entry will be used. For example, `github.com/a/b` will _not_ be published given this configuration:
-
-```yaml
-published:
- - github.com/a/*: true
- - github.com/*: false
-```
-
-If no entries match, then the repository will not be published. To make the default true, add a wildcard entry as the first item in the array:
-
-```yaml
-published:
- - "*": true
- - github.com/*: false
-```
-
-> NOTE: The standalone `"*"` is quoted in the key to avoid ambiguity in the YAML document.
-
-By adding a `@` at the end of a match-rule, the rule is only matched against changesets with that branch:
-
-```yaml
-published:
- - github.com/sourcegraph/src-*@my-branch: true
- - github.com/sourcegraph/src-*@my-other-branch: true
-```
-
-### Examples
-
-To publish all changesets created by a batch change:
-
-```yaml
-changesetTemplate:
- published: true
-```
-
-To publish all changesets created by a batch change as drafts:
-
-```yaml
-changesetTemplate:
- published: draft
-```
-
-To only publish changesets within the `sourcegraph` GitHub organization:
-
-```yaml
-changesetTemplate:
- published:
- - github.com/sourcegraph/*: true
-```
-
-To publish all changesets that are not on GitLab:
-
-```yaml
-changesetTemplate:
- published:
- - "*": true
- - gitlab.com/*: false
-```
-
-To publish all changesets on GitHub as draft:
-
-```yaml
-changesetTemplate:
- published:
- - "*": true
- - github.com/*: draft
-```
-
-To publish only one of many changesets in a repository by addressing them with their branch name:
-
-```yaml
-changesetTemplate:
- published:
- - "*": true
- - github.com/sourcegraph/*@my-branch-name-1: draft
- - github.com/sourcegraph/*@my-branch-name-2: false
-```
-
-(Multiple changesets in a single repository can be produced, for example, [per project in a monorepo](/batch_changes/how-tos/creating_changesets_per_project_in_monorepos) or by [transforming large changes into multiple changesets](/batch_changes/how-tos/creating_multiple_changesets_in_large_repositories)).
-
-## `changesetTemplate.fork`
-
-It is supported on Sourcegraph versions 5.1 or more.
-
-Whether or not each changeset should be created on a fork of the upstream repository in the namespace of the user publishing them (or the namespace of the service account if [global credentials](/batch_changes/how-tos/configuring_credentials#global-service-account-tokens) are used).
-
-If the site config setting [`batchChanges.enforceForks`](/admin/config/batch_changes#forks) is enabled, this value will override the setting. For example, explicitly setting `fork: false` when the site config setting is enabled will result in changesets being published directly to the target repos. If omitted, the site config setting will be used.
-
-The name of the fork Sourcegraph creates will be prefixed with the name of the original repo's namespace in order to prevent potential repo name collisions. For example, a batch spec targeting `github.com/my-org/project` would create or use any existing fork by the name `github.com/user/my-org-project`.
-
-> NOTE: If your code host does not support forking (e.g. Gerrit), trying to publish a changeset with `fork: true` will result in an error.
-
-### Examples
-
-To publish all changesets created by this batch change to forks:
-
-```yaml
-changesetTemplate:
- fork: true
-```
-
-To publish all changesets created by this batch change to the target repository:
-
-```yaml
-changesetTemplate:
- fork: false
-```
-
-## `transformChanges`
-
-A description of how to transform the changes (diffs) produced in each repository before turning them into separate changeset specs by inserting them into the [`changesetTemplate`](#changesettemplate).
-
-This allows the creation of multiple changeset specs (and thus changesets) in a single repository.
-
-### Examples
-
-```yaml
-# Transform the changes produced in each repository.
-transformChanges:
- # Group the file diffs by directory and produce an additional changeset per group.
- group:
- # Create a separate changeset for all changes in the top-level `go` directory
- - directory: go
- branch: my-batch-change-go # will replace the `branch` in the `changesetTemplate`
-
- - directory: internal/codeintel
- branch: my-batch-change-codeintel # will replace the `branch` in the `changesetTemplate`
- repository: github.com/sourcegraph/src-cli # optional: only apply the rule in this repository
-```
-
-
-```yaml
-transformChanges:
- group:
- - directory: go/utils/time
- branch: my-batch-change-go-time
-
- # The *last* matching directory is used, not the most specific one,
- # so only this changeset would be opened.
- - directory: go/utils
- branch: my-batch-change-go-date
-```
-
-## `transformChanges.group`
-
-A list of groups to define which file diffs to group together to create an additional changeset in the given repository.
-
-The **order of the list matters**, since each file diff's filepath is matched against the `directory` of a group and the **last match** is used.
-
-If no changes have been produced in a `directory` then no changeset will be created.
-
-## `transformChanges.group.directory`
-
-The name of the directory in which file diffs should be grouped together.
-
-The name is relative to the root of the repository.
-
-## `transformChanges.group.branch`
-
-The branch that should be used for this additional changeset. This **overwrites the [`changesetTemplate.branch`](#changesettemplate-branch)** when creating the additional changeset.
-
-**Important**: the branch can _not_ be nested under the [`changesetTemplate.branch`](#changesettemplate-branch), i.e. if the `changesetTemplate.branch` is `my-batch-change` then this can _not_ be `my-batch-change/my-subdirectory` since [git doesn't allow that](https://stackoverflow.com/a/22630664). Additionally branch names must be unique and cannot be used as arguments for multiple `directory` fields.
-
-## `transformChanges.group.repository`
-
-Optional: the file diffs matching the given directory will only be grouped in a repository with that name, as configured on your Sourcegraph instance.
-
-## `workspaces`
-
-The optional `workspaces` property allows users to define where projects are located in repositories and cause the [`steps`](#steps) to be executed for each project, instead of once per repository. That allows easier creation of multiple changesets in large repositories.
-
-For each repository that's yielded by [`on`](#on), Sourcegraph search is used to get the locations of the `rootAtLocationOf` file. Each location then serves as a workspace for the execution of the `steps`, instead of the root of the repository. Use the [`workspaces.in`](#workspaces-in) property to scope the workspaces definitions. Omitting it is treated as `*`.
-
-**Important**: Since multiple workspaces in the same repository can produce multiple changesets, it's **required** to use templating to produce a unique [`changesetTemplate.branch`](#changesettemplate-branch) for each produced changeset. See the [examples](#workspaces-examples) below.
-
-### Examples
-
-Defining JavaScript projects that live in a monorepo by using the location of the `package.json` file as the root for each project:
-
-```yaml
-on:
- - repository: github.com/sourcegraph/sourcegraph
-
-workspaces:
- - rootAtLocationOf: package.json
- in: github.com/sourcegraph/sourcegraph
-
-changesetTemplate:
- # [...]
-
- # Since a changeset is uniquely identified by its repository and its
- # branch we need to ensure that each changesets has a unique branch name.
-
- # We can use templating and helper functions get the `path` in which
- # the `steps` executed and turn that into a branch name:
- branch: my-multi-workspace-batch-change-${{ replace steps.path "/" "-" }}
-```
-
-Using templating to produce a unique branch name in repositories _with_ workspaces and repositories without workspaces:
-
-```yaml
-on:
- - repository: github.com/sourcegraph/sourcegraph
- - repository: github.com/sourcegraph/src-cli
-
-workspaces:
- - rootAtLocationOf: package.json
- in: github.com/sourcegraph/sourcegraph
-
-changesetTemplate:
- # [...]
-
- # Since the steps in `github.com/sourcegraph/src-cli` are executed in the
- # root, where path is "", we can use `join_if` to drop it from the branch name
- # if it's a blank string:
- branch: ${{ join_if "-" "my-multi-workspace-batch-change" (replace steps.path "/" "-") }}
-```
-
-Defining where Go, JavaScript, and Rust projects live in multiple repositories:
-
-```yaml
-workspaces:
- - rootAtLocationOf: go.mod
- in: github.com/sourcegraph/go-*
- - rootAtLocationOf: package.json
- in: github.com/sourcegraph/*-js
- onlyFetchWorkspace: true
- - rootAtLocationOf: Cargo.toml
- in: github.com/rusty-org/*
-
-changesetTemplate:
- # [...]
-
- branch: ${{ join_if "-" "my-multi-workspace-batch-change" (replace steps.path "/" "-") }}
-```
-
-Using [`steps.outputs`](#steps-outputs) to dynamically create unique branch names:
-
-```yaml
-# [...]
-on:
- # Find all repositories with a package.json file
- - repositoriesMatchingQuery: repohasfile:package.json
-
-workspaces:
- # Define that workspaces have their root folder at the location of the
- # package.json files
- - rootAtLocationOf: package.json
- in: "*"
-
-steps:
- # [... steps that produce changes ...]
-
- # Run `jq` to extract the "name" from the package.json
- - run: jq -j .name package.json
- container: jiapantw/jq-alpine:latest
- outputs:
- # Set outputs.packageName to stdout of this step's `run` command.
- packageName:
- value: ${{ step.stdout }}
-
-changesetTemplate:
- # [...]
-
- # Use `outputs` variables to create a unique branch name per changeset:
- branch: my-batch-change-${{ outputs.projectName }}
-```
-
-Create changesets only on workspaces defined within subdirectories using `if:`:
-
-```yaml
-name: test-in
-description: what happens in `in`?
-
-on:
- - repository: github.com/sourcegraph/sourcegraph
-
-workspaces:
- - rootAtLocationOf: package.json
- in: github.com/sourcegraph/sourcegraph
- onlyFetchWorkspace: true
-
-steps:
- | - run: | |
- | echo Path is: ${{ steps.path }} | tee path.txt |
- container: alpine:3
- # Only creates changesets in subdirectories of client containing package.json files
- if: ${{ matches steps.path "client*" }}
-
-changesetTemplate:
- title: Test `in`
- body: what happens in `in`?
- branch: test-in-${{ replace "/" "-" steps.path }}
- commit:
- message: Test in
-```
-
-## `workspaces.rootAtLocationOf`
-
-The full name of the file that sits at the root of one or more workspaces in a given repository.
-
-Sourcegraph code search is used to find the location of files with this name in the repositories returned by [`on`](#on).
-
-For example, in a repository with the following files:
-
-- `packages/sourcegraph-ui/package.json`
-- `packages/sourcegraph-test-helper/package.json`
-
-the workspace configuration
-
-```yaml
-workspaces:
- - rootAtLocationOf: package.json
- in: "*"
-```
-
-would create _two changesets_ in the repository, one in `packages/sourcegraph-ui` and one in `packages/sourcegraph-test-helper`.
-
-## `workspaces.in`
-
-The repositories in which the workspace should be discovered.
-
-This field supports **globbing** by using [glob](https://godoc.org/github.com/gobwas/glob#Compile) syntax. See "[Publishing only specific changesets](#publishing-only-specific-changesets)" for more information on globbing.
-
-A repository matching multiple entries results in an error.
-
-### Examples
-
-Match all repository names that begin with `github.com/`:
-
-```yaml
-workspaces:
- - rootAtLocationOf: go.mod
- in: github.com/*
-```
-
-Match all repository names that begin with `gitlab.com/my-javascript-org/` and end with `-plugin`:
-
-```yaml
-workspaces:
- - rootAtLocationOf: package.json
- in: gitlab.com/my-javascript-org/*-plugin
-```
-
-## `workspaces.onlyFetchWorkspace`
-
-When set to `true`, only the folder containing the workspace is downloaded to execute the `steps`.
-
-This field is not required and when not set the default is `false`.
-
-Additional files — `.gitignore` and `.gitattributes` as of now — are downloaded from the location of the workspace up to the root of the repository.
-
-For example, with the following file layout in a repository
-
-```
-.
-├── a
-│ ├── b
-│ │ ├── [... other files in b ...]
-│ │ ├── package.json
-│ │ └── .gitignore
-│ │
-│ ├── [... other files in a ...]
-│ ├── .gitattributes
-│ └── .gitignore
-│
-├── [... other files in root ... ]
-└── .gitignore
-```
-
-and this workspace configuration
-
-```yaml
-workspaces:
- - rootAtLocationOf: package.json
- in: github.com/our-our/our-large-monorepo
- onlyFetchWorkspace: true
-```
-
-then
-
-- the `steps` will be executed in `b`
-- the complete contents of `b` will be downloaded and are available to the steps
-- the `.gitattributes` and `.gitignore` files in `a` will be downloaded and put in `a`, **but only those**
-- the `.gitignore` files in the root will be downloaded and put in the root folder, **but only that file**
-
-### Examples
-
-Only download the workspaces of specific JavaScript projects in a large monorepo:
-
-```yaml
-workspaces:
- - rootAtLocationOf: package.json
- in: github.com/our-our/our-large-monorepo
- onlyFetchWorkspace: true
-```
diff --git a/docs/batch_changes/references/faq.mdx b/docs/batch_changes/references/faq.mdx
deleted file mode 100644
index d2998c1af..000000000
--- a/docs/batch_changes/references/faq.mdx
+++ /dev/null
@@ -1,148 +0,0 @@
-# FAQ
-
-This is a compilation of some common questions about Batch Changes.
-
-### What happens if my batch change creation breaks down at 900 changesets out of 1,000? Do I have to re-run it all again?
-Batch Changes' default behavior is to stop if creating the diff on a repo errors. You can choose to ignore errors instead by adding the [`-skip-errors`](/cli/references/batch/preview) flag to the `src batch preview` command.
-
-### Can we close a batch change and still leave the changesets open?
-Yes. There is a confirmation page that shows you all the actions that will occur on the various changesets in the batch change after you close it. Open changesets will be marked 'Kept open', which means that batch change won't alter them. See [closing a batch change](/batch_changes/how-tos/closing_or_deleting_a_batch_change#closing-a-batch-change).
-
-### How scalable is Batch Changes? How many changesets can I create?
-Batch Changes can create tens of thousands of changesets. This is something we run testing on internally.
-Known limitations:
-
-- Since diffs are created locally by running a docker container, performance depends on the capacity of your machine. See [How `src` executes a batch spec](/batch_changes/explanations/how_src_executes_a_batch_spec).
-- Batch Changes creates changesets in parallel locally. You can set up the maximum number of parallel jobs with [`-j`](/cli/references/batch/apply)
-- Manipulating (commenting, notifying users, etc) changesets at that scale can be clumsy. This is a major area of work for future releases.
-
-### How long does it take to create a batch change?
-A rule of thumb:
-
-- measure the time it takes to run your change container on a typical repository
-- multiply by the number of repositories
-- divide by the number of changeset creation jobs that will be ran in parallel set by the [`-j`](/cli/references/batch/apply) CLI flag. It defaults to GOMAXPROCS, [roughly](https://golang.org/pkg/runtime/#NumCPU) the number of available cores.
-
-Note: If you run memory-intensive jobs, you might need to reduce the number of parallel job executions. You can run `docker stats` locally to get an idea of memory usage.
-
-### My batch change does not open changesets on all the repositories it should. Why?
-- Do you have enough permissions? Batch Changes will error on the repositories you don’t have access to. See [Repository permissions for Batch Changes](/batch_changes/explanations/permissions_in_batch_changes).
-- Does your `repositoriesMatchingQuery` contain all the necessary flags? If you copied the query from the sourcegraph UI, note that some flags are represented as buttons (case sensitivity, regex, structural search), and do not appear in the query unless you use the copy query button.
-- Are the files you are trying to change in your repository's `.gitignore`? Batch Changes respects .gitignore files when creating the diff.
-
-### Can I create tickets or issues along with Batch Changes?
-Batch Changes does not support a declarative syntax for issues or tickets.
-However, [steps](/batch_changes/references/batch_spec_yaml_reference#steps-run) can be used to run any container. Some users have built scripts to create tickets at each apply:
-
-- [Jira tickets](https://github.com/sourcegraph/batch-change-examples/blob/main/ticketing-systems/jira-tickets/README)
-- [GitHub issues](https://github.com/sourcegraph/batch-change-examples/blob/main/ticketing-systems/github-issues/README)
-
-### What happens to the preview page if the batch spec is not applied?
-Unapplied batch specs are removed from the database after 7 days.
-
-### Can I pull containers from private container registries in a batch change?
-Yes. When [executing a batch spec](/batch_changes/explanations/how_src_executes_a_batch_spec), `src` will attempt to pull missing docker images. If you are logged into the private container registry, it will pull from it. Also see [`steps.container`](/batch_changes/references/batch_spec_yaml_reference#steps-container). Within the spec, if `docker pull` points to your private registry from the command line, it will work as expected.
-
-However, outside of the spec, `src` pulls an image from Docker Hub when running in volume workspace mode. This is the default on macOS, so you will need to use one of the following three workarounds:
-
-1. Run `src` with the `-workspace bind` flag. This will be slower, but will prevent `src` from pulling the image.
-2. If you have a way of replicating trusted images onto your private registry, you can replicate [our image](https://hub.docker.com/r/sourcegraph/src-batch-change-volume-workspace) to your private registry. Ensure that the replicated image has the same tags, or this will fail.
-3. If you have the ability to ad hoc pull images from public Docker Hub, you can run `docker pull -a sourcegraph/src-batch-change-volume-workspace` to pull the image and its tags.
-
-> NOTE: If you choose to replicate or pull the Docker image, you should ensure that it is frequently synchronized, as a new tag is pushed each time `src` is released.
-
-### What tool can I use for changing/refactoring ``?
-
-Batch Changes supports any tool that can run in a container and changes file contents on disk. You can use the tool/script that works for your stack or build your own, but here is a list of [examples](https://github.com/sourcegraph/batch-change-examples) to get started.
-Common language agnostic starting points:
-
-- `sed`, [`yq`](https://github.com/mikefarah/yq), `awk` are common utilities for changing text
-- [comby](https://comby.dev/docs/overview) is a language-aware structural code search and replace tool. It can match expressions and function blocks, and is great for more complex changes.
-
-### Why can't I run steps with different container user IDs in the same batch change?
-
-This is an artifact of [how Batch Changes executes batch specs](/batch_changes/explanations/how_src_executes_a_batch_spec). Consider this partial spec:
-
-```yaml
-steps:
- - run: /do-it.sh
- container: my-alpine-running-as-root
-
- - run: /do-it.sh
- container: my-alpine-running-as-uid-1000
-
- - run: /do-it.sh
- container: my-alpine-running-as-uid-500
-```
-
-Files created by the first step will be owned by UID 0 and (by default) have 0644 permissions, which means that the subsequent steps will be unable to modify or delete those files, as they are running as different, unprivileged users.
-
-Even if the first step is replaced by one that runs as UID 1000, the same scenario will occur when the final step runs as UID 500: files created by the previous steps cannot be modified or deleted.
-
-In theory, it's possible to run the first _n_ steps in a batch spec as an unprivileged user, and then run the last _n_ steps as root, but we don't recommend this due to the likelihood that later changes may cause issues. We strongly recommend only using containers that run as the same user in a single batch spec.
-
-### How can I use [GitHub expression syntax](https://docs.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions) (`${{ }}` literally) in my batch spec?
-
-To tell Sourcegraph not to evaluate `${{ }}` like a normal [template delimiter](/batch_changes/references/batch_spec_templating), you can quote it and wrap it in a second set of `${{ }}` like so:
-
-```
-${{ "${{ leave me alone! }}" }}
-```
-
-Keep in mind the context in which the inner `${{ }}` will be evaluated and be sure to escape characters as is appropriate. Check out the cheat sheet for an [example](/batch_changes/references/batch_spec_cheat_sheet#write-a-github-actions-workflow-that-includes-github-expression-syntax) within a shell script.
-
-### How is commit author determined for commits produced from Batch Changes?
-
-Commit author is determined at the time of running `src batch [apply|preview]`. If no [author](/batch_changes/references/batch_spec_yaml_reference#changesettemplate-commit-author) key is defined in the batch spec, `src` will try to use the git config values for `user.name` and `user.email` from your local environment, or "batch-changes@sourcegraph.com" if no user is set.
-
-### Why is the checkbox on my changeset disabled when I'm previewing a batch change?
-
-Since Sourcegraph 3.31, it is possible to publish many types of changeset when previewing a batch change by modifying the publication state for the changeset directly from the UI (see ["Publishing changesets"](/batch_changes/how-tos/publishing_changesets#from-the-preview)). However, not every changeset can be published by Sourcegraph. By hovering over your changeset's disabled checkbox, you can see the reason why that specific changeset is not currently publishable. The most common reasons include:
-
-- The changeset is already published (we cannot unpublish a changeset, or convert it back to a draft).
-- The changeset's publication state is being controlled from your batch spec file (i.e. you have the [`published` flag set in your batch spec](/batch_changes/references/batch_spec_yaml_reference#changesettemplate-published)); the batch spec takes precedence over the UI.
-- You do not have permission to publish to the repository the changeset would be opened against.
-- The changeset was imported (and was therefore already published by someone or something else).
-
-The changeset may also be in a state that we cannot currently publish from: for example, because a previous push to the code host failed (in which case you should re-apply the batch change), or if you are actively detaching the changeset from your batch change.
-
-### Why do my changesets take a long time to sync?
-Have you [set up webhooks](/batch_changes/references/requirements#batch-changes-effect-on-code-host-rate-limits)?
-
-### Why has my changeset been archived?
-
-When re-running a batch spec on an existing batch change, the scope of repositories affected may change if you modify your `on` statement or if Sourcegraph simply finds a different set of results than it did last time. If the new batch spec no longer matches a repository that Sourcegraph has already published a changeset for, that changeset will be closed on the codehost and marked as *archived* in the batch change when you apply the new batch spec. You will be able to see these actions from the preview screen before you apply the batch spec. Archived changesets are still associated with the batch change, but they will appear under the "Archived" tab on the batch change page instead.
-
-See our [how-to guide](/batch_changes/how-tos/updating_a_batch_change#removing-changesets) to learn more about archiving changesets, including how to unarchive a changeset and how to remove a changeset from the batch change entirely.
-
-### Why is my changeset read-only?
-
-Unmerged changesets on repositories that have been archived on the code host will move into a *Read-Only* state, which reflects that they cannot be modified any further on the code host. Re-applying the batch change will result in no operations being performed on those changesets, even if they would otherwise be updated. The only exception is that changesets that would be [archived](#why-has-my-changeset-been-archived) due to the `on` statement or search results changing will still be archived.
-
-If the repository is unarchived, Batch Changes will move the changeset back into its previous state the next time Sourcegraph syncs the repository.
-
-### Why do I get different results counts when I run the same search query as a normal search vs. for my `repositoriesMatchingQuery` in a batch spec?
-
-By default, a normal Sourcegraph search will return the total number of _matches_ for a given query, counting matches in the same file or repository as separate results. However, when you use the search query in your batch spec, the results are grouped based on the repository (or "workspace", if you're [working with monorepos](/batch_changes/how-tos/creating_changesets_per_project_in_monorepos)) they belong to, giving you the total number of _repositories_ (or _workspaces_) that match the query. This is because Batch Changes produces one changeset for each matching repository (or workspace).
-
-So, if you have a search query that returns 10 results in a single repo, the batch spec will only return 1 result for that repo. This is the equivalent of supplying the `select:repo` aggregator parameter to your search query.
-
-### Why do I get fewer changes in my changeset diff when I run a batch spec than there are results when I run the same search query?
-
-Sourcegraph search shows you results on any repositories that you have read access to. However, Sourcegraph and Batch Changes do not know which repositories you have _write_ access to. This disparity most often stems from not having write access to one or more of the repositories where your search query returns results. Consider asking an admin to set up a [global service account token](/batch_changes/how-tos/configuring_credentials#global-service-account-tokens) if it's important that your batch change updates all matching repositories.
-
-### Why is my batch change preview hanging?
-
-When working with `src`, there are occurences where applying your batch spec might get stuck on a particular step. More so in the `Determining workspace type` step. The `Determining workspace type` is a simple step that decides if bind or volume modes should be used based on the command line flags, and the OS and architecture. If volume mode is used (which is default on Mac OS), then `src` will attempt to pull the `sourcegraph/src-batch-change-volume-workspace` Docker image from docker hub since that's required for the batch spec to be executed. The "hanging" is typically is caused by the local machine's CLI state. Restarting your computer and applying the batch spec again should fix this.
-
-### Can I create a batch change and use a team's namespace so that the team owns the batch change?
-
-Yes, you can create a batch change under a team's namespace so that the team owns and manages the batch change. Here are the steps to achieve this:
-
-1. Create an [organization](/admin/organizations) on Sourcegraph for your team.
-1. Add all members of your team to the organization.
-1. When creating the batch change, select the organization's namespace instead of your personal namespace. This can be done via the UI or using the `-namespace` flag with `src batch preview/apply`.
-1. The batch change will now be created under the organization's namespace.
-1. All members of the organization (your team) will have admin permissions to manage the batch change.
-
-So by using an organization's namespace, you can create a batch change that is owned and editable by the entire team, not just yourself.
diff --git a/docs/batch_changes/references/index.mdx b/docs/batch_changes/references/index.mdx
deleted file mode 100644
index 1241a78fb..000000000
--- a/docs/batch_changes/references/index.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
-# References
-
-- [Requirements](/batch_changes/references/requirements)
-- [Batch spec YAML reference](/batch_changes/references/batch_spec_yaml_reference)
-- [Batch spec templating](/batch_changes/references/batch_spec_templating)
-- [Batch spec cheat sheet](/batch_changes/references/batch_spec_cheat_sheet)
-- [Troubleshooting](/batch_changes/references/troubleshooting)
-- [CLI](/cli/references/batch/)
-- [FAQ](/batch_changes/references/faq)
-- [Name change](/batch_changes/references/name-change)
diff --git a/docs/batch_changes/references/name-change.mdx b/docs/batch_changes/references/name-change.mdx
deleted file mode 100644
index bacc8f68b..000000000
--- a/docs/batch_changes/references/name-change.mdx
+++ /dev/null
@@ -1,30 +0,0 @@
-# Name change
-
-Campaigns has changed name and is called **batch changes** from Sourcegraph 3.26 (released 2021-03-20). The name is changing so that it is more descriptive, and approachable for new users.
-
-## Summary
-
-- Campaigns is called **batch changes** from 3.26.
-- We recommend to migrate to the new name as soon as possible to benefit from new functionalities
-- There are no breaking changes in release 3.26 to 3.33, and URLs, CLI commands, API endpoints using the previous name (campaigns) will still work. **These will be removed in Sourcegraph 3.34.**
-
-## What changes
-
-- "campaigns" is replaced by "batch changes" in the GUI, documentation, customer facing and internal material
-- `/campaigns/*` URLs are changed to `/batch-changes/*`
-- the CLI prompt `src campaigns` is replaced by `src batch`
-- campaign specs are now called **batch specs**
-
-## Deprecation plan
-
-From 3.26 to 3.33 (inclusive):
-
-- all `/campaigns/*` URLs are deprecated. They will still work, and will be removed in the future.
-- the CLI prompt `src campaigns` and its alias `src campaign` are deprecated. They will still work, and will be removed in the future.
-- `campaigns` GraphQL API endpoints are deprecated. They are intended to work, so contact us if you are querying the GraphQL API to make sure that we can support you. They will be removed in the future.
-
-From 3.34:
-
-- all `/campaigns/*` URLs are removed.
-- the CLI prompt `src campaigns` and its alias `src campaign` are removed.
-- `/campaigns` GraphQL API endpoints are removed.
diff --git a/docs/batch_changes/references/requirements.mdx b/docs/batch_changes/references/requirements.mdx
deleted file mode 100644
index 28e26bd30..000000000
--- a/docs/batch_changes/references/requirements.mdx
+++ /dev/null
@@ -1,57 +0,0 @@
-# Requirements
-
-Batch Changes has requirements for the Sourcegraph server version, its connected code hosts and developer environments.
-
-## Sourcegraph server
-
-While the latest version of Sourcegraph server is always recommended, version 3.22 is the minimum version required to run Batch Changes.
-
-## Code hosts
-
-Batch Changes is compatible with the following code hosts:
-
-* Github.com
-* Github Enterprise 2.20 and later
-* GitLab 12.7 and later (burndown charts are only supported with 13.2 and later)
-* Bitbucket Server 5.7 and later, Bitbucket Data Center 7.6 and later
-* Bitbucket Cloud (bitbucket.org)
-* Azure DevOps Services
-* Gerrit 3.1.7 and later
-* Beta Perforce
-
-In order for Sourcegraph to interface with these, admins and users must first [configure credentials](/batch_changes/how-tos/configuring_credentials) for each relevant code host.
-
-> WARNING: Currently, for customers on an instance of GitHub Enterprise Cloud that uses [SSH certificate authorities](https://docs.github.com/en/enterprise-cloud@latest/organizations/managing-git-access-to-your-organizations-repositories/about-ssh-certificate-authorities) and requires SSH certificates to authenticate, we are unable to provide a means of authenticating Batch Changes to your code host.
-
-### Batch Changes effect on code host rate limits
-
-For each changeset, Sourcegraph periodically makes API requests to its code host to update its status. Sourcegraph intelligently schedules these requests to avoid overwhelming the code host's rate limits. In environments with many open batch changes, this can result in outdated changesets as they await their turn in the update queue.
-
-We **highly recommend** enabling webhooks on code hosts where batch change changesets are created. Doing so removes the lag time in updating the status of a changeset and reduces the API requests associated with large batch changes. We have instructions for each supported code host:
-
-* [GitHub](/admin/external_service/github#webhooks)
-* [Bitbucket / Bitbucket Data Center](/admin/external_service/bitbucket_server#webhooks)
-* [GitLab](/admin/external_service/gitlab#webhooks)
-
-If you are unable to enable webhooks, you can disable the warning Sourcegraph displays when viewing batch changes by setting the `batchChanges.disableWebhooksWarning` [site configuration setting](/admin/config/site_config) to `true`.
-
-### A note on Batch Changes effect on CI systems
-
-Batch Changes makes it possible to create changesets in tens, hundreds, or thousands of repositories. Opening and updating these changesets may trigger many checks or continuous integration jobs, and in turn may stress the resources allotted to these systems. Batch Changes supports [partial publishing for changesets](/batch_changes/how-tos/publishing_changesets#publishing-a-subset-of-changesets) to help mitigate these issues. You may also consider publishing your changesets at times of low activity.
-
-## Requirements for batch change creators
-
-* Latest version of the [Sourcegraph CLI `src`](/cli/)
- * `src` is supported on Linux or Intel macOS
- * Beta ARM (eg. M1) macOS support is in beta
-* Docker
- * MacOS:
- * If using Docker 3.x, ensure your version is at least 3.0.1
- * In 3.x versions, the gRPC setting must be disabled
- * You must be able to run `docker` commands as the same user `src` is running as. On Linux, this may require either `sudo` or adding your user to the `docker` group.
- * Note: podman is not supported ([#855](https://github.com/sourcegraph/src-cli/issues/855))
-* Disk space
- * The required disk space is equal to each batch change's largest repository plus any dependencies or requirements specified by the run steps, times the number of parallel jobs.
- * The default number of parallel jobs defaults to the number of CPU cores on the system running src-cli. This setting can be configured with the [`-j` flag when running `src batch apply` or `src batch preview`](/cli/references/batch/apply).
- * Disk space is also required for the generated patches. This requirement *is* cumulative across each repository altered.
-* Git
diff --git a/docs/batch_changes/tutorials/index.mdx b/docs/batch_changes/tutorials/index.mdx
deleted file mode 100644
index bbc60dbf3..000000000
--- a/docs/batch_changes/tutorials/index.mdx
+++ /dev/null
@@ -1,11 +0,0 @@
-# Tutorials
-
-The following is a list of tutorials that show how to use [Sourcegraph Batch Changes](/batch_changes/) to make useful, real-world changes:
-
-- [Refactoring Go code using Comby](/batch_changes/tutorials/refactor_go_comby)
-- [Updating Go import statements using Comby](/batch_changes/tutorials/updating_go_import_statements)
-- [Update base images in Dockerfiles](/batch_changes/tutorials/update_base_images_in_dockerfiles)
-- [Search and replace specific terms](/batch_changes/tutorials/search_and_replace_specific_terms)
-
-
-Take a look at our [examples repository](https://github.com/sourcegraph/batch-change-examples) for a collection of ready-to-be-executed batch specs.
diff --git a/docs/batch_changes/tutorials/refactor_go_comby.mdx b/docs/batch_changes/tutorials/refactor_go_comby.mdx
deleted file mode 100644
index 66596fb08..000000000
--- a/docs/batch_changes/tutorials/refactor_go_comby.mdx
+++ /dev/null
@@ -1,65 +0,0 @@
-# Refactor Go code using Comby
-
-### Introduction
-
-This batch change uses Sourcegraph's [structural search](/code-search/types/structural) and [Comby](https://comby.dev/) to rewrite Go statements from
-
-```go
-fmt.Sprintf("%d", number)
-```
-
-to
-
-```go
-strconv.Itoa(number)
-```
-
-The statements are semantically equivalent, but the latter is clearer.
-
-Since the replacements could require importing the `strconv` package, it uses [`goimports`](https://godoc.org/golang.org/x/tools/cmd/goimports) to update the list of imported packages in all `*.go` files.
-
-### Prerequisites
-
-We recommend that use the latest version of Sourcegraph when working with Batch Changes and that you have a basic understanding of how to create batch specs and run them. See the following documents for more information:
-
-1. ["Quickstart"](/batch_changes/quickstart)
-1. ["Introduction to Batch Changes"](/batch_changes/explanations/introduction_to_batch_changes)
-
-### Create the batch spec
-
-Save the following batch spec YAML as `sprintf-to-itoa.batch.yaml`:
-
-```yaml
-name: sprintf-to-itoa
-description: |
- This batch change uses [Comby](https://comby.dev) to replace `fmt.Sprintf` calls
- in Go code with the equivalent but clearer `strconv.Iota` call.
-
-on:
- - repositoriesMatchingQuery: lang:go fmt.Sprintf("%d", :[v]) patterntype:structural
-
-steps:
- - run: comby -in-place 'fmt.Sprintf("%d", :[v])' 'strconv.Itoa(:[v])' .go -matcher .go -exclude-dir .,vendor
- container: comby/comby
- - run: goimports -w $(find . -type f -name '*.go' -not -path "./vendor/*")
- container: unibeautify/goimports
-
-changesetTemplate:
- title: Replace fmt.Sprintf with equivalent strconv.Itoa
- body: This batch change replaces `fmt.Sprintf` with `strconv.Itoa`
- branch: batch-changes/sprintf-to-itoa
- commit:
- message: Replacing fmt.Sprintf with strconv.Iota
- published: false
-```
-
-### Create the batch change
-
-1. In your terminal, run this command:
-
- src batch preview -f sprintf-to-itoa.batch.yaml
-1. Wait for it to run and compute the changes for each repository.
-1. Open the preview URL that the command printed out.
-1. Examine the preview. Confirm that the changesets are the ones you intended to track. If not, edit the batch spec and then rerun the command above.
-1. Click the **Apply** button to create the batch change.
-1. Feel free to then publish the changesets (i.e. create pull requests and merge requests) by [modifying the `published` attribute in the batch spec](/batch_changes/references/batch_spec_yaml_reference#changesettemplate-published) and re-running the `src batch preview` command.
diff --git a/docs/batch_changes/tutorials/update_base_images_in_dockerfiles.mdx b/docs/batch_changes/tutorials/update_base_images_in_dockerfiles.mdx
deleted file mode 100644
index 313906e29..000000000
--- a/docs/batch_changes/tutorials/update_base_images_in_dockerfiles.mdx
+++ /dev/null
@@ -1,130 +0,0 @@
-# Updating base images in Dockerfiles
-
-
-Create a batch change to update Dockerfiles in every one of your repositories.
-
-
-### Introduction
-
-Batch Changes allow us to update the base images used in our Dockerfiles, across many repositories, in just a few commands.
-
-This tutorial shows you how to create [a batch spec](/batch_changes/explanations/introduction_to_batch_changes#batch-spec) that
-
-1. finds `Dockerfile`s that make use of `google/dart:2.x` base images and
-2. changes those `Dockerfiles` to use `google/dart:2.10`
-
-The batch spec and instructions here can [easily be adapted to update other base images](#updating-other-base-images).
-
-
-
-### Prerequisites
-
-We recommend using the latest version of Sourcegraph when working with Batch Changes and that you have a basic understanding of how to create batch specs and run them. See the following documents for more information:
-
-1. ["Quickstart"](/batch_changes/quickstart)
-1. ["Introduction to Batch Changes"](/batch_changes/explanations/introduction_to_batch_changes)
-
-### Create the batch spec
-
-Save the following batch spec YAML as `update-dart-base-images-2-10.batch.yaml`:
-
-```yaml
-name: update-dart-base-images-2-10
-description: This batch change updates `google/dart:2.*` base images in Dockerfiles to `google/dart:2.10.2`.
-
-on:
- # Find all repositories that contain Dockerfiles with `FROM google/dart:2.*` as base images.
- # The regexp used here matches images
- #
- # google/dart:2.MINOR.PATCH
- # google/dart:2.MINOR.PATCH-dev.DEVMINOR.DEVPATCH
- #
- # google/dart-runtime:2.MINOR.PATCH
- # google/dart-runtime:2.MINOR.PATCH-dev.DEVMINOR.DEVPATCH
- #
- # where the tag is < 2.10. Feel free to adjust it to your requirements.
- - repositoriesMatchingQuery: ^FROM google\/dart(-runtime)?:2\.[0-9]\.?\d?(-dev\.\d\.\d)? file:Dockerfile patternType:regexp
-
-# In each repository
-steps:
- # find all Dockerfiles and replace the old image tags with our desired ones:
- - run: |
- find . -name Dockerfile -type f |\
- xargs sed\
- -i\
- --regexp-extended\
- 's/FROM google\/dart(-runtime)?:2\.[[:digit:]]\.?[[:digit:]]?(-dev\.?[[:digit:]]?\.?[[:digit:]]?)?/FROM google\/dart:2\.10/g'
- container: alpine:3
-
-# Describe the changeset (e.g., GitHub pull request) you want for each repository.
-changesetTemplate:
- title: Update google/dart base images in Dockerfiles to 2.10.2
- body: This updates google/dart base images used in Dockerfiles to version 2.10.2
- branch: batch-changes/google-dart-2-10-2-base-images # Push the commit to this branch.
- commit:
- message: Update google/dart base images in Dockerfiles to 2.10.2
- published: false
-```
-
-### Create the batch change
-
-1. In your terminal, run this command:
-
- src batch preview -f update-dart-base-images-2-10.batch.yaml
-1. Wait for it to run and compute the changes for each repository.
-
-1. Open the preview URL that the command printed out.
-
-1. Examine the preview. Confirm that the changesets are the ones you intended to track. If not, edit the batch spec and then rerun the command above.
-
-1. Click the **Apply** button to create the batch change.
-1. Feel free to then publish the changesets (i.e. create pull requests and merge requests) by [modifying the `published` attribute in the batch spec](/batch_changes/references/batch_spec_yaml_reference#changesettemplate-published) and re-running the `src batch preview` command.
-
-### Updating other base images
-
-In order to update other base images in `Dockerfile`s you can either extend the batch spec or create another batch spec in which you change the `repositoriesMatchingQuery` and the `steps.run` properties.
-
-You can keep using regexp-based search and `sed`, or you can use [structural search](/code-search/types/structural) combined with [comby](https://comby.dev) to update base images.
-
-For example, here's how you would update `alpine` base images from `alpine:3.9`, `alpine:3.10`, `alpine:3.11` to `alpine:3.12`:
-
-```yaml
-# [...]
-
-on:
- - repositoriesMatchingQuery: FROM alpine:3.:[minor~[91]+[0-1]?] file:Dockerfile patternType:structural
- - repositoriesMatchingQuery: FROM alpine:3.:[minor~[91]+[0-1]?]@sha256::[hash~[a-f0-9]+] file:Dockerfile patternType:structural
-
-steps:
- - run: |
- comby \
- -in-place \
- 'FROM alpine:3.:[minor~[91]+[0-1]?]@sha256::[hash~[a-f0-9]+]' \
- 'FROM alpine:3.12@ sha256:c0e9560cda118f9ec63ddefb4a173a2b2a0347082d7dff7dc14272e7841a5b5a' \
- Dockerfile
- container: comby/comby
- - run: comby -in-place 'alpine:3.:[minor~[91]+[0-1]?]' 'FROM alpine:3.12' Dockerfile
- container: comby/comby
-
-# [...]
-```
-
-And here's how you could update `golang` base images to use Go 1.15:
-
-```yaml
-# [...]
-on:
- - repositoriesMatchingQuery: FROM golang:1.1:[minor~[0-4]]-alpine file:Dockerfile patternType:structural
- - repositoriesMatchingQuery: FROM golang:1.1:[minor~[0-4]]-alpine@sha256::[hash~[a-f0-9]+] file:Dockerfile patternType:structural
-
-steps:
- - run: |
- comby \
- -in-place \
- 'FROM golang::[version]-alpine@sha256::[hash~[a-f0-9]+]' \
- 'FROM golang:1.15-alpine@sha256:df0119b970c8e5e9f0f5c40f6b55edddf616bab2b911927ebc3b361c469ea29c' \
- Dockerfile
- container: comby/comby
- - run: comby -in-place 'FROM golang::[version]-alpine' 'FROM golang:1.15-alpine' Dockerfile
- container: comby/comby
-```
diff --git a/docs/batch_changes/tutorials/updating_go_import_statements.mdx b/docs/batch_changes/tutorials/updating_go_import_statements.mdx
deleted file mode 100644
index f97136f55..000000000
--- a/docs/batch_changes/tutorials/updating_go_import_statements.mdx
+++ /dev/null
@@ -1,78 +0,0 @@
-# Updating Go import statements using Comby
-
-### Introduction
-
-This batch change rewrites Go import paths for the `log15` package from `gopkg.in/inconshreveable/log15.v2` to `github.com/inconshreveable/log15` using [Comby](https://comby.dev/).
-
-It can handle single-package import statements like this one:
-
-```go
-import "gopkg.in/inconshreveable/log15.v2"
-```
-
-Single-package imports with an alias:
-
-
-```go
-import log15 "gopkg.in/inconshreveable/log15.v2"
-```
-
-And multi-package import statements with or without an alias:
-
-```go
-import (
- "io"
-
- "github.com/pkg/errors"
- "gopkg.in/inconshreveable/log15.v2"
-)
-```
-
-### Prerequisites
-
-We recommend that use the latest version of Sourcegraph when working with Batch Changes and that you have a basic understanding of how to create batch specs and run them. See the following documents for more information:
-
-1. ["Quickstart"](/batch_changes/quickstart)
-1. ["Introduction to Batch Changes"](/batch_changes/explanations/introduction_to_batch_changes)
-
-### Create the batch spec
-
-Save the following batch spec YAML as `update-log15-import.batch.yaml`:
-
-```yaml
-name: update-log15-import
-description: This batch change updates Go import paths for the `log15` package from `gopkg.in/inconshreveable/log15.v2` to `github.com/inconshreveable/log15` using [Comby](https://comby.dev/)
-
-# Find all repositories that contain the import we want to change.
-on:
- - repositoriesMatchingQuery: lang:go gopkg.in/inconshreveable/log15.v2
-
-# In each repository
-steps:
- # we first replace the import when it's part of a multi-package import statement
- - run: comby -in-place 'import (:[before]"gopkg.in/inconshreveable/log15.v2":[after])' 'import (:[before]"github.com/inconshreveable/log15":[after])' .go -matcher .go -exclude-dir .,vendor
- container: comby/comby
- # ... and when it's a single import line.
- - run: comby -in-place 'import:[alias]"gopkg.in/inconshreveable/log15.v2"' 'import:[alias]"github.com/inconshreveable/log15"' .go -matcher .go -exclude-dir .,vendor
- container: comby/comby
-
-# Describe the changeset (e.g., GitHub pull request) you want for each repository.
-changesetTemplate:
- title: Update import path for log15 package to use GitHub
- body: Updates Go import paths for the `log15` package from `gopkg.in/inconshreveable/log15.v2` to `github.com/inconshreveable/log15` using [Comby](https://comby.dev/)
- branch: batch-changes/update-log15-import # Push the commit to this branch.
- commit:
- message: Fix import path for log15 package
- published: false
-```
-
-### Create the batch change
-
-1. In your terminal, run this command:
-
- src batch preview -f update-log15-import.batch.yaml
-1. Wait for it to run and compute the changes for each repository.
-1. Open the preview URL that the command printed out.
-1. Examine the preview. Confirm that the changesets are the ones you intended to track. If not, edit the batch spec and then rerun the command above.
-1. Click the **Apply** button to create the batch change.
-1. Feel free to then publish the changesets (i.e. create pull requests and merge requests) by [modifying the `published` attribute in the batch spec](/batch_changes/references/batch_spec_yaml_reference#changesettemplate-published) and re-running the `src batch preview` command.
diff --git a/docs/cli/explanations/env.mdx b/docs/cli/explanations/env.mdx
index 50cc183ad..036e55d50 100644
--- a/docs/cli/explanations/env.mdx
+++ b/docs/cli/explanations/env.mdx
@@ -22,7 +22,7 @@ If the environment variable is not set, it'll default to "https://sourcegraph.co
To create an access token, please refer to "[Creating an access token](/cli/how-tos/creating_an_access_token)".
-## Adding request headers with `SRC_HEADER_`
+## Adding request headers with `SRC_HEADER_` (Proxy Authentication with `src`)
If your instance is behind an authenticating proxy that requires additional headers, they can be supplied via environment variables. Any environment variable passed starting with the string `SRC_HEADER_{string-A}="String-B"` will be passed into the request with form `String-A: String-B`. See examples below:
@@ -33,6 +33,14 @@ SRC_HEADER_AUTHORIZATION="Bearer $(curl http://service.internal.corp)" SRC_HEADE
In the above example, the headers `authorization: Bearer my-generated-token` and `extra: metadata` will be threaded to all HTTP requests to your instance. Multiple such headers can be supplied.
+An alternative to the above when passing in multiple headers or headers with dashes is to make use of the `SRC_HEADERS` environment variable as follows:
+
+```sh
+SRC_HEADERS="AUTHORIZATION:Bearer somerandom_string\nClient-ID:client-one\nextra:metadata"
+```
+
+Note: The different header keys and values need to separated by a new line ("\n"). In the above example, the headers `authorization: Bearer somerandom_string`, `client-id: client-one` and `extra: metadata` will be threaded to all HTTP requests to your instance.
+
Example passing env vars via a shell config file:
In the .zshrc -
```bash
diff --git a/docs/cli/explanations/versioning.mdx b/docs/cli/explanations/versioning.mdx
index ceca1d359..cdeb9a516 100644
--- a/docs/cli/explanations/versioning.mdx
+++ b/docs/cli/explanations/versioning.mdx
@@ -1,3 +1,5 @@
+import { CURRENT_VERSION_STRING_NO_V, CURRENT_VERSION_STRING } from 'src/components/PreCodeBlock'
+
## Installation & versioning
Binary downloads are available on the [releases tab](https://github.com/sourcegraph/src-cli/releases), and through Sourcegraph.com. _If the latest version does not work for you,_ consider using the version compatible with your Sourcegraph instance instead.
@@ -32,16 +34,16 @@ curl -L https://sourcegraph.example.com/.api/src-cli/src_darwin_amd64 -o /usr/lo
chmod +x /usr/local/bin/src
```
-or, if you know the specific version to target, for example 3.43.2:
+or, if you know the specific version to target, for example `{CURRENT_VERSION_NO_V}`:
```bash
-brew install sourcegraph/src-cli/src-cli@3.43.2
+brew install sourcegraph/src-cli/src-cli@{CURRENT_VERSION_NO_V}
```
or with npm/npx:
```bash
-npx @sourcegraph/src@3.43.2 version
+npx @sourcegraph/src@{CURRENT_VERSION_NO_V} version
```
> Note: Versioned formulas are available on Homebrew for Sourcegraph versions 3.43.2 and later.
@@ -70,10 +72,10 @@ curl -L https://sourcegraph.example.com/.api/src-cli/src_linux_amd64 -o /usr/loc
chmod +x /usr/local/bin/src
```
-or, with npm/npx, if you know the specific version to target, for example 3.43.2:
+or, with npm/npx, if you know the specific version to target, for example `{CURRENT_VERSION_NO_V}`:
```bash
-npx @sourcegraph/src@3.43.2 version
+npx @sourcegraph/src@{CURRENT_VERSION_NO_V} version
```
### Installation: Windows
@@ -82,7 +84,7 @@ See [Sourcegraph CLI for Windows](/cli/explanations/windows).
### Installation: Docker
-`sourcegraph/src-cli` is published to Docker Hub. You can use the `latest` tag or a specific version such as `3.43`. To see all versions view [sourcegraph/src-cli tags](https://hub.docker.com/r/sourcegraph/src-cli/tags).
+`sourcegraph/src-cli` is published to Docker Hub. You can use the `latest` tag or a specific version such as `{CURRENT_VERSION_NO_V}`. To see all versions view [sourcegraph/src-cli tags](https://hub.docker.com/r/sourcegraph/src-cli/tags).
```bash
docker run --rm=true sourcegraph/src-cli:latest search 'hello world'
diff --git a/docs/cli/how-tos/fetch_sboms.mdx b/docs/cli/how-tos/fetch_sboms.mdx
new file mode 100644
index 000000000..fd833209d
--- /dev/null
+++ b/docs/cli/how-tos/fetch_sboms.mdx
@@ -0,0 +1,44 @@
+# How to fetch SBOMs for Sourcegraph
+
+Sourcegraph generates and cryptographically signs a Software Bill of Materials (SBOM) for each container image in every release. These SBOMs are stored in our container registry alongside their corresponding images.
+
+Use the Sourcegraph CLI (`src`) to fetch SBOMs for a specific release.
+
+## Prerequisites
+
+1. Install `src` following the [Quickstart](../quickstart.mdx).
+
+2. Install `cosign` following the [Installation Guide](https://docs.sigstore.dev/cosign/system_config/installation/).
+
+## Fetching SBOMs
+
+1. Determine the Sourcegraph version to verify. Use either a [recent release](../../CHANGELOG.mdx) or your instance's current version.
+
+ > **Note:** SBOMs are only available only for Sourcegraph release 5.9.0 and later.
+
+ To find your instance's current version, check your deployment or view the Settings page on your Sourcegraph instance (version shown in bottom left corner).
+
+ 
+
+2. Run `src sbom fetch -v ` to fetch SBOMs for all containers in this release. `src` will automatically validate that all SBOMs were signed by Sourcegraph.
+ ```
+ # Fetch SBOMs for Sourcegraph release 5.9.0
+ $ src sbom fetch -v 5.9.0
+
+ Fetching SBOMs and validating signatures for all 39 images in the Sourcegraph 5.9.0 release...
+
+ ✅ sourcegraph/appliance
+ ✅ sourcegraph/batcheshelper
+ ✅ sourcegraph/bundled-executor
+
+ [...]
+
+ 🟢 Fetched verified SBOMs for 39 images
+
+ Fetched and validated SBOMs have been written to `sourcegraph-sboms/sourcegraph-5.9.0`.
+
+ Your Sourcegraph deployment may not use all of these images. Please check your deployment to confirm which images are used.
+ ```
+3. Once completed, find the set of validated SBOMs under `sourcegraph-sboms/sourcegraph-/`.
+
+**Important:** `src sbom fetch` will retrieve SBOMs for **all** containers that make up a Sourcegraph release. Your Sourcegraph instance will use only a subset of these containers - please check your deployment to determine which SBOM files are relevant to your deployment.
diff --git a/docs/cli/how-tos/index.mdx b/docs/cli/how-tos/index.mdx
index ce0875351..0cefac94a 100644
--- a/docs/cli/how-tos/index.mdx
+++ b/docs/cli/how-tos/index.mdx
@@ -4,3 +4,7 @@ The following how-tos apply to the `src` command line interface to Sourcegraph:
- [Creating an access token](/cli/how-tos/creating_an_access_token)
- [Revoking an access token](/cli/how-tos/revoking_an_access_token)
+- [Managing access tokens](/cli/how-tos/managing_access_tokens)
+- [How to fetch SBOMs for Sourcegraph](/cli/how-tos/fetch_sboms)
+- [How to verify container signatures for Sourcegraph releases](/cli/how-tos/verify_container_signatures)
+
diff --git a/docs/cli/how-tos/managing_access_tokens.mdx b/docs/cli/how-tos/managing_access_tokens.mdx
new file mode 100644
index 000000000..d1d916416
--- /dev/null
+++ b/docs/cli/how-tos/managing_access_tokens.mdx
@@ -0,0 +1,23 @@
+# Managing access tokens
+
+The `auth.accessTokens` setting in Sourcegraph's site configuration allows admins to fine-tune parameters related to access tokens.
+
+## Access token creation
+
+The `auth.accessTokens.allow` configuration field permits or restricts the creation of access tokens. It can be assigned one of three values: "none," "all-users-create" (which is the default option), or "site-admin-create.”
+
+- `none` Disables the creation of access tokens.
+- `all-users-create` Allows users to create their own token.
+- `site-admin-create` Allows site admins to create tokens for users.
+
+`auth.accessTokens.maxTokensPerUser` - This config field determines the maximum number of active access tokens a user can have. The default maximum is 25 tokens.
+
+## Access token expiration
+
+Admins can set expiration policies for access tokens. After this specified period, tokens will automatically lose their access. Note that tokens created before version 5.3 do not expire; this policy only applies to **new** tokens.
+
+`auth.accessTokens.allowNoExpiration` - This controls whether tokens can be created with no expiration date. The default setting is false.
+
+`auth.accessTokens.expirationOptionDays` - This represents the options users are presented with for the token expiration period. The default options are [7, 14, 30, 60, 90].
+
+`auth.accessTokens.defaultExpirationDays` - This sets the default duration selection when creating a new access token. The default is 90 days.
\ No newline at end of file
diff --git a/docs/cli/how-tos/verify_container_signatures.mdx b/docs/cli/how-tos/verify_container_signatures.mdx
new file mode 100644
index 000000000..a4b68ed23
--- /dev/null
+++ b/docs/cli/how-tos/verify_container_signatures.mdx
@@ -0,0 +1,45 @@
+# How to verify container signatures for Sourcegraph releases
+
+Sourcegraph publishes cryptographic signatures for all container images included in each release. These signatures can be used to verify the authenticity and integrity of the downloaded images.
+
+To verify signatures for a specific release, use the Sourcegraph CLI (`src`). This tool validates that all images in the release were signed by Sourcegraph and displays the SHA256 hashes of the verified images.
+
+## Prerequisites
+
+1. Install `src` following the [Quickstart](../quickstart.mdx).
+
+2. Install `cosign` following the [Installation Guide](https://docs.sigstore.dev/cosign/system_config/installation/).
+
+## Verification Process
+
+1. Determine the Sourcegraph version to verify. Use either a [recent release](../../CHANGELOG.mdx) or your instance's current version.
+
+ > **Note:** Signature verification is available only for Sourcegraph release 5.11.4013 and later.
+
+ To find your instance's current version, check your deployment or view the Settings page on your Sourcegraph instance (version shown in bottom left corner).
+
+ 
+
+2. Run the verification command:
+
+ ```bash:terminal
+ # Verify signatures for Sourcegraph release 5.11.6271
+ $ src signature verify -v 5.11.6271 -d sourcegraph-digests/
+
+ Verifying signatures for all 40 images in the Sourcegraph 5.11.6271 release...
+
+ ✅ sourcegraph/batcheshelper@sha256:f77538c3ff985abd5fdb1cc1eb7068418cb84e0d0df629d353bdf0910e232e86
+ ✅ sourcegraph/bundled-executor@sha256:5ba1d2c4a3df2620532400de736df81d52d7b07deb07ca26832edbe78f566cfd
+ ✅ sourcegraph/cody-gateway@sha256:bfeeb0d2bb45543553dc950678da5ed6de052a85cd25a6b3b0b5690e425ee57c
+
+ [...]
+
+ 🟢 Verified signatures and digests for 40 images
+
+ Verified digests have been written to 'sourcegraph-digests/sourcegraph-5.11.6271/verified-digests.txt'.
+
+ Your Sourcegraph deployment may not use all of these images. Please check your deployment to confirm which images are used.
+ ```
+3. After verification completes, find the validated image digests in `sourcegraph-digests/sourcegraph-/`.
+
+**Important:** The verification process checks all containers in a Sourcegraph release. Your instance typically uses only a subset of these containers. Review your deployment configuration to identify which containers are relevant to your deployment.
diff --git a/docs/cli/index.mdx b/docs/cli/index.mdx
index 5751fabdc..e21eca137 100644
--- a/docs/cli/index.mdx
+++ b/docs/cli/index.mdx
@@ -1,13 +1,16 @@
# CLI
-Interact with Sourcegraph from the command line
+Interact with Sourcegraph and Cody from the command line interface.
-`src` is a command line interface to Sourcegraph that allows you to search code from your terminal, create and apply batch changes , and manage and administrate repositories, users, and more .
+`src` is a command line interface to Sourcegraph that allows you to search code from your terminal, create and apply batch changes , and manage and administrate repositories, users, and more .
-## Getting Started
+[Cody CLI](/cody/clients/install-cli) is the same technology that powers the Cody IDE plugins but available from the command-line. Use Cody CLI for ad-hoc exploration in your terminal or as part of scripts to automate your workflows.
+
+## Quick Links
-
-
-
+
+
+
+
diff --git a/docs/cli/quickstart.mdx b/docs/cli/quickstart.mdx
index 1dac4970e..d482c7bde 100644
--- a/docs/cli/quickstart.mdx
+++ b/docs/cli/quickstart.mdx
@@ -1,4 +1,4 @@
-# Quickstart for `src`
+# Quickstart for src
Get started and run your first [code search](/code-search/) from the command line in 10 minutes or less.
@@ -13,12 +13,12 @@ In this guide, you'll install the Sourcegraph CLI, `src`, connect it to your Sou
### macOS
```sh
-curl -L https://sourcegraph.com/.api/src-cli/src_darwin_amd64 -o /usr/local/bin/src
-chmod +x /usr/local/bin/src
+brew install sourcegraph/src-cli/src-cli
```
or
-```
-brew install sourcegraph/src-cli/src-cli
+```sh
+curl -L https://sourcegraph.com/.api/src-cli/src_darwin_amd64 -o /usr/local/bin/src
+chmod +x /usr/local/bin/src
```
### Linux
@@ -67,7 +67,7 @@ This should result in this output:
You've run your first search from the command line! 🎉🎉
-You can now explore the [range of commands `src` provides](/cli/references/), including the extensive support for [batch changes](/batch_changes/).
+You can now explore the [range of commands `src` provides](/cli/references/), including the extensive support for [batch changes](/batch-changes/).
To learn what else you can do with `src`, see "[CLI](/cli/)" in the Sourcegraph documentation.
diff --git a/docs/cli/references/api.mdx b/docs/cli/references/api.mdx
index 2204e1b1f..2cabe7906 100644
--- a/docs/cli/references/api.mdx
+++ b/docs/cli/references/api.mdx
@@ -9,7 +9,7 @@
| `-get-curl` | Print the curl command for executing this query and exit (WARNING: includes printing your access token!) | `false` |
| `-insecure-skip-verify` | Skip validation of TLS certificates against trusted chains | `false` |
| `-query` | GraphQL query to execute, e.g. 'query \{ currentUser \{ username \} \}' (stdin otherwise) | |
-| `-trace` | Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing | `false` |
+| `-trace` | Log the trace ID for requests. See [docs](/admin/observability/tracing) | `false` |
| `-user-agent-telemetry` | Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph | `true` |
| `-vars` | GraphQL query variables to include as JSON string, e.g. '\{"var": "val", "var2": "val2"\}' | |
@@ -27,7 +27,7 @@ Usage of 'src api':
-query string
GraphQL query to execute, e.g. 'query { currentUser { username } }' (stdin otherwise)
-trace
- Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing
+ Log the trace ID for requests. #See https://sourcegraph.com/docs/admin/observability/tracing
-user-agent-telemetry
Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph (default true)
-vars string
@@ -60,4 +60,3 @@ Examples:
```
-
\ No newline at end of file
diff --git a/docs/cli/references/batch/apply.mdx b/docs/cli/references/batch/apply.mdx
index 02f30c548..1613d9105 100644
--- a/docs/cli/references/batch/apply.mdx
+++ b/docs/cli/references/batch/apply.mdx
@@ -24,7 +24,7 @@
| `-text-only` | INTERNAL USE ONLY. EXPERIMENTAL. Switches off the TUI to only print JSON lines. | `false` |
| `-timeout` | The maximum duration a single batch spec step can take. | `1h0m0s` |
| `-tmp` | Directory for storing temporary data, such as log files. Default is /tmp. Can also be set with environment variable SRC_BATCH_TMP_DIR; if both are set, this flag will be used and not the environment variable. | `/tmp` |
-| `-trace` | Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing | `false` |
+| `-trace` | Log the trace ID for requests. [See docs](/admin/observability/tracing) | `false` |
| `-user-agent-telemetry` | Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph | `true` |
| `-v` | print verbose output | `false` |
| `-workspace` | Workspace mode to use ("auto", "bind", or "volume") | `auto` |
@@ -73,7 +73,7 @@ Usage of 'src batch apply':
-tmp string
Directory for storing temporary data, such as log files. Default is /tmp. Can also be set with environment variable SRC_BATCH_TMP_DIR; if both are set, this flag will be used and not the environment variable. (default "/tmp")
-trace
- Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing
+ Log the trace ID for requests. # See https://sourcegraph.com/docs/admin/observability/tracing
-user-agent-telemetry
Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph (default true)
-v print verbose output
@@ -99,4 +99,3 @@ Examples:
```
-
\ No newline at end of file
diff --git a/docs/cli/references/batch/new.mdx b/docs/cli/references/batch/new.mdx
index 67f29f092..a123c0f50 100644
--- a/docs/cli/references/batch/new.mdx
+++ b/docs/cli/references/batch/new.mdx
@@ -9,7 +9,7 @@
| `-f` | The name of the batch spec file to create. | `batch.yaml` |
| `-get-curl` | Print the curl command for executing this query and exit (WARNING: includes printing your access token!) | `false` |
| `-insecure-skip-verify` | Skip validation of TLS certificates against trusted chains | `false` |
-| `-trace` | Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing | `false` |
+| `-trace` | Log the trace ID for requests. [See docs](/admin/observability/tracing) | `false` |
| `-user-agent-telemetry` | Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph | `true` |
@@ -26,7 +26,7 @@ Usage of 'src batch new':
-insecure-skip-verify
Skip validation of TLS certificates against trusted chains
-trace
- Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing
+ Log the trace ID for requests. #See https://sourcegraph.com/docs/admin/observability/tracing
-user-agent-telemetry
Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph (default true)
@@ -45,4 +45,3 @@ Examples:
```
-
\ No newline at end of file
diff --git a/docs/cli/references/batch/preview.mdx b/docs/cli/references/batch/preview.mdx
index 83e745d30..bb2e07b4d 100644
--- a/docs/cli/references/batch/preview.mdx
+++ b/docs/cli/references/batch/preview.mdx
@@ -24,7 +24,7 @@
| `-text-only` | INTERNAL USE ONLY. EXPERIMENTAL. Switches off the TUI to only print JSON lines. | `false` |
| `-timeout` | The maximum duration a single batch spec step can take. | `1h0m0s` |
| `-tmp` | Directory for storing temporary data, such as log files. Default is /tmp. Can also be set with environment variable SRC_BATCH_TMP_DIR; if both are set, this flag will be used and not the environment variable. | `/tmp` |
-| `-trace` | Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing | `false` |
+| `-trace` | Log the trace ID for requests. [See docs](/admin/observability/tracing) | `false` |
| `-user-agent-telemetry` | Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph | `true` |
| `-v` | print verbose output | `false` |
| `-workspace` | Workspace mode to use ("auto", "bind", or "volume") | `auto` |
@@ -73,7 +73,7 @@ Usage of 'src batch preview':
-tmp string
Directory for storing temporary data, such as log files. Default is /tmp. Can also be set with environment variable SRC_BATCH_TMP_DIR; if both are set, this flag will be used and not the environment variable. (default "/tmp")
-trace
- Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing
+ Log the trace ID for requests. #See https://sourcegraph.com/docs/admin/observability/tracing
-user-agent-telemetry
Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph (default true)
-v print verbose output
@@ -97,4 +97,3 @@ Examples:
```
-
\ No newline at end of file
diff --git a/docs/cli/references/batch/remote.mdx b/docs/cli/references/batch/remote.mdx
index a3c794925..d7e5e5901 100644
--- a/docs/cli/references/batch/remote.mdx
+++ b/docs/cli/references/batch/remote.mdx
@@ -14,7 +14,7 @@
| `-insecure-skip-verify` | Skip validation of TLS certificates against trusted chains | `false` |
| `-n` | Alias for -namespace. | |
| `-namespace` | The user or organization namespace to place the batch change within. Default is the currently authenticated user. | |
-| `-trace` | Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing | `false` |
+| `-trace` | Log the trace ID for requests. [See docs](/admin/observability/tracing) | `false` |
| `-user-agent-telemetry` | Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph | `true` |
@@ -41,7 +41,7 @@ Usage of 'src batch remote':
-namespace string
The user or organization namespace to place the batch change within. Default is the currently authenticated user.
-trace
- Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing
+ Log the trace ID for requests. #See https://sourcegraph.com/docs/admin/observability/tracing
-user-agent-telemetry
Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph (default true)
'src batch remote' runs a batch spec on the Sourcegraph instance.
@@ -58,4 +58,3 @@ Examples:
```
-
\ No newline at end of file
diff --git a/docs/cli/references/batch/repositories.mdx b/docs/cli/references/batch/repositories.mdx
index 19d468711..23b0f0776 100644
--- a/docs/cli/references/batch/repositories.mdx
+++ b/docs/cli/references/batch/repositories.mdx
@@ -11,7 +11,7 @@
| `-force-override-ignore` | Do not ignore repositories that have a .batchignore file. | `false` |
| `-get-curl` | Print the curl command for executing this query and exit (WARNING: includes printing your access token!) | `false` |
| `-insecure-skip-verify` | Skip validation of TLS certificates against trusted chains | `false` |
-| `-trace` | Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing | `false` |
+| `-trace` | Log the trace ID for requests. [See docs](/admin/observability/tracing) | `false` |
| `-user-agent-telemetry` | Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph | `true` |
@@ -32,7 +32,7 @@ Usage of 'src batch repositories':
-insecure-skip-verify
Skip validation of TLS certificates against trusted chains
-trace
- Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing
+ Log the trace ID for requests. #See https://sourcegraph.com/docs/admin/observability/tracing
-user-agent-telemetry
Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph (default true)
@@ -52,4 +52,3 @@ Examples:
```
-
\ No newline at end of file
diff --git a/docs/cli/references/batch/validate.mdx b/docs/cli/references/batch/validate.mdx
index 270729485..9a0982fad 100644
--- a/docs/cli/references/batch/validate.mdx
+++ b/docs/cli/references/batch/validate.mdx
@@ -11,7 +11,7 @@
| `-force-override-ignore` | Do not ignore repositories that have a .batchignore file. | `false` |
| `-get-curl` | Print the curl command for executing this query and exit (WARNING: includes printing your access token!) | `false` |
| `-insecure-skip-verify` | Skip validation of TLS certificates against trusted chains | `false` |
-| `-trace` | Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing | `false` |
+| `-trace` | Log the trace ID for requests. [See docs](/admin/observability/tracing) | `false` |
| `-user-agent-telemetry` | Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph | `true` |
@@ -32,7 +32,7 @@ Usage of 'src batch validate':
-insecure-skip-verify
Skip validation of TLS certificates against trusted chains
-trace
- Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing
+ Log the trace ID for requests. See https://sourcegraph.com/docs/admin/observability/tracing
-user-agent-telemetry
Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph (default true)
@@ -51,4 +51,3 @@ Examples:
```
-
\ No newline at end of file
diff --git a/docs/cli/references/config/edit.mdx b/docs/cli/references/config/edit.mdx
index 67959780b..6e98b13a8 100644
--- a/docs/cli/references/config/edit.mdx
+++ b/docs/cli/references/config/edit.mdx
@@ -11,7 +11,7 @@
| `-overwrite` | Overwrite the entire settings with the value given in -value (not just a single property). | `false` |
| `-property` | The name of the settings property to set. | |
| `-subject` | The ID of the settings subject whose settings to edit. (default: authenticated user) | |
-| `-trace` | Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing | `false` |
+| `-trace` | Log the trace ID for requests. [See docs](/admin/observability/tracing) | `false` |
| `-user-agent-telemetry` | Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph | `true` |
| `-value` | The value for the settings property (when used with -property). | |
| `-value-file` | Read the value from this file instead of from the -value command-line option. | |
@@ -34,7 +34,7 @@ Usage of 'src config edit':
-subject string
The ID of the settings subject whose settings to edit. (default: authenticated user)
-trace
- Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing
+ Log the trace ID for requests. See https://sourcegraph.com/docs/admin/observability/tracing
-user-agent-telemetry
Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph (default true)
-value string
@@ -70,4 +70,3 @@ Examples:
```
-
\ No newline at end of file
diff --git a/docs/cli/references/config/get.mdx b/docs/cli/references/config/get.mdx
index 42972c2fe..050dbe863 100644
--- a/docs/cli/references/config/get.mdx
+++ b/docs/cli/references/config/get.mdx
@@ -10,7 +10,7 @@
| `-get-curl` | Print the curl command for executing this query and exit (WARNING: includes printing your access token!) | `false` |
| `-insecure-skip-verify` | Skip validation of TLS certificates against trusted chains | `false` |
| `-subject` | The ID of the settings subject whose settings to get. (default: authenticated user) | |
-| `-trace` | Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing | `false` |
+| `-trace` | Log the trace ID for requests. [See docs](/admin/observability/tracing) | `false` |
| `-user-agent-telemetry` | Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph | `true` |
@@ -29,7 +29,7 @@ Usage of 'src config get':
-subject string
The ID of the settings subject whose settings to get. (default: authenticated user)
-trace
- Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing
+ Log the trace ID for requests. See https://sourcegraph.com/docs/admin/observability/tracing
-user-agent-telemetry
Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph (default true)
@@ -50,4 +50,3 @@ Examples:
```
-
\ No newline at end of file
diff --git a/docs/cli/references/config/list.mdx b/docs/cli/references/config/list.mdx
index ab6ee82b8..2f531ef07 100644
--- a/docs/cli/references/config/list.mdx
+++ b/docs/cli/references/config/list.mdx
@@ -10,7 +10,7 @@
| `-get-curl` | Print the curl command for executing this query and exit (WARNING: includes printing your access token!) | `false` |
| `-insecure-skip-verify` | Skip validation of TLS certificates against trusted chains | `false` |
| `-subject` | The ID of the settings subject whose settings to list. (default: authenticated user) | |
-| `-trace` | Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing | `false` |
+| `-trace` | Log the trace ID for requests. [See docs](/admin/observability/tracing) | `false` |
| `-user-agent-telemetry` | Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph | `true` |
@@ -29,7 +29,7 @@ Usage of 'src config list':
-subject string
The ID of the settings subject whose settings to list. (default: authenticated user)
-trace
- Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing
+ Log the trace ID for requests. See https://sourcegraph.com/docs/admin/observability/tracing
-user-agent-telemetry
Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph (default true)
@@ -46,4 +46,3 @@ Examples:
```
-
\ No newline at end of file
diff --git a/docs/cli/references/extensions/copy.mdx b/docs/cli/references/extensions/copy.mdx
index 069d8d042..0b8a5c807 100644
--- a/docs/cli/references/extensions/copy.mdx
+++ b/docs/cli/references/extensions/copy.mdx
@@ -10,7 +10,7 @@
| `-extension-id` | The <extID> in https://sourcegraph.com/extensions/<extID> (e.g. sourcegraph/java) | |
| `-get-curl` | Print the curl command for executing this query and exit (WARNING: includes printing your access token!) | `false` |
| `-insecure-skip-verify` | Skip validation of TLS certificates against trusted chains | `false` |
-| `-trace` | Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing | `false` |
+| `-trace` | Log the trace ID for requests. [See docs](/admin/observability/tracing) | `false` |
| `-user-agent-telemetry` | Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph | `true` |
@@ -29,7 +29,7 @@ Usage of 'src extensions copy':
-insecure-skip-verify
Skip validation of TLS certificates against trusted chains
-trace
- Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing
+ Log the trace ID for requests. See https://sourcegraph.com/docs/admin/observability/tracing
-user-agent-telemetry
Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph (default true)
@@ -37,4 +37,3 @@ Copy an extension from Sourcegraph.com to your private registry.
```
-
\ No newline at end of file
diff --git a/docs/cli/references/extensions/delete.mdx b/docs/cli/references/extensions/delete.mdx
index 2222034c8..2da01bfb7 100644
--- a/docs/cli/references/extensions/delete.mdx
+++ b/docs/cli/references/extensions/delete.mdx
@@ -9,7 +9,7 @@
| `-get-curl` | Print the curl command for executing this query and exit (WARNING: includes printing your access token!) | `false` |
| `-id` | The ID (GraphQL API ID, not extension ID) of the extension to delete. | |
| `-insecure-skip-verify` | Skip validation of TLS certificates against trusted chains | `false` |
-| `-trace` | Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing | `false` |
+| `-trace` | Log the trace ID for requests. [See docs](/admin/observability/tracing) | `false` |
| `-user-agent-telemetry` | Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph | `true` |
@@ -26,7 +26,7 @@ Usage of 'src extensions delete':
-insecure-skip-verify
Skip validation of TLS certificates against trusted chains
-trace
- Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing
+ Log the trace ID for requests. See https://sourcegraph.com/docs/admin/observability/tracing
-user-agent-telemetry
Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph (default true)
@@ -43,4 +43,3 @@ Examples:
```
-
\ No newline at end of file
diff --git a/docs/cli/references/extensions/get.mdx b/docs/cli/references/extensions/get.mdx
index 935ce9ffd..8d014547d 100644
--- a/docs/cli/references/extensions/get.mdx
+++ b/docs/cli/references/extensions/get.mdx
@@ -10,7 +10,7 @@
| `-f` | Format for the output, using the syntax of Go package text/template. (e.g. "\{\{.ExtensionID\}\}: \{\{.Manifest.Title\}\} (\{\{.RemoteURL\}\})" or "\{\{.\|json\}\}") | `{{.\|json}}` |
| `-get-curl` | Print the curl command for executing this query and exit (WARNING: includes printing your access token!) | `false` |
| `-insecure-skip-verify` | Skip validation of TLS certificates against trusted chains | `false` |
-| `-trace` | Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing | `false` |
+| `-trace` | Log the trace ID for requests. [See docs](/admin/observability/tracing) | `false` |
| `-user-agent-telemetry` | Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph | `true` |
@@ -29,7 +29,7 @@ Usage of 'src extensions get':
-insecure-skip-verify
Skip validation of TLS certificates against trusted chains
-trace
- Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing
+ Log the trace ID for requests. See https://sourcegraph.com/docs/admin/observability/tracing
-user-agent-telemetry
Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph (default true)
@@ -43,4 +43,3 @@ Examples:
```
-
\ No newline at end of file
diff --git a/docs/cli/references/extensions/list.mdx b/docs/cli/references/extensions/list.mdx
index 093295a01..4484a1438 100644
--- a/docs/cli/references/extensions/list.mdx
+++ b/docs/cli/references/extensions/list.mdx
@@ -11,7 +11,7 @@
| `-get-curl` | Print the curl command for executing this query and exit (WARNING: includes printing your access token!) | `false` |
| `-insecure-skip-verify` | Skip validation of TLS certificates against trusted chains | `false` |
| `-query` | Returns extensions whose extension IDs match the query. (e.g. "myextension") | |
-| `-trace` | Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing | `false` |
+| `-trace` | Log the trace ID for requests. [See docs](/admin/observability/tracing) | `false` |
| `-user-agent-telemetry` | Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph | `true` |
@@ -32,7 +32,7 @@ Usage of 'src extensions list':
-query string
Returns extensions whose extension IDs match the query. (e.g. "myextension")
-trace
- Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing
+ Log the trace ID for requests. See https://sourcegraph.com/docs/admin/observability/tracing
-user-agent-telemetry
Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph (default true)
@@ -53,4 +53,3 @@ Examples:
```
-
\ No newline at end of file
diff --git a/docs/cli/references/extensions/publish.mdx b/docs/cli/references/extensions/publish.mdx
index 938695278..61461fd50 100644
--- a/docs/cli/references/extensions/publish.mdx
+++ b/docs/cli/references/extensions/publish.mdx
@@ -12,7 +12,7 @@
| `-git-head` | Override the current git commit for the bundle. (default: uses `git rev-parse head`) | |
| `-insecure-skip-verify` | Skip validation of TLS certificates against trusted chains | `false` |
| `-manifest` | The extension manifest file. | `package.json` |
-| `-trace` | Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing | `false` |
+| `-trace` | Log the trace ID for requests. [See docs](/admin/observability/tracing) | `false` |
| `-url` | Override the URL for the bundle. (example: set to http://localhost:1234/myext.js for local dev with parcel) | |
| `-user-agent-telemetry` | Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph | `true` |
@@ -36,7 +36,7 @@ Usage of 'src extensions publish':
-manifest string
The extension manifest file. (default "package.json")
-trace
- Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing
+ Log the trace ID for requests. See https://sourcegraph.com/docs/admin/observability/tracing
-url string
Override the URL for the bundle. (example: set to http://localhost:1234/myext.js for local dev with parcel)
-user-agent-telemetry
@@ -66,4 +66,3 @@ Notes:
```
-
\ No newline at end of file
diff --git a/docs/cli/references/extsvc/create.mdx b/docs/cli/references/extsvc/create.mdx
index 6d1b3d88b..3d36811fa 100644
--- a/docs/cli/references/extsvc/create.mdx
+++ b/docs/cli/references/extsvc/create.mdx
@@ -10,7 +10,7 @@
| `-insecure-skip-verify` | Skip validation of TLS certificates against trusted chains | `false` |
| `-kind` | kind of the external service to create | |
| `-name` | exact name of the external service to create | |
-| `-trace` | Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing | `false` |
+| `-trace` | Log the trace ID for requests. [See docs](/admin/observability/tracing) | `false` |
| `-user-agent-telemetry` | Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph | `true` |
@@ -29,7 +29,7 @@ Usage of 'src extsvc create':
-name string
exact name of the external service to create
-trace
- Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing
+ Log the trace ID for requests. See https://sourcegraph.com/docs/admin/observability/tracing
-user-agent-telemetry
Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph (default true)
@@ -39,7 +39,6 @@ Usage of 'src extsvc create':
$ cat new-config.json | src extsvc create
$ src extsvc create -name 'My GitHub connection' new-config.json
-
+
```
-
\ No newline at end of file
diff --git a/docs/cli/references/extsvc/edit.mdx b/docs/cli/references/extsvc/edit.mdx
index 856304c6e..e3753b80a 100644
--- a/docs/cli/references/extsvc/edit.mdx
+++ b/docs/cli/references/extsvc/edit.mdx
@@ -12,7 +12,7 @@
| `-insecure-skip-verify` | Skip validation of TLS certificates against trusted chains | `false` |
| `-name` | exact name of the external service to edit | |
| `-rename` | when specified, renames the external service | |
-| `-trace` | Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing | `false` |
+| `-trace` | Log the trace ID for requests. [See docs](/admin/observability/tracing) | `false` |
| `-user-agent-telemetry` | Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph | `true` |
@@ -35,7 +35,7 @@ Usage of 'src extsvc edit':
-rename string
when specified, renames the external service
-trace
- Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing
+ Log the trace ID for requests. See https://sourcegraph.com/docs/admin/observability/tracing
-user-agent-telemetry
Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph (default true)
@@ -56,4 +56,3 @@ Examples:
```
-
\ No newline at end of file
diff --git a/docs/cli/references/extsvc/list.mdx b/docs/cli/references/extsvc/list.mdx
index 6222b4fe5..7777d2ef1 100644
--- a/docs/cli/references/extsvc/list.mdx
+++ b/docs/cli/references/extsvc/list.mdx
@@ -10,7 +10,7 @@
| `-first` | Return only the first n external services. (use -1 for unlimited) | `-1` |
| `-get-curl` | Print the curl command for executing this query and exit (WARNING: includes printing your access token!) | `false` |
| `-insecure-skip-verify` | Skip validation of TLS certificates against trusted chains | `false` |
-| `-trace` | Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing | `false` |
+| `-trace` | Log the trace ID for requests. [See docs](/admin/observability/tracing) | `false` |
| `-user-agent-telemetry` | Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph | `true` |
@@ -29,7 +29,7 @@ Usage of 'src extsvc list':
-insecure-skip-verify
Skip validation of TLS certificates against trusted chains
-trace
- Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing
+ Log the trace ID for requests. See https://sourcegraph.com/docs/admin/observability/tracing
-user-agent-telemetry
Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph (default true)
@@ -46,4 +46,3 @@ Examples:
```
-
\ No newline at end of file
diff --git a/docs/cli/references/generate_doc_test.sh b/docs/cli/references/generate_doc_test.sh
deleted file mode 100755
index baf916f79..000000000
--- a/docs/cli/references/generate_doc_test.sh
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/usr/bin/env bash
-
-set -e
-
-src_bin="$1"
-
-# Array of paths for each of the outputs from the :generate_doc target.
-# shellcheck disable=SC2124
-got_files="${@:2}"
-
-# Manually run src-cli doc again, so have a list of all the files
-# we expect the :generate_doc target to output.
-#
-# We put them in the ./expected folder.
-USER=nobody HOME=. "$src_bin" doc -o=expected/
-
-while IFS= read -r -d '' file
-do
- want="${file##expected}"
- found="false"
-
- # Loop over all files we got.
- # shellcheck disable=SC2068
- for got in ${got_files[@]}; do
- # Trim the path from the "monitoring/output" prefix
- # and test it against the expected file we're currently iterating with.
- if [[ "${got##doc/cli/references}" == "$want" ]]; then
- found="true"
- break
- fi
- done
-
- # If we didn't find it, return an error.
- if [[ $found == "false" ]]; then
- echo "Couldn't find expected output $want, perhaps it's missing from the 'srcs' attribute?"
- exit 1
- fi
-done < <(find expected -name "*.md" -print0)
diff --git a/docs/cli/references/index.mdx b/docs/cli/references/index.mdx
index 9e9677489..bd1338247 100644
--- a/docs/cli/references/index.mdx
+++ b/docs/cli/references/index.mdx
@@ -1,8 +1,8 @@
-# `src`
+# Command reference
+Most commands require that the user first [authenticate](quickstart#connect-to-sourcegraph) against their Sourcegraph instance. See `src --help` for a full list of the sub commands available for your release of the `src` cli.
## Subcommands
-
* [`admin`](references/admin)
* [`api`](references/api)
* [`batch`](references/batch)
@@ -18,10 +18,10 @@
* [`repos`](references/repos)
* [`scout`](references/scout)
* [`search`](references/search)
+* [`search-jobs`](references/search-jobs)
* [`serve-git`](references/serve-git)
* [`snapshot`](references/snapshot)
* [`teams`](references/teams)
* [`users`](references/users)
* [`validate`](references/validate)
* [`version`](references/version)
-
\ No newline at end of file
diff --git a/docs/cli/references/login.mdx b/docs/cli/references/login.mdx
index a53c76fd7..78ba45a01 100644
--- a/docs/cli/references/login.mdx
+++ b/docs/cli/references/login.mdx
@@ -8,7 +8,7 @@
| `-dump-requests` | Log GraphQL requests and responses to stdout | `false` |
| `-get-curl` | Print the curl command for executing this query and exit (WARNING: includes printing your access token!) | `false` |
| `-insecure-skip-verify` | Skip validation of TLS certificates against trusted chains | `false` |
-| `-trace` | Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing | `false` |
+| `-trace` | Log the trace ID for requests. [See docs](/admin/observability/tracing) | `false` |
| `-user-agent-telemetry` | Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph | `true` |
@@ -38,9 +38,8 @@ Examples:
-insecure-skip-verify
Skip validation of TLS certificates against trusted chains
-trace
- Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing
+ Log the trace ID for requests. #See https://sourcegraph.com/docs/admin/observability/tracing
-user-agent-telemetry
Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph (default true)
```
-
\ No newline at end of file
diff --git a/docs/cli/references/orgs/create.mdx b/docs/cli/references/orgs/create.mdx
index 2842349a3..781fd339e 100644
--- a/docs/cli/references/orgs/create.mdx
+++ b/docs/cli/references/orgs/create.mdx
@@ -10,7 +10,7 @@
| `-get-curl` | Print the curl command for executing this query and exit (WARNING: includes printing your access token!) | `false` |
| `-insecure-skip-verify` | Skip validation of TLS certificates against trusted chains | `false` |
| `-name` | The new organization's name. (required) | |
-| `-trace` | Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing | `false` |
+| `-trace` | Log the trace ID for requests. [See docs](/admin/observability/tracing) | `false` |
| `-user-agent-telemetry` | Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph | `true` |
@@ -29,7 +29,7 @@ Usage of 'src orgs create':
-name string
The new organization's name. (required)
-trace
- Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing
+ Log the trace ID for requests. See https://sourcegraph.com/docs/admin/observability/tracing
-user-agent-telemetry
Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph (default true)
@@ -42,4 +42,3 @@ Examples:
```
-
\ No newline at end of file
diff --git a/docs/cli/references/orgs/delete.mdx b/docs/cli/references/orgs/delete.mdx
index 5175de533..f4137449f 100644
--- a/docs/cli/references/orgs/delete.mdx
+++ b/docs/cli/references/orgs/delete.mdx
@@ -9,7 +9,7 @@
| `-get-curl` | Print the curl command for executing this query and exit (WARNING: includes printing your access token!) | `false` |
| `-id` | The ID of the organization to delete. | |
| `-insecure-skip-verify` | Skip validation of TLS certificates against trusted chains | `false` |
-| `-trace` | Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing | `false` |
+| `-trace` | Log the trace ID for requests. [See docs](/admin/observability/tracing) | `false` |
| `-user-agent-telemetry` | Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph | `true` |
@@ -26,7 +26,7 @@ Usage of 'src orgs delete':
-insecure-skip-verify
Skip validation of TLS certificates against trusted chains
-trace
- Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing
+ Log the trace ID for requests. See https://sourcegraph.com/docs/admin/observability/tracing
-user-agent-telemetry
Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph (default true)
@@ -47,4 +47,3 @@ Examples:
```
-
\ No newline at end of file
diff --git a/docs/cli/references/orgs/get.mdx b/docs/cli/references/orgs/get.mdx
index 64e0c0295..d59ed0a25 100644
--- a/docs/cli/references/orgs/get.mdx
+++ b/docs/cli/references/orgs/get.mdx
@@ -10,7 +10,7 @@
| `-get-curl` | Print the curl command for executing this query and exit (WARNING: includes printing your access token!) | `false` |
| `-insecure-skip-verify` | Skip validation of TLS certificates against trusted chains | `false` |
| `-name` | Look up organization by name. (e.g. "abc-org") | |
-| `-trace` | Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing | `false` |
+| `-trace` | Log the trace ID for requests. [See docs](/admin/observability/tracing) | `false` |
| `-user-agent-telemetry` | Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph | `true` |
@@ -29,7 +29,7 @@ Usage of 'src orgs get':
-name string
Look up organization by name. (e.g. "abc-org")
-trace
- Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing
+ Log the trace ID for requests. See https://sourcegraph.com/docs/admin/observability/tracing
-user-agent-telemetry
Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph (default true)
@@ -46,4 +46,3 @@ Examples:
```
-
\ No newline at end of file
diff --git a/docs/cli/references/orgs/list.mdx b/docs/cli/references/orgs/list.mdx
index 96f5b8b92..094823e48 100644
--- a/docs/cli/references/orgs/list.mdx
+++ b/docs/cli/references/orgs/list.mdx
@@ -11,7 +11,7 @@
| `-get-curl` | Print the curl command for executing this query and exit (WARNING: includes printing your access token!) | `false` |
| `-insecure-skip-verify` | Skip validation of TLS certificates against trusted chains | `false` |
| `-query` | Returns organizations whose names match the query. (e.g. "alice") | |
-| `-trace` | Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing | `false` |
+| `-trace` | Log the trace ID for requests. [See docs](/admin/observability/tracing) | `false` |
| `-user-agent-telemetry` | Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph | `true` |
@@ -32,7 +32,7 @@ Usage of 'src orgs list':
-query string
Returns organizations whose names match the query. (e.g. "alice")
-trace
- Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing
+ Log the trace ID for requests. See https://sourcegraph.com/docs/admin/observability/tracing
-user-agent-telemetry
Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph (default true)
@@ -53,4 +53,3 @@ Examples:
```
-
\ No newline at end of file
diff --git a/docs/cli/references/orgs/members/add.mdx b/docs/cli/references/orgs/members/add.mdx
index 3d87f9135..6cbdc30d7 100644
--- a/docs/cli/references/orgs/members/add.mdx
+++ b/docs/cli/references/orgs/members/add.mdx
@@ -9,7 +9,7 @@
| `-get-curl` | Print the curl command for executing this query and exit (WARNING: includes printing your access token!) | `false` |
| `-insecure-skip-verify` | Skip validation of TLS certificates against trusted chains | `false` |
| `-org-id` | ID of organization to which to add member. (required) | |
-| `-trace` | Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing | `false` |
+| `-trace` | Log the trace ID for requests. [See docs](/admin/observability/tracing) | `false` |
| `-user-agent-telemetry` | Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph | `true` |
| `-username` | Username of user to add as member. (required) | |
@@ -27,7 +27,7 @@ Usage of 'src orgs members add':
-org-id string
ID of organization to which to add member. (required)
-trace
- Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing
+ Log the trace ID for requests. See https://sourcegraph.com/docs/admin/observability/tracing
-user-agent-telemetry
Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph (default true)
-username string
@@ -42,4 +42,3 @@ Examples:
```
-
\ No newline at end of file
diff --git a/docs/cli/references/orgs/members/remove.mdx b/docs/cli/references/orgs/members/remove.mdx
index e4f09aa23..7d40a9af5 100644
--- a/docs/cli/references/orgs/members/remove.mdx
+++ b/docs/cli/references/orgs/members/remove.mdx
@@ -9,7 +9,7 @@
| `-get-curl` | Print the curl command for executing this query and exit (WARNING: includes printing your access token!) | `false` |
| `-insecure-skip-verify` | Skip validation of TLS certificates against trusted chains | `false` |
| `-org-id` | ID of organization from which to remove member. (required) | |
-| `-trace` | Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing | `false` |
+| `-trace` | Log the trace ID for requests. [See docs](/admin/observability/tracing) | `false` |
| `-user-agent-telemetry` | Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph | `true` |
| `-user-id` | ID of user to remove as member. (required) | |
@@ -27,7 +27,7 @@ Usage of 'src orgs members remove':
-org-id string
ID of organization from which to remove member. (required)
-trace
- Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing
+ Log the trace ID for requests. See https://sourcegraph.com/docs/admin/observability/tracing
-user-agent-telemetry
Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph (default true)
-user-id string
@@ -41,4 +41,3 @@ Examples:
```
-
\ No newline at end of file
diff --git a/docs/cli/references/repos/add-metadata.mdx b/docs/cli/references/repos/add-metadata.mdx
index 43ea04782..03dafc4eb 100644
--- a/docs/cli/references/repos/add-metadata.mdx
+++ b/docs/cli/references/repos/add-metadata.mdx
@@ -11,7 +11,7 @@
| `-key` | The name of the metadata key to add (required) | |
| `-repo` | The ID of the repo to add the key-value pair metadata to (required if -repo-name is not specified) | |
| `-repo-name` | The name of the repo to add the key-value pair metadata to (required if -repo is not specified) | |
-| `-trace` | Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing | `false` |
+| `-trace` | Log the trace ID for requests. [See docs](/admin/observability/tracing) | `false` |
| `-user-agent-telemetry` | Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph | `true` |
| `-value` | The metadata value associated with the metadata key. Defaults to null. | |
@@ -33,7 +33,7 @@ Usage of 'src repos add-metadata':
-repo-name string
The name of the repo to add the key-value pair metadata to (required if -repo is not specified)
-trace
- Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing
+ Log the trace ID for requests. See https://sourcegraph.com/docs/admin/observability/tracing
-user-agent-telemetry
Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph (default true)
-value string
@@ -51,4 +51,3 @@ Examples:
```
-
\ No newline at end of file
diff --git a/docs/cli/references/repos/delete-metadata.mdx b/docs/cli/references/repos/delete-metadata.mdx
index c4a132d4d..6da9f300c 100644
--- a/docs/cli/references/repos/delete-metadata.mdx
+++ b/docs/cli/references/repos/delete-metadata.mdx
@@ -11,7 +11,7 @@
| `-key` | The name of the metadata key to be deleted (required) | |
| `-repo` | The ID of the repo with the key-value pair metadata to be deleted (required if -repo-name is not specified) | |
| `-repo-name` | The name of the repo to add the key-value pair metadata to (required if -repo is not specified) | |
-| `-trace` | Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing | `false` |
+| `-trace` | Log the trace ID for requests. [See docs](/admin/observability/tracing) | `false` |
| `-user-agent-telemetry` | Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph | `true` |
@@ -32,7 +32,7 @@ Usage of 'src repos delete-metadata':
-repo-name string
The name of the repo to add the key-value pair metadata to (required if -repo is not specified)
-trace
- Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing
+ Log the trace ID for requests. See https://sourcegraph.com/docs/admin/observability/tracing
-user-agent-telemetry
Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph (default true)
@@ -46,4 +46,3 @@ Examples:
```
-
\ No newline at end of file
diff --git a/docs/cli/references/repos/delete.mdx b/docs/cli/references/repos/delete.mdx
index dce1a97d3..d005eb249 100644
--- a/docs/cli/references/repos/delete.mdx
+++ b/docs/cli/references/repos/delete.mdx
@@ -8,7 +8,7 @@
| `-dump-requests` | Log GraphQL requests and responses to stdout | `false` |
| `-get-curl` | Print the curl command for executing this query and exit (WARNING: includes printing your access token!) | `false` |
| `-insecure-skip-verify` | Skip validation of TLS certificates against trusted chains | `false` |
-| `-trace` | Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing | `false` |
+| `-trace` | Log the trace ID for requests. [See docs](/admin/observability/tracing) | `false` |
| `-user-agent-telemetry` | Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph | `true` |
@@ -23,7 +23,7 @@ Usage of 'src repos delete'
-insecure-skip-verify
Skip validation of TLS certificates against trusted chains
-trace
- Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing
+ Log the trace ID for requests. See https://sourcegraph.com/docs/admin/observability/tracing
-user-agent-telemetry
Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph (default true)
@@ -34,4 +34,3 @@ Examples:
$ src repos delete github.com/my/repo github.com/my/repo2
```
-
\ No newline at end of file
diff --git a/docs/cli/references/repos/get.mdx b/docs/cli/references/repos/get.mdx
index 554e5710b..31b5b530b 100644
--- a/docs/cli/references/repos/get.mdx
+++ b/docs/cli/references/repos/get.mdx
@@ -10,7 +10,7 @@
| `-get-curl` | Print the curl command for executing this query and exit (WARNING: includes printing your access token!) | `false` |
| `-insecure-skip-verify` | Skip validation of TLS certificates against trusted chains | `false` |
| `-name` | The name of the repository. (required) | |
-| `-trace` | Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing | `false` |
+| `-trace` | Log the trace ID for requests. [See docs](/admin/observability/tracing) | `false` |
| `-user-agent-telemetry` | Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph | `true` |
@@ -29,7 +29,7 @@ Usage of 'src repos get':
-name string
The name of the repository. (required)
-trace
- Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing
+ Log the trace ID for requests. See https://sourcegraph.com/docs/admin/observability/tracing
-user-agent-telemetry
Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph (default true)
@@ -42,4 +42,3 @@ Examples:
```
-
\ No newline at end of file
diff --git a/docs/cli/references/repos/list.mdx b/docs/cli/references/repos/list.mdx
index 75d0b4801..2988e3fde 100644
--- a/docs/cli/references/repos/list.mdx
+++ b/docs/cli/references/repos/list.mdx
@@ -18,7 +18,7 @@
| `-not-indexed` | Include repositories that do not have a text search index. | `true` |
| `-order-by` | How to order the results; possible choices are: "name", "created-at" | `name` |
| `-query` | Returns repositories whose names match the query. (e.g. "myorg/") | |
-| `-trace` | Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing | `false` |
+| `-trace` | Log the trace ID for requests. [See docs](/admin/observability/tracing) | `false` |
| `-user-agent-telemetry` | Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph | `true` |
@@ -53,7 +53,7 @@ Usage of 'src repos list':
-query string
Returns repositories whose names match the query. (e.g. "myorg/")
-trace
- Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing
+ Log the trace ID for requests. See https://sourcegraph.com/docs/admin/observability/tracing
-user-agent-telemetry
Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph (default true)
@@ -78,4 +78,3 @@ Examples:
```
-
\ No newline at end of file
diff --git a/docs/cli/references/repos/update-metadata.mdx b/docs/cli/references/repos/update-metadata.mdx
index 6669a18fa..9fcd6bf21 100644
--- a/docs/cli/references/repos/update-metadata.mdx
+++ b/docs/cli/references/repos/update-metadata.mdx
@@ -11,7 +11,7 @@
| `-key` | The name of the metadata key to be updated (required) | |
| `-repo` | The ID of the repo with the metadata key to be updated (required if -repo-name is not specified) | |
| `-repo-name` | The name of the repo to add the key-value pair metadata to (required if -repo is not specified) | |
-| `-trace` | Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing | `false` |
+| `-trace` | Log the trace ID for requests. [See docs](/admin/observability/tracing) | `false` |
| `-user-agent-telemetry` | Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph | `true` |
| `-value` | The new metadata value of the metadata key to be set. Defaults to null. | |
@@ -33,7 +33,7 @@ Usage of 'src repos update-metadata':
-repo-name string
The name of the repo to add the key-value pair metadata to (required if -repo is not specified)
-trace
- Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing
+ Log the trace ID for requests. See https://sourcegraph.com/docs/admin/observability/tracing
-user-agent-telemetry
Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph (default true)
-value string
@@ -51,4 +51,3 @@ Examples:
```
-
\ No newline at end of file
diff --git a/docs/cli/references/search-jobs.mdx b/docs/cli/references/search-jobs.mdx
new file mode 100644
index 000000000..af7c70abc
--- /dev/null
+++ b/docs/cli/references/search-jobs.mdx
@@ -0,0 +1,41 @@
+# src search-jobs
+
+`src search-jobs` is a tool that manages search jobs in a Sourcegraph instance.
+
+## Usage
+
+```bash
+'src search-jobs' is a tool that manages search jobs on a Sourcegraph instance.
+
+ Usage:
+
+ src search-jobs command [command options]
+
+ The commands are:
+
+ cancel cancels a search job by ID
+ create creates a search job
+ delete deletes a search job by ID
+ get gets a search job by ID
+ list lists search jobs
+ logs fetches logs for a search job by ID
+ restart restarts a search job by ID
+ results fetches results for a search job by ID
+
+ Common options for all commands:
+ -c Select columns to display (e.g., -c id,query,state,username)
+ -json Output results in JSON format
+
+ Use "src search-jobs [command] -h" for more information about a command.
+```
+
+## Sub-commands
+
+* [cancel](search-jobs/cancel)
+* [create](search-jobs/create)
+* [delete](search-jobs/delete)
+* [get](search-jobs/get)
+* [list](search-jobs/list)
+* [logs](search-jobs/logs)
+* [restart](search-jobs/restart)
+* [results](search-jobs/results)
diff --git a/docs/cli/references/search-jobs/cancel.mdx b/docs/cli/references/search-jobs/cancel.mdx
new file mode 100644
index 000000000..2573d41a1
--- /dev/null
+++ b/docs/cli/references/search-jobs/cancel.mdx
@@ -0,0 +1,34 @@
+# src search-jobs cancel
+
+`src search-jobs cancel` is a tool that cancels a search job on a Sourcegraph instance.
+
+## Usage
+
+```bash
+Usage of 'src search-jobs cancel':
+ -c string
+ Comma-separated list of columns to display. Available: id,query,state,username,createdat,startedat,finishedat,url,logurl,total,completed,failed,inprogress (default "id,username,state,query")
+ -dump-requests
+ Log GraphQL requests and responses to stdout
+ -get-curl
+ Print the curl command for executing this query and exit (WARNING: includes printing your access token!)
+ -insecure-skip-verify
+ Skip validation of TLS certificates against trusted chains
+ -json
+ Output results as JSON for programmatic access
+ -trace
+ Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing
+ -user-agent-telemetry
+ Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph (default true)
+
+ Examples:
+
+ Cancel a search job by ID:
+
+ $ src search-jobs cancel U2VhcmNoSm9iOjY5
+
+ Arguments:
+ The ID of the search job to cancel.
+
+ The cancel command stops a running search job and outputs a confirmation message.
+```
diff --git a/docs/cli/references/search-jobs/create.mdx b/docs/cli/references/search-jobs/create.mdx
new file mode 100644
index 000000000..30ade86ba
--- /dev/null
+++ b/docs/cli/references/search-jobs/create.mdx
@@ -0,0 +1,40 @@
+# src search-jobs create
+
+`src search-jobs create` is a tool that creates a search job on a Sourcegraph instance.
+
+## Usage
+
+```bash
+Usage of 'src search-jobs create':
+ -c string
+ Comma-separated list of columns to display. Available: id,query,state,username,createdat,startedat,finishedat,url,logurl,total,completed,failed,inprogress (default "id,username,state,query")
+ -dump-requests
+ Log GraphQL requests and responses to stdout
+ -get-curl
+ Print the curl command for executing this query and exit (WARNING: includes printing your access token!)
+ -insecure-skip-verify
+ Skip validation of TLS certificates against trusted chains
+ -json
+ Output results as JSON for programmatic access
+ -trace
+ Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing
+ -user-agent-telemetry
+ Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph (default true)
+
+ Examples:
+
+ Create a search job:
+
+ $ src search-jobs create "repo:^github\.com/sourcegraph/sourcegraph$ sort:indexed-desc"
+
+ Create a search job and display specific columns:
+
+ $ src search-jobs create "repo:sourcegraph" -c id,state,username
+
+ Create a search job and output in JSON format:
+
+ $ src search-jobs create "repo:sourcegraph" -json
+
+ Available columns are: id, query, state, username, createdat, startedat, finishedat,
+ url, logurl, total, completed, failed, inprogress
+```
diff --git a/docs/cli/references/search-jobs/delete.mdx b/docs/cli/references/search-jobs/delete.mdx
new file mode 100644
index 000000000..e4c5c5074
--- /dev/null
+++ b/docs/cli/references/search-jobs/delete.mdx
@@ -0,0 +1,32 @@
+# src search-jobs delete
+
+`src search-jobs delete` is a tool that deletes a search job on a Sourcegraph instance.
+
+```bash
+Usage of 'src search-jobs delete':
+ -c string
+ Comma-separated list of columns to display. Available: id,query,state,username,createdat,startedat,finishedat,url,logurl,total,completed,failed,inprogress (default "id,username,state,query")
+ -dump-requests
+ Log GraphQL requests and responses to stdout
+ -get-curl
+ Print the curl command for executing this query and exit (WARNING: includes printing your access token!)
+ -insecure-skip-verify
+ Skip validation of TLS certificates against trusted chains
+ -json
+ Output results as JSON for programmatic access
+ -trace
+ Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing
+ -user-agent-telemetry
+ Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph (default true)
+
+ Examples:
+
+ Delete a search job by ID:
+
+ $ src search-jobs delete U2VhcmNoSm9iOjY5
+
+ Arguments:
+ The ID of the search job to delete.
+
+ The delete command permanently removes a search job and outputs a confirmation message.
+```
diff --git a/docs/cli/references/search-jobs/get.mdx b/docs/cli/references/search-jobs/get.mdx
new file mode 100644
index 000000000..3d81730a7
--- /dev/null
+++ b/docs/cli/references/search-jobs/get.mdx
@@ -0,0 +1,40 @@
+# src search-jobs get
+
+`src search-jobs get` is a tool that gets details of a single search job on a Sourcegraph instance.
+
+## Usage
+
+```bash
+Usage of 'src search-jobs get':
+ -c string
+ Comma-separated list of columns to display. Available: id,query,state,username,createdat,startedat,finishedat,url,logurl,total,completed,failed,inprogress (default "id,username,state,query")
+ -dump-requests
+ Log GraphQL requests and responses to stdout
+ -get-curl
+ Print the curl command for executing this query and exit (WARNING: includes printing your access token!)
+ -insecure-skip-verify
+ Skip validation of TLS certificates against trusted chains
+ -json
+ Output results as JSON for programmatic access
+ -trace
+ Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing
+ -user-agent-telemetry
+ Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph (default true)
+
+ Examples:
+
+ Get a search job by ID:
+
+ $ src search-jobs get U2VhcmNoSm9iOjY5
+
+ Get a search job with specific columns:
+
+ $ src search-jobs get U2VhcmNoSm9iOjY5 -c id,state,username
+
+ Get a search job in JSON format:
+
+ $ src search-jobs get U2VhcmNoSm9iOjY5 -json
+
+ Available columns are: id, query, state, username, createdat, startedat, finishedat,
+ url, logurl, total, completed, failed, inprogress
+```
diff --git a/docs/cli/references/search-jobs/list.mdx b/docs/cli/references/search-jobs/list.mdx
new file mode 100644
index 000000000..8d48ca178
--- /dev/null
+++ b/docs/cli/references/search-jobs/list.mdx
@@ -0,0 +1,62 @@
+# src search-jobs list
+
+`src search-jobs list` is a tool that lists search jobs on a Sourcegraph instance.
+
+## Usage
+
+```bash
+Usage of 'src search-jobs list':
+ -asc
+ Sort search jobs in ascending order
+ -c string
+ Comma-separated list of columns to display. Available: id,query,state,username,createdat,startedat,finishedat,url,logurl,total,completed,failed,inprogress (default "id,username,state,query")
+ -dump-requests
+ Log GraphQL requests and responses to stdout
+ -get-curl
+ Print the curl command for executing this query and exit (WARNING: includes printing your access token!)
+ -insecure-skip-verify
+ Skip validation of TLS certificates against trusted chains
+ -json
+ Output results as JSON for programmatic access
+ -limit int
+ Limit the number of search jobs returned (default 10)
+ -order-by string
+ Sort search jobs by a sortable field (QUERY, CREATED_AT, STATE) (default "CREATED_AT")
+ -trace
+ Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing
+ -user-agent-telemetry
+ Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph (default true)
+
+ Examples:
+
+ List all search jobs:
+
+ $ src search-jobs list
+
+ List all search jobs in ascending order:
+
+ $ src search-jobs list --asc
+
+ Limit the number of search jobs returned:
+
+ $ src search-jobs list --limit 5
+
+ Order search jobs by a field (must be one of: QUERY, CREATED_AT, STATE):
+
+ $ src search-jobs list --order-by QUERY
+
+ Select specific columns to display:
+
+ $ src search-jobs list -c id,state,username,createdat
+
+ Output results as JSON:
+
+ $ src search-jobs list -json
+
+ Combine options:
+
+ $ src search-jobs list --limit 10 --order-by STATE --asc -c id,query,state
+
+ Available columns are: id, query, state, username, createdat, startedat, finishedat,
+ url, logurl, total, completed, failed, inprogress
+```
diff --git a/docs/cli/references/search-jobs/logs.mdx b/docs/cli/references/search-jobs/logs.mdx
new file mode 100644
index 000000000..af898e596
--- /dev/null
+++ b/docs/cli/references/search-jobs/logs.mdx
@@ -0,0 +1,36 @@
+# src search-jobs logs
+
+`src search-jobs logs` is a tool that gets the logs of a search job on a Sourcegraph instance.
+
+## Usage
+
+```bash
+Usage of 'src search-jobs logs':
+ -c string
+ Comma-separated list of columns to display. Available: id,query,state,username,createdat,startedat,finishedat,url,logurl,total,completed,failed,inprogress (default "id,username,state,query")
+ -dump-requests
+ Log GraphQL requests and responses to stdout
+ -get-curl
+ Print the curl command for executing this query and exit (WARNING: includes printing your access token!)
+ -insecure-skip-verify
+ Skip validation of TLS certificates against trusted chains
+ -json
+ Output results as JSON for programmatic access
+ -out string
+ File path to save the logs (optional)
+ -trace
+ Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing
+ -user-agent-telemetry
+ Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph (default true)
+
+ Examples:
+
+ View the logs of a search job:
+ $ src search-jobs logs U2VhcmNoSm9iOjY5
+
+ Save the logs to a file:
+ $ src search-jobs logs U2VhcmNoSm9iOjY5 -out logs.csv
+
+ The logs command retrieves the raw log data in CSV format. The data will be
+ displayed on stdout or written to the file specified with -out.
+```
diff --git a/docs/cli/references/search-jobs/restart.mdx b/docs/cli/references/search-jobs/restart.mdx
new file mode 100644
index 000000000..1849e8a67
--- /dev/null
+++ b/docs/cli/references/search-jobs/restart.mdx
@@ -0,0 +1,40 @@
+# src search-jobs restart
+
+`src search-jobs restart` is a tool that restarts a search job on a Sourcegraph instance.
+
+## Usage
+
+```bash
+Usage of 'src search-jobs restart':
+ -c string
+ Comma-separated list of columns to display. Available: id,query,state,username,createdat,startedat,finishedat,url,logurl,total,completed,failed,inprogress (default "id,username,state,query")
+ -dump-requests
+ Log GraphQL requests and responses to stdout
+ -get-curl
+ Print the curl command for executing this query and exit (WARNING: includes printing your access token!)
+ -insecure-skip-verify
+ Skip validation of TLS certificates against trusted chains
+ -json
+ Output results as JSON for programmatic access
+ -trace
+ Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing
+ -user-agent-telemetry
+ Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph (default true)
+
+ Examples:
+
+ Restart a search job by ID:
+
+ $ src search-jobs restart U2VhcmNoSm9iOjY5
+
+ Restart a search job and display specific columns:
+
+ $ src search-jobs restart U2VhcmNoSm9iOjY5 -c id,state,query
+
+ Restart a search job and output in JSON format:
+
+ $ src search-jobs restart U2VhcmNoSm9iOjY5 -json
+
+ Available columns are: id, query, state, username, createdat, startedat, finishedat,
+ url, logurl, total, completed, failed, inprogress
+```
diff --git a/docs/cli/references/search-jobs/results.mdx b/docs/cli/references/search-jobs/results.mdx
new file mode 100644
index 000000000..1f7e50ac9
--- /dev/null
+++ b/docs/cli/references/search-jobs/results.mdx
@@ -0,0 +1,37 @@
+# src search-jobs results
+
+`src search-jobs results` is a tool that gets the results of a search job on a Sourcegraph instance.
+
+## Usage
+
+```bash
+Usage of 'src search-jobs results':
+ -c string
+ Comma-separated list of columns to display. Available: id,query,state,username,createdat,startedat,finishedat,url,logurl,total,completed,failed,inprogress (default "id,username,state,query")
+ -dump-requests
+ Log GraphQL requests and responses to stdout
+ -get-curl
+ Print the curl command for executing this query and exit (WARNING: includes printing your access token!)
+ -insecure-skip-verify
+ Skip validation of TLS certificates against trusted chains
+ -json
+ Output results as JSON for programmatic access
+ -out string
+ File path to save the results (optional)
+ -trace
+ Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing
+ -user-agent-telemetry
+ Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph (default true)
+
+ Examples:
+
+ Get the results of a search job:
+ $ src search-jobs results U2VhcmNoSm9iOjY5
+
+ Save search results to a file:
+ $ src search-jobs results U2VhcmNoSm9iOjY5 -out results.jsonl
+
+ The results command retrieves the raw search results in JSON Lines format.
+ Each line contains a single JSON object representing a search result. The data
+ will be displayed on stdout or written to the file specified with -out.
+```
diff --git a/docs/cli/references/search.mdx b/docs/cli/references/search.mdx
index bca07eb39..b2fae52ca 100644
--- a/docs/cli/references/search.mdx
+++ b/docs/cli/references/search.mdx
@@ -13,7 +13,7 @@
| `-json` | Whether or not to output results as JSON. | `false` |
| `-less` | Pipe output to 'less -R' (only if stdout is terminal, and not json flag). | `true` |
| `-stream` | Consume results as stream. Streaming search only supports a subset of flags and parameters: trace, insecure-skip-verify, display, json. | `false` |
-| `-trace` | Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing | `false` |
+| `-trace` | Log the trace ID for requests. [See docs](/admin/observability/tracing) | `false` |
| `-user-agent-telemetry` | Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph | `true` |
@@ -38,7 +38,7 @@ Usage of 'src search':
-stream
Consume results as stream. Streaming search only supports a subset of flags and parameters: trace, insecure-skip-verify, display, json.
-trace
- Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing
+ Log the trace ID for requests. #See https://sourcegraph.com/docs/admin/observability/tracing
-user-agent-telemetry
Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph (default true)
@@ -63,7 +63,7 @@ Other tips:
Force color output on (not on by default when piped to other programs) by setting COLOR=t
- Query syntax: https://docs.sourcegraph.com/code_search/reference/queries
+ Query syntax: https://sourcegraph.com/docs/code_search/reference/queries
Be careful with search strings including negation: a search with an initial
negated term may be parsed as a flag rather than as a search string. You can
@@ -73,4 +73,3 @@ Other tips:
```
-
\ No newline at end of file
diff --git a/docs/cli/references/serve-git.mdx b/docs/cli/references/serve-git.mdx
index 79444f51b..b7d6a2d21 100644
--- a/docs/cli/references/serve-git.mdx
+++ b/docs/cli/references/serve-git.mdx
@@ -22,7 +22,6 @@ By default 'src serve-git' will recursively serve your current directory on the
'src serve-git -list' will not start up the server. Instead it will write to stdout a list of
repository names it would serve.
-Documentation at https://docs.sourcegraph.com/admin/external_service/src_serve_git
+Read Documentation here https://sourcegraph.com/docs/admin/code_host_connection/src_serve_git
```
-
\ No newline at end of file
diff --git a/docs/cli/references/users/create.mdx b/docs/cli/references/users/create.mdx
index 096cfb496..c1e03702c 100644
--- a/docs/cli/references/users/create.mdx
+++ b/docs/cli/references/users/create.mdx
@@ -10,7 +10,7 @@
| `-get-curl` | Print the curl command for executing this query and exit (WARNING: includes printing your access token!) | `false` |
| `-insecure-skip-verify` | Skip validation of TLS certificates against trusted chains | `false` |
| `-reset-password-url` | Print the reset password URL to manually send to the new user. | `false` |
-| `-trace` | Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing | `false` |
+| `-trace` | Log the trace ID for requests. [See docs](/admin/observability/tracing) | `false` |
| `-user-agent-telemetry` | Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph | `true` |
| `-username` | The new user's username. (required) | |
@@ -30,7 +30,7 @@ Usage of 'src users create':
-reset-password-url
Print the reset password URL to manually send to the new user.
-trace
- Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing
+ Log the trace ID for requests. See https://sourcegraph.com/docs/admin/observability/tracing
-user-agent-telemetry
Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph (default true)
-username string
@@ -45,4 +45,3 @@ Examples:
```
-
\ No newline at end of file
diff --git a/docs/cli/references/users/delete.mdx b/docs/cli/references/users/delete.mdx
index 72b0db301..137b95339 100644
--- a/docs/cli/references/users/delete.mdx
+++ b/docs/cli/references/users/delete.mdx
@@ -9,7 +9,7 @@
| `-get-curl` | Print the curl command for executing this query and exit (WARNING: includes printing your access token!) | `false` |
| `-id` | The ID of the user to delete. | |
| `-insecure-skip-verify` | Skip validation of TLS certificates against trusted chains | `false` |
-| `-trace` | Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing | `false` |
+| `-trace` | Log the trace ID for requests. [See docs](/admin/observability/tracing) | `false` |
| `-user-agent-telemetry` | Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph | `true` |
@@ -26,7 +26,7 @@ Usage of 'src users delete':
-insecure-skip-verify
Skip validation of TLS certificates against trusted chains
-trace
- Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing
+ Log the trace ID for requests. See https://sourcegraph.com/docs/admin/observability/tracing
-user-agent-telemetry
Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph (default true)
@@ -47,4 +47,3 @@ Examples:
```
-
\ No newline at end of file
diff --git a/docs/cli/references/users/get.mdx b/docs/cli/references/users/get.mdx
index 15054f468..72531e8e5 100644
--- a/docs/cli/references/users/get.mdx
+++ b/docs/cli/references/users/get.mdx
@@ -10,7 +10,7 @@
| `-f` | Format for the output, using the syntax of Go package text/template. (e.g. "\{\{.ID\}\}: \{\{.Username\}\} (\{\{.DisplayName\}\})") | `{{.\|json}}` |
| `-get-curl` | Print the curl command for executing this query and exit (WARNING: includes printing your access token!) | `false` |
| `-insecure-skip-verify` | Skip validation of TLS certificates against trusted chains | `false` |
-| `-trace` | Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing | `false` |
+| `-trace` | Log the trace ID for requests. [See docs](/admin/observability/tracing) | `false` |
| `-user-agent-telemetry` | Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph | `true` |
| `-username` | Look up user by username. (e.g. "alice") | |
@@ -30,7 +30,7 @@ Usage of 'src users get':
-insecure-skip-verify
Skip validation of TLS certificates against trusted chains
-trace
- Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing
+ Log the trace ID for requests. See https://sourcegraph.com/docs/admin/observability/tracing
-user-agent-telemetry
Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph (default true)
-username string
@@ -45,4 +45,3 @@ Examples:
```
-
\ No newline at end of file
diff --git a/docs/cli/references/users/list.mdx b/docs/cli/references/users/list.mdx
index 2b9cb2566..688b9f996 100644
--- a/docs/cli/references/users/list.mdx
+++ b/docs/cli/references/users/list.mdx
@@ -12,7 +12,7 @@
| `-insecure-skip-verify` | Skip validation of TLS certificates against trusted chains | `false` |
| `-query` | Returns users whose names match the query. (e.g. "alice") | |
| `-tag` | Returns users with the given tag. | |
-| `-trace` | Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing | `false` |
+| `-trace` | Log the trace ID for requests. [See docs](/admin/observability/tracing) | `false` |
| `-user-agent-telemetry` | Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph | `true` |
@@ -35,7 +35,7 @@ Usage of 'src users list':
-tag string
Returns users with the given tag.
-trace
- Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing
+ Log the trace ID for requests. See https://sourcegraph.com/docs/admin/observability/tracing
-user-agent-telemetry
Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph (default true)
@@ -60,4 +60,3 @@ Examples:
```
-
\ No newline at end of file
diff --git a/docs/cli/references/users/prune.mdx b/docs/cli/references/users/prune.mdx
index 471fb7b90..1c8f211ea 100644
--- a/docs/cli/references/users/prune.mdx
+++ b/docs/cli/references/users/prune.mdx
@@ -13,7 +13,7 @@
| `-insecure-skip-verify` | Skip validation of TLS certificates against trusted chains | `false` |
| `-remove-admin` | prune admin accounts | `false` |
| `-remove-null-users` | removes users with no last active value | `false` |
-| `-trace` | Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing | `false` |
+| `-trace` | Log the trace ID for requests. [See docs](/admin/observability/tracing) | `false` |
| `-user-agent-telemetry` | Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph | `true` |
@@ -38,18 +38,17 @@ Usage of 'src users prune':
-remove-null-users
removes users with no last active value
-trace
- Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing
+ Log the trace ID for requests. See https://sourcegraph.com/docs/admin/observability/tracing
-user-agent-telemetry
Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph (default true)
This command removes users from a Sourcegraph instance who have been inactive for 60 or more days. Admin accounts are omitted by default.
-
+
Examples:
$ src users prune -days 182
-
+
$ src users prune -remove-admin -remove-null-users
```
-
\ No newline at end of file
diff --git a/docs/cli/references/users/tag.mdx b/docs/cli/references/users/tag.mdx
index 5ec8cd5d2..b4affd3d5 100644
--- a/docs/cli/references/users/tag.mdx
+++ b/docs/cli/references/users/tag.mdx
@@ -8,9 +8,9 @@
| `-dump-requests` | Log GraphQL requests and responses to stdout | `false` |
| `-get-curl` | Print the curl command for executing this query and exit (WARNING: includes printing your access token!) | `false` |
| `-insecure-skip-verify` | Skip validation of TLS certificates against trusted chains | `false` |
-| `-remove` | Remove the tag. (default: add the tag | `false` |
+| `-remove` | Remove the tag. (default: add the tag) | `false` |
| `-tag` | The tag to set on the user. (required) | |
-| `-trace` | Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing | `false` |
+| `-trace` | Log the trace ID for requests. [See docs](/admin/observability/tracing) | `false` |
| `-user-agent-telemetry` | Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph | `true` |
| `-user-id` | The ID of the user to tag. (required) | |
@@ -30,7 +30,7 @@ Usage of 'src users tag':
-tag string
The tag to set on the user. (required)
-trace
- Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing
+ Log the trace ID for requests. See https://sourcegraph.com/docs/admin/observability/tracing
-user-agent-telemetry
Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph (default true)
-user-id string
@@ -55,4 +55,3 @@ Related examples:
```
-
\ No newline at end of file
diff --git a/docs/cli/references/validate.mdx b/docs/cli/references/validate.mdx
index 47cc1d4f3..1fa8fe6da 100644
--- a/docs/cli/references/validate.mdx
+++ b/docs/cli/references/validate.mdx
@@ -9,7 +9,7 @@
EXPERIMENTAL: 'validate' is an experimental command in the 'src' tool.
-Please visit https://docs.sourcegraph.com/admin/validation for documentation of the validate command.
+Please visit https://sourcegraph.com/docs/admin/validation for documentation of the validate command.
Usage:
@@ -24,4 +24,3 @@ Use "src validate [command] -h" for more information about a command.
```
-
\ No newline at end of file
diff --git a/docs/cli/references/version.mdx b/docs/cli/references/version.mdx
index 8971177a3..f7a851a3c 100644
--- a/docs/cli/references/version.mdx
+++ b/docs/cli/references/version.mdx
@@ -9,7 +9,7 @@
| `-dump-requests` | Log GraphQL requests and responses to stdout | `false` |
| `-get-curl` | Print the curl command for executing this query and exit (WARNING: includes printing your access token!) | `false` |
| `-insecure-skip-verify` | Skip validation of TLS certificates against trusted chains | `false` |
-| `-trace` | Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing | `false` |
+| `-trace` | Log the trace ID for requests. [See docs](/admin/observability/tracing) | `false` |
| `-user-agent-telemetry` | Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph | `true` |
@@ -26,7 +26,7 @@ Usage of 'src version':
-insecure-skip-verify
Skip validation of TLS certificates against trusted chains
-trace
- Log the trace ID for requests. See https://docs.sourcegraph.com/admin/observability/tracing
+ Log the trace ID for requests. #See https://sourcegraph.com/docs/admin/observability/tracing
-user-agent-telemetry
Include the operating system and architecture in the User-Agent sent with requests to Sourcegraph (default true)
@@ -38,4 +38,3 @@ Examples:
```
-
\ No newline at end of file
diff --git a/docs/cloud/index.mdx b/docs/cloud/index.mdx
index 6a3e95f92..f3eb8508b 100644
--- a/docs/cloud/index.mdx
+++ b/docs/cloud/index.mdx
@@ -25,7 +25,7 @@ As part of this service you will receive a number of benefits from our team, inc
- Your own `example.sourcegraphcloud.com` domain with fully managed [DNS & HTTPS](/admin/http_https_configuration). Optionally, you can [bring your own domain](#custom-domain).
- Hardware provisioning, software installation, and kernel configuration done for you.
- Direct assistance in:
- - [Adding repositories from all of your code hosts to Sourcegraph](/admin/external_service/)
+ - [Adding repositories from all of your code hosts to Sourcegraph](/admin/code_hosts/)
- [Integrating your single sign-on provider with Sourcegraph](/admin/auth/)
- [Configuring Sourcegraph](/admin/config/)
@@ -34,7 +34,7 @@ As part of this service you will receive a number of benefits from our team, inc
All of Sourcegraph's features are available on Sourcegraph Cloud instances out-of-the-box, including but not limited to:
- [Cody](/cody)
-- [Server-side Batch Changes](/batch_changes/explanations/server_side)
+- [Server-side Batch Changes](/batch-changes/server-side)
- [Precise code navigation powered by auto-indexing](/code-search/code-navigation/auto_indexing)
- [Code Monitoring](/code_monitoring/) (including [email delivery](#managed-smtp) of notifications)
- [Code Insights](/code_insights/)
@@ -46,7 +46,7 @@ All of Sourcegraph's features are available on Sourcegraph Cloud instances out-o
### Regular upgrades and maintenance
-- Automatic [upgrades](/admin/updates/) when a new Souregraph version is released and maintenance when security patches are needed.
+- Automatic [upgrades](/admin/updates/) when a new Sourcegraph version is released and maintenance when security patches are needed.
- Regular reassessment of resource utilization based on your organization's unique usage to determine if costs can be reduced without impact to service. Additionally, you will automatically benefit from any committed use cloud provider discounts we receive.
### Custom domains
@@ -54,7 +54,7 @@ All of Sourcegraph's features are available on Sourcegraph Cloud instances out-o
Sourcegraph Cloud provides all customer instances a `customer.sourcegraphcloud.com` domain. This domain is fully managed by Sourcegraph, including DNS and HTTPS.
However, to provide better branding and a more seamless experience for your users, you may bring your own company domain, for example `sourcegraph.company.io`.
-In order to use your own domain, you need to perform an one-time setup by adding DNS records at your authoritative DNS. These DNS records are neccessary to ensure that your users can access your Sourcegraph instance via the custom domain, and also to ensure we can provide managed TLS certificates for your instance. See a [list of DNS records to be created by your organization](#dns-records-to-be-created-by-your-organization) below as an example. Additionally, your custom domain's [CAA records](https://blog.cloudflare.com/caa-of-the-wild/) should permit our upstream certificate authorities to issue certificates for your domain, follow the [instructions](#verify-caa-records) below to verify your CAA records.
+In order to use your own domain, you need to perform an one-time setup by adding DNS records at your authoritative DNS. These DNS records are necessary to ensure that your users can access your Sourcegraph instance via the custom domain, and also to ensure we can provide managed TLS certificates for your instance. See a [list of DNS records to be created by your organization](#dns-records-to-be-created-by-your-organization) below as an example. Additionally, your custom domain's [CAA records](https://blog.cloudflare.com/caa-of-the-wild/) should permit our upstream certificate authorities to issue certificates for your domain, follow the [instructions](#verify-caa-records) below to verify your CAA records.
Please reach out to your Sourcegraph account team to request a custom domain to be configured for your Sourcegraph Cloud instance.
@@ -96,9 +96,9 @@ More details about the locations and data storage can be found in [our handbook]
### Private Connectivity
-Sourcegraph Cloud can connect to resources that are publically accessible or protected by IP-based firewall rules out-of-the-box. Sourcegraph can provide static IP addresses for customers to add to their firewall allowlist. Please let your account team know.
+Sourcegraph Cloud can connect to resources that are publicly accessible or protected by IP-based firewall rules out-of-the-box. Sourcegraph can provide static IP addresses for customers to add to their firewall allowlist. Please let your account team know.
-Private Connectivity enables customers to privately connect Private Resources to the Sourcegraph Cloud instance. Private Resources refer to services that are not publicly accessible, such as self-hosted GitHub Enterprise servers, self-hosted GitLab instances, self-hosted Nexus instance, or Jira Data Center deployed in a private network that are only accessible through VPN. Learn more about Private Connectvity support below:
+Private Connectivity enables customers to privately connect Private Resources to the Sourcegraph Cloud instance. Private Resources refer to services that are not publicly accessible, such as self-hosted GitHub Enterprise servers, self-hosted GitLab instances, self-hosted Nexus instance, or Jira Data Center deployed in a private network that are only accessible through VPN. Learn more about Private Connectivity support below:
- [Private Resources on AWS via AWS Private Link](/cloud/private_connectivity_aws)
- [Private Resources on GCP via GCP Private Service Connect](/cloud/private_connectivity_gcp)
@@ -112,7 +112,7 @@ For unsupported private connectivity methods, Sourcegraph offers connectivity vi
### Health monitoring, support, and SLAs
- Instance performance and health [monitored](/admin/observability/) by our team's on-call engineers.
-- [Support and SLAs](https://handbook.sourcegraph.com/support#for-customers-with-managed-instances).
+- [Support and SLAs](../sla/).
### Backup and restore
@@ -151,6 +151,24 @@ To opt out of managed SMTP, please let your Sourcegraph Account team know when r
To learn more about how the Sourcegraph team operates managed SMTP internally, refer to [our handbook](https://handbook.sourcegraph.com/departments/cloud/technical-docs/managed-smtp/).
+### Audit Logs
+
+Our Cloud instances provide [audit logs](/admin/audit_log#cloud) to help you monitor and investigate actions taken by users and the system. These logs are available to download by request and are also sent to a [centralized logging service](https://about.sourcegraph.com/security#logging) for 30 day retention. Should you wish to
+extend this period, please be aware that additional charges will apply.
+To request an extension, please contact your assigned Customer Engineer (CE) or send an email to Sourcegraph Support at support@sourcegraph.com.
+
+#### Download audit logs
+
+For requesting audit logs, please contact your our support team.
+
+#### Deliver audit logs to customer-managed destination (LogPush)
+
+Sourcegraph LogPush is an optional add-on to deliver audit logs to a customer provided destination. To enable this feature, please contact your assigned Customer Engineer (CE) or support team.
+
+Supported destinations:
+
+- Google Cloud Storage (GCS)
+
## Requirements
### Business
@@ -162,7 +180,7 @@ To learn more about how the Sourcegraph team operates managed SMTP internally, r
### Technical
- A dedicated technical point of contact for the installation process.
-- [Tokens with read access to your code hosts](/admin/external_service/) (we will direct you on how to enter them).
+- [Tokens with read access to your code hosts](/admin/code_hosts/) (we will direct you on how to enter them).
- [Keys, access tokens, or any other setup required to integrate your SSO (single sign-on) provider with Sourcegraph](/admin/auth/), as well as support from a member of your team with administrator access to your SSO provider to help set up and test the integration.
### Limitation
@@ -170,9 +188,9 @@ To learn more about how the Sourcegraph team operates managed SMTP internally, r
> NOTE: We may be able to [support special requests](#accommodating-special-requirements), please reach out to your account team.
- The Sourcegraph instance can only be accessible via a public IP. Running it in a private network and pairing it with your private network via site-to-site VPN or VPC Peering is not yet supported.
-- Code hosts or user authentication providers running in a private network are not yet supported. They have to be publically available or they must allow incoming traffic from Sourcegraph-owned static IP addresses. We do not have proper support for other connectivity methods, e.g. site-to-site VPN, VPC peering, tunneling.
+- Code hosts or user authentication providers running in a private network are not yet supported. They have to be publicly available or they must allow incoming traffic from Sourcegraph-owned static IP addresses. We do not have proper support for other connectivity methods, e.g. site-to-site VPN, VPC peering, tunneling.
- Instances currently run only on Google Cloud Platform in the [chosen regions](#multiple-region-availability). Other regions and cloud providers (such as AWS or Azure) are not yet supported.
-- Some [configuration options](/admin/config/) are managed by Sourcegrpah and cannot be override by customers, e.g. feature flags, experimental features.
+- Some [configuration options](/admin/config/) are managed by Sourcegraph and cannot be overridden by customers, e.g. feature flags, experimental features, and auto-indexing policy. Please reach out to your account team if you would like to make changes to these settings.
## Security
@@ -180,20 +198,16 @@ Your managed instance will be accessible over HTTPS/TLS, provide storage volumes
For all managed instances, we will provide security capabilities from Cloudflare such as WAF and rate-limiting to protect your instance from malicious traffic.
-Your instance will be hosted in isolated Google Cloud infrastructure. See our [employee handbook](https://handbook.sourcegraph.com/departments/cloud/technical-docs/) to learn more about the cloud architecture we use. Both your team and limited Sourcegraph personnel will have application-level administrator access to the instance.
+Your instance will be hosted in isolated Google Cloud infrastructure. See our [FAQ](#faq) below to learn more about the cloud architecture. Both your team and limited Sourcegraph personnel will have application-level administrator access to the instance.
Only essential Sourcegraph personnel will have access to the instance, server, code, and any other sensitive materials, such as tokens or keys. The employees or contractors with access are bound by the same terms as Sourcegraph itself. Learn more in our [security policies for Sourcegraph Cloud](https://about.sourcegraph.com/security) or [contact us](https://about.sourcegraph.com/contact/sales) with any questions or concerns. You may also request a copy of our SOC 2 Report on our [security portal](https://security.sourcegraph.com).
### Sourcegraph management access
-[Sourcegraph management access](https://handbook.sourcegraph.com/departments/cloud/technical-docs/oidc_site_admin/) is the ability for Sourcergaph employees to grant time-bound and audit-trailed UI access to Cloud instances in the events of instance maintenance, issue troubleshooting, and customer assistance. Customer consent is guaranteed prior to human accesses.
+[Sourcegraph management access](https://handbook.sourcegraph.com/departments/cloud/technical-docs/oidc_site_admin/) is the ability for Sourcegraph employees to grant time-bound and audit-trailed UI access to Cloud instances in the events of instance maintenance, issue troubleshooting, and customer assistance. Customer consent is guaranteed prior to human accesses.
All Sourcegraph Cloud instances have Sourcegraph management access enabled by default, and customers may request to disable by contacting your Sourcegraph contact.
-### Audit Logs
-
-Our Cloud instances provide [audit logs](/admin/audit_log#cloud) to help you monitor and investigate actions taken by users and the system. These logs are available to download by request and are also sent to a [centralized logging service](https://about.sourcegraph.com/security#logging) for 30 day retention (configurable for greater periods by request).
-
## Accommodating special requirements
We may be able to support special requests (network access policies, infrastructure requirements, custom version control systems, etc.) with additional time, support, and fees. [Contact us](https://about.sourcegraph.com/contact/sales) to discuss any special requirements you may have.
@@ -226,7 +240,7 @@ Sourcegraph Cloud instances are single-tenant, limiting exposure to outages and
### Is data safe with Sourcegraph Cloud?
-Sourcegraph Cloud utilizes a single-tenant architecture. Each customer's data is isolated and stored in a dedicated GCP project. Data is [encrypted in transit](https://cloud.google.com/docs/security/encryption-in-transit) and [at rest](https://cloud.google.com/docs/security/encryption/default-encryption) and is backed up daily. The data encryption keys are unique to each customer and are fully managed by GCP. Such data includes but is not limited to, customer source code, repository metadata, code host connection configuration, and user profile. Sourcegraph Cloud also has [4 supported regions](#multiple-region-availability) on GCP to meet data sovereignty requirements.
+Sourcegraph Cloud utilizes a single-tenant architecture. Each customer's data is isolated and stored in a dedicated GCP project. Data is [encrypted in transit](https://cloud.google.com/docs/security/encryption-in-transit) and [at rest](https://cloud.google.com/docs/security/encryption/default-encryption) and is backed up daily. Such data includes but is not limited to, customer source code, repository metadata, code host connection configuration, and user profile. Sourcegraph Cloud also has [4 supported regions](#multiple-region-availability) on GCP to meet data sovereignty requirements.
Sourcegraph continuously monitors Cloud instances for security vulnerability using manual reviews and automated tools. Third-party auditors regularly perform testing to ensure maximum protection against vulnerabilities and are automatically upgraded to fix any vulnerability in third-party dependencies. In addition, GCP’s managed offering regularly patches any vulnerability in the underlying infrastructure. Any infrastructure changes must pass security checks, which are tested against industry-standard controls.
@@ -269,7 +283,6 @@ The below are for example purposes only:
In the case of things like Code Search, latency is directly correlated with user input / shape of the query, ex. on our public [sourcegraph.com](https://sourcegraph.com/search) instance:
-- searching for “squirrel” in the [sourcegraph/sourcegraph](https://sourcegraph.com/github.com/sourcegraph/sourcegraph) repo takes 30ms and returns 163 results
- searching for “squirrel” in all OSS repos, but only requesting 1000 matches takes 540ms
- searching for all matches of “squirrel” in all OSS repos returns 1.7million results in 30000ms
- In the case of other features, latency of Sourcegraph directly depends on latency / uptime / rate-limits of customer managed systems, ex. for:
diff --git a/docs/cloud/private_connectivity_aws.mdx b/docs/cloud/private_connectivity_aws.mdx
index 46a7bf7ef..e4216cd2b 100644
--- a/docs/cloud/private_connectivity_aws.mdx
+++ b/docs/cloud/private_connectivity_aws.mdx
@@ -1,8 +1,8 @@
# Code hosts on AWS without public access
-Please contact Sourcegraph directly via [prefered contact method](https://about.sourcegraph.com/contact) for more information.
+Please contact Sourcegraph directly via [preferred contact method](https://about.sourcegraph.com/contact) for more information.
-As part of the [Enterprise tier](https://sourcegraph.com/pricing), Sourcegraph Cloud supports connecting customer private resouces on AWS using [AWS Private Link](https://docs.aws.amazon.com/vpc/latest/privatelink/what-is-privatelink.html) and managed [site-to-site VPN](https://cloud.google.com/network-connectivity/docs/vpn/tutorials/create-ha-vpn-connections-google-cloud-aws) solution between GCP (where Sourcegraph Cloud instances are hosted) and AWS, so that access to the private resource is secure and without the need to expose it to the public internet.
+As part of the [Enterprise tier](https://sourcegraph.com/pricing), Sourcegraph Cloud supports connecting customer private resources on AWS using [AWS Private Link](https://docs.aws.amazon.com/vpc/latest/privatelink/what-is-privatelink.html) and managed [site-to-site VPN](https://cloud.google.com/network-connectivity/docs/vpn/tutorials/create-ha-vpn-connections-google-cloud-aws) solution between GCP (where Sourcegraph Cloud instances are hosted) and AWS, so that access to the private resource is secure and without the need to expose it to the public internet.
## How it works
@@ -21,31 +21,32 @@ Sourcegraph Cloud is a managed service hosted on GCP. Sourcegraph creates a secu
### Initiate the process
-Customer should reach out to their account manager to initiate the process. The account manager will work with the customer to collect the required information and initiate the process, including but not limited to:
+Customers should reach out to their account manager to initiate the process. The account manager will work with the customer to collect the required information and initiate the process, including but not limited to:
- The DNS name of the private code host, e.g. `github.internal.company.net` or private artifact registry, e.g. `artifactory.internal.company.net`.
- The region of the private resource on AWS, e.g. `us-east-1`.
-- The type of the TLS certificate used by the private resource, one of self-signed by internal private CA, or issued by a public CA.
+- The type of TLS certificate used by the private resource: either self-signed by an internal private CA or issued by a public CA.
+- The VPC endpoint service name in the format of `com.amazonaws.vpce..`. Learn more from [create the VPC Endpoint Service](#create-the-vpc-endpoint-service).
### Create the VPC Endpoint Service
When a customer has private resources inside the AWS VPC and needs to expose it for Sourcegraph managed AWS VPC, customers can follow [AWS Documentation](https://docs.aws.amazon.com/vpc/latest/privatelink/create-endpoint-service.html). An example can be found from our [handbook](https://handbook.sourcegraph.com/departments/cloud/technical-docs/private-code-hosts/#aws-private-link-playbook-for-customer).
-Sourcegraph will provide the Sourcegraph-managed AWS account ARN that needs to be allowlist in your VPC endpoint service, e.g., `arn:aws:iam::$accountId:root`.
+Sourcegraph will provide the Sourcegraph-managed AWS account ARN that needs to be allowlisted in your VPC endpoint service, e.g., `arn:aws:iam::$accountId:root`. It must be allowlisted by customer before the connection can be established. Note: The AWS account is created exclusively for individual Cloud customers and not shared with others.
The customer needs to share the following details with Sourcegraph:
-- VPC endpoint serivce name in the format of `com.amazonaws.vpce..`.
+- VPC endpoint service name in the format of `com.amazonaws.vpce..`.
-Upon receiving the detail, Sourcegraph will create a connection to the customer private resource, and Sourcegraph will follow up with the customer to confirm the connection is established.
+Upon receiving the details, Sourcegraph will create a connection to the customer's private resource. The customer may need to manually accept the connection request depending on their [acceptance settings](https://docs.aws.amazon.com/vpc/latest/privatelink/configure-endpoint-service.html#accept-reject-connection-requests). Sourcegraph will follow up with the customer to confirm the connection is established.
### Create the private resource connection
-Once the connection to private code host is established, the customer can create the [code host connection](/admin/external_service/) on their Sourcegraph Cloud instance.
+Once the connection to private code host is established, the customer can create the [code host connection](/admin/code_hosts/) on their Sourcegraph Cloud instance.
### Verify artifact registries are working
-Once the connection to private artifact registry is established, customer might then verify that auto-indexing is working with private artifact registry by [configuring auto-indexing](/code-search/code-navigation/auto_indexing#configure-auto-indexing)
+Once the connection to private artifact registry is established, customer might then verify that auto-indexing is working with the private artifact registry by [configuring auto-indexing](/code-search/code-navigation/auto_indexing#configure-auto-indexing)
## FAQ
@@ -66,14 +67,20 @@ Advantages of the site-to-site GCP to AWS VPN include:
### How can I restrict access to my private resource?
-The customer has full control over the exposed service and they can may terminate the connection at any point.
+The customer has full control over the exposed service and they may terminate the connection at any point.
### What are the next steps when artifact registry connectivity is working?
-Only if private artifact registry is protected by authentication, the customer will need to:
+Only if the private artifact registry is protected by authentication, the customer will need to:
- create executor secrets containing credentials for Sourcegraph to access the private artifact registry - [how to configure executor secrets](/admin/executors/executor_secrets#executor-secrets)
-- update auto-indexing inference configuration to create additional files from executor secrets for given programing language - [how to configure auto-indexing](/code-search/code-navigation/inference_configuration)
+- update auto-indexing inference configuration to create additional files from executor secrets for given programming language - [how to configure auto-indexing](/code-search/code-navigation/inference_configuration)
### Can I use self-signed TLS certificate for my private resources?
-Yes. Please work with your account team to add the certificate chain of your internal CA to [site configuration](https://docs.sourcegraph.com/admin/config/site_config#experimentalFeatures) at `experimentalFeatures.tls.external.certificates`.
+Yes. Please work with your account team to add the certificate chain of your internal CA to [site configuration](/admin/config/site_config#experimentalFeatures) at `experimentalFeatures.tls.external.certificates`.
+
+### What is the disaster recovery plan?
+
+For customers with a disaster recovery plan that can failover the private resource deployment to another region, we recommend the customer to provision VPC endpoint services in the failover region and share the details with Sourcegraph during the onboarding process. In the event of an incident, the customer can reach out to support and request Sourcegraph to failover the connection to the failover region.
+
+For disaster recovery plan of Sourcegraph Cloud, please reach out to your account team for more information.
diff --git a/docs/cloud/private_connectivity_gcp.mdx b/docs/cloud/private_connectivity_gcp.mdx
index 7c431df40..b31eb4202 100644
--- a/docs/cloud/private_connectivity_gcp.mdx
+++ b/docs/cloud/private_connectivity_gcp.mdx
@@ -1,6 +1,6 @@
# Code hosts on GCP without public access
-Please contact Sourcegraph directly via [prefered contact method](https://about.sourcegraph.com/contact) for more information.
+Please contact Sourcegraph directly via [preferred contact method](https://about.sourcegraph.com/contact) for more information.
As part of the [Enterprise tier](https://sourcegraph.com/pricing), Sourcegraph Cloud supports connecting to customer dependencies on GCP using [GCP Private Service Connect](https://cloud.google.com/vpc/docs/private-service-connect). It creates a secure connection between customer GCP project and Sourcegraph Cloud instance, so that access to a private resource never occurs over the public internet.
@@ -29,11 +29,11 @@ Cross-region connectivity is not supported by Google Cloud for [Private Service
### Initiate the process
-Customer should reach out to their account manager to initiate the process. The account manager will work with the customer to collect the required information and initiate the process, including but not limited to:
+Customers should reach out to their account manager to initiate the process. The account manager will work with the customer to collect the required information and initiate the process, including but not limited to:
- The DNS name of the private code host, e.g., `gitlab.internal.company.net`.
- The region of the private code host on GCP, e.g., `us-central1`.
-- The type of the TLS certificate used by the private code host, one of self-signed by internal private CA, or issued by a public CA.
+- The type of TLS certificate used by the private resource: either self-signed by an internal private CA or issued by a public CA.
- The location of where the TLS connection is terminated, one of the load balancer, or the private code host node.
Finally, Sourcegraph will provide the following:
@@ -41,19 +41,19 @@ Finally, Sourcegraph will provide the following:
- A reference architecture in Terraform to demonstrate the setup on customer end.
- The GCP Project ID of the Sourcegraph Cloud instance.
-### Create Private Serivce Connect connection
+### Create Private Service Connect connection
-Customer should publish their services using PSC by follow [GCP documentation](https://cloud.google.com/vpc/docs/configure-private-service-connect-producer). The customer needs to [permit connection](https://cloud.google.com/vpc/docs/manage-private-service-connect-services#access) from the provided GCP Project ID earlier. The customer needs to provide the [Service Attachment] URI to Sourcegraph. The Service Attachment URI is in the format of `projects/:id/regions/:region/serviceAttachments/:name`.
+Customer should publish their services using PSC by following the [GCP documentation](https://cloud.google.com/vpc/docs/configure-private-service-connect-producer). The customer needs to [permit connection](https://cloud.google.com/vpc/docs/manage-private-service-connect-services#access) from the provided GCP Project ID earlier. The customer needs to provide the [Service Attachment] URI to Sourcegraph. The Service Attachment URI is in the format of `projects/:id/regions/:region/serviceAttachments/:name`.
Upon receiving the Service Attachment URI, Sourcegraph will create a connection to the customer service using PSC, and Sourcegraph will follow up with the customer to confirm the connection is established.
### Create the code host connection
-Once the connection is established, the customer can create the [code host connection](/admin/external_service) on their Sourcegraph Cloud instance.
+Once the connection is established, the customer can create the [code host connection](/admin/code_hosts) on their Sourcegraph Cloud instance.
### Verify artifact registries are working
-Once the connection to private artifact registry is established, customer might then verify that auto-indexing is working with private registry dependecies by [configuring auto-indexing](/code-search/code-navigation/auto_indexing#configure-auto-indexing)
+Once the connection to private artifact registry is established, customer might then verify that auto-indexing is working with private registry dependencies by [configuring auto-indexing](/code-search/code-navigation/auto_indexing#configure-auto-indexing)
## FAQ
@@ -75,10 +75,10 @@ All traffic between the producer and consumer is encrypted in transit. You may l
### What are the next steps when artifact registry connectivity is working?
-Only if private artifact registry is protected by authentication, the customer will need to:
-- create executor secrets containing credentials for Sourcegraph to access the private artifact registry - [how to configure executor secrets](/admin/executors/executor_secrets#executor-secrets)
-- update auto-indexing inference configuration to create additional files from executor secrets for given programing language - [how to configure auto-indexing](/code-search/code-navigation/inference_configuration)
+Only if the private artifact registry is protected by authentication, the customer will need to:
+- Create executor secrets containing credentials for Sourcegraph to access the private artifact registry - [how to configure executor secrets](/admin/executors/executor_secrets#executor-secrets)
+- Update auto-indexing inference configuration to create additional files from executor secrets for the given programming language - [how to configure auto-indexing](/code-search/code-navigation/inference_configuration)
### Can I use self-signed TLS certificate for my private resources?
-Yes. Please work with your account team to add the certificate chain of your internal CA to [site configuration](https://docs.sourcegraph.com/admin/config/site_config#experimentalFeatures) at `experimentalFeatures.tls.external.certificates`.
+Yes. Please work with your account team to add the certificate chain of your internal CA to [site configuration](/admin/config/site_config#experimentalFeatures) at `experimentalFeatures.tls.external.certificates`.
diff --git a/docs/cloud/private_connectivity_public_lb.mdx b/docs/cloud/private_connectivity_public_lb.mdx
index 9fdeb7a6a..e41849843 100644
--- a/docs/cloud/private_connectivity_public_lb.mdx
+++ b/docs/cloud/private_connectivity_public_lb.mdx
@@ -1,14 +1,14 @@
# Private Resources exposed via alternate public load balancers
-Please contact Sourcegraph directly via [prefered contact method](https://about.sourcegraph.com/contact) for more information.
+Please contact Sourcegraph directly via [preferred contact method](https://about.sourcegraph.com/contact) for more information.
-As part of the [Enterprise tier](https://about.sourcegraph.com/pricing), Sourcegraph Cloud supports connecting customer private dependecies from customer data center via public load balancer on customer side.
+As part of the [Enterprise tier](https://about.sourcegraph.com/pricing), Sourcegraph Cloud supports connecting customer private dependencies from customer data center via public load balancer on customer side.
-> For private dependecies in AWS or GCP, please refer to [other deployment methods](/cloud#private-connectivity)
+> For private dependencies in AWS or GCP, please refer to [other deployment methods](/cloud#private-connectivity)
## How it works
-Sourcegraph Cloud is a managed service hosted on GCP. Customer will expose private resource via load balancer with IP allowlist for 2 static IPs provided by Sourcegraph. Sourcegraph will then be able to access the private resource over HTTPS through the load balancer from the GCP project hosting Sourcegraph Cloud. Sourcegraph recommends to setup passthrough TCP network load balancer to avoid maintaining valid TLS certificate on the network load balancer
+Sourcegraph Cloud is a managed service hosted on GCP. Customers will expose private resources via a load balancer with an IP allowlist for 2 static IPs provided by Sourcegraph. Sourcegraph will then be able to access the private resource over HTTPS through the load balancer from the GCP project hosting Sourcegraph Cloud. Sourcegraph recommends setting up a passthrough TCP network load balancer to avoid maintaining a valid TLS certificate on the network load balancer.
[link](https://link.excalidraw.com/readonly/gc6P8SDOEMCcrIl9cl64)
@@ -25,31 +25,31 @@ Sourcegraph Cloud is a managed service hosted on GCP. Customer will expose priva
Customer should reach out to their account manager to initiate the process. The account manager will work with the customer to collect the required information and initiate the process, including but not limited to:
-- The private DNS name of the private resource, e.g. `github.internal.company.net`. Notes, this is the DNS name customer users interact on a daily basis.
+- The private DNS name of the private resource, e.g. `github.internal.company.net`. Note: this is the DNS name customer users interact on a daily basis.
- The public DNS name of the network load balancer exposing the private resource, e.g. `github-public-nlb.company.net`.
Sourcegraph will provide 2 static IPs for customer to allowlist ingress traffic for load balancer.
## FAQ
-### Why passthrough TCP network load balancer?
+### Why a passthrough TCP network load balancer?
-With passthrough network load balancer, the load balancer acts as a simple network proxy to forward traffic to the backend private resource without terminating TLS. This avoids the need to install additional TLS certificate on the network load balancer, reducing opertional overhead.
+With a passthrough network load balancer, the load balancer acts as a simple network proxy to forward traffic to the backend private resource without terminating TLS. This avoids the need to install additional TLS certificate on the network load balancer, reducing operational overhead.
-In the event you have to use a proxy network load balancer or an application (L7) load balancer with a TLS listener, the load balancer must meet the following requirements:
+In the event you need to use a proxy network load balancer or an application (L7) load balancer with a TLS listener, the load balancer must meet the following requirements:
-- Present valid TLS certificates valid for both public and private dns name.
-- Forward traffic to the private resource regardless public or private dns name is used to access the load balancer
+- Present valid TLS certificates valid for both public and private DNS name
+- Forward traffic to the private resource regardless public or private DNS name is used to access the load balancer
-Assuming your private resources is a web service listening at port `443`, you can validate your setup:
+Assuming your private resource is a web service listening at port `443`, you can validate your setup:
```sh
curl --connect-to github.internal.company.net:443:github-public-nlb.company.net:443 https://github.internal.company.net
```
-### Can I use my internal dns name for artifact registry?
+### Can I use my internal DNS name for artifact registry?
-Yes, customer can expose their private registry with internal DNS name. Sourcegraph will provision dns-proxy, which translates customer private domain to public customer load balancer domain. No changes in customer configuration are required.
+Yes, customers can expose their private registry with an internal DNS name. Sourcegraph will provision dns-proxy, which translates the customer's private domain to public customer load balancer domain. No changes in customer configuration are required.
### How secure is the connection?
@@ -58,15 +58,15 @@ In transit, these resources are encrypted via the TLS certificate.
### What are the next steps when code host connectivity is working?
-Once the connection is established, the customer can create the [code host connection](/admin/external_service/) on their Sourcegraph Cloud instance using private dns name.
+Once the connection is established, the customer can create the [code host connection](/admin/code_hosts/) on their Sourcegraph Cloud instance using private dns name.
### What are the next steps when artifact registry connectivity is working?
If private artifact registry is protected by authentication, the customer will need to:
- Create executor secrets containing credentials for Sourcegraph to access the private artifact registry - [how to configure executor secrets](/admin/executors/executor_secrets#executor-secrets)
-- Update auto-indexing inference configuration to create additional files from executor secrets for given programing language - [how to configure auto-indexing](/code-search/code-navigation/inference_configuration)
+- Update auto-indexing inference configuration to create additional files from executor secrets for given programming language - [how to configure auto-indexing](/code-search/code-navigation/inference_configuration)
### Can I use self-signed TLS certificate for my private resources?
-Yes. Please work with your account team to add the certificate chain of your internal CA to [site configuration](https://docs.sourcegraph.com/admin/config/site_config#experimentalFeatures) at `experimentalFeatures.tls.external.certificates`.
+Yes. Please work with your account team to add the certificate chain of your internal CA to [site configuration](/admin/config/site_config#experimentalFeatures) at `experimentalFeatures.tls.external.certificates`.
diff --git a/docs/cloud/private_connectivity_sourcegraph_connect.mdx b/docs/cloud/private_connectivity_sourcegraph_connect.mdx
index 9db7c30d1..ec09ca9bb 100644
--- a/docs/cloud/private_connectivity_sourcegraph_connect.mdx
+++ b/docs/cloud/private_connectivity_sourcegraph_connect.mdx
@@ -1,8 +1,8 @@
# Private Resources on on-prem data center via Sourcegraph Connect agent
-This feature is in the Experimental stage. Please contact Sourcegraph directly via [prefered contact method](https://about.sourcegraph.com/contact) for more information.
+This feature is in the Experimental stage. Please contact Sourcegraph directly via [preferred contact method](https://about.sourcegraph.com/contact) for more information.
-As part of the [Enterprise tier](https://sourcegraph.com/pricing), Sourcegraph Cloud supports connecting private resouces on any on-prem private network by running Sourcegraph Connect tunne agent in customer infrastructure.
+As part of the [Enterprise tier](https://sourcegraph.com/pricing), Sourcegraph Cloud supports connecting private resources on any on-prem private network by running Sourcegraph Connect tunnel agent in customer infrastructure.
## How it works
@@ -10,7 +10,7 @@ Sourcegraph will set up a tunnel server in a customer dedicated GCP project. Cus
Sourcegraph Connect consists of three major components:
-Tunnel agent: deployed inside customer network, which uses its own identity and encrypts traffic between customer code host and client. Agent can only communicate with permitted customer code hosts inside the customer network. Only agents are allowed to establish secure connections with tunnel server, the server can only accept connections if agent identity is approved.
+Tunnel agent: deployed inside the customer network, which uses its own identity and encrypts traffic between the customer code host and client. Agent can only communicate with permitted customer code hosts inside the customer network. Only agents are allowed to establish secure connections with tunnel server, the server can only accept connections if agent identity is approved.
Tunnel server: a centralized broker between client and agent managed by Sourcegraph. Its purpose is to set up mTLS, proxy encrypted traffic between clients and agents and enforce ACL.
@@ -32,6 +32,8 @@ Tunnel client: forward proxy clients managed by sourcegraph. Every client has it
Customer should reach out to their account manager to initiate the process. The account manager will work with the customer to collect the required information and initiate the process, including but not limited to:
- The DNS name of the private code host, e.g. `gitlab.internal.company.net` or private artifact registry, e.g. `artifactory.internal.company.net`.
+- The port of the private code host, e.g., `443`, `80`, `22`.
+- The type of TLS certificate used by the private resource: either self-signed by an internal private CA or issued by a public CA.
Finally, Sourcegraph will provide the following:
@@ -47,7 +49,7 @@ Customer can follow the provided instructions and install the tunnel agent in th
### Create the code host connection
-Once the connection to private code host is established, the customer can create the [code host connection](/admin/external_service/) on their Sourcegraph Cloud instance.
+Once the connection to private code host is established, the customer can create the [code host connection](/admin/code_hosts/) on their Sourcegraph Cloud instance.
## FAQ
@@ -59,11 +61,11 @@ Connections between the tunnel agent inside customer network and a tunnel server
Both tunnel clients and agents are assigned an identity corresponding to a GCP Service Account, and they are provided credentials to prove such identity. For tunnel agents, a Service Account key is distributed to the customer. For tunnel clients, it will utilize Workload Identity to prove its identity. They use them to authenticate against tunnel server by sending signed JWT tokens and public key. JWT token contains information about GCP service account credential public key required to validate signature and confirm identity of requestor. The server will then sign the requestor public key and respond with a signed certificate containing GCP Service Account email as a Subject Alternative Name (SAN).
-Finally, if the customer NAT Gateway/Exit Gateway has stable CIDRs, we can provision firewall rules to restrict access to the tunnel server from the provided IP ranges only for added layer of security.
+Finally, if the customer NAT Gateway/Exit Gateway has stable CIDRs, we can provision firewall rules to restrict access to the tunnel server from the provided IP ranges only for an added layer of security.
### How do you enforce authorization to restrict what requests can reach the private code host?
-The tunnel server is configured with ACLs. With mTLS every entity in the network has its own identity. Client identity is used as a source for accessing customer private code hosts, while agents identity is used for destination. Tunnel server ensures that only clients with proved identity can communicate with customer tunnel agents.
+The tunnel server is configured with ACLs. With mTLS every entity in the network has its own identity. The client's identity is used as a source for accessing customer private code hosts, while the agent's identity is used for destination. Tunnel server ensures that only clients with proven identity can communicate with customer tunnel agents.
### Do you rotate the encryption keys?
@@ -73,7 +75,7 @@ Encryption keys are short-lived and both tunnel agents and clients have to refre
We utilize GCP Certificate Authority Service (CAS), a managed Public Key Infrastructure (PKI) service. It is responsible for the storage of all signing keys (e.g., root CAs, immediate CAs), and the signing of client certificates. Access to GCP CAS is governed by GCP IAM service and only necessary services or individuals will have access to the service with audit trails in GCP Logging.
-The TLS private key on the tunnel agent or tunnel clients only exist in memory, and never shares with other party. Only the public key is sent to the tunnel server to issue a signed certificate to establish mTLS connection.
+The TLS private key on the tunnel agent or tunnel clients only exist in memory, and are never shared with other parties. Only the public key is sent to the tunnel server to issue a signed certificate to establish mTLS connection.
### How do you audit access?
@@ -85,18 +87,18 @@ The tunnel is built using TCP over gRPC. gRPC is a high-performant and battle-te
### How many agents can a customer start?
-To obtain high availability customer can start multiple tunnel agents. Each of the agents will use the same GCP Service Account credentials, authenticate with the tunnel server and establish connection to it. Tunnel client will randomly select an available agent to forward the traffic.
+To obtain high availability, customers can start multiple tunnel agents. Each of the agents will use the same GCP Service Account credentials, authenticate with the tunnel server and establish connection to it. Tunnel client will randomly select an available agent to forward the traffic.
### How does the customer configure the network to make the agent work?
-Customer tunnel agent has to authenticate and establish connection with the tunnel server. Sourcegraph will provide a single dedicated static IP from customer dedicated GCP VPC which is used to connect with the tunnel server. Customer has to configure network egress to allow TCP (HTTP/2) traffic access to this static IP.
+The customer tunnel agent has to authenticate and establish connection with the tunnel server. Sourcegraph will provide a single dedicated static IP from customer dedicated GCP VPC which is used to connect with the tunnel server. Customer has to configure network egress to allow TCP (HTTP/2) traffic access to this static IP.
### How can I restrict access to my private code host connection?
The customer has full control over the tunnel agent configuration and they can terminate the connection at any time.
What if the attacker gains access to the frontend?
-In the event of an attacker gaining access to the sourcegraph containers, we consider this to be a security breach and we have Incident response processes in place that we will follow. However, we have many controls in place to prevent this from happening where Cloud infrastructure access always requires approval and the Security team is on-call for unexpected usage patterns. You may learn more from our [Security Portal](https://security.sourcegraph.com/).
+In the event of an attacker gaining access to the Sourcegraph containers, we consider this to be a security breach and we have Incident response processes in place that we will follow. However, we have many controls in place to prevent this from happening where Cloud infrastructure access always requires approval and the Security team is on-call for unexpected usage patterns. You may learn more from our [Security Portal](https://security.sourcegraph.com/).
Please reach out to us if you have any specific questions regarding our Cloud security posture, and we are happy to provide more detail to address your concerns.
@@ -106,8 +108,8 @@ We recommend using an allowlist to limit the egress traffic of the agent to IP a
### How can I audit the data Sourcegraph has access to in my environment?
-The tunnel is secured and authenticated by mTLS over gRPC, and everything is encrypted over transit. If customer is looking to perform audit, such as, TLS inspection, on the connection between the private resources and Sourcegraph Cloud. We recommend to only intercept and inspect traffic between the tunnel agent and private resources. The connection between the tunnel agent and Sourcegraph Cloud is using a custom protocol, and the decrypted payload has very little value.
+The tunnel is secured and authenticated by mTLS over gRPC, and everything is encrypted over transit. If a customer is looking to perform an audit, such as TLS inspection, on the connection between the private resources and Sourcegraph Cloud, we recommend only intercepting and inspecting traffic between the tunnel agent and private resources. The connection between the tunnel agent and Sourcegraph Cloud is using a custom protocol, and the decrypted payload has very little value.
### Can I use self-signed TLS certificate for my private resources?
-Yes. Please work with your account team to add the certificate chain of your internal CA to [site configuration](https://docs.sourcegraph.com/admin/config/site_config#experimentalFeatures) at `experimentalFeatures.tls.external.certificates`
+Yes. Please work with your account team to add the certificate chain of your internal CA to [site configuration](/admin/config/site_config#experimentalFeatures) at `experimentalFeatures.tls.external.certificates`
diff --git a/docs/code-search/code-navigation/auto_indexing.mdx b/docs/code-search/code-navigation/auto_indexing.mdx
index a73dd252f..6a0dc5e6e 100644
--- a/docs/code-search/code-navigation/auto_indexing.mdx
+++ b/docs/code-search/code-navigation/auto_indexing.mdx
@@ -1,8 +1,13 @@
# Auto-indexing
-Learn and understand how auto-indexing works.
+
+ Supported on [Enterprise](/pricing/enterprise) plans.
+
+ Currently in Beta and available via Web app.
+
+
-Auto-indexing is currently in Beta stage.
+Learn and understand how auto-indexing works.
With Sourcegraph deployments supporting [executors](/admin/executors/), your repository contents can be automatically analyzed to produce a code graph index file. Once [auto-indexing is enabled](/code-search/code-navigation/auto_indexing#enable-auto-indexing) and [auto-indexing policies are configured](/code-search/code-navigation/auto_indexing#configure-auto-indexing), repositories will be periodically cloned into an executor sandbox, analyzed, and the resulting index file will be uploaded back to the Sourcegraph instance.
diff --git a/docs/code-search/code-navigation/envvars.mdx b/docs/code-search/code-navigation/envvars.mdx
index e3c2fea6f..843c121f1 100644
--- a/docs/code-search/code-navigation/envvars.mdx
+++ b/docs/code-search/code-navigation/envvars.mdx
@@ -8,7 +8,6 @@ The following are variables are read from the `frontend` service to control code
| **Name** | **Default** | **Description** |
| ------------------------------------------------- | ------- | ------------------------------------------------------------- |
-| `PRECISE_CODE_INTEL_HUNK_CACHE_SIZE` | `1000` | The capacity of the git diff hunk cache. |
| `PRECISE_CODE_INTEL_DIAGNOSTICS_COUNT_MIGRATION_BATCH_SIZE` | `1000` | The max no. of document records to migrate at a time. |
| `PRECISE_CODE_INTEL_DIAGNOSTICS_COUNT_MIGRATION_BATCH_INTERVAL` | `1s` | The timeout between processing migration batches. |
| `PRECISE_CODE_INTEL_DEFINITIONS_COUNT_MIGRATION_BATCH_SIZE` | `1000` | The maximum number of definition records to migrate at once. |
diff --git a/docs/code-search/code-navigation/explanations/uploads.mdx b/docs/code-search/code-navigation/explanations/uploads.mdx
index 58c62bb20..6fc6bb886 100644
--- a/docs/code-search/code-navigation/explanations/uploads.mdx
+++ b/docs/code-search/code-navigation/explanations/uploads.mdx
@@ -38,7 +38,7 @@ Sourcegraph maintains a mapping from a commit of a repository to the set of uplo
Upon a state change in an upload, we flag the repository as needing an update. Subsequently, the worker service updates the commit graph and asynchronously clears the flag for that repository.
-When an upload changes state, the repository is flagged as requiring an update status. Then the [`worker` service](https://docs.sourcegraph.com/admin/workers#codeintel-commitgraph)
+When an upload changes state, the repository is flagged as requiring an update status. Then the [`worker` service](/admin/workers#codeintel-commitgraph)
will update the commit graph and unset the flag for that repository asynchronously.
While this flag is set, the repository's commit graph is considered `stale`. This means there may be some upload records in a `COMPLETED` state that aren't yet used to resolve code navigation queries.
diff --git a/docs/code-search/code-navigation/features.mdx b/docs/code-search/code-navigation/features.mdx
index 7563d00be..7a4e23b6b 100644
--- a/docs/code-search/code-navigation/features.mdx
+++ b/docs/code-search/code-navigation/features.mdx
@@ -36,11 +36,7 @@ For example, the animation below demonstrates how to trigger **Find references**

-The instructions to set up dependency navigation differ depending on your language ecosystem.
-
-* **Go**: Set up [auto-indexing](/code-search/code-navigation/auto_indexing).
-* **Java, Scala, Kotlin**: Set up [auto-indexing](/code-search/code-navigation/auto_indexing) and a [JVM dependencies code host](/integration/jvm).
-* **JavaScript, TypeScript**: Set up [auto-indexing](/code-search/code-navigation/auto_indexing) and a [npm dependencies code host](/integration/npm).
+The instructions to set up dependency navigation require you to set up auto-indexing. For more information on how to set up auto-indexing, please refer to our [auto-indexing documentation](/code-search/code-navigation/auto_indexing).
## Find implementations
diff --git a/docs/code-search/code-navigation/how-to/adding_lsif_to_workflows.mdx b/docs/code-search/code-navigation/how-to/adding_scip_to_workflows.mdx
similarity index 92%
rename from docs/code-search/code-navigation/how-to/adding_lsif_to_workflows.mdx
rename to docs/code-search/code-navigation/how-to/adding_scip_to_workflows.mdx
index 7ad639887..420b21c6a 100644
--- a/docs/code-search/code-navigation/how-to/adding_lsif_to_workflows.mdx
+++ b/docs/code-search/code-navigation/how-to/adding_scip_to_workflows.mdx
@@ -6,7 +6,7 @@ We are working on creating language specific guides for use with different index
## Benefits of CI integration
-Setting up a source code indexing job in your CI build provides you with fast code navigation that gives you more control on when source code gets indexed, and ensures accuracy of your code navigation by keeping in sync with changes in your repository. Due to the large number of CI frameworks and languages we may not have specific documentation for your use case. Feel free to [file an issue](https://github.com/sourcegraph/sourcegraph/issues/new) if you're having difficulties and we can help troubleshoot your setup.
+Setting up a source code indexing job in your CI build provides you with fast code navigation that gives you more control on when source code gets indexed, and ensures accuracy of your code navigation by keeping in sync with changes in your repository. Due to the large number of CI frameworks and languages we may not have specific documentation for your use case. Feel free to [contact us](https://help.sourcegraph.com/hc/en-us/requests/new) if you're having difficulties and we can help troubleshoot your setup.
## Using indexer containers
@@ -103,7 +103,7 @@ jobs:
The following projects have example GitHub Action workflows to generate and upload indexes.
- [elastic/kibana](https://github.com/sourcegraph-codeintel-showcase/kibana/blob/7ed559df0e2036487ae6d606e9ffa29d90d49e38/.github/workflows/lsif.yml)
-- [golang/go](https://github.com/sourcegraph-codeintel-showcase/go/blob/f40606b1241b0ca4802d7b00a763241b03404eea/.github/workflows/lsif.yml)
+- [golang/go](https://github.com/sourcegraph-codeintel-showcase/go/blob/master/.github/workflows/scip.yml)
- [kubernetes/kubernetes](https://github.com/sourcegraph-codeintel-showcase/kubernetes/blob/359b6469d85cc7cd4f6634e50651633eefeaea4e/.github/workflows/lsif.yml)
- [lodash/lodash](https://github.com/sourcegraph-codeintel-showcase/lodash/blob/b90ea221bd1b1e036f2dfcd199a2327883f9451f/.github/workflows/lsif.yml)
- [moby/moby](https://github.com/sourcegraph-codeintel-showcase/moby/blob/380429abb05846de773d5aa07de052f40c9e8208/.github/workflows/lsif.yml)
@@ -175,7 +175,7 @@ The following projects have example Travis CI configurations to generate and upl
## CI from scratch
-If you're indexing a language we haven't documented yet in our [language-specific guides](/code-search/code-navigation/precise_code_navigation#setting-up-code-navigation-for-your-codebase), follow the instructions in this section. We want to have containers available for every language with a robust indexer, so please also consider [filing an issue](https://github.com/sourcegraph/sourcegraph/issues/new) to let us know we're missing one.
+If you're indexing a language we haven't documented yet in our [language-specific guides](/code-search/code-navigation/precise_code_navigation#setting-up-code-navigation-for-your-codebase), follow the instructions in this section. We want to have containers available for every language with a robust indexer, so please [contact](https://help.sourcegraph.com/hc/en-us/requests/new) to let us know we're missing one.
### Set up your CI machines
@@ -195,10 +195,10 @@ We recommend that you start with a CI job that runs on every commit (including b
If you see too much load on your CI, your Sourcegraph instance, or a rapid decrease in free disk space on your Sourcegraph instance, you can instead index only the default branch, or set up a periodic job (e.g. daily) in CI that indexes your default branch.
-With periodic jobs, you should still receive precise code navigation on non-indexed commits on lines that are unchanged since the nearest indexed commit. This requires that the indexed commit be a direct ancestor or descendant no more than [100 commits](https://github.com/sourcegraph/sourcegraph/blob/e7803474dbac8021e93ae2af930269045aece079/lsif/src/shared/constants.ts#L25) away. If your commit frequency is too high and your index frequency is too low, you may find commits with no precise code navigation at all. In this case, we recommend you try to increase your index frequency if possible.
+With periodic jobs, you should still receive precise code navigation on non-indexed commits on lines that are unchanged since the nearest indexed commit. This requires that the indexed commit be a direct ancestor or descendant no more than [100 commits](https://github.com/sourcegraph/sourcegraph-public-snapshot/blob/e7803474dbac8021e93ae2af930269045aece079/lsif/src/shared/constants.ts#L25) away. If your commit frequency is too high and your index frequency is too low, you may find commits with no precise code navigation at all. In this case, we recommend you try to increase your index frequency if possible.
## Uploading indexes to Sourcegraph.com
-Indexes can be uploaded to a self-hosted Sourcegraph instance or to [Sourcegraph.com](https://sourcegraph.com). Using the [Sourcegraph.com](https://sourcegraph.com) endpoint will surface code navigation for your public repositories directly on GitHub via the [Sourcegraph browser extension](https://docs.sourcegraph.com/integration/browser_extension) and at `https://sourcegraph.com/github.com//`.
+Indexes can be uploaded to a self-hosted Sourcegraph instance or to [Sourcegraph.com](https://sourcegraph.com). Using the [Sourcegraph.com](https://sourcegraph.com) endpoint will surface code navigation for your public repositories directly on GitHub via the [Sourcegraph browser extension](/integration/browser_extension) and at `https://sourcegraph.com/github.com//`.
Using the [Sourcegraph.com](https://sourcegraph.com) endpoint is free and your index is treated as User-Generated Content (you own it, as covered in our [Sourcegraph.com terms of service](https://about.sourcegraph.com/terms-dotcom#3-proprietary-rights-and-licenses)). If you run into trouble, or a situation arises where you need all of your index expunged, please reach out to us at [support@sourcegraph.com](mailto:support@sourcegraph.com).
diff --git a/docs/code-search/code-navigation/how-to/index.mdx b/docs/code-search/code-navigation/how-to/index.mdx
new file mode 100644
index 000000000..4e7cfda1e
--- /dev/null
+++ b/docs/code-search/code-navigation/how-to/index.mdx
@@ -0,0 +1,8 @@
+# How-to guides
+
+- [Adding precise code navigation to CI/CD workflows](/code-search/code-navigation/how-to/adding_lsif_to_workflows)
+- [Combining SCIP uploads from CI/CD and auto-indexing](/code-search/code-navigation/how-to/combining_scip_uploads_from_ci_cd_and_auto_indexing)
+- [Go SCIP indexing](/code-search/code-navigation/how-to/index_a_go_repository)
+- [Index a TypeScript or JavaScript repository](/code-search/code-navigation/how-to/index_a_typescript_and_javascript_repository)
+- [Index other languages](/code-search/code-navigation/how-to/index_other_languages)
+- [Code intelligence policies resource usage best practices](/code-search/code-navigation/how-to/policies_resource_usage_best_practices)
\ No newline at end of file
diff --git a/docs/code-search/code-navigation/how-to/index_other_languages.mdx b/docs/code-search/code-navigation/how-to/index_other_languages.mdx
index d6962edb1..2e5120038 100644
--- a/docs/code-search/code-navigation/how-to/index_other_languages.mdx
+++ b/docs/code-search/code-navigation/how-to/index_other_languages.mdx
@@ -41,7 +41,7 @@ src code-intel upload -github-token=YourGitHubToken -file=dump.lsif
The `src-cli` upload command will try to infer the repository and git commit by invoking git commands on your local clone. If git is not installed, is older than version 2.7.0 or you are running on code outside of a git clone, you will need to also specify the `-repo` and `-commit` flags explicitly.
-If you're using Sourcegraph.com or have enabled [`lsifEnforceAuth`](https://docs.sourcegraph.com/admin/config/site_config#lsifEnforceAuth) you need to [supply a GitHub token](#proving-ownership-of-a-github-repository) supplied via the `-github-token` flag in the command above.
+If you're using Sourcegraph.com or have enabled [`lsifEnforceAuth`](/admin/config/site_config#lsifEnforceAuth) you need to [supply a GitHub token](#proving-ownership-of-a-github-repository) supplied via the `-github-token` flag in the command above.
Successful output will appear similar to the following example.
@@ -61,7 +61,7 @@ Once LSIF data has uploaded, open the Sourcegraph UI or your code host (i.e. Git
### Error Logs
-To view code graph indexer processing failures go to **Repository settings > Code graph data > Activity for this repository** in your Sourcegraph instance. Failures can occur if the LSIF data is invalid (e.g., malformed indexer output), or problems were encountered during processing (e.g., system-level bug, flaky connections, etc). Try again or [file an issue](https://github.com/sourcegraph/sourcegraph/issues/new) if the problem persists.
+To view code graph indexer processing failures go to **Repository settings > Code graph data > Activity for this repository** in your Sourcegraph instance. Failures can occur if the LSIF data is invalid (e.g., malformed indexer output), or problems were encountered during processing (e.g., system-level bug, flaky connections, etc). If you are unable to resolve the issue, please [contact support](https://help.sourcegraph.com/hc/en-us/requests/new).
### Common Errors
@@ -70,5 +70,5 @@ Possible errors that can happen during upload include:
- Clone in progress: the instance doesn't have the necessary data to process your upload yet, retry in a few minutes
- Unknown repository (404): check your `-endpoint` and make sure you can view the repository on your Sourcegraph instance
- Invalid commit (404): try visiting the repository at that commit on your Sourcegraph instance to trigger an update
-- Invalid auth when using Sourcegraph.com or when [`lsifEnforceAuth`](https://docs.sourcegraph.com/admin/config/site_config#lsifEnforceAuth) is `true` (401 for an invalid token or 404 if the repository cannot be found on GitHub.com): make sure your GitHub token is valid and that the repository is correct
-- Unexpected errors (500s): [file an issue](https://github.com/sourcegraph/sourcegraph/issues/new)
+- Invalid auth when using Sourcegraph.com or when [`lsifEnforceAuth`](/admin/config/site_config#lsifEnforceAuth) is `true` (401 for an invalid token or 404 if the repository cannot be found on GitHub.com): make sure your GitHub token is valid and that the repository is correct
+- Unexpected errors (500s): reach out to your Sourcegraph support team for assistance
diff --git a/docs/code-search/code-navigation/how-to/policies_resource_usage_best_practices.mdx b/docs/code-search/code-navigation/how-to/policies_resource_usage_best_practices.mdx
index 26bb79751..9dfc8cda7 100644
--- a/docs/code-search/code-navigation/how-to/policies_resource_usage_best_practices.mdx
+++ b/docs/code-search/code-navigation/how-to/policies_resource_usage_best_practices.mdx
@@ -1,6 +1,6 @@
# Code intelligence policies resource usage best practices
-This guide gives an overview of best practices when defining [auto-index scheduling](/code-search/code-navigation/auto_indexing#configure-auto-indexing) and [data retention](/code-search/code-navigation/how-to/policies_resource_usage_best_practices) policies as it relates to resource usage (particular the disk requirement for Postgres).
+This guide gives an overview of best practices when defining [auto-index scheduling](/code-search/code-navigation/auto_indexing#configure-auto-indexing) and data retention policies as it relates to resource usage (particular the disk requirement for Postgres).
**Auto-index scheduling policies** define the _cadence_ at which particular repositories will be subject to have indexing jobs scheduled (depending on the repository's configuration and contents). These policies define when a commit of a repository should be marked as an auto-index job candidate.
diff --git a/docs/code-search/code-navigation/index.mdx b/docs/code-search/code-navigation/index.mdx
index 4e093acc1..61d3fe621 100644
--- a/docs/code-search/code-navigation/index.mdx
+++ b/docs/code-search/code-navigation/index.mdx
@@ -30,7 +30,6 @@ Code Navigation helps you with the following tasks:
| [Popover](/code_navigation/explanations/features#popover) | Quickly view a symbol's type signature and documentation without switching to another source file |
| [Go to definition](/code_navigation/explanations/features#go-to-definition) | Click the button or symbol name, navigates you to the symbol's definition |
| [Find references](/code_navigation/explanations/features#find-references) | Selecting it in the popover lists all references, definitions, and implementations at the bottom, including precise and search-based results |
-| [Dependency navigation](/code_navigation/explanations/features#dependency-navigation) (Beta) | Extends code navigation to work across [packages](/admin/external_service/package-repos) |
| [Find implementations](/code_navigation/explanations/features#find-implementations) | Click to go to a symbol's interface definition or, at the interface, see all implementations across repositories, including interfaces implemented by a struct |
| [Perform an action](/code-search/code-navigation/features#perform-an-action) | When browsing code, you can perform a couple of actions like open in code host, raw download and view blame. |
diff --git a/docs/code-search/code-navigation/inference_configuration.mdx b/docs/code-search/code-navigation/inference_configuration.mdx
index cd03142fe..d713711f7 100644
--- a/docs/code-search/code-navigation/inference_configuration.mdx
+++ b/docs/code-search/code-navigation/inference_configuration.mdx
@@ -40,6 +40,8 @@ To **add** additional behaviors, you can create and register a new **recognizer*
A _path recognizer_ is a concrete recognizer that advertises a set of path _globs_ it is interested in, then invokes its `generate` function with matching paths from a repository. In the following, all files matching `Snek.module` (`Snek.module`, `proj/Snek.module`, `proj/sub/Snek.module`, etc) are passed to a call to `generate` (if non-empty). The generate function will then return a list of indexing job descriptions. The [guide for auto-indexing jobs configuration](/code-search/code-navigation/auto_indexing_configuration#keys-1) gives detailed descriptions on the fields of this object.
+The ordering of paths and limits are defined in the [Ordering guarantees and limits](#ordering-guarantees-and-limits) section.
+
```lua
local path = require("path")
local pattern = require("sg.autoindex.patterns")
@@ -105,27 +107,54 @@ This auto-indexing-specific library defines the following two functions.
- Type:
```
({
+ -- List of patterns to match against paths in the repository
"patterns": array[pattern],
+ -- List of patterns to match against paths in the repository
+ -- for getting contents (see contents_by_path below)
"patterns_for_content": array[pattern],
- "generate": (registration_api, paths: array[string], contents_by_path: table[string, string]) -> array[index_job],
+ -- Callback function invoked with paths requested by patterns above
+ -- for creating index jobs
+ "generate": (
+ registration_api,
+ -- List of paths obtained from 'patterns' and
+ -- 'patterns_for_content' combined.
+ paths: array[string],
+ -- Table mapping paths to contents for paths matched by
+ -- 'patterns_for_content'
+ contents_by_path: table[string, string]
+ ) -> array[index_job],
}) -> recognizer
```
where `index_job` is an object with the following shape:
```
index_job = {
- "indexer": string, -- Docker image for the indexer
- "root": string, -- working directory for invoking the indexer
- "steps": array[{ -- preparatory steps to run before invoking the indexer (e.g. installing dependencies)
- "root": string, -- working directory for this step
- "image": string -- Docker image to use for preparatory step
- "commands": array[string] -- List of commands to run inside the Docker image
+ -- Docker image for the indexer
+ "indexer": string,
+ -- Working directory for invoking the indexer
+ "root": string,
+ -- Preparatory steps to run before invoking the indexer
+ -- such as installing dependencies
+ "steps": array[{
+ -- Working directory for this step
+ "root": string,
+ -- Docker image to use for this step
+ "image": string,
+ -- List of commands to run inside the Docker image
+ "commands": array[string]
}],
- "local_steps": array[string] -- List of commands to run inside the indexer image at "root" before invoking
- -- the indexer (e.g. to install dependencies)
- "indexer_args": array[string], -- command-line invocation for the indexer
- "outfile": string, -- path to the index generated by the indexer
- "requested_envvars": array[string], -- List of environment variables needed. These are made accessible
- -- to steps, local_steps, and the indexer_args command.
+ -- List of commands to run inside the indexer image at "root"
+ -- before invoking the indexer, such as installing dependencies.
+ "local_steps": array[string],
+ -- Command-line invocation for the indexer
+ "indexer_args": array[string],
+ -- Path to the index generated by the indexer
+ "outfile": string,
+ -- Names of necessary environment variables. These are
+ -- made accessible to steps, local_steps, and the
+ -- indexer_args command.
+ --
+ -- These are generally used for passing secrets.
+ "requested_envvars": array[string],
}
```
For installing dependencies, if the indexer image contains the relevant package manager(s),
@@ -186,3 +215,31 @@ This library defines the following two JSON utility functions:
### `fun`
[Lua Functional](https://github.com/luafun/luafun/tree/cb6a7e25d4b55d9578fd371d1474b00e47bd29f3#lua-functional) is a high-performance functional programming library accessible via `local fun = require("fun")`. This library has a number of functional utilities to help make recognizer code a bit more expressive.
+
+## Ordering guarantees and limits
+
+Sourcegraph enforces several limits to avoid inference timeouts and ever-growing auto-indexing queues. These limits apply for a single round of inference for a single repository, combined across all recognizers, including any implicitly included Sourcegraph recognizers.
+
+Limit | Default value
+:-----|-------------:
+The number of auto-indexing jobs inferred | 100
+The number of total paths passed to the inference script's `generate` functions as the second argument `paths` | 500
+The number of total paths with contents passed to the inference script's `generate` functions as the third argument `contents_by_paths` | 100
+Maximum size limit for file contents, in bytes | 1 MiB
+
+Please reach out to Sourcegraph support if you'd like to change these limits.
+
+Auto-indexing jobs and paths are first ranked based on the criteria described below. If the number of jobs and/or paths exceeds the limits above, lower ranked items are discarded.
+
+- For auto-indexing jobs, ranking is done based on the following:
+
+ - Descending order of indexer frequency (total number of inferred jobs with the same `indexer` field).
+ - Ascending lexicographic ordering of `indexer`.
+ - Descending order of number of path components for `root`. Shallower roots are preferrred over deeper ones as they are more likely to cover more code.
+ - Ascending lexicographic ordering of `root` paths.
+
+- For paths, ranking happens in the following order:
+
+ - Paths for which the contents are requested are ranked higher.
+ - Paths with fewer components are ranked higher.
+ - Otherwise, lexicographic ordering of paths is used.
diff --git a/docs/code-search/code-navigation/precise_code_navigation.mdx b/docs/code-search/code-navigation/precise_code_navigation.mdx
index dd386b201..639abe2cb 100644
--- a/docs/code-search/code-navigation/precise_code_navigation.mdx
+++ b/docs/code-search/code-navigation/precise_code_navigation.mdx
@@ -1,5 +1,12 @@
# Precise Code Navigation
+
+ Supported on [Enterprise](/pricing/enterprise) plans.
+
+ Available via the Web app.
+
+
+
Learn and understand about Precise Code Navigation.
Precise Code Navigation is an opt-in feature that is enabled from your admin settings and requires you to upload indexes for each repository to your Sourcegraph instance. Once setup is complete on Sourcegraph, precise code navigation is available for use across popular development tools:
@@ -15,7 +22,7 @@ Precise code navigation relies on the open source [SCIP Code Intelligence Protoc
## Setting up code navigation for your codebase
-There are several options for setting up precise code navigation:
+There are several options for setting up precise code navigation listed below. However, we always recommend you start by manually indexing your repo locally using the [approriate indexer](/code-search/code-navigation/writing_an_indexer#quick-reference) for your language. Code and build systems can vary by project and ensuring you can first succesfully run the indexer locally leads to a smoother experience since it is vastly easier to debug and iterate on any issues locally before trying to do so in CI/CD or in Auto-Indexing.
1. **Manual indexing**. Index a repository and upload it to your Sourcegraph instance:
@@ -25,12 +32,8 @@ There are several options for setting up precise code navigation:
- [Index a Python repository](https://sourcegraph.com/github.com/sourcegraph/scip-python)
- [Index a Ruby repository](https://sourcegraph.com/github.com/sourcegraph/scip-ruby)
-2. [**Automate indexing via CI**](/code_navigation/how-to/adding_lsif_to_workflows): Add indexing and uploading to your CI setup.
+2. [**Automate indexing via CI**](/code-search/code-navigation/how-to/adding_scip_to_workflows): Add indexing and uploading to your CI setup.
3. [**Auto-indexing**](/code-search/code-navigation/auto_indexing#enable-auto-indexing): Sourcegraph will automatically index your repositories and enable precise code navigation for them.
-4. Set up **auto-dependency indexing** to navigate and search through the dependencies your code uses:
- - **Go**: Enable [auto-indexing](/code-search/code-navigation/auto_indexing) and Sourcegraph will start indexing your dependencies.
- - **JavaScript, TypeScript**: Enable [auto-indexing](/code-search/code-navigation/auto_indexing#enable-auto-indexing) and set up an [npm dependencies code host](/integration/npm).
- - **Java, Scala, Kotlin**: Enable [auto-indexing](/code-search/code-navigation/auto_indexing) and set up a [JVM dependencies code host](/integration/jvm).
## Supported languages and indexers
@@ -40,7 +43,7 @@ Precise Code Navigation requires language-specific indexes to be generated and u
| ---------------------- | --------------------------------------------------------------------------------- | --------------------- |
| Go | [scip-go](https://sourcegraph.com/github.com/sourcegraph/scip-go) | 🟢 Generally available |
| TypeScript, JavaScript | [scip-typescript](https://sourcegraph.com/github.com/sourcegraph/scip-typescript) | 🟢 Generally available |
-| C, C++ | [scip-clang](https://sourcegraph.com/github.com/sourcegraph/scip-clang) | 🟡 Partially available |
+| C, C++, CUDA | [scip-clang](https://sourcegraph.com/github.com/sourcegraph/scip-clang) | 🟢 Generally available |
| Java, Kotlin, Scala | [scip-java](https://sourcegraph.com/github.com/sourcegraph/scip-java) | 🟢 Generally available |
| Rust | [rust-analyzer](https://sourcegraph.com/github.com/rust-lang/rust-analyzer) | 🟢 Generally available |
| Python | [scip-python](https://sourcegraph.com/github.com/sourcegraph/scip-python) | 🟢 Generally available |
@@ -55,18 +58,19 @@ The following repositories have precise code navigation enabled:
| **Programming Language** | **Repos** |
| ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| Go | - [`kubernetes/kubernetes`](https://sourcegraph.com/github.com/kubernetes/kubernetes@f4abde9e57cc30efcc8f79c9ebd791d15f4164c4/-/blob/cmd/cloud-controller-manager/main.go?L45:2&popover=pinned) - [`gohugoio/hugo`](https://sourcegraph.com/github.com/gohugoio/hugo@d1278f696aa062950471587bf3dc4a1604cf5d5b/-/blob/common/hugo/hugo.go?L63:15&popover=pinned) - [`gin-gonic/gin`](https://sourcegraph.com/github.com/gin-gonic/gin@6de2245e6265a077326d13cb249378b2d27ad781/-/blob/routergroup.go?L33:6&popover=pinned) |
-| Java | - [`netflix/hystrix`](https://sourcegraph.com/github.com/Netflix/Hystrix@3cb21589895e9f8f87cfcdbc9d96d9f63d48b848/-/blob/hystrix-core/src/main/java/com/netflix/hystrix/HystrixRequestCache.java?L77:40#tab=references) - [`jkd@v11`](https://sourcegraph.com/jdk@v11/-/blob/java.base/java/util/Iterator.java?L130:18#tab=references) |
-| Scala | - [`scalameta/metals`](https://sourcegraph.com/github.com/scalameta/metals@5bd656f19733903fc0c2ecee844548dad182f5a7/-/blob/metals/src/main/scala/scala/meta/metals/Main.scala?L46:20#tab=references) |
-| Kotlin | - [`fwcd/kotlin-language-server`](https://sourcegraph.com/github.com/fwcd/kotlin-language-server@1.3.0/-/blob/server/src/main/kotlin/org/javacs/kt/CompiledFile.kt?L22:7&popover=pinned) |
-| Python | - [`django/django`](https://sourcegraph.com/github.com/django/django@b2eff16806057095c7dd3daa9402ad615e51627f/-/blob/django/core/files/storage.py?L70:9&popover=pinned) - [`pre-commit/pre-commit`](https://sourcegraph.com/github.com/pre-commit/pre-commit@170335cbb63796761d592f8eacd66c78de8dd912/-/blob/pre_commit/languages/dart.py?L35:25&popover=pinned) |
-| TypeScript | - [`vuejs/vue`](https://sourcegraph.com/github.com/vuejs/vue@bf64c4da5ca516924d940bb29f3e59b0fa5863c9/-/blob/src/core/observer/index.ts?L68:3&popover=pinned) - [`angular/angular`](https://sourcegraph.com/github.com/angular/angular@bdf57ab14a310f6e6811d9f990cbbd3612bde538/-/blob/packages/core/src/interface/simple_change.ts?L18:14&popover=pinned) - [`nestjs/nest`](https://sourcegraph.com/github.com/nestjs/nest@d5b6e489209090544a4f39c4f4a716b9800ca6a8/-/blob/packages/microservices/listeners-controller.ts?L39:9&popover=pinned) - [`puppeteer/puppeteer`](https://sourcegraph.com/github.com/puppeteer/puppeteer@79e11985ba44b72b1ad6b8cd861fe316f1945e64/-/blob/src/common/Browser.ts?L54:11#tab=references) |
-| Ruby | - [`Shopify/shopify-api-ruby`](https://sourcegraph.com/github.com/Shopify/shopify-api-ruby@v11.1.0/-/blob/lib/shopify_api/auth/auth_scopes.rb?L23:33&popover=pinned) - [`Homebrew/brew`](https://sourcegraph.com/github.com/Homebrew/brew@3.5.9/-/blob/Library/Homebrew/utils/bottles.rb?L18:18&popover=pinned) |
-| Rust | - [`rust-lang/cargo`](https://sourcegraph.com/github.com/rust-lang/cargo/-/blob/src/cargo/core/compiler/compilation.rs?L15:12&popover=pinned#tab=references) - [`rust-lang/rustlings`](https://sourcegraph.com/github.com/rust-lang/rustlings@c923e7af73a91970d2e63e03babbca9cc0817551/-/blob/src/verify.rs?L147:15&popover=pinned) |
+| Go | - [`kubernetes/kubernetes`](https://sourcegraph.com/github.com/kubernetes/kubernetes@master/-/blob/cmd/cloud-controller-manager/main.go?L45:2&popover=pinned) - [`gohugoio/hugo`](https://sourcegraph.com/github.com/gohugoio/hugo@master/-/blob/common/hugo/hugo.go?L63:15&popover=pinned) - [`gin-gonic/gin`](https://sourcegraph.com/github.com/gin-gonic/gin@master/-/blob/routergroup.go?L33:6&popover=pinned) |
+| Java | - [`sourcegraph/jetbrains`](https://sourcegraph.com/github.com/sourcegraph/jetbrains/-/blob/src/main/java/com/sourcegraph/cody/CodyActionGroup.java?L13) |
+| Scala | - [`neandertech/langoustine`](https://sourcegraph.com/github.com/neandertech/langoustine/-/blob/modules/lsp/src/main/scala/Communicate.scala?L28) |
+| Kotlin | - [`sourcegraph/jetbrains`](https://sourcegraph.com/github.com/sourcegraph/jetbrains/-/blob/src/main/kotlin/com/sourcegraph/cody/agent/CodyAgent.kt?L42) |
+| Python | - [`pipecat-ai/pipecat-flows`](https://sourcegraph.com/github.com/pipecat-ai/pipecat-flows/-/blob/src/pipecat_flows/actions.py?L38) |
+| TypeScript | - [`vuejs/vue`](https://sourcegraph.com/github.com/vuejs/vue@main/-/blob/src/core/observer/index.ts?L68:3&popover=pinned) |
+| Ruby | - [`Homebrew/brew`](https://sourcegraph.com/github.com/Homebrew/brew@master/-/blob/Library/Homebrew/utils/bottles.rb?L18:18&popover=pinned) |
+| Rust | - [`rust-lang/cargo`](https://sourcegraph.com/github.com/rust-lang/cargo/-/blob/src/cargo/core/compiler/compilation.rs?L15:12&popover=pinned#tab=references) - [`rust-lang/rustlings`](https://sourcegraph.com/github.com/rust-lang/rustlings@main/-/blob/src/dev.rs?L10) |
+| C, C++ | - [`sourcegraph/cxx-precise-examples`](https://sourcegraph.com/github.com/sourcegraph/cxx-precise-examples/-/blob/piecewise_monorepo/arithmetic/src/multiplication.cpp?L3) |
## More resources
-
-
+
+
diff --git a/docs/code-search/code-navigation/private-maven-repository-configuration.mdx b/docs/code-search/code-navigation/private-maven-repository-configuration.mdx
new file mode 100644
index 000000000..971248494
--- /dev/null
+++ b/docs/code-search/code-navigation/private-maven-repository-configuration.mdx
@@ -0,0 +1,94 @@
+# Configuring Maven to Use a Private Repository for Auto-Indexing
+
+Configuring Maven to use a private repository, such as Nexus or Artifactory, with Sourcegraph is essential when dependencies are retrieved from private repositories that require authentication (as opposed to public repositories such as Maven Central). This guide covers steps to set up Maven for [scip-java](https://sourcegraph.github.io/scip-java/) indexing with a private repository, ensuring secure and consistent dependency resolution.
+
+## Testing the Configuration on a Single Repository
+
+To test and validate the Maven configuration, modify a single repository’s auto-indexing settings to include a custom settings.xml file. Refer to (Maven's official docs)[https://maven.apache.org/settings.html#quick-overview] for an overview of how this file is used to configure Maven repositories and other settings.
+
+### Add Custom Index Job Configuration
+
+- Access the repository’s index settings in Sourcegraph and open the “Raw” configuration panel.
+- Insert the following configuration:
+
+ ```json
+ {
+ "steps": [],
+ "local_steps": [
+ "mkdir -p ~/.m2",
+ "echo ' repo $ARTIFACTORY_USER $ARTIFACTORY_PASSWORD ' > ~/.m2/settings.xml"
+ ],
+ "root": "",
+ "indexer": "sourcegraph/scip-java:latest",
+ "indexer_args": [
+ "scip-java",
+ "index",
+ "--build-tool=auto"
+ ],
+ "outfile": "index.scip",
+ "requestedEnvVars": [
+ "ARTIFACTORY_USER",
+ "ARTIFACTORY_PASSWORD"
+ ]
+ }
+ ```
+
+### Set Up Executor Secrets
+
+Before triggering the indexing process, make sure the environment variables `$ARTIFACTORY_USER` and `$ARTIFACTORY_PASSWORD` are created as [Executor Secrets](https://sourcegraph.com/docs/admin/executors/executor_secrets).
+
+### Trigger Indexing
+
+After configuring the repository, navigate to the "Precise Indexes" tab and click "Enqueue" to start indexing.
+
+## Automating the Configuration Across All Repositories
+
+After verifying the configuration on a single repository, you can automate the setup across all repositories by modifying the inference configuration using a Lua script.
+
+### Create or Update the Lua Script
+
+Navigate to `site-admin -> Code Graph -> Inference`, and replace or add the following Lua script for [scip-java](https://sourcegraph.github.io/scip-java/) indexing with Maven’s `settings.xml` setup:
+
+```lua
+local path = require("path")
+local pattern = require("sg.autoindex.patterns")
+local recognizer = require("sg.autoindex.recognizer")
+local patterns = require "internal_patterns"
+
+local new_steps = {
+ 'mkdir -p ~/.m2',
+ [[echo "repo $ARTIFACTORY_USER $ARTIFACTORY_PASSWORD " > ~/.m2/settings.xml]]
+}
+
+local new_requested_env_variables = {'ARTIFACTORY_USER', 'ARTIFACTORY_PASSWORD'}
+local java_indexer = require("sg.autoindex.indexes").get "java"
+
+local custom_java_recognizer = recognizer.new_path_recognizer {
+ patterns = {
+ pattern.new_path_basename("pom.xml"),
+ pattern.new_path_basename("build.gradle"),
+ pattern.new_path_basename("build.gradle.kts"),
+ },
+ generate = function(api, paths)
+ api:register({
+ local_steps = new_steps,
+ requested_envvars = new_requested_env_variables,
+ root = path.dirname(paths[1]),
+ outfile = "index.scip",
+ indexer = java_indexer,
+ indexer_args = { "scip-java", "index", "--build-tool=auto" }
+ })
+ end
+}
+
+return require("sg.autoindex.config").new({
+ ["custom.java"] = custom_java_recognizer,
+ ["sg.java"] = false
+})
+```
+
+### Verify the Configuration
+
+Once the Lua script is applied, you can verify that the configuration works by using the **"Preview results"** button in the Lua script editor under the "Inference Configuration" section. This will display the inferred index jobs for your repositories, showing details such as the root directory, indexer, indexer arguments, and environment variables used for each job.
+
+If everything is configured correctly, the dependencies will be pulled from the specified private repository without issues.
diff --git a/docs/code-search/code-navigation/rockskip.mdx b/docs/code-search/code-navigation/rockskip.mdx
index 999acf866..d20564f32 100644
--- a/docs/code-search/code-navigation/rockskip.mdx
+++ b/docs/code-search/code-navigation/rockskip.mdx
@@ -138,3 +138,7 @@ Rockskip indexes the new commits since the previously indexed commit, so if it's
## How does it work?
For a deeper dive into the index and query structures, check out the [explanatory RFC](https://docs.google.com/document/d/1sDDpZaWdGtIaiNLNB8QsLwHTvH10fhEKpEa4qcog5vg/edit?usp=sharing).
+
+## Limitations
+
+- Rockskip does not support file paths that are not encoded in UTF-8. Consequently, any symbols in files with non-UTF-8 encoded paths will not be indexed.
\ No newline at end of file
diff --git a/docs/code-search/code-navigation/search_based_code_navigation.mdx b/docs/code-search/code-navigation/search_based_code_navigation.mdx
index 98d8a87e2..1916a46c4 100644
--- a/docs/code-search/code-navigation/search_based_code_navigation.mdx
+++ b/docs/code-search/code-navigation/search_based_code_navigation.mdx
@@ -1,12 +1,19 @@
# Search-based Code Navigation
+
+ Supported on [Enterprise](/pricing/enterprise) plans.
+
+ Available via VS Code and JetBrains editor extensions and the Web.
+
+
+
Learn and understand about Search-based Code Navigation.
Sourcegraph comes with a default built-in code navigation provided by search-based heuristics. It works out of the box with all of the most popular programming languages.
## How does it work?
-[Search-based Code Navigation](https://github.com/sourcegraph/sourcegraph-basic-code-intel) provides 3-core navigation features:
+Search-based Code Navigation provides 3-core navigation features:
- **Jump to definition**: Performs a [symbol search](/code-search/features#symbol-search).
- **Hover documentation**: First, finds the definition. Then, extracts documentation from comments near the definition.
@@ -35,12 +42,12 @@ The symbols container recognizes these environment variables:
| `ROCKSKIP_MIN_REPO_SIZE_MB` | N/A | In combination with `USE_ROCKSKIP=true` all repos that are at least this big will be indexed using Rockskip |
| `MAX_CONCURRENTLY_INDEXING` | 4 | Maximum number of repositories being indexed at a time by [Rockskip](/code-search/code-navigation/rockskip) (also limits ctags processes) |
-The default values for these environment variables come from [`config.go`](https://github.com/sourcegraph/sourcegraph/blob/eea895ae1a8acef08370a5cc6f24bdc7c66cb4ed/cmd/symbols/config.go#L42-L59).
+The default values for these environment variables come from [`config.go`](https://github.com/sourcegraph/sourcegraph-public-snapshot/blob/eea895ae1a8acef08370a5cc6f24bdc7c66cb4ed/cmd/symbols/config.go#L42-L59).
To enable precise code navigation for your repository, see our [docs here](/code-search/code-navigation/precise_code_navigation#setting-up-code-navigation-for-your-codebase).
## More resources
-
+
diff --git a/docs/code-search/code-navigation/syntactic_code_navigation.mdx b/docs/code-search/code-navigation/syntactic_code_navigation.mdx
new file mode 100644
index 000000000..f186daa1f
--- /dev/null
+++ b/docs/code-search/code-navigation/syntactic_code_navigation.mdx
@@ -0,0 +1,59 @@
+# Syntactic Code Navigation
+
+
+ Supported on [Enterprise](/pricing/enterprise) plans.
+
+ This feature is currently in Beta and enabled by default for Cloud customers
+
+
+
+Syntactic code navigation is a zero configuration feature that improves code navigation for certain languages in the absence of
+[Precise code navigation](./precise_code_navigation) set up. It works by periodically indexing repositories for which it is [enabled](#enabling-syntactic-code-navigation), using high level syntax analysis heuristics.
+
+This mechanism is more robust than search-based navigation, but less powerful than Precise code navigation.
+When syntactic indexing data is available for a given file and repository, it will be selected over search-based navigation automatically,
+but only if Precise data is not available. To summarize, the order of priorities is as follows:
+
+- Precise data
+- Syntactic, if no precise data available
+- Search-based, if no syntactic available
+
+## Enabling Syntactic code navigation
+
+First, enable the experimental feature flag in Site config:
+
+```json
+ "experimentalFeatures.codeintelSyntacticIndexing.enabled": true
+```
+
+Next, you need to ensure that syntactic indexing is enabled in a code graph configuration policy. Note that for cloud customers this feature is enabled by default for all repositories, as part of
+automatically managed policy called `[Sourcegraph Managed] Head of default branch policy`.
+
+For all other deployments, you will need to create a HEAD policy with "Syntactic indexing" enabled:
+
+
+
+Syntactic indexing can only be enabled if the policy type is set to HEAD – only indexing the tip of default branch on each repository. You may choose to apply this policy only to selected repositories, although the recommendation is to enable it instance-wide.
+
+## Supported languages
+
+Syntactic code navigation requires language-specific implementations, and we currently support the following languages:
+
+ - [Java](https://www.java.com/en/)
+ - [Go](https://go.dev/)
+ - [Scala](https://scala-lang.org)
+ - [C#](https://learn.microsoft.com/en-us/dotnet/csharp/)
+ - [C++](https://isocpp.org/)
+
+We are constantly looking to expand the list of supported languages, with Python, Typescript/Javascript, and C planned.
+If you are interested in syntactic indexing for these or any other languages, please contact your Sourcegraph account representative.
+
+## Comparison with Precise and Search-based
+
+Syntactic code navigation falls between Precise and Search-based code navigation both in terms of quality of navigation,
+and in terms of effort to maintain for different languages:
+
+
+
+As the indexing does not involve build tools or actual compilers, it can be performed in isolated environment, with no network access
+and no configuration, unlike Precise.
diff --git a/docs/code-search/code-navigation/troubleshooting.mdx b/docs/code-search/code-navigation/troubleshooting.mdx
index 1313cd01a..c85f484e6 100644
--- a/docs/code-search/code-navigation/troubleshooting.mdx
+++ b/docs/code-search/code-navigation/troubleshooting.mdx
@@ -79,7 +79,7 @@ src api -query 'query ViewerSettings { viewerSettings { final } }' | jq -r '.dat
### Traces
-[Jaeger](https://docs.sourcegraph.com/admin/observability/tracing) traces should be supplied if there is a noticeable performance issue in receiving code navigation results in the SPA. Depending on the type of user operation that is slow, we will need traces for different request types.
+[Jaeger](/admin/observability/tracing) traces should be supplied if there is a noticeable performance issue in receiving code navigation results in the SPA. Depending on the type of user operation that is slow, we will need traces for different request types.
| **Send traces for requests** | **When latency is high** |
| --------------------------------- | ------------------------------------------------------------------- |
diff --git a/docs/code-search/compare-file-filtering.mdx b/docs/code-search/compare-file-filtering.mdx
new file mode 100644
index 000000000..b2bd3776f
--- /dev/null
+++ b/docs/code-search/compare-file-filtering.mdx
@@ -0,0 +1,118 @@
+# File Filtering in the Repository Comparison Page
+
+The repository comparison page provides powerful file filtering capabilities that allow you to focus on specific files in a comparison. The system supports multiple ways to specify which files you want to view when comparing branches, tags, or commits.
+
+## Query parameter-based file filtering
+
+The comparison page supports three different query parameters to specify which files to include in the comparison:
+
+### 1. Individual file paths
+
+You can specify individual files using either of these parameters:
+
+- `filePath=path/to/file.js` - Primary parameter for specifying files
+- `f=path/to/file.js` - Shorthand alternative
+
+Multiple files can be included by repeating the parameter:
+
+```shell
+?filePath=src/index.ts&filePath=src/components/Button.tsx
+```
+
+### 2. Compressed file lists
+
+For comparisons with a large number of files, the system supports compressed file lists (newline-separated):
+
+- `compressedFileList=base64EncodedCompressedData` - Efficiently packs many file paths
+
+This parameter efficiently transmits large file paths using base64-encoded, gzip-compressed data. The compression allows hundreds or thousands of files to be included in a URL without exceeding length limits, which vary depending on the browser, HTTP server, and other services involved, like Cloudflare.
+
+```typescript
+// Behind the scenes, the code decompresses file lists using:
+const decodedData = atoburl(compressedFileList)
+const compressedData = Uint8Array.from([...decodedData].map(char => char.charCodeAt(0)))
+const decompressedData = pako.inflate(compressedData, { to: 'string' })
+```
+
+One way to create a list of files for the `compressedFileList` parameter is to use Python's built-in libraries to compress and encode using url-safe base64 encoding (smaller than base64-encoding, then url-encoding).
+
+```shell
+python3 -c "import sys, zlib, base64; sys.stdout.write(base64.urlsafe_b64encode(zlib.compress(sys.stdin.buffer.read())).decode().rstrip('='))" < list.of.files > list.of.files.deflated.b64url
+```
+
+### 3. Special focus mode
+
+You can focus on a single file using:
+
+- `focus=true&filePath=path/to/specific/file.js` - Show only this file in detail view
+
+## File filtering UI components
+
+The comparison view provides several UI components to help you filter and navigate files:
+
+### FileDiffPicker
+
+The FileDiffPicker component allows you to:
+
+- Search for files by name or path
+- Filter files by type/extension
+- Toggle between showing all files or only modified files
+- Sort files by different criteria (path, size of change, etc.)
+
+This component uses a dedicated file metadata query optimized for quick filtering. Results are displayed as you type. Through client-side filtering, the component can efficiently handle repositories with thousands of files.
+
+### File navigation
+
+When viewing diffs, you can:
+
+- Click on any file in the sidebar to switch to that file
+- Use keyboard shortcuts to navigate between files
+- Toggle between expanded and collapsed views of files
+- Show or hide specific changes (additions, deletions, etc.)
+
+### URL-based filtering
+
+Any filters you apply through the UI will update the URL with the appropriate query parameters. This means you can:
+
+1. Share specific filtered views with others
+2. Bookmark comparisons with specific file filters
+3. Navigate back and forth between different filter states using browser history
+
+## Implementation details
+
+The system makes strategic performance trade-offs to provide a smooth user experience:
+
+```typescript
+/*
+ * For customers with extremely large PRs with thousands of files,
+ * we fetch all file paths in a single API call to enable client-side filtering.
+ *
+ * This eliminates numerous smaller API calls for server-side filtering
+ * when users search in the FileDiffPicker. While requiring one large
+ * initial API call, it significantly improves subsequent search performance.
+ */
+```
+
+The file filtering system uses a specialized file metadata query that is faster and lighter than the comprehensive file diffs query used to display actual code changes.
+
+## Usage examples
+
+1. View only JavaScript files:
+
+```bash
+ ?filePath=src/utils.js&filePath=src/components/App.js
+```
+
+2. Focus on a single file:
+
+```bash
+ ?focus=true&filePath=src/components/Button.tsx
+ ```
+
+3. Use a compressed file list for many files:
+
+```bash
+ ?compressedFileList=H4sIAAAAAAAAA2NgYGBg...
+```
+
+This flexible filtering system allows you to create customized views of repository comparisons, making reviewing changes in large projects easier.
diff --git a/docs/code-search/features.mdx b/docs/code-search/features.mdx
index 338f86271..0c8ac9a7d 100644
--- a/docs/code-search/features.mdx
+++ b/docs/code-search/features.mdx
@@ -2,11 +2,15 @@
Learn and understand more about Sourcegraph's Code Search features and core functionality.
+
+
+
+
## Powerful, flexible queries
Sourcegraph code search performs full-text searches and supports both regular expression and exact queries. By default, Sourcegraph searches across all your repositories. Our search query syntax allows for advanced queries, such as searching over any branch or commit, narrowing searches by programming language or file pattern, and more.
-See the [query syntax](/code-search/queries) and [query language reference](/code-search/queries/language) documentation for a comprehensive overview of supported syntax.
+See the [search query syntax](/code-search/queries) documentation for a comprehensive overview of supported syntax.
## Data freshness
@@ -14,16 +18,6 @@ Searches scoped to specific repositories are always up-to-date. Sourcegraph auto
Unscoped search results over large repository sets may trail latest default branch revisions by some interval of time. This interval is a function of the number of repositories and the computational resources devoted to search indexing.
-## Max file size
-
-By default, files larger than 1 MB are excluded from search results. Use the [search.largeFiles](/admin/config/site_config#search-largeFiles) keyword to specify files to be indexed and searched regardless of size. Regardless of where you set the `search.largeFiles` environment variable, Sourcegraph will continue to ignore binary files, even if the size of the file is less than the limit you set.
-
-## Language-aware structural code search
-
-Sourcegraph supports advanced code search for specifically matching patterns inside code structures, like function parameters and loop bodies.
-
-See the [structural search](/code-search/types/structural) documentation for a detailed explanation of this search mode.
-
## Commit diff search
Search over commit diffs using `type:diff` to see how your codebase has changed over time. This is often used to find changes to particular functions, classes, or areas of the codebase when debugging.
@@ -46,14 +40,6 @@ Searching for symbols makes it easier to find specific functions, variables, and
Saved searches let you save and describe search queries so you can easily monitor the results on an ongoing basis. You can create a saved search for anything, including diffs and commits across all branches of your repositories. Saved searches can be an early warning system for common problems in your code and a way to monitor best practices, the progress of refactors, etc.
-See the [saved searches](/code-search/types/saved_searches) documentation for instructions for setting up and configuring saved searches.
-
-## Suggestions
-
-As you type a query, the menu below will contain suggestions based on the query. Use the keyboard or mouse to select a suggestion. For example, if your query is `repo:foo file:\.js$ hello`, the suggestions will consist of the list of files that match your query.
-
-You can also type in the partial name of a repository or filename to quickly jump to it. For example, typing in just `foo` would show you a list of repositories (first) and files with names containing _foo_.
-
## Search contexts
Search contexts help you search the code you care about on Sourcegraph. A search context represents a set of repositories at specific revisions on a Sourcegraph instance that will be targeted by search queries by default.
@@ -66,86 +52,11 @@ See the [search contexts](/code-search/working/search_contexts) documentation to
## Multi-branch indexing
- Multi-branch indexing is in the Experimental stage and must be enabled by a Sourcegraph site admin in site configuration.
-
-The most common branch to search is your default branch. To speed up this common operation, Sourcegraph maintains an index of the source code on your default branch. Some organizations have other branches that are regularly searched. To speed up search for those branches, Sourcegraph can be configured to index up to 64 branches per repository.
-
-Your site admin can configure indexed branches in site configuration under the `experimentalFeatures.search.index.branches` setting. For example:
-
-``` json
-"experimentalFeatures": {
- "search.index.branches": {
- "github.com/sourcegraph/sourcegraph": ["3.15", "develop"],
- "github.com/sourcegraph/src-cli": ["next"]
- }
-}
-```
-
-Indexing multiple branches will add additional resource requirements to Sourcegraph (particularly memory). The indexer will deduplicate documents between branches. So the size of your index will grow in relation to the number of unique documents. Refer to our [resource estimator](https://docs.sourcegraph.com/admin/deploy/resource_estimator) to estimate whether additional resources are required.
-
- The default branch (HEAD) and all revisions specified in version contexts are always indexed.
+The most common branch to search is your default branch. To speed up this common operation, Sourcegraph maintains an index of the source code on your default branch. Some organizations have other branches that are regularly searched. To speed up search for those branches, Sourcegraph can be configured to index up to 64 branches per repository. Your site admin can configure multi-branch indexing through [site configuration](/admin/search#multi-branch-indexing).
## Exclude files and directories
-You can exclude files and directories from search by adding the file `.sourcegraph/ignore` to the root directory of your repository. Sourcegraph interprets each line in the _ignore_ file as a glob pattern. Files or directories matching those patterns will not show up in the search results.
-
-The `ignore` file is tied to a commit. This means that if you committed an `ignore` file to a feature branch but not to your default branch, then only search results for the feature branch will be filtered, while the default branch will show all results.
-
-For example:
-
-```bash
-// .sourcegraph/ignore
-// lines starting with "//" are comments and are ignored
-// empty lines are ignored, too
-
-// ignore the directory node_modules/
-node_modules/
-
-// ignore the directory src/data/
-src/data/
-
-// ** matches all characters, while * matches all characters except /
-// ignore all JSON files
-**.json
-
-// ignore all JSON files at the root of the repository
-*.json
-
-// ignore all JSON files within the directory data/
-data/**.json
-
-// ignore all data folders
-data/
-**/data/
-
-// ignore all files that start with numbers
-[0-9]*.*
-**/[0-9]*.*
-```
-
-Our syntax follows closely what is documented in [the linux documentation project](https://tldp.org/LDP/GNU-Linux-Tools-Summary/html/x11655.htm). However, we distinguish between `*` and `**`: While `**` matches all characters, `*` matches all characters except the path separator `/`.
-
-Note that invalid globbing patterns will cause an error and searches over commits containing a broken `ignore` file
-will not return any result.
-
-## Shard merging
-
-Shard merging is a feature of Zoekt that enables the combination of smaller index files, or shards, into one larger file, a compound shard. This can reduce memory costs for Zoekt webserver. This feature is particularly useful for
-customers with many small and rarely updated repositories, and can result in a significant reduction in memory. Shard merging can be enabled by setting `SRC_ENABLE_SHARD_MERGING="1"` for Zoekt indexserver.
-
-Shard merging can be fine-tuned by setting ENV variables for Zoekt indexserver:
-
-| **Env Variable** | **Description** | **Default** |
-| ---------------------- | ---------------------------------------------------------------------------------------------- | -------- |
-| SRC_VACUUM_INTERVAL | Run vacuum this often, specified as a duration | 24 hours |
-| SRC_MERGE_INTERVAL | Run merge this often, specified as a duration | 8 hours |
-| SRC_MERGE_TARGET_SIZE | The target size of compound shards in MiB | 2000 |
-| SRC_MERGE_MIN_SIZE | The minimum size of a compound shard in MiB | 1800 |
-| SRC_MERGE_MIN_AGE | The time since the last commit in days. Shards with newer commits are excluded from merging. | 7 |
-| SRC_MERGE_MAX_PRIORITY | The maximum priority a shard can have to be considered for merging, specified as a float value | 100.0 |
-
-When repostiories receive udpates, Zoekt reindexes them and tombstones their old index data. As a result, compound shards can shrink and be dismantled into individual shards once they reach a critical minimum size. These individual
-shards are then considered for future merge operations. Shard merging can be monitored via the "Compound shards" panel in Zoekt's Grafana dashboard.
+You can exclude files and directories from search by adding the file `.sourcegraph/ignore` to the root directory of your repository. Files or directories matching the glob patterns will not show up in the search results. For more information on creating `.sourcegraph/ignore` files, see the [configuration reference](/admin/search#exclude-files-and-directories).
## RE2 Regular Expressions
@@ -154,7 +65,7 @@ The Sourcegraph search language supports [RE2](https://golang.org/s/re2syntax) s
- It's well-supported in Go, allowing us to take advantage of a rich ecosystem (notably including [Zoekt](https://github.com/sourcegraph/zoekt))
- Our API and tooling makes it straightforward to use Sourcegraph with other tools that provide facilities not built in to the search language.
-As an example of how you can use Sourcegraph tooling with other tools, we can use `jq` (which supports Perl regexes) along with `src` to post-filter search results. In this case, we want to use backreferences to find go functions take a single pointer argument and return a non-pointer of the same type as the input.
+As an example of how you can use Sourcegraph tooling with other tools, we can use `jq` (which supports Perl regexes) along with `src` to post-filter search results. In this case, we want to use backreferences to find go functions that take a single pointer argument and return a non-pointer of the same type as the input.
```shell
re2_regex='func \w+\(\w+ \*\w+\) \w+'
@@ -173,8 +84,53 @@ src search --json --stream -- "/$re2_regex/" \
' --args "$pcre2_regex"
```
+## Search experience
+
+Users on Sourcegraph instance `v5.9.0` or more get the improved and new Code Search experience set by default. Sourcegraph Enterprise users' site admins can optionally opt-out and revert to the old view.
+
+You get the following improvements:
+
+- **In-line diff view**: Easily compare commits and see how a file changed over time, all in-line
+- **Revamped code navigation**: Quickly find a list of references of a given symbol, or immediately jump to the definition
+- **Reworked fuzzy finder ⌘K**: Find files and symbols quickly and easily with our whole new fuzzy finder
+- **File actions**: Like open in editor and open on code host
+
+## Personalized search ranking
+
+Sourcegraph Enterprise users can get more personalized and better-ranked search results in the search bar for their codebases. With this feature, you get:
+
+- Improved ranking for keyword searches like "data router". This capability is enabled by default and cannot be configured
+- Personalized ranking, specifically boosted results from repos you recently contributed to. This is controlled by the setting `experimentalFeatures.boostRelevantRepositories`
+
+These boosted results from your recently contributed repositories make finding the code you care about easier.
+
+The personalized search ranking works best if you have large codebases, especially for new users who may otherwise get overwhelmed by results from unfamiliar or irrelevant repositories.
+
+Personalized search ranking is enabled by default, but you can disable it from your settings via:
+
+```json
+experimentalFeatures: {
+ boostRelevantRepositories: false
+}
+```
+
+Here is an example of search results with personalized search ranking enabled:
+
+
+
+As you can see, the results are now ranked based on their relevance to the query, and the results from repositories you've recently contributed to are boosted.
+
+## Compare changes across revisions
+
+When you run a search, you can compare the results from two different revisions of the codebase. From your search query results page, click the three-dot **...** icon next to the **Contributors** tab. Then select the **Compare** option.
+
+From here, you can execute file and directory filtering and compare large diffs, making it easier to navigate and manage.
+
+This file picker is useful when comparing branches with thousands of changed files and allows you to select specific files or directories to focus on. You can [filter files directly](/code-search/compare-file-filtering) by constructing a URL with multiple file paths or use a compressed file list for even larger selections.
+
+
+
## Other search tips
- When viewing a file or directory, press the `y` key to expand the URL to its canonical form (with the full 40-character Git commit SHA).
- To share a link to multi-line range in a file, click on the starting line number and shift-click on the ending line number (in the left-hand gutter).
-- The dynamic filter currently allows up to 40 results returned under the repo filter and 40 results returned under other (Total:80)
diff --git a/docs/code-search/how-to/create_search_context_graphql.mdx b/docs/code-search/how-to/create_search_context_graphql.mdx
index b6e0ee9da..7a503b170 100644
--- a/docs/code-search/how-to/create_search_context_graphql.mdx
+++ b/docs/code-search/how-to/create_search_context_graphql.mdx
@@ -6,7 +6,7 @@ This document will take you through how to create a search context for your user
* This document assumes that you have a private Sourcegraph instance
* Assumes you are creating a Private search context with a user namespace which is only available to the user
-* For more information on available permissions and ways to alter the following examples, please see [Managing search contexts with api - permissions and visibility overview](https://docs.sourcegraph.com/api/graphql/managing-search-contexts-with-api#permissions-and-visibility-overview)
+* For more information on available permissions and ways to alter the following examples, please see [Managing search contexts with api - permissions and visibility overview](/api/graphql/managing-search-contexts-with-api#permissions-and-visibility-overview)
## Steps to create
@@ -22,11 +22,11 @@ Step 1: Add to global configuration (must be site-admin):
}
```
-Step 2: Make sure you have added code hosts: [Add repositories (from code hosts) to Sourcegraph](https://docs.sourcegraph.com/admin/repo/add)
+Step 2: Make sure you have added code hosts: [Add repositories (from code hosts) to Sourcegraph](/admin/repo/add)
-Step 3: Follow the steps to [Generate an access token for GraphQL](https://docs.sourcegraph.com/api/graphql#quickstart) if you already haven't
+Step 3: Follow the steps to [Generate an access token for GraphQL](/api/graphql#quickstart) if you already haven't
@@ -64,7 +64,7 @@ query {
Step 7: Take the values from steps 5 and 6 and put them into the example variables from our docs here:
-* [Managing search contexts with API - Create a context](https://docs.sourcegraph.com/api/graphql/managing-search-contexts-with-api#create-a-context)
+* [Managing search contexts with API - Create a context](/api/graphql/managing-search-contexts-with-api#create-a-context)
Run this with no changes:
diff --git a/docs/code-search/index.mdx b/docs/code-search/index.mdx
index 7b8f52993..515b24742 100644
--- a/docs/code-search/index.mdx
+++ b/docs/code-search/index.mdx
@@ -1,5 +1,12 @@
# Code Search
+
+ Supported on [Enterprise Starter](/pricing/enterprise-starter) and [Enterprise](/pricing/enterprise) plans.
+
+ Available via VS Code and JetBrains editor extensions and the Web.
+
+
+
Learn how to search code across all your repositories and code hosts.
**Code Search** allows you to find, fix, and navigate code with any code host or language across multiple repositories with real-time updates. It deeply understands your code, prioritizing the most relevant results for an enhanced search experience.
@@ -10,7 +17,7 @@
Sourcegraph's Code Search empowers you to:
-- Utilize regular expressions, boolean operations, and keyboard shortcuts helps you unleash the full potential of your searches
+- Utilize regular expressions, boolean operations, and keyboard shortcuts to help you unleash the full potential of your searches
- With the symbol, commit, and diff search capabilities, it identifies code vulnerabilities in milliseconds and quickly helps you resolve issues and incidents
- Offers innovative code view with seamless code navigation for a comprehensive coding experience
@@ -18,7 +25,7 @@ Sourcegraph's Code Search empowers you to:
-
+
@@ -26,11 +33,11 @@ Sourcegraph's Code Search empowers you to:
-
+
-
+
-
+
@@ -38,8 +45,7 @@ Sourcegraph's Code Search empowers you to:
Code Search main features include:
-- Use regular expressions and exact queries to perform full-text searches
-- Perform [language-aware structural search](/code-search/features#language-aware-structural-code-search) on code structure
+- Use regular expressions and keyword queries to perform full-text searches
- Search any branch and commit, with no indexing required
- Search [commit diffs](/code-search/features#commit-diff-search) and [commit messages](/code-search/features#commit-message-search) to see how code has changed
- Narrow your search by repository and file pattern
@@ -68,4 +74,4 @@ By default, files larger than **1 MB** are excluded from search results.
## Join our community
-If you have any questions regarding Code Search, you can always ask our community on [GitHub discussions](https://github.com/sourcegraph/sourcegraph/discussions), [Discord](https://discord.com/invite/s2qDtYGnAE), or [create a post on X](https://twitter.com/sourcegraph).
+If you have any questions about Code Search, ask in [our community forum](https://community.sourcegraph.com).
diff --git a/docs/code-search/examples.mdx b/docs/code-search/queries/examples.mdx
similarity index 82%
rename from docs/code-search/examples.mdx
rename to docs/code-search/queries/examples.mdx
index f63bd7da0..51ffe1df4 100644
--- a/docs/code-search/examples.mdx
+++ b/docs/code-search/queries/examples.mdx
@@ -2,7 +2,7 @@
Learn and walkthrough some of the handy Code Search examples.
-## Sourcegraph Search Examples on Github Pages
+## Sourcegraph Search Examples on GitHub Pages
Check out the [Sourcegraph Search Examples](https://sourcegraph.github.io/sourcegraph-search-examples/) site for filterable search examples with links to results on sourcegraph.com.
@@ -10,19 +10,19 @@ Below are some additional examples that search repositories on [Sourcegraph.com]
See [search query syntax](/code-search/queries) reference.
-[Search through all the repositories in an organization](https://sourcegraph.com/search?q=context:global+r:hashicorp/+terraform&patternType=standard&sm=1&groupBy=repo)
+[Search through all the repositories in an organization](https://sourcegraph.com/search?q=context:global+r:hashicorp/+terraform&patternType=keyword&groupBy=repo)
```sgquery
context:global r:hashicorp/ terraform
```
-[Search a subset of repositories in an organization by language](https://sourcegraph.com/search?q=context:global+r:hashicorp/vault*+lang:yaml+terraform&patternType=standard&sm=1&groupBy=repo)
+[Search a subset of repositories in an organization by language](https://sourcegraph.com/search?q=context:global+r:hashicorp/vault*+lang:yaml+terraform&patternType=keyword&groupBy=repo)
```sgquery
context:global r:hashicorp/vault* lang:yaml terraform
```
-[Search for one term or another in a specific repository](https://sourcegraph.com/search?q=context:global+r:hashicorp/vault%24+print%28+OR+log%28&patternType=standard&sm=1&groupBy=repo)
+[Search for one term or another in a specific repository](https://sourcegraph.com/search?q=context:global+r:hashicorp/vault%24+print%28+OR+log%28&patternType=keyword&groupBy=repo)
```sgquery
context:global r:hashicorp/vault$ print( OR log(
@@ -47,7 +47,7 @@ type:diff repo:@*refs/heads/ after:"5 days ago"
-file:\.(json|md|txt)$ hack|todo|kludge|fixme
```
-[Removal of TODOs in the repository commit log](https://sourcegraph.com/search?q=repo:%5Egithub%5C.com/sourcegraph/sourcegraph%24+type:diff+TODO+select:commit.diff.removed+&patternType=literal)
+[Removal of TODOs in the repository commit log](https://sourcegraph.com/search?q=repo:%5Egithub%5C.com/sourcegraph/sourcegraph%24+type:diff+TODO+select:commit.diff.removed+&patternType=keyword)
```sgquery
repo:^github\.com/sourcegraph/sourcegraph$ type:diff select:commit.diff.removed TODO
@@ -77,7 +77,7 @@ repo:@*refs/heads/:^master type:diff after:"1 week ago" (eslint-disable)
file:package.json type:diff after:"1 week ago"
```
-[Files that are Apache licensed](https://sourcegraph.com/search?q=licensed+to+the+apache+software+foundation+select:file&patternType=literal)
+[Files that are Apache licensed](https://sourcegraph.com/search?q=context:global+%22licensed+to+the+apache+software+foundation%22+select:file&patternType=keyword)
```sgquery
licensed to the apache software foundation select:file
@@ -89,7 +89,7 @@ licensed to the apache software foundation select:file
file:package.json type:diff after:"1 week ago" select:repo
```
-[Search changes in a files that contain a keyword](https://sourcegraph.com/search?q=context:global+repo:%5Egithub%5C.com/sourcegraph/sourcegraph%24+type:diff+file:contains.content%28%22golang%5C.org/x/sync/errgroup%22%29+.Go&patternType=literal)
+[Search changes in a files that contain a keyword](https://sourcegraph.com/search?q=context:global+repo:%5Egithub%5C.com/sourcegraph/sourcegraph%24+type:diff+file:contains.content%28%22golang%5C.org/x/sync/errgroup%22%29+.Go&patternType=keyword)
```sgquery
repo:^github\.com/sourcegraph/sourcegraph$ type:diff file:contains.content("golang\.org/x/sync/errgroup") .Go
@@ -107,19 +107,10 @@ repo:^github\.com/Parsely/pykafka$ Not leader for partition
Regex searches are also useful when searching boundaries that are not delimited by code structures:
-[Finding css classes with word boundary regex](https://sourcegraph.com/search?q=repo:%5Egithub%5C.com/sourcegraph/sourcegraph%24+%5Cbbtn-secondary%5Cb&patternType=regexp)
+[Finding css classes with word boundary regex](https://sourcegraph.com/search?q=repo:%5Egithub%5C.com/sourcegraph/+%5Cbbtn-secondary%5Cb&patternType=regexp)
```sgquery
-repo:^github\.com/sourcegraph/sourcegraph$ \bbtn-secondary\b
+repo:^github\.com/sourcegraph/ \bbtn-secondary\b
```
-## When to use structural search mode
-
-Use structural search when you want to match code boundaries such as () or {}:
-
-[Finding try catch statements with varying content](https://sourcegraph.com/search?q=repo:%5Egithub%5C.com/sourcegraph/sourcegraph%24+try+%7B+:%5Bmatched_statements%5D+%7D+catch+%7B+:%5Bmatched_catch%5D+%7D&patternType=structural)
-
-```sgquery
-repo:^github\.com/sourcegraph/sourcegraph$
-try { :[matched_statements] } catch { :[matched_catch] }
-```
+More examples of regex searches are available [here](https://sourcegraph.com/docs/code-search/queries#regular-expression-search)
diff --git a/docs/code-search/queries/index.mdx b/docs/code-search/queries/index.mdx
index 8ccf4ba06..364a55084 100644
--- a/docs/code-search/queries/index.mdx
+++ b/docs/code-search/queries/index.mdx
@@ -1,22 +1,19 @@
# Search Query Syntax
-This page describes search pattern syntax and filters available for Code Search.
+This page describes the query syntax for Code Search.
-See the complementary [language reference](/code-search/queries/language) for a visual breakdown. A typical search pattern describes content or filenames to find across all repositories. At the most basic level, a search pattern can simply be a word like `hello`. See our [search patterns](#search-pattern-syntax) documentation for detailed usage. Queries can also include filters. For example, a typical search query will include a `repo:` filter that filters search results for a specific repository. See our [filters](#filters-all-searches) documentation for more examples.
+A typical search consists of two parts:
+* A [search pattern](#search-patterns) containing the terms you want to search, for example `println`
+* [Search filters](#filters-all-searches) that scope the search to certain repositories, languages, etc., for example `lang:java`
-
-
-
+For a graphical view of Sourcegraph's query syntax, see the [search language reference](/code-search/queries/language).
-## Search pattern syntax
-
-This section documents the available search pattern syntax and interpretation in Sourcegraph. A search pattern is _required_ to match file content. A search pattern is _optional_ and may be omitted when searching for [commits](#filters-diff-and-commit-searches-only), [filenames](#filename-search), or [repository names](#repository-name-search).
+## Search patterns
+This section documents the search pattern syntax in Sourcegraph. To match file content, you need to specify a search pattern. Search patterns are optional when searching [commits](#filters-diff-and-commit-searches-only), [filenames](#filename-search), or [repository names](#repository-name-search).
### Keyword search (default)
-New in version 5.3: Keyword search is in the Beta stage and enabled by default. Toggle the "Keyword Search" switch to off to enable Standard search. Site administrators can disable Keyword search globally by setting `experimentalFeatures.keywordSearch: false` in site settings. Users can override the setting in their user settings. With the keyword search feature enabled, use [patternType:keyword](/code-search/queries/language#pattern-type) in a search to turn that search into a keyword search.
-
Keyword search matches individual terms anywhere in the document or the filename. Use `"..."` to match phrases exactly. Specify regular expressions inside `/.../`.
| Search pattern syntax | Description |
@@ -28,46 +25,22 @@ Keyword search matches individual terms anywhere in the document or the filename
| [`foo OR bar`](https://sourcegraph.com/search?q=context:global+foo+OR+bar&patternType=keyword) | Match documents containing `foo` _or_ `bar` anywhere in the document. |
Matching is case-insensitive by default (toggle the `Aa` button to change).
+In version 5.4, `keyword` replaced `standard` as the new default pattern type.
-Keyword search can be enabled for a Batch Change by adding [patternType:keyword](/code-search/queries/language#pattern-type) to the query in [a batch spec](/batch_changes/quickstart#write-a-batch-spec).
-
-[patternType:keyword](/code-search/queries/language#pattern-type) is supported in [Code Monitors](/code_monitoring/quickstart) and [Code Insights](/code_insights/quickstart). When creating a monitor or an insight from a search, it will be automatically populated with `patternType:keyword`. When building one by hand, be sure to include `patternType:keyword` if you want keyword search.
-
-### Standard search
-
-Standard search matches literal patterns exactly, including punctuation like quotes. Specify regular expressions inside `/.../`.
-
-| **Search Syntax** | **Description** |
-| ------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ |
-| [`foo bar`](https://sourcegraph.com/search?q=foo+bar&patternType=standard) | Match the string `foo bar` exactly with no quotes, requiring exactly one space between the terms |
-| [`"foo bar"`](https://sourcegraph.com/search?q=%22foo+bar%22&patternType=standard) | Match the string `"foo bar"` exactly, with the quotes being matched literally |
-| [`/foo.*bar/`](https://sourcegraph.com/search?q=context:global+repo:%5Egithub%5C.com/sourcegraph/sourcegraph%24+/foo.*bar/&patternType=standard) | Match the **regular expression** `foo.*bar` using [RE2 syntax](https://golang.org/s/re2syntax) |
-| [`foo` `AND` `bar`](https://sourcegraph.com/search?q=context:global+foo+AND+bar&patternType=standard) | Match documents containing both `foo` **and** `bar` anywhere in the document |
-
-Matching is case-insensitive by default (toggle the `Aa` button to change).
-
-### Dedicated regular expression search with (.*) icon
+### Regular expression search
Clicking the (.*) toggle interprets all search patterns as regular expressions.
- In [Standard search](#standard-search) or [Keyword search](#keyword-search-default), use `/.../` to perform regular expression searches. Use this mode if you prefer writing out regular expressions without enclosing them. In this mode spaces between patterns mean **match anything**. Patterns inside quotes mean **match exactly**.
+ In [Keyword search](#keyword-search-default), use `/.../` to perform regular expression searches. Use this mode if you prefer writing out regular expressions without enclosing them. In this mode spaces between patterns mean **match anything**. Patterns inside quotes mean **match exactly**.
| **Search Syntax** | **Description** |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [`foo bar`](https://sourcegraph.com/search?q=context:global+repo:%5Egithub%5C.com/sourcegraph/sourcegraph%24+foo+bar&patternType=regexp) | Search for the regexp `foo(.*?)bar`. Spaces between non-whitespace strings becomes `.*?` to create a fuzzy search |
| [`foo\ bar`](https://sourcegraph.com/search?q=foo%5C+bar&patternType=regexp) or [`/foo bar/`](https://sourcegraph.com/search?q=/foo+bar/&patternType=regexp) | Search for the regexp `foo bar`. The `\` escapes the space and treats the space as part of the pattern. Use `/.../` to avoid escaping spaces |
| [`foo\nbar`](https://sourcegraph.com/search?q=foo%5Cnbar&patternType=regexp) | Perform a multiline regexp search. `\n` is interpreted as a newline |
-| [`"foo bar"`](https://sourcegraph.com/search?q=%27foo+bar%27&patternType=regexp) | Match the string literal `"foo bar"`. Quotes interpret strings exactly, except that special characters like `"` and `\` may be escaped, and whitespace escape sequences like `\n` are interpreted normally |
-
-As in Standard search, we support [RE2 syntax](https://golang.org/s/re2syntax). Matching is case-insensitive by default (toggle the `Aa` button to change).
+| [`"foo bar"`](https://sourcegraph.com/search?q=%22foo+bar%22&patternType=regexp) | Match the string `foo bar` exactly. The space between the terms is interpreted literally. The quotes are not matched. |
-## Structural Search
-
-Click the **[]** toggle to activate structural search. Structural search is a way to match richer syntactic structures like multiline code blocks. See the dedicated [usage documentation](/code-search/types/structural) for more details. Here is a brief overview of valid syntax:
-
-| **Search Syntax** | **Description** |
-| ----------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| [`New(ctx, ...)`](https://sourcegraph.com/search?q=repo:github.com/sourcegraph/sourcegraph++New%28ctx%2C+...%29+lang:go&patternType=structural) | Match call-like syntax with `New` with two or more arguments, where the first matches `ctx`. Make it search language-aware by adding a `lang:` [filter](#filters-all-searches) |
+We support [RE2 syntax](https://golang.org/s/re2syntax). Matching is case-insensitive by default (toggle the `Aa` button to change).
## Filters (all searches)
@@ -75,14 +48,14 @@ The following filters can be used on all searches (using [RE2 syntax](https://go
| **Filters** | **Description** | **Examples** |
|----------|----------|----------|
-| **repo:regexp-pattern** **repo:regexp-pattern@rev** **repo:regexp-pattern rev:rev** _alias: r_ | Include results from repos whose path matches a specified regexp-pattern. The repo path is `github.com/myteam/abc` or `code.example.com/xyz` depending on your repo host. If the regexp ends in `@rev`, search that revision instead of the default `main` branch. `repo:regexp-pattern@rev` is equivalent to `repo:regexp-pattern rev:rev` | [`repo:gorilla/mux testroute`](https://sourcegraph.com/search?q=repo:gorilla/mux+testroute) [`repo:^github\.com/sourcegraph/sourcegraph$@v3.14.0 mux`](https://sourcegraph.com/search?q=repo:%5Egithub%5C.com/sourcegraph/sourcegraph%24%40v3.14.0+mux&patternType=literal) |
+| **repo:regexp-pattern** **repo:regexp-pattern@rev** **repo:regexp-pattern rev:rev** _alias: r_ | Include results from repos whose path matches a specified regexp-pattern. The repo path is `github.com/myteam/abc` or `code.example.com/xyz` depending on your repo host. If the regexp ends in `@rev`, search that revision instead of the default `main` branch. `repo:regexp-pattern@rev` is equivalent to `repo:regexp-pattern rev:rev` | [`repo:gorilla/mux testroute`](https://sourcegraph.com/search?q=repo:gorilla/mux+testroute) [`repo:^github\.com/sourcegraph/sourcegraph$@v3.14.0 mux`](https://sourcegraph.com/search?q=repo:%5Egithub%5C.com/sourcegraph/sourcegraph%24%40v3.14.0+mux&patternType=keyword) |
|**-repo:regexp-pattern** _alias: -r_ | Exclude results from repositories whose path matches the regexp | `repo:alice/ -repo:old-repo` |
-| **rev:revision-pattern** _alias: revision_ | Search a revision instead of the default branch. `rev:` can only be used in conjunction with `repo:` and may not be used more than once. See our [revision syntax](#repository-revisions) documentation to learn more | [`repo:sourcegraph/sourcegraph rev:v3.14.0 mux`](https://sourcegraph.com/search?q=repo:sourcegraph/sourcegraph+rev:v3.14.0+mux&patternType=literal) |
-| **file:regexp-pattern** _alias: f_ | Only include results in files whose full path matches the regexp | [`file:\.js$ httptest`](https://sourcegraph.com/search?q=file:%5C.js%24+httptest) [`file:internal/ httptest`](https://sourcegraph.com/search?q=file:internal/+httptest) |
-| **-file:regexp-pattern** _alias: -f_ | Exclude results from files whose full path matches the regexp | [`file:\.js$ -file:test http`](https://sourcegraph.com/search?q=file:%5C.js%24+-file:test+http) |
-| **content:"pattern"** | Set the search pattern with a dedicated parameter. Useful when searching literally for a string that may conflict with the [search pattern syntax](#search-pattern-syntax). In between the quotes, the `\` character will need to be escaped (`\\` to evaluate for `\`) | [`repo:sourcegraph content:"repo:sourcegraph"`](https://sourcegraph.com/search?q=repo:sourcegraph+content:"repo:sourcegraph"&patternType=literal) |
-| **-content:"pattern"** | Exclude results from files whose content matches the pattern. Not supported for structural search | [`file:Dockerfile alpine -content:alpine:latest`](https://sourcegraph.com/search?q=file:Dockerfile+alpine+-content:alpine:latest&patternType=literal) |
-| **select:_result-type_** **select:repo** **select:commit.diff.added** **select:commit.diff.removed** **select:file** **select:content** **select:symbol._symbol-type_** **select:file.owners** _(Experimental)_ | Shows only query results for a given type. For example, `select:repo` displays only distinct repository paths from search results, and `select:commit.diff.added` shows only added code matching the search. See [language definition](/code-search/language/language#select) for full list of possible values | [`fmt.Errorf select:repo`](https://sourcegraph.com/search?q=fmt.Errorf+select:repo&patternType=literal) |
+| **rev:revision-pattern** _alias: revision_ | Search a revision instead of the default branch. `rev:` can only be used in conjunction with `repo:` and may not be used more than once. See our [revision syntax](#repository-revisions) documentation to learn more | [`repo:sourcegraph/sourcegraph rev:v3.14.0 mux`](https://sourcegraph.com/search?q=repo:sourcegraph/sourcegraph+rev:v3.14.0+mux&patternType=keyword) |
+| **file:regexp-pattern** _alias: f_ | Only include file results whose full path matches the regexp. The regexp is unanchored by default: to match against the entire path, use regexp anchors like `^README.md$`. | [`file:\.js$ httptest`](https://sourcegraph.com/search?q=file:%5C.js%24+httptest) [`file:internal/ httptest`](https://sourcegraph.com/search?q=file:internal/+httptest) |
+| **-file:regexp-pattern** _alias: -f_ | Exclude file results whose full path matches the regexp. The regexp is unanchored by default: to match against the entire path, use regexp anchors like `^README.md$`. | [`file:\.js$ -file:test http`](https://sourcegraph.com/search?q=file:%5C.js%24+-file:test+http) |
+| **content:"pattern"** | Set the search pattern with a dedicated parameter. Useful when searching literally for a string that may conflict with the [search pattern syntax](#search-pattern-syntax). In between the quotes, the `\` character will need to be escaped (`\\` to evaluate for `\`) | [`repo:sourcegraph content:"repo:sourcegraph"`](https://sourcegraph.com/search?q=repo:sourcegraph+content:"repo:sourcegraph"&patternType=keyword) |
+| **-content:"pattern"** | Exclude results from files whose content matches the pattern. | [`file:Dockerfile alpine -content:alpine:latest`](https://sourcegraph.com/search?q=file:Dockerfile+alpine+-content:alpine:latest&patternType=keyword) |
+| **select:_result-type_** **select:repo** **select:commit.diff.added** **select:commit.diff.removed** **select:file** **select:content** **select:symbol._symbol-type_** **select:file.owners** _(Experimental)_ | Shows only query results for a given type. For example, `select:repo` displays only distinct repository paths from search results, and `select:commit.diff.added` shows only added code matching the search. See [language definition](/code-search/queries/language#select) for full list of possible values | [`fmt.Errorf select:repo`](https://sourcegraph.com/search?q=fmt.Errorf+select:repo&patternType=keyword) |
| **language:language-name** _alias: lang, l_ | Only include results from files in the specified programming language | [`language:typescript encoding`](https://sourcegraph.com/search?q=language:typescript+encoding) |
| **-language:language-name** _alias: -lang, -l_ | Exclude results from files in the specified programming language | [`-language:typescript encoding`](https://sourcegraph.com/search?q=-language:typescript+encoding) |
| **type:symbol** | Perform a symbol search | [`type:symbol path`](https://sourcegraph.com/search?q=type:symbol+path) |
@@ -90,20 +63,22 @@ The following filters can be used on all searches (using [RE2 syntax](https://go
| **fork:yes, fork:only** | Include results from repository forks or filter results to only repository forks. Results in repository forks are excluded by default | [`fork:yes repo:sourcegraph`](https://sourcegraph.com/search?q=fork:yes+repo:sourcegraph) |
| **archived:yes, archived:only** | The yes option, includes archived repositories. The only option, filters results to only archived repositories. Results in archived repositories are excluded by default | [`repo:sourcegraph/ archived:only`](https://sourcegraph.com/search?q=repo:%5Egithub.com/sourcegraph/+archived:only) |
| **repo:has.meta(...)** | **Experimental** Conditionally search inside repositories only if they are associated with a specified metadata: 1. key-value pair, or 2. key with any value, or 3. key with no value See [built-in predicates](/code-search/queries/language#built-in-repo-predicate) for more | 1. `repo:has.meta(owning-team:security)` 2. `repo:has.meta(owning-team)` 3. `repo:has.meta(archived:)` |
-| **repo:has.path(...)** | Conditionally search inside repositories only if they contain a file path matching the regular expression. See [built-in predicates](/code-search/queries/language#built-in-repo-predicate) for more | [`repo:has.path(\.py) file:Dockerfile pip`](https://sourcegraph.com/search?q=context:global+repo:has.path%28%5C.py%29+file:Dockerfile+pip&patternType=lucky) |
-| **repo:has.topic(...)** | Search only in repos repositories if they have the given GitHub or GitLab topic. See [built-in predicates](/code-search/queries/language#built-in-repo-predicate) for more | [`repo:has.topic(code-search) rank`](https://sourcegraph.com/search?q=context:global+repo:sourcegraph/sourcegraph%24+rank&patternType=standard&sm=1&groupBy=repo) |
-| **repo:has.commit.after(...)** | Filter out stale repositories that don't contain commits past the specified time frame. See [built-in predicates](/code-search/queries/language#built-in-repo-predicate) for more | [`repo:has.commit.after(yesterday)`](https://sourcegraph.com/search?q=context:global+repo:.*sourcegraph.*+repo:has.commit.after%28yesterday%29&patternType=lucky) [`repo:has.commit.after(june 25 2017)`](https://sourcegraph.com/search?q=context:global+repo:.*sourcegraph.*+repo:has.commit.after%28june+25+2017%29&patternType=lucky) |
-| **rev:at.time(...)** | Search a repo or a branch at a specific point in time. | [`rev:at.time(1 year ago)`](https://sourcegraph.com/search?q=context:global+repo:%5Egithub%5C.com/sourcegraph/sourcegraph%24+rev:at.time%281+year+ago%29+&patternType=keyword&sm=0) [`rev:at.time(2021-01-01)`](https://sourcegraph.com/search?q=context:global+repo:%5Egithub%5C.com/sourcegraph/sourcegraph%24+rev:at.time%282021-01-01%2C+v5.0.0%29+&patternType=keyword&sm=0) |
-| **file:has.content(...)** | Conditionally search files only if they contain contents that match the provided regex pattern. See [built-in predicates](/code-search/queries/language#built-in-repo-predicate) for more | [`file:has.content(Copyright) Sourcegraph`](https://sourcegraph.com/search?q=context:global+file:has.content%28Copyright%29+Sourcegraph&patternType=lucky) |
-| **file:has.owners(...)** | **Beta** Conditionally search files only if they are owned by the given owner. Empty means _any owner_. See [code ownership documentation](/own) for more | [`file:has.owner(alice@sourcegraph.com) Sourcegraph`](https://sourcegraph.com/search?q=context:global+file:has.owner%28alice@sourcegraph.com%29+Sourcegraph&patternType=lucky) |
-| **file:has.contributor(...)** | Conditionally search files only if a file contributor's name or email matches the provided regex pattern. See [built-in predicates](/code-search/queries/language#built-in-file-predicate) for more | [`file:has.contributor(alice@sourcegraph.com) Sourcegraph`](https://sourcegraph.com/search?q=context:global+file:has.owner%28alice@sourcegraph.com%29+Sourcegraph&patternType=lucky) |
-| **count:_N_,< /> count:all** | Retrieve N results. By default, Sourcegraph stops searching early and returns if it finds a full page of results. This is desirable for most interactive searches. To wait for all results, use **count:all** | [`count:1000 function`](https://sourcegraph.com/search?q=count:1000+repo:sourcegraph/sourcegraph$+function) [`count:all err`](https://sourcegraph.com/search?q=repo:github.com/sourcegraph/sourcegraph+err+count:all&patternType=literal) |
+| **repo:has.path(...)** | Conditionally search inside repositories only if they contain a file path matching the regular expression. See [built-in predicates](/code-search/queries/language#built-in-repo-predicate) for more | [`repo:has.path(\.py) file:Dockerfile pip`](https://sourcegraph.com/search?q=context:global+repo:has.path%28%5C.py%29+file:Dockerfile+pip&patternType=keyword) |
+| **repo:has.topic(...)** | Search only in repos repositories if they have the given GitHub or GitLab topic. See [built-in predicates](/code-search/queries/language#built-in-repo-predicate) for more | [`repo:has.topic(code-search) rank`](https://sourcegraph.com/search?q=context:global+repo:sourcegraph/sourcegraph%24+rank&patternType=keyword&sm=1&groupBy=repo) |
+| **repo:has.commit.after(...)** | Filter out stale repositories that don't contain commits past the specified time frame. See [built-in predicates](/code-search/queries/language#built-in-repo-predicate) for more | [`repo:has.commit.after(yesterday)`](https://sourcegraph.com/search?q=context:global+repo:.*sourcegraph.*+repo:has.commit.after%28yesterday%29&patternType=keyword) [`repo:has.commit.after(june 25 2017)`](https://sourcegraph.com/search?q=context:global+repo:.*sourcegraph.*+repo:has.commit.after%28june+25+2017%29&patternType=keyword) |
+| **rev:at.time(...)** | Search a repo or a branch at a specific point in time. | [`rev:at.time(1 year ago)`](https://sourcegraph.com/search?q=context:global+repo:%5Egithub%5C.com/sourcegraph/sourcegraph%24+rev:at.time%281+year+ago%29+&patternType=keyword&sm=0) [`rev:at.time(2021-01-01)`](https://sourcegraph.com/search?q=context:global+repo:%5Egithub%5C.com/sourcegraph/sourcegraph%24+rev:at.time%282021-01-01%2C+v5.0.0%29+&patternType=keyword) |
+| **file:has.content(...)** | Conditionally search files only if they contain contents that match the provided regex pattern. See [built-in predicates](/code-search/queries/language#built-in-repo-predicate) for more | [`file:has.content(Copyright) Sourcegraph`](https://sourcegraph.com/search?q=context:global+file:has.content%28Copyright%29+Sourcegraph&patternType=keyword) |
+| **file:has.owners(...)** | **Beta** Conditionally search files only if they are owned by the given owner. Empty means _any owner_. See [code ownership documentation](/own) for more | [`file:has.owner(alice@sourcegraph.com) Sourcegraph`](https://sourcegraph.com/search?q=context:global+file:has.owner%28alice@sourcegraph.com%29+Sourcegraph&patternType=keyword) |
+| **file:has.contributor(...)** | Conditionally search files only if a file contributor's name or email matches the provided regex pattern. See [built-in predicates](/code-search/queries/language#built-in-file-predicate) for more | [`file:has.contributor(alice@sourcegraph.com) Sourcegraph`](https://sourcegraph.com/search?q=context:global+file:has.owner%28alice@sourcegraph.com%29+Sourcegraph&patternType=keyword) |
+| **count:_N_,< /> count:all** | Retrieve N results. By default, Sourcegraph stops searching early and returns if it finds a full page of results. This is desirable for most interactive searches. To wait for all results, use **count:all** | [`count:1000 function`](https://sourcegraph.com/search?q=count:1000+repo:sourcegraph/sourcegraph$+function) [`count:all err`](https://sourcegraph.com/search?q=repo:github.com/sourcegraph/sourcegraph+err+count:all&patternType=keyword) |
| **timeout:_go-duration-value_** | Customizes the timeout for searches. The value of the parameter is a string that can be parsed by the [Go time package's `ParseDuration`](https://golang.org/pkg/time/#ParseDuration) (e.g. 10s, 100ms). By default, the timeout is set to 10 seconds, and the search will optimize for returning results as soon as possible. The timeout value cannot be set longer than 1 minute. When provided, the search is given the full timeout to complete | [`repo:^github.com/sourcegraph timeout:15s func count:10000`](https://sourcegraph.com/search?q=repo:%5Egithub.com/sourcegraph/+timeout:15s+func+count:10000) |
-| **patterntype:literal, patterntype:regexp, patterntype:structural** | Configure your query to be interpreted literally, as a regular expression, or a [structural search pattern](/code-search/types/structural). Note: this filter is available as an accessibility option in addition to the visual toggles | [`test. patternType:literal`](https://sourcegraph.com/search?q=test.+patternType:literal) [`(open/close)file patternType:regexp`](https://sourcegraph.com/search?q=%28open%7Cclose%29file&patternType=regexp) |
+| **patterntype:keyword, patterntype:regexp** | Configure your query to be interpreted as a keyword search, or a regular expression. Note: this filter is available as an accessibility option in addition to the visual toggles | [`test. patternType:keyword`](https://sourcegraph.com/search?q=test.+patternType:keyword) [`(open/close)file patternType:regexp`](https://sourcegraph.com/search?q=%28open%7Cclose%29file&patternType=regexp) |
| **visibility:any, visibility:public, visibility:private** | Filter results to only public or private repositories. The default is to include both private and public repositories | [`type:repo visibility:public`](https://sourcegraph.com/search?q=type:repo+visibility:public) |
Multiple or combined **repo:** and **file:** filters are intersected. For example, `repo:foo repo:bar` limits your search to repositories whose path contains **both** `foo` and `bar` (such as `github.com/alice/foobar`). To include results from repositories whose path contains **either** `foo` or `bar`, use `repo:foo|bar`.
+The `rev:at.time(...)` filter is only supported for Sourcegraph versions 5.4 or more.
+
## Boolean operators
Use boolean operators to create more expressive searches.
@@ -122,7 +97,7 @@ Returns file content matching either on the left or right side, or both (set uni
| **Operator** | **Example** |
| ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `not`, `NOT` | [`lang:go not file:main.go panic`](https://sourcegraph.com/search?q=lang:go+not+file:main.go+panic&patternType=literal), [`panic NOT ever`](https://sourcegraph.com/search?q=repo:%5Egithub%5C.com/sourcegraph/sourcegraph%24+panic+not+ever&patternType=literal) |
+| `not`, `NOT` | [`lang:go not file:main.go panic`](https://sourcegraph.com/search?q=lang:go+not+file:main.go+panic&patternType=keyword), [`panic NOT ever`](https://sourcegraph.com/search?q=repo:%5Egithub%5C.com/sourcegraph/sourcegraph%24+panic+not+ever&patternType=keyword) |
`NOT` can be used in place of `-` to negate filters, such as `file`, `content`, `lang`, `repohasfile`, and `repo`. For
search patterns, `NOT` excludes documents that contain the term after `NOT`. For readability, you can also include the
@@ -191,22 +166,22 @@ with `3.18`, but not a branch called `3.18` and vice versa for `@refs/heads/3.18
**Glob patterns** allow you to search over a range of branches or tags. Prepend `*` to mark a revision
as glob pattern and add the glob-pattern after it like this `repo:@*`. For example:
- - [`@*refs/heads/*`](https://sourcegraph.com/search?q=repo:%5Egithub%5C.com/docker/machine%24%40*refs/heads/*+middleware&patternType=literal) - search across all branches
- - [`@*refs/tags/*`](https://sourcegraph.com/search?q=repo:github.com/docker/machine%24%40*refs/tags/*+server&patternType=literal) - search across all tags
+ - [`@*refs/heads/*`](https://sourcegraph.com/search?q=repo:%5Egithub%5C.com/docker/machine%24%40*refs/heads/*+middleware&patternType=keyword) - search across all branches
+ - [`@*refs/tags/*`](https://sourcegraph.com/search?q=repo:github.com/docker/machine%24%40*refs/tags/*+server&patternType=keyword) - search across all tags
We automatically add a trailing `/*` if it is missing from the glob pattern.
You can negate a glob pattern by prepending `*!`, for example:
-- [`@*refs/heads/*:*!refs/heads/release* type:commit `](https://sourcegraph.com/search?q=repo:%5Egithub%5C.com/kubernetes/kubernetes%24%40*refs/heads/*:*%21refs/heads/release*+type:commit+&patternType=literal) - search commits on all branches except on those that start with "release"
-- [`@*refs/tags/v3.*:*!refs/tags/v3.*-* context`](https://sourcegraph.com/search?q=repo:%5Egithub.com/sourcegraph/sourcegraph%24%40*refs/tags/v3.*:*%21refs/tags/v3.*-*+context&patternType=literal) - search all versions starting with `3.` except release candidates, alpha and beta versions.
+- [`@*refs/heads/*:*!refs/heads/release* type:commit `](https://sourcegraph.com/search?q=repo:%5Egithub%5C.com/kubernetes/kubernetes%24%40*refs/heads/*:*%21refs/heads/release*+type:commit+&patternType=keyword) - search commits on all branches except on those that start with "release"
+- [`@*refs/tags/v3.*:*!refs/tags/v3.*-* context`](https://sourcegraph.com/search?q=repo:%5Egithub.com/sourcegraph/sourcegraph%24%40*refs/tags/v3.*:*%21refs/tags/v3.*-*+context&patternType=keyword) - search all versions starting with `3.` except release candidates, alpha and beta versions.
### Repository names
A query with only `repo:` filters returns a list of repositories with matching names.
- Example: [`repo:docker repo:registry`](https://sourcegraph.com/search?q=repo:docker+repo:registry) matches repositories with names that contain both `docker` and `registry` substrings
-- Example: [`repo:docker OR repo:registry`](https://sourcegraph.com/search?q=repo:docker+OR+repo:registry&patternType=literal) matches repositories with names that contain either `docker` or `registry` substrings
+- Example: [`repo:docker OR repo:registry`](https://sourcegraph.com/search?q=repo:docker+OR+repo:registry&patternType=keyword) matches repositories with names that contain either `docker` or `registry` substrings
### Commit and Diff searches
@@ -228,4 +203,4 @@ A query with `type:path` restricts terms to matching filenames only (not file co
A query with `type:file` restricts terms to matching file contents only (not filenames).
-- Example: [`type:file repo:^github\.com/sourcegraph/about$ website`](https://sourcegraph.com/search?q=type:file+repo:%5Egithub%5C.com/sourcegraph/about%24+website&patternType=literal)
+- Example: [`type:file repo:^github\.com/sourcegraph/about$ website`](https://sourcegraph.com/search?q=type:file+repo:%5Egithub%5C.com/sourcegraph/about%24+website&patternType=keyword)
diff --git a/docs/code-search/queries/language.mdx b/docs/code-search/queries/language.mdx
index 126149347..0e5fc227b 100644
--- a/docs/code-search/queries/language.mdx
+++ b/docs/code-search/queries/language.mdx
@@ -18,7 +18,7 @@ At a basic level, a query consists of [search patterns](#search-pattern) and [pa
For example,
-- [`repo:github.com/sourcegraph/sourcegraph file:schema.graphql The result`](https://sourcegraph.com/search?q=repo:%5Egithub%5C.com/sourcegraph/sourcegraph%24+file:schema.graphql+The+result&patternType=literal)
+- [`repo:github.com/sourcegraph/sourcegraph file:schema.graphql The result`](https://sourcegraph.com/search?q=context:global+repo:%5Egithub%5C.com/sourcegraph/sourcegraph%24+file:schema.graphql+%22The+result%22&patternType=keyword)
## Expression
@@ -28,7 +28,7 @@ Build query expressions by combining [basic queries](#basic-query) and operators
For example,
-- [`repo:github.com/sourcegraph/sourcegraph rtr AND newRouter`](https://sourcegraph.com/search?q=repo:%5Egithub%5C.com/sourcegraph/sourcegraph%24+rtr+AND+newRouter&patternType=literal)
+- [`repo:github.com/sourcegraph/sourcegraph rtr AND newRouter`](https://sourcegraph.com/search?q=repo:%5Egithub%5C.com/sourcegraph/sourcegraph%24+rtr+AND+newRouter&patternType=keyword)
## Search pattern
@@ -43,12 +43,6 @@ For example,
- [`foo.*bar.*baz`](https://sourcegraph.com/search?q=foo.*bar.*baz&patternType=regexp)
- [`"foo bar"`](https://sourcegraph.com/search?q=%22foo+bar%22&patternType=regexp)
-Perform a structural search. See our [dedicated documentation](queries.md#structural-search) to learn more about structural search.
-
-For example,
-
-- [`fmt.Sprintf(":[format]", :[args])`](https://sourcegraph.com/search?q=repo:%5Egithub%5C.com/sourcegraph/sourcegraph%24+fmt.Sprintf%28%22:%5Bformat%5D%22%2C+:%5Bargs%5D%29&patternType=structural)
-
## Parameter

@@ -74,18 +68,20 @@ Search a repository at a given revision, for example, a branch name, commit hash
For example,
-- [`repo:^github\.com/sourcegraph/sourcegraph$@75ba004 get_embeddings`](https://sourcegraph.com/search?q=repo:%5Egithub%5C.com/sourcegraph/sourcegraph%24%4075ba004+get_embeddings+&patternType=literal)
-- [`repo:^github\.com/sourcegraph/sourcegraph$ rev:v5.0.0 get_embeddings`](https://sourcegraph.com/search?q=repo:%5Egithub%5C.com/sourcegraph/sourcegraph%24+rev:v5.0.0+get_embeddings&patternType=literal)
+- [`repo:^github\.com/sourcegraph/sourcegraph$@75ba004 get_embeddings`](https://sourcegraph.com/search?q=repo:%5Egithub%5C.com/sourcegraph/sourcegraph%24%4075ba004+get_embeddings+&patternType=keyword)
+- [`repo:^github\.com/sourcegraph/sourcegraph$ rev:v5.0.0 get_embeddings`](https://sourcegraph.com/search?q=repo:%5Egithub%5C.com/sourcegraph/sourcegraph%24+rev:v5.0.0+get_embeddings&patternType=keyword)
You can search multiple revisions by separating the revisions with `:`. Specify `HEAD` for the default branch.
For example,
-- [`repo:^github\.com/sourcegraph/sourcegraph$ rev:v4.5.0:v5.0.0 disableNonCriticalTelemetry`](https://sourcegraph.com/search?q=repo:%5Egithub%5C.com/sourcegraph/sourcegraph%24+rev:v4.5.0:v5.0.0+disableNonCriticalTelemetry&patternType=literal)
-- [`repo:^github\.com/sourcegraph/sourcegraph$@v4.5.0:v5.0.0 disableNonCriticalTelemetry`](https://sourcegraph.com/search?q=context%3Aglobal+repo%3A%5Egithub%5C.com%2Fsourcegraph%2Fsourcegraph%24%40v4.5.0%3Av5.0.0+disableNonCriticalTelemetry&patternType=literal)
+- [`repo:^github\.com/sourcegraph/sourcegraph$ rev:v4.5.0:v5.0.0 disableNonCriticalTelemetry`](https://sourcegraph.com/search?q=repo:%5Egithub%5C.com/sourcegraph/sourcegraph%24+rev:v4.5.0:v5.0.0+disableNonCriticalTelemetry&patternType=keyword)
+- [`repo:^github\.com/sourcegraph/sourcegraph$@v4.5.0:v5.0.0 disableNonCriticalTelemetry`](https://sourcegraph.com/search?q=context%3Aglobal+repo%3A%5Egithub%5C.com%2Fsourcegraph%2Fsourcegraph%24%40v4.5.0%3Av5.0.0+disableNonCriticalTelemetry&patternType=keyword)
### Revision at time
+This feature is only supported for Sourcegraph versions 5.4 or more.
+
Search a repository at a given time. Optionally, a second parameter can be used to specify a revision which will be used as the starting point of the search.
For example,
@@ -130,7 +126,7 @@ Set the search pattern to search using a dedicated parameter. Useful, for exampl
For example,
-- [`repo:sourcegraph content:"repo:sourcegraph"`](https://sourcegraph.com/search?q=repo:sourcegraph+content:%22repo:sourcegraph%22&patternType=literal)
+- [`repo:sourcegraph content:"repo:sourcegraph"`](https://sourcegraph.com/search?q=repo:sourcegraph+content:%22repo:sourcegraph%22&patternType=keyword)
### Select
@@ -144,8 +140,8 @@ A query like `type:commit example select:symbol` will return no results because
For example,
-- [`fmt.Errorf select:repo`](https://sourcegraph.com/search?q=fmt.Errorf+select:repo&patternType=literal)
-- [`zoektSearch select:file`](https://sourcegraph.com/search?q=zoektSearch+select:file&patternType=literal)
+- [`fmt.Errorf select:repo`](https://sourcegraph.com/search?q=fmt.Errorf+select:repo&patternType=keyword)
+- [`zoektSearch select:file`](https://sourcegraph.com/search?q=zoektSearch+select:file&patternType=keyword)
#### Symbol kind
@@ -155,7 +151,7 @@ Select a specific kind of symbol. For example `type:symbol select:symbol.functio
For example,
-- [`type:symbol zoektSearch select:symbol.function`](https://sourcegraph.com/search?q=type:symbol+zoektSearch+select:symbol.function&patternType=literal)
+- [`type:symbol zoektSearch select:symbol.function`](https://sourcegraph.com/search?q=type:symbol+zoektSearch+select:symbol.function&patternType=keyword)
#### Modified lines
@@ -167,7 +163,7 @@ When searching commit diffs, select only diffs where the pattern matches on `add
For example,
-- [`repo:^github\.com/sourcegraph/sourcegraph$ type:diff TODO select:commit.diff.removed`](https://sourcegraph.com/search?q=repo:%5Egithub%5C.com/sourcegraph/sourcegraph%24+type:diff+TODO+select:commit.diff.removed+&patternType=literal)
+- [`repo:^github\.com/sourcegraph/sourcegraph$ type:diff TODO select:commit.diff.removed`](https://sourcegraph.com/search?q=repo:%5Egithub%5C.com/sourcegraph/sourcegraph%24+type:diff+TODO+select:commit.diff.removed+&patternType=keyword)
#### File kind
@@ -179,7 +175,7 @@ Select only directory paths of file results with `select:file.directory`. This i
For example,
-- [`file:package\.json select:file.directory`](https://sourcegraph.com/search?q=repo:%5Egithub%5C.com/sourcegraph/sourcegraph%24+file:package%5C.json+select:file.directory&patternType=literal)
+- [`file:package\.json select:file.directory`](https://sourcegraph.com/search?q=repo:%5Egithub%5C.com/sourcegraph/sourcegraph%24+file:package%5C.json+select:file.directory&patternType=keyword)
#### File owners
@@ -239,7 +235,7 @@ Retrieve N results. By default, Sourcegraph stops searching early and returns if
For example,
- [`count:1000 function`](https://sourcegraph.com/search?q=count:1000+repo:sourcegraph/sourcegraph%24+function&patternType=regexp)
-- [`count:all err`](https://sourcegraph.com/search?q=repo:github.com/sourcegraph/sourcegraph+err+count:all&patternType=literal)
+- [`count:all err`](https://sourcegraph.com/search?q=repo:github.com/sourcegraph/sourcegraph+err+count:all&patternType=keyword)
### Timeout
@@ -252,6 +248,10 @@ For example,
- [`timeout:15s count:10000 func`](https://sourcegraph.com/search?q=repo:%5Egithub.com/sourcegraph/+timeout:15s+func+count:10000) sets a longer timeout for a search that contains a lot of results.
+Sourcegraph admins can increase the maximum timeout of 1 minute through [site configuration](/admin/search#maximum-timeout).
+
+The maximum timeout can also depend on the HTTP load balancer in front of Sourcegraph (nginx/ELB/Cloudflare/etc). Sourcegraph admins may need to increase timeouts for Sourcegraph paths, particularly the `.api/search/stream` path. This uses [SSE](https://en.wikipedia.org/wiki/Server-sent_events), so your reverse proxy may have specific support for these requests.
+
### Visibility

@@ -266,7 +266,7 @@ For example,

-Set whether the pattern should run a [keyword search](/code-search/queries#keyword-search), literal search, regular expression search, or structural search. This parameter is available as a command-line and accessibility option and is synonymous with the visual [search pattern](#search-pattern) toggles.
+Set whether the pattern should run a [keyword search](/code-search/queries#keyword-search-default) or [regular expression search](/code-search/queries#regular-expression-search). This parameter is available as a command-line and accessibility option and is synonymous with the visual [search pattern](#search-pattern) toggles.
## Built-in repo predicate
@@ -278,11 +278,12 @@ Tagging repositories with key-value pairs is GA as of 5.1.0, but can be disabled

-Search only inside repositories that are associated with the provided key-value pair, key, or tag.
+Search only inside repositories that are associated with the provided key-value pair, key, or tag. Keys and value patterns can be literal strings which match the key and value exactly, or they can be slash-delimited regex patterns.
For example,
- [`repo:has.meta(team:sourcegraph)`](https://sourcegraph.com/search?q=context:global+repo:has.meta%28team:sourcegraph%29&patternType=regexp&sm=1&groupBy=repo)
+- [`repo:has.meta(team:/[source]{5}graph/)`](https://sourcegraph.com/search?q=context:global+repo:has.meta%28team:/%5Bsource%5D%7B5%7Dgraph/%29&patternType=regexp&sm=1)
- [`repo:has.meta(language)`](https://sourcegraph.com/search?q=context%3Aglobal+repo%3Ahas.meta%28language%29&patternType=regexp&sm=1&groupBy=repo)
### Repo has file and content
@@ -293,7 +294,7 @@ Search only inside repositories that contain a file matching the `path:` with `c
For example,
-- [`repo:has.file(path:CHANGELOG content:fix)`](https://sourcegraph.com/search?q=context:global+repo:github%5C.com/sourcegraph/.*+repo:has.file%28path:CHANGELOG+content:fix%29&patternType=standard)
+- [`repo:has.file(path:CHANGELOG content:fix)`](https://sourcegraph.com/search?q=context:global+repo:github%5C.com/sourcegraph/.*+repo:has.file%28path:CHANGELOG+content:fix%29&patternType=keyword)
`repo:contains.file(...)` is an alias for `repo:has.file(...)` and behaves identically.
@@ -305,7 +306,7 @@ Search only inside repositories that contain a file path matching the regular ex
For example,
-- [`repo:has.path(README)`](https://sourcegraph.com/search?q=context:global+repo:github%5C.com/sourcegraph/.*+repo:has.path%28README%29&patternType=standard)
+- [`repo:has.path(README)`](https://sourcegraph.com/search?q=context:global+repo:github%5C.com/sourcegraph/.*+repo:has.path%28README%29&patternType=keyword)
`repo:contains.path(...)` is an alias for `repo:has.path(..)` and behaves identically.
@@ -317,7 +318,7 @@ Search only inside repositories that contain file content matching the regular e
For example,
-- [`repo:github\.com/sourcegraph/.*$ repo:has.content(TODO)`](https://sourcegraph.com/search?q=repo:github%5C.com/sourcegraph/.*%24+repo:has.content%28TODO%29&patternType=standard)
+- [`repo:github\.com/sourcegraph/.*$ repo:has.content(TODO)`](https://sourcegraph.com/search?q=repo:github%5C.com/sourcegraph/.*%24+repo:has.content%28TODO%29&patternType=keyword)
`repo:contains.content(...)` is an alias for `repo:has.content(...)` and behaves identically.
@@ -329,7 +330,7 @@ Search only inside repositories that have the given GitHub/GitLab topic.
For example,
-- [`repo:has.topic(code-search)`](https://sourcegraph.com/search?q=context%3Aglobal+repo%3Ahas.topic%28code-search%29&patternType=standard&sm=1&groupBy=repo)
+- [`repo:has.topic(code-search)`](https://sourcegraph.com/search?q=context%3Aglobal+repo%3Ahas.topic%28code-search%29&patternType=keyword&groupBy=repo)
Topic search is currently only supported for GitHub and GitLab repos.
@@ -341,7 +342,7 @@ Search only inside repositories that contain a commit after some specified time.
For example,
-- [`repo:has.commit.after(1 month ago)`](https://sourcegraph.com/search?q=context:global+repo:.*sourcegraph.*+repo:has.commit.after%281+month+ago%29&patternType=standard)
+- [`repo:has.commit.after(1 month ago)`](https://sourcegraph.com/search?q=context:global+repo:.*sourcegraph.*+repo:has.commit.after%281+month+ago%29&patternType=keyword)
`repo:contains.commit.after(...)` is an alias for `repo:has.commit.after(...)` and behaves identically.
@@ -353,7 +354,7 @@ Search only inside repositories having a description matching the given regular
For example,
-- [`repo:has.description(go package)`](https://sourcegraph.com/search?q=context:global+repo:has.description%28go.*package%29+&patternType=literal)
+- [`repo:has.description(go package)`](https://sourcegraph.com/search?q=context:global+repo:has.description%28go.*package%29+&patternType=keyword)
## Built-in file predicate
@@ -367,7 +368,7 @@ Search only inside files that contain content matching the provided regexp patte
For example,
-- [`file:has.content(test)`](https://sourcegraph.com/search?q=context:global+repo:github%5C.com/sourcegraph/.*+file:has.content%28test%29&patternType=standard)
+- [`file:has.content(test)`](https://sourcegraph.com/search?q=context:global+repo:github%5C.com/sourcegraph/.*+file:has.content%28test%29&patternType=keyword)
`file:contains.content(...)` is an alias for `file:has.content(...)` and behaves identically.
@@ -470,7 +471,7 @@ Include results having a commit date after the specified time frame. Times are i
For example,
-- [`after:"6 weeks ago"`](https://sourcegraph.com/search?q=repo:sourcegraph/sourcegraph%24+type:diff+after:%226+weeks+ago%22&patternType=standard)
+- [`after:"6 weeks ago"`](https://sourcegraph.com/search?q=repo:sourcegraph/sourcegraph%24+type:diff+after:%226+weeks+ago%22&patternType=keyword)
- [`after:"november 1 2019"`](https://sourcegraph.com/search?q=repo:sourcegraph/sourcegraph$+type:diff+author:nick+after:%22november+1+2019%22)
### Message
diff --git a/docs/code-search/types/exhaustive.mdx b/docs/code-search/types/exhaustive.mdx
deleted file mode 100644
index 149f04f45..000000000
--- a/docs/code-search/types/exhaustive.mdx
+++ /dev/null
@@ -1,46 +0,0 @@
-# Exhaustive Search (count:all)
-
-Learn and understand more about Sourcegraph's Exhaustive Search and core functionality.
-
-Exhaustive Search is a search that returns the complete set of every result matching an expression. Sourcegraph's search is optimized for fast, interactive searching, and as such, there are time and match limits that can stop a search before it is exhaustive. To remove the limits, add `count:all` to your search query.
-
-Exhaustive search is often needed when you want to solve security, compliance, code health, and other automated use cases based on the output of a search.
-
-## Slow queries
-
-A query can be slow due to not using the index (commit/diff, non-indexed branches), poorly using the index (complicated regular expression), or having a large result set. This is a common concern with the exhaustive use cases, and we expect Sourcegraph to still return accurate results.
-
-Once the query is complete, you will always get accurate statistics (e.g., number of matches) for a `count: all` query. A repository will be reported directly if it is not searched (e.g., not cloned).
-
-Over time, the priority of a query is reduced. This ensures that we can answer interactive queries quickly while allowing slow queries to run to completion.
-
-### Timeouts
-
-There are two sources of timeouts in a `count:all` query:
-
-- A timeout in the HTTP load balancer in front of Sourcegraph (nginx/ELB/Cloudflare/etc). Your admin will likely need to increase timeouts for Sourcegraph endpoints. In particular, the `.api/search/stream` path. This uses [SSE](https://en.wikipedia.org/wiki/Server-sent_events), so your reverse proxy may have specific support for these requests.
-- A maximum timeout enforced by Sourcegraph. Your admin may need to increase the site configuration value (default 60s) with the following setting:
-
-```json
-"search.limits": {
- "maxTimeoutSeconds": 60,
- },
-```
-
-### Large result sets
-
-The Sourcegraph web app will only display up to 500 results (however will continue to display accurate statistics). If you need to process more than 500 results, please use the [Sourcegraph CLI](https://github.com/sourcegraph/src-cli). For now, you will need to pass in the `-stream` flag to get large result sets efficiently.
-
-## Limitations
-
-### Missing on Sourcegraph.com
-
-This is a specific limitation for Sourcegraph.com and does not apply to customer instances. Sourcegraph.com does not keep a copy of all open source code it has ever discovered. However, it remembers that it discovered it. This leads to the repository showing up as "missing" when your repository filter includes it.
-
-### Non-indexed backends
-
-A search is unindexed if you search non-indexed branches or use diff/commit search. Using a non-indexed backend and searching all code in a large instance can take 10min+. This is likely much higher than any configured timeouts. See the [Timeouts](#timeouts) section on configuring this use case.
-
-Non-indexed backends do not use the same scheduling logic as indexed backends. This means concurrent slow, non-indexed searches will impact the resources of interactive searches.
-
-An unindexed search can under-report result counts. This is due to limits on the number of results reported per file. See [#18298](https://github.com/sourcegraph/sourcegraph/issues/18298).
diff --git a/docs/code-search/types/fuzzy.mdx b/docs/code-search/types/fuzzy.mdx
index 5718d0d90..47769842c 100644
--- a/docs/code-search/types/fuzzy.mdx
+++ b/docs/code-search/types/fuzzy.mdx
@@ -1,9 +1,7 @@
-# Fuzzy Search
+# Fuzzy Finder
Learn and understand about Sourcegraph's Fuzzy Search and core functionality.
- This feature is still in active development. If you have any feedback on how we can improve this feature, please [let us know](https://github.com/sourcegraph/sourcegraph/discussions/42874).
-
Use the fuzzy finder to quickly navigate to a repository, symbol, or file.
To open the fuzzy finder, press `Cmd+K` (macOS) or `Ctrl+K` (Linux/Windows) from any page. Use the dedicated Repos, Symbols, and Files tabs to search only for a repository, symbol, or file. Each tab has a dedicated shortcut:
@@ -12,8 +10,8 @@ To open the fuzzy finder, press `Cmd+K` (macOS) or `Ctrl+K` (Linux/Windows) from
- **Symbols**: Cmd+O (macOS), Cmd+Shift+O (macOS Safari), Ctrl+O (Linux/Windows)
- **Files**: Cmd+P (macOS), Ctrl+P (Linux/Windows)
-
+
Use the **Searching everywhere** or **Searching in this repo** filter to determine whether to search for results only in the active repository or globally.
-
+
diff --git a/docs/code-search/types/search-jobs.mdx b/docs/code-search/types/search-jobs.mdx
index 0dfec4e76..ab24926d7 100644
--- a/docs/code-search/types/search-jobs.mdx
+++ b/docs/code-search/types/search-jobs.mdx
@@ -1,13 +1,33 @@
# Search Jobs
-Use Search Jobs to search code at scale for large-scale organizations.
+
+ Supported on [Enterprise](/pricing/enterprise) plans.
+
+ Currently available via the Web app.
+
+
- Search Jobs feature is in Beta stage and only available for Enterprise accounts. It is enabled by default since 5.3.0.
+Use Search Jobs to search code at scale for large-scale organizations.
Search Jobs allows you to run search queries across your organization's codebase (all repositories, branches, and revisions) at scale. It enhances the existing Sourcegraph's search capabilities, enabling you to run searches without query timeouts or incomplete results.
With Search Jobs, you can start a search, let it run in the background, and then download the results from the Search Jobs UI when it's done. Site administrators can **enable** or **disable** the Search Jobs feature, making it accessible to all users on the Sourcegraph instance.
+## Using Search Jobs
+
+To use Search Jobs, you need to:
+
+- Run a search query from your Sourcegraph instance
+- Click the result menu below the search bar to see if your query is supported by Search Jobs
+
+
+
+- If your query is valid, click **Create a search job** to initiate the search job
+- You will be redirected to the "Search Jobs UI" page at `/search-jobs`, where you can view all your created search jobs. If you're a site admin, you can also view search jobs from other users on the instance
+- For each search job, you can download the results by clicking the **Download** button. The results are formatted as JSON lines, see [Search results format](#search-results-format) for more details.
+
+
+
## Search results format
The downloaded results are formatted as [JSON lines](https://jsonlines.org).
@@ -27,60 +47,17 @@ Search Jobs requires an object storage to store the results of your search jobs.
By default, Search Jobs stores results using our bundled `blobstore` service.
If the `blobstore` service is deployed, and you want to use it to store results from Search Jobs, you don't need to configure anything.
-To use a third party managed object storage service, you must set a handful of environment variables for configuration and authentication to the target service.
-
-- If you are running a `sourcegraph/server` deployment, set the environment variables on the server container
-- If you are running via Docker-compose or Kubernetes, set the environment variables on the `frontend` and `worker` containers
-
-### Using S3
-
-Set the following environment variables to target an S3 bucket you've already provisioned. Authentication can be done through [an access and secret key pair](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys) (and optionally through session token) or via the EC2 metadata API.
-
- Never commit AWS access keys in Git. You should consider using a secret handling service offered by your cloud provider.
-
-- `SEARCH_JOBS_UPLOAD_BACKEND=S3`
-- `SEARCH_JOBS_UPLOAD_BUCKET=`
-- `SEARCH_JOBS_UPLOAD_AWS_ENDPOINT=https://s3.us-east-1.amazonaws.com`
-- `SEARCH_JOBS_UPLOAD_AWS_ACCESS_KEY_ID=`
-- `SEARCH_JOBS_UPLOAD_AWS_SECRET_ACCESS_KEY=`
-- `SEARCH_JOBS_UPLOAD_AWS_SESSION_TOKEN=` (optional)
-- `SEARCH_JOBS_UPLOAD_AWS_USE_EC2_ROLE_CREDENTIALS=true` (optional; set to use EC2 metadata API over static credentials)
-- `SEARCH_JOBS_UPLOAD_AWS_REGION=us-east-1` (default)
-
- If a non-default region is supplied, ensure that the subdomain of the endpoint URL (the `AWS_ENDPOINT` value) matches the target region.
-
- You don't need to set the `SEARCH_JOBS_UPLOAD_AWS_ACCESS_KEY_ID` environment variable when using `SEARCH_JOBS_UPLOAD_AWS_USE_EC2_ROLE_CREDENTIALS=true` because role credentials will be automatically resolved.
+To use a third party managed object storage service, see instructions in [externalizing object storage](../../admin/external_services/object_storage#search-job-results).
-### Using GCS
+### Environment Variables
-Set the following environment variables to target a GCS bucket you've already provisioned. Authentication is done through a service account key, either as a path to a volume-mounted file or the contents read in as an environment variable payload.
-
-- `SEARCH_JOBS_UPLOAD_BACKEND=GCS`
-- `SEARCH_JOBS_UPLOAD_BUCKET=`
-- `SEARCH_JOBS_UPLOAD_GCP_PROJECT_ID=`
-- `SEARCH_JOBS_UPLOAD_GOOGLE_APPLICATION_CREDENTIALS_FILE=`
-- `SEARCH_JOBS_UPLOAD_GOOGLE_APPLICATION_CREDENTIALS_FILE_CONTENT=<{"my": "content"}>`
-
-### Provisioning buckets
-
-If you would like to allow your Sourcegraph instance to control the creation and lifecycle configuration management of the target buckets, set the following environment variables:
-
-- `SEARCH_JOBS_UPLOAD_MANAGE_BUCKET=true`
-
-## Using Search Jobs
-
-To use Search Jobs, you need to:
-
-- Run a search query from your Sourcegraph instance
-- Click the result menu below the search bar to see if your query is valid for the long search
-
-
-
-- If your query is valid, click **Run search job** to initiate the search job
-- You will be redirected to the "Search Jobs UI" page at `/search-jobs`, where you can view all your created search jobs. If you're a site admin, you can also view search jobs from other users on the instance
-
-
+You can configure Search Jobs behavior using the following environment variables on the worker service:
+| Environment Variable | Default Value | Description |
+| --- | --- | --- |
+| `SRC_SEARCH_JOB_WORKER_INTERVAL` | `1s` | Controls how frequently the system checks for new search jobs to process. You probably don't need to configure this.|
+| `SRC_SEARCH_JOB_MAXIMUM_RUNTIME_PER_JOB` | `5h` | Sets a maximum time limit for how long a search job can run per repository-revision pair. Note that a search job is run as a collection of many smaller searches, each targeting a single revision of a repository. This ENV targets the maximum runtime of individual searches.|
+| `SRC_SEARCH_JOB_NUM_HANDLERS` | `5` | Adjusts how many searches can run in parallel. A value of 5 (default) means that 5 searches, each targeting a different repository-revision pair, can run in parallel. More handlers put more pressure on the backend, particularly on Searcher and Zoekt. Make sure you have sufficient resources before increasing the number of handlers. |
## Supported result types
@@ -99,20 +76,20 @@ The following result types are not supported:
The following elements of our query language are not supported:
- file predicates, such as `file:has.content`, `file:has.owner`, `file:has.contributor`, `file:contains.content`
-- `.*` regexp search
+- catch-all `.*` regexp search
- Multiple `rev` filters
- Queries with `index: filter`
- Sourcegraph already offers an [Exhaustive Search](/code-search/types/exhaustive) with the `count:all` operator. However, there are certain limitations when generating results within your codebase.
-## Disable Search Jobs
+
+ Alternatively, the search bar supports the `count:all` operator which increases result limits and timeouts.
+ This works well if the search completes within a few minutes and the number of results is less than the configured display limit.
+ For longer running searches and searches with huge result sets, Search Jobs is the better choice.
+
-Follow these steps to disable Search Jobs and to hide the feature in the Sourcegraph UI:
+## Disable Search Jobs
-- Login to your Sourcegraph instance and go to the site admin
-- Next, click the site configuration
-- From here, you'll see `experimentalFeatures`
-- Set `searchJobs` to `false` and then refresh the page
+To disable Search Jobs, set `DISABLE_SEARCH_JOBS=true` in your frontend and worker services.
## FAQ
@@ -134,4 +111,4 @@ If you do hit a timeout, please reach out to support and we will help you troubl
We mark a search job as failed if any of the tasks fail.
You can access the log of a search job from the search jobs UI.
-The log contains one line per task. If a task fails, the log will contain the error message.
\ No newline at end of file
+The log contains one line per task. If a task fails, the log will contain the error message.
diff --git a/docs/code-search/types/structural.mdx b/docs/code-search/types/structural.mdx
index 43ea47625..063e2f29b 100644
--- a/docs/code-search/types/structural.mdx
+++ b/docs/code-search/types/structural.mdx
@@ -2,7 +2,7 @@
Learn and understand about Sourcegraph's Structural Search and core functionality.
- Changed in version 5.3. Structural search is disabled by default. To enable it, ask your site administrator to set `experimentalFeatures.structuralSearch = "enabled" in site configuration.
+ Changed in version 5.3. Structural search is disabled by default. To enable it, ask your site administrator to set experimentalFeatures.structuralSearch = "enabled" in site configuration. Structural search has performance limitations and is not actively developed. We recommend using regex search or a combination of [Search Jobs](./search-jobs.mdx) and custom scripts instead. Please reach out to [support@sourcegraph.com](mailto:support@sourcegraph.com) for guidance on alternative approaches.
With structural search, you can match richer syntax patterns specifically in code and structured data formats like JSON. It can be awkward or difficult to match code blocks or nested expressions with regular expressions. To meet this challenge we've introduced a new and easier way to search code that operates more closely on a program's parse tree. We use [Comby syntax](https://comby.dev/docs/syntax-reference) for structural matching. Below you'll find examples and notes for this language-aware search functionality.
diff --git a/docs/code-search/types/symbol.mdx b/docs/code-search/types/symbol.mdx
index 91e98fef2..8a3e07388 100644
--- a/docs/code-search/types/symbol.mdx
+++ b/docs/code-search/types/symbol.mdx
@@ -1,12 +1,19 @@
# Symbol search
+
+ Supported on [Enterprise Starter](/pricing/enterprise-starter) and [Enterprise](/pricing/enterprise) plans.
+
+ Available via VS Code and JetBrains editor extensions and the Web.
+
+
+
We use [Ctags](https://github.com/universal-ctags/ctags) to index the symbols of a repository on demand. These symbols are used to implement symbol search, matching declarations instead of plain text.

## Symbol sidebar
-We use [Ctags](https://github.com/universal-ctags/ctags) to index the symbols of a repository on demand. These symbols are also used for the symbol sidebar, which categorizes declarations by type (variable, function, interface, etc). Clicking on a symbol in the sidebar jumps you to the line where it is defined.
+The extracted `ctags` symbols are also used for the symbol sidebar, which categorizes declarations by type (variable, function, interface, etc). Clicking on a symbol in the sidebar jumps you to the line where it is defined.

diff --git a/docs/code-search/working/saved_searches.mdx b/docs/code-search/working/saved_searches.mdx
index dc8e0c38d..13d3cd976 100644
--- a/docs/code-search/working/saved_searches.mdx
+++ b/docs/code-search/working/saved_searches.mdx
@@ -1,51 +1,39 @@
-# Saved Search
+# Saved Searches
This page provides docs about how Saved Searches work with Sourcegraph.
-Saved Search lets you save and describe search queries so you can easily find and use them again later. You can create a saved search for anything, including diffs and commits across all branches of your repositories.
+Saved Searches lets you reuse and share search queries. You can create a saved search for anything, including diffs and commits across all branches of your repositories.
-If you want Sourcegraph to monitor a search query and send notifications when there are new results, use [code monitoring](/code_monitoring/).
+Saved Searches functionality is available to both Free and Enterprise Code Search users. To access or create new Saved Searches in the Sourcegraph web app, click the **Tools > Saved Searches** in the top navigation bar.
-## Creating saved searches
-
-A saved search consists of a description and a query, both of which you can define and edit.
+
-Saved searches can be associated with a user or an org:
+## Creating saved searches
-- User saved searches are only visible to (and editable by) the user that created them.
-- Org saved searches are visible to (and editable by) all members of the org.
+To create a new saved search:
-### User saved searches
+- Go to the Saved Searches section and click the **New saved search** button
+- Fill out the description field and enter the search query
+- While writing the query syntax, ensure to include the `patternType:` field
-To create a User saved search:
+A `patternType:` filter is required in the query for all saved searches. `patternType` can be `keyword`, `standard`, `literal`, or `regexp`. You cannot create a saved search without defining the `patternType:` field.
-1. Go to **User menu > Saved searches** in the top navigation bar.
-1. Press the **+ Add new search** button.
-1. In the **Query** field, type in the components of the search query.
-1. In the **Description** field, type in a human-readable description for your saved search.
-1. Click **Create**. The saved search is created, and you can see the number of results.
+
-Alternatively, to create a saved search from a search you've already run:
+Enable the checkbox for **Draft** if you don't want other users to use your saved search. This is useful for testing the query before sharing it with others. Once done, click the **Create saved search** button to be redirected to the Saved Searches page.
-1. Execute a search from the homepage or navigation bar.
-1. Press the **Save this search query** button that appears on the right side of the screen above the first result.
-1. Follow the instructions from above to fill in the remaining fields.
+Your saved search will appear with a `Secret` label, which means that only you can view and use it. To let others use your saved search, you need to transfer it to an organization and ask the site admin to make it public.
-To view User saved searches, go to **User menu > Saved searches** in the top navigation bar.
+In addition, you can also search within your saved searches and sort your saved searches by name, recently updated, and description.
-### Org saved searches
+
-To create an Org saved search:
+### Transfer ownership
-1. Go to **User menu** and click the desired organization under **Your organizations**
-1. Click the **Saved Searches** tab
-1. Press the **+ Add new search** button.
-1. In the **Query** field, type in the components of the search query.
-1. In the **Description** field, type in a human-readable description for your saved search.
-1. Click **Create**. The saved search is created, and you can see the number of results.
+To transfer ownership of a saved search, click the **Edit** button next to it, click the **Transfer ownership** button, and select the organization to which you want to transfer the saved search.
-Org saved searches are viewable in the **Saved Searches** tab of the organization's page.
+
## Example saved searches
-See the [search examples page](/code-search/examples) for a useful list of searches to save.
+See the [search examples page](/code-search/queries/examples) for a useful list of searches to save.
diff --git a/docs/code-search/working/search_contexts.mdx b/docs/code-search/working/search_contexts.mdx
index a0dbbe2d0..501800d39 100644
--- a/docs/code-search/working/search_contexts.mdx
+++ b/docs/code-search/working/search_contexts.mdx
@@ -37,7 +37,9 @@ You can also search across multiple contexts at once using the `OR` [boolean ope
To organize your search contexts better, you can use a specific context as your default and star any number of contexts. This affects what context is selected when loading Sourcegraph and how the list of contexts is sorted.
-### Default context
+### Default search context
+
+#### For users
Any authenticated user can use a search context as their default. To set a default, go to the search context management page, open the "..." menu for a context, and click on "Use as default". If the user doesn't have a default, `global` will be used.
@@ -45,6 +47,25 @@ If a user ever loses access to their default search context (eg. the search cont
The default search context is always selected when loading the Sourcegraph webapp. The one exception is when opening a link to a search query that does not contain a `context:` filter, in which case the `global` context will be used.
+#### For site admins
+
+Site admins can set a default search context for all users on the Sourcegraph instance. This helps teams improve onboarding and search quality by focusing searches on the most relevant parts of the codebase rather than the entire indexed set of repositories.
+
+An admin can set a default search context via:
+
+- Click the **More** button from the top menu of the Sourcegraph web app
+- Next, go to **Search Contexts**
+- For the existing context list, click on the **...** menu and select **[Site admin only] Set as default for all users**
+- Alternatively, you can create a new context and then set it for all users via the same option
+
+
+
+Here are a few considerations:
+
+- If a user already has a personal default search context set, it will not be overridden
+- The admin-set default will apply automatically if a user only uses the global context
+- Individual users can see the instance-wide default and override it with their own default if they choose
+
### Starred contexts
Any authenticated user can star a search context. To star a context, click on the star icon in the search context management page. This will cause the context to appear near the top of their search contexts list. The `global` context cannot be starred.
diff --git a/docs/code-search/working/search_subexpressions.mdx b/docs/code-search/working/search_subexpressions.mdx
index 48f572ac6..dff35ed72 100644
--- a/docs/code-search/working/search_subexpressions.mdx
+++ b/docs/code-search/working/search_subexpressions.mdx
@@ -3,11 +3,11 @@
This page provides docs about using Search Subexpressions in Sourcegraph's Code Search.
Search subexpressions combine groups of [filters](/code-search/queries#filters-all-searches) like `repo:` and
-[operators](/code-search/queries#boolean-operators) like `or`. Compared to [basic examples](/code-search/examples), search subexpressions allow more sophisticated queries.
+[operators](/code-search/queries#boolean-operators) like `or`. Compared to [basic examples](/code-search/queries/examples), search subexpressions allow more sophisticated queries.
Here are examples of how they can help you:
-1. [Noncompliant spelling where case-sensitivity differs depending on the word](https://sourcegraph.com/search?q=repo:%5Egithub%5C.com/sourcegraph/sourcegraph%24+%28%28Github+case:yes%29+or+%28organisation+case:no%29%29&patternType=literal).
+1. [Noncompliant spelling where case-sensitivity differs depending on the word](https://sourcegraph.com/search?q=repo:%5Egithub%5C.com/sourcegraph/sourcegraph%24+%28%28Github+case:yes%29+or+%28organisation+case:no%29%29&patternType=keyword).
```sgquery
repo:sourcegraph ((Github case:yes) or (organisation case:no))
@@ -15,7 +15,7 @@ Here are examples of how they can help you:
The about code finds places to change the spelling of `Github` to `GitHub` (case-sensitivity matters) or change the spelling of `organisation` to `organization` (case-sensitivity does not matter).
-2. [Search for either a file name or file contents scoped to the same repository](https://sourcegraph.com/search?q=repo:%5Egithub%5C.com/sourcegraph/sourcegraph%24+-file:html+%28file:router+or+newRouter%29&patternType=literal).
+2. [Search for either a file name or file contents scoped to the same repository](https://sourcegraph.com/search?q=repo:%5Egithub%5C.com/sourcegraph/sourcegraph%24+-file:html+%28file:router+or+newRouter%29&patternType=keyword).
```sgquery
repo:sourcegraph -file:html (file:router or newRouter)
@@ -40,7 +40,7 @@ capture context and e.g., share with coworkers.
The query is formatted for readability, it is valid as a single line query.
-4. [Search across multiple repositories at multiple revisions](https://sourcegraph.com/search?q=%28repo:%5Egithub%5C.com/sourcegraph/sourcegraph%24%40v3.22.0:v3.22.1+or+repo:%5Egithub%5C.com/sourcegraph/src-cli%24%403.22.0:3.22.1%29+file:CHANGELOG+campaigns&patternType=literal).
+4. [Search across multiple repositories at multiple revisions](https://sourcegraph.com/search?q=%28repo:%5Egithub%5C.com/sourcegraph/sourcegraph%24%40v3.22.0:v3.22.1+or+repo:%5Egithub%5C.com/sourcegraph/src-cli%24%403.22.0:3.22.1%29+file:CHANGELOG+campaigns&patternType=keyword).
```sgquery
(
diff --git a/docs/code_insights/explanations/administration_and_security_of_code_insights.mdx b/docs/code_insights/explanations/administration_and_security_of_code_insights.mdx
index 07c5836ac..f61298172 100644
--- a/docs/code_insights/explanations/administration_and_security_of_code_insights.mdx
+++ b/docs/code_insights/explanations/administration_and_security_of_code_insights.mdx
@@ -59,3 +59,41 @@ The following setting(s) apply to adding new data to a previously backfilled Cod
The following setting(s) apply to both backfilling data and adding new data
- `insights.query.worker.rateLimit` - Maximum number of Code Insights queries initiated per second on a worker node.
+
+## Language Stats Performance Configuration
+
+This feature is supported for Sourcegraph versions 5.4 or more.
+
+To create language stats for a repository the Sourcegraph instance analyzes all files from the target repository. Depending
+on the repository's size this can take from a few seconds to multiple minutes. If you need to analyze a repository that's
+larger than 10GB feel free to reach out to Sourcegraph support.
+
+If a query completes the result is stored in an API-level cache and subsequent queries complete within one second. If the query
+does not complete in time, an internal cache is stays partially populated. This cache will be reused on subsequent queries which
+then have less work to do and may resolve faster.
+
+With the May 2024 Release we increased the default number of concurrent requests to the gitserver from 1 to 4, and raised
+the timeout for each language stats query from 3 minutes to 5 minutes.
+
+### Concurrent Requests
+
+This concurrent requests to the gitserver are configurable through the `GET_INVENTORY_GIT_SERVER_CONCURRENCY` environment variable.
+We recommend increasing this carefully, as an increase in concurrency may cause the gitserver to become overloaded and slow down responses.
+
+Example:
+
+```
+GET_INVENTORY_GIT_SERVER_CONCURRENCY=4
+```
+
+To understand how this configuration impacts your language stats queries you can use [tracing](/admin/observability/tracing).
+
+### Language Stats Timeout
+
+The timeout in minutes for language stats queries is configurable through the `GET_INVENTORY_TIMEOUT` environment variable.
+
+Example:
+
+```
+GET_INVENTORY_TIMEOUT=5
+```
diff --git a/docs/code_insights/explanations/current_limitations_of_code_insights.mdx b/docs/code_insights/explanations/current_limitations_of_code_insights.mdx
index f2da36ffe..a9e00c79a 100644
--- a/docs/code_insights/explanations/current_limitations_of_code_insights.mdx
+++ b/docs/code_insights/explanations/current_limitations_of_code_insights.mdx
@@ -24,10 +24,21 @@ To accurately return historical data for insights running over many repositories
The number of insights you have does not affect the overall speed at which they run: it will take the same total time to run all of them whether or not you let each one finish before creating the next one. As of version 4.4.0 Insights prioritize completing the backfills for the insights that will complete the fastest. In general this means that insights over many repositories will pause to allow insights over a few repositories to complete.
+## Creating language insights for a very large repository
+
+> NOTE: This applies to Sourcegraph versions greater than `5.3`
+
+Similar to [insights in general](#creating-insights-over-very-large-repositories), creating a language insight over a very large repository can be slow.
+
+Language insights become faster as the internal cache populates, but depending on your Sourcegraph instance and repository size this may take a few attempts.
+
+By default the dashboard attempts three queries that take up to 5 minutes. It will automatically retry until the three attempts are exhausted.
+
+Apart from waiting and retrying you may also reach out to your Sourcegraph administrator to [increase the number of concurrent queries or increase the timeout for the query](/code_insights/explanations/administration_and_security_of_code_insights).
## Creating insights over very large repositories
-> NOTE: The feature applies on Sourcegraph version graeter than `3.42`
+> NOTE: The feature applies on Sourcegraph version greater than `3.42`
In some cases, depending on the size of the Sourcegraph instance and the size of the repo, you may see odd behavior or timeout errors if you try to create a code insight running over a single large repository. In this case, it's best to try:
@@ -38,14 +49,14 @@ If this does not solve your problem, please reach out directly to your Sourcegra
## Accuracy considerations for an insight query returning a large result set
-If you create an insight with a search query that returns a large result set that exceeds the search timeout (generally when there are over 1,000,000 results), non-historical data points may report undercounted numbers. This behaviour is tracked in [this issue](https://github.com/sourcegraph/sourcegraph/issues/37859). This is because non-historical data points are recorded with a global search query as opposed to per-repo queries we run for backfilling. For a large result set (e.g. a query for `test` with millions of results) the global query will be disadvantaged by the global search timeout. You can find more information on search timeouts in the [docs](/code-search/types/exhaustive#timeouts).
+If you create an insight with a search query that returns a large result set that exceeds the search timeout (generally when there are over 1,000,000 results), non-historical data points may report undercounted numbers. This is because non-historical data points are recorded with a global search query as opposed to per-repo queries we run for backfilling. For a large result set (e.g. a query for `test` with millions of results) the global query will be disadvantaged by the global search timeout. You can find more information on search timeouts in the [docs](/code-search/queries/language#timeout).
You can determine if this issue may be affecting your query by just running the query in the Search UI on `/search` with a `count:all` – if your search is returning `x results in 60s` (or the upper limit max timeout is configured to) then the search will time out on insights as well. Note that the duration could be more or less `60s`, e.g. you could encounter `60.02s` as well.
In this case, you may want to try:
* Using a more granular query
-* Changing your site configuration so that the timeout is increased, provided your instance setup allows it. [More information on timeouts](/code-search/types/exhaustive#timeouts).
+* Changing your site configuration so that the timeout is increased, provided your instance setup allows it. [More information on timeouts](/code-search/queries/language#timeout).
## General scale limitations
@@ -55,7 +66,7 @@ There are a few factors to consider with respect to scale and expected performan
1. General permissiveness - instances that are more open (users can see most repos) will perform better than instances that are more restricted. Insights have been tested with users having up to 100k restricted repositories.
2. Number of repositories - Code Insights is well tested with insights running over ~35,000 repositories. It is recommended that users should scope their insights to the smallest set of repositories needed. Users should expect at least linear degradation as repository count grows in both time to calculate insights, and render performance.
-3. Large monorepos - Code Insights allocates a fixed amount of time for each query, so large repositories that cause query timeouts will likely not have exhaustive (and therefore accurate) results. As of version 4.4.0 we added visibility to this state via an icon on the insight. Prior to the 4.4.0 version a heuristic indicator for if this is a problem is seeing values "jump" (either a significant increase or decrease) between the backfilled datapoints on creation and the up-to-date datatpoints added after creation.
+3. Large monorepos - Code Insights allocates a fixed amount of time for each query, so large repositories that cause query timeouts will likely not have exhaustive (and therefore accurate) results. As of version 4.4.0 we added visibility to this state via an icon on the insight. Prior to the 4.4.0 version a heuristic indicator for if this is a problem is seeing values "jump" (either a significant increase or decrease) between the backfilled datapoints on creation and the up-to-date datapoints added after creation.
4. High cardinality capture groups - When using a capture group insight, high cardinality matches (for example 1000 distinct matches per repository) will cause significant increase in loading times of charts. It is possible to exceed request timeouts if there are too many distinct matches.
5. Concurrent usage
1. If there are many insight creators the insights will take longer to calculate.
@@ -70,6 +81,8 @@ Code Insights does not yet support running over specific revisions.
Code Insights only supports git based repositories and does not support perforce repositories that have sub-repo permissions enabled.
+ Perforce depots converted to git are also currently not supported for Code Insights.
+
## Feature parity limitations
### Features currently available only on insights over all your repositories
@@ -95,10 +108,6 @@ Please see [Current limitations of automatically generated data series](/code_in
There are currently a few subtle differences in how code insights and Sourcegraph web app searches handle defaults when searching over all repositories. Refer to [Common reasons code insights may not match search results](/code_insights/references/common_reasons_code_insights_may_not_match_search_results).
-## Known bugs
-
-Known bugs we plan to fix are tracked in our [GitHub repository here](https://github.com/sourcegraph/sourcegraph/issues?q=is%3Aopen+is%3Aissue+label%3Abug+label%3Ateam%2Fcode-insights).
-
## Older versions' limitations
### Version 3.30 (July 2021) or older
diff --git a/docs/code_insights/explanations/search_results_aggregations.mdx b/docs/code_insights/explanations/search_results_aggregations.mdx
index 2d1030406..f88852bb1 100644
--- a/docs/code_insights/explanations/search_results_aggregations.mdx
+++ b/docs/code_insights/explanations/search_results_aggregations.mdx
@@ -2,32 +2,32 @@
In version 4.0 and later, Code Insights provides aggregations shown on the search screen.
-This lets you track version and license spread, library adoption, common commit messages, lengths of specific files, usage frequencies, and the [many common use case examples here](/code_insights/references/search_aggregations_use_cases).
+This lets you track version and license spread, library adoption, common commit messages, lengths of specific files, usage frequencies, and the [many common use case examples here](../references/search_aggregations_use_cases.md).
-## Available aggregations:
+## Available aggregations:
-You can aggregate any search by:
+You can aggregate any search by:
1. The repositories with search results
1. The files with search results (for non-commit and non-diff searches)
1. The authors who created the search results (for commit and diff searches)
1. All found matches for the first capture group pattern (for regexp searches with a capture group)
-Aggregations are returned in order of greatest to least results count.
+Aggregations are returned in order of greatest to least results count.
-Aggregations are exhaustive across all repositories the user running the search has access to, unless the chart notes otherwise (see [Limitations](#limitations) below).
+Aggregations are exhaustive across all repositories the user running the search has access to, unless the chart notes otherwise (see [Limitations](#limitations) below).
We may continue adding new aggregation categories, like date and code host, based on feedback. If there are categories you'd like to see, please [let us know](mailto:feedback@sourcegraph.com).
## Feature visibility
-You can turn the aggregations on with the experimental feature setting: `searchResultsAggregations` in your user, org, or site settings.
+You can turn the aggregations on with the experimental feature setting: `searchResultsAggregations` in your user, org, or site settings.
-You can turn off just the proactive aggregations by setting `proactiveSearchResultsAggregations` to `false`.
-This prevents aggregations from running on every search and requires users to explicitly click to run them.
-(The main reason to consider disabling proactive aggregations is if you're seeing a heavy or unexpected load on your instance, but as noted below in [Limitations](#limitations) there are limits that keep the overall resource needs low to begin with.)
+You can turn off just the proactive aggregations by setting `proactiveSearchResultsAggregations` to `false`.
+This prevents aggregations from running on every search and requires users to explicitly click to run them.
+(The main reason to consider disabling proactive aggregations is if you're seeing a heavy or unexpected load on your instance, but as noted below in [Limitations](#limitations) there are limits that keep the overall resource needs low to begin with.)
-## Drilldowns
+## Drilldowns
You can drilldown into a search aggregation by clicking a result in the chart. Your original search query will be updated with a `repo`, `file`, `author` filter or a regexp pattern depending on the aggregation mode.
@@ -35,23 +35,23 @@ You can drilldown into a search aggregation by clicking a result in the chart. Y
### Mode limitations
-If you attempt to run a query for which a given mode is not supported, the tooltip will inform you why that mode is not available.
+If you attempt to run a query for which a given mode is not supported, the tooltip will inform you why that mode is not available.
### Timeout limits
-At the moment all aggregations search queries are run with a 2-second timeout, even if your search specified a timeout. If the aggregation times out, you will be able to trigger a longer search with a 1-minute timeout by clicking `Run aggregation`. The extended timeout can be configured by changing the number of seconds in global settings `insights.aggregations.extendedTimeout`. If configuring this to greater than 60 seconds please see [More information on timeouts](/code-search/types/exhaustive#timeouts).
+At the moment all aggregations search queries are run with a 2-second timeout, even if your search specified a timeout. If the aggregation times out, you will be able to trigger a longer search with a 1-minute timeout by clicking `Run aggregation`. The extended timeout can be configured by changing the number of seconds in global settings `insights.aggregations.extendedTimeout`. If configuring this to greater than 60 seconds please see [More information on timeouts](../../code_search/how-to/exhaustive.md#timeouts).
-After adding new repositories it can be common for aggregations to experience timeouts while those repositories await initial indexing. This is due to aggregations running exhaustive searches over all repositories and will resolve once that indexing is complete.
+After adding new repositories it can be common for aggregations to experience timeouts while those repositories await initial indexing. This is due to aggregations running exhaustive searches over all repositories and will resolve once that indexing is complete.
### Count limits
-Aggregation search queries that run proactively are run with `count:50000`. This default can be changed using the site setting `insights.aggregations.proactiveResultLimit`.
+Aggregation search queries that run proactively are run with `count:50000`. This default can be changed using the site setting `insights.aggregations.proactiveResultLimit`.
If the number of results exceeds this limit, the user can choose to explicitly run the aggregation, and these explicitly-run aggregations use `count:all`.
### Best effort aggregation
-Results are aggregated in a best-effort approach using a limited-size buffer to hold group labels in order not to strain the webapp when these aggregations are run.
-This means that in some cases we might miss some high-count results.
+Results are aggregated in a best-effort approach using a limited-size buffer to hold group labels in order not to strain the webapp when these aggregations are run.
+This means that in some cases we might miss some high-count results.
Aggregations that hit such non-exhaustive paths are reported back to the user.
You can control the size of the buffer using the site setting `insights.aggregations.bufferSize`. It is set to 500 by default. Note that if increasing this you might notice decreased performance on your instance.
@@ -60,7 +60,7 @@ You can control the size of the buffer using the site setting `insights.aggregat
The side panel will display a maximum of 10 bars. If expanded, a maximum of 30 bars will be displayed. If there are more results this will be displayed on the panel.
-### Single capture group
+### Single capture group
Aggregations by capture group will match on the first capture group in the search query only. For example, for a query:
@@ -72,11 +72,11 @@ and a match like `hello-beautiful-world` only `beautiful` will be shown as a res
### Files with the same paths in distinct repositories
-The "file" aggregation groups only by path, not by repository, meaning files with the same path but from different repos will be grouped together. Attach a `repo:` filter to your search to focus on a specific repo.
+The "file" aggregation groups only by path, not by repository, meaning files with the same path but from different repos will be grouped together. Attach a `repo:` filter to your search to focus on a specific repo.
### Saving aggregations to a code insights dashboard
-Saving aggregations to a dashboard of code insights is not yet available.
+Saving aggregations to a dashboard of code insights is not yet available.
### Slower diff and commit queries
@@ -92,4 +92,4 @@ Aggregations for structural searches are unlikely to complete within a 2-second
Standard searches with embedded regexp such as below do not support aggregation by capture group. This is because they are functionally similar to a query with an `or` operator.
```sgquery
database /(\w+)/
-```
+```
\ No newline at end of file
diff --git a/docs/code_insights/how-tos/Troubleshooting.mdx b/docs/code_insights/how-tos/Troubleshooting.mdx
index 4f53f4f1a..299f82add 100644
--- a/docs/code_insights/how-tos/Troubleshooting.mdx
+++ b/docs/code_insights/how-tos/Troubleshooting.mdx
@@ -23,16 +23,16 @@ scale may be responsible.
3. (admin-only) Check the queries currently in background processing using the GraphQL query
``` gql
- query seriesStatus {
+ query seriesStatus {
insightSeriesQueryStatus {
- seriesId
- query
- enabled
- completed
- errored
- processing
- failed
- queued
+ seriesId
+ query
+ enabled
+ completed
+ errored
+ processing
+ failed
+ queued
}
}
```
@@ -107,3 +107,39 @@ Known issues:
- Note: this only completes the failing org jobs. You may then see the `user not found` error above, and will still need to mark the rest of the jobs as complete.
3. If the error messages are neither of those two things, this is not currently a known issue. Contact support and we can help!
+
+## Clicking on Code Insight data points leads to invalid search queries
+
+### Issue
+When clicking on a data point in a Code Insight, users are redirected to the search results page with an invalid search query,
+resulting in no results or an error message.
+
+### Symptoms
+- Clicking on a Code Insight data point leads to a search query with too many slashes
+- The search query fails with an error message like: "Unable To Process Query Error parsing regexp: missing closing ): (/"
+- No search results are displayed
+
+### Workaround
+
+Modify your Code Insight query to use the new syntax style. For example:
+
+Instead of:
+
+```
+select:file patterntype:regexp file:.php content:class\s(.)\sextends\sModelRepo\s{
+```
+
+Use:
+
+```
+select:file file:.php /class\s(.)\sextends\sModelRepo\s{/
+```
+
+### Steps to apply the workaround
+
+1. Navigate to your Code Insight
+2. Locate the query causing the issue
+3. Update the query using the new syntax style as shown above
+4. Save the changes to your Code Insight
+
+After applying this workaround, clicking on data points should lead to valid search queries and display the expected results.
\ No newline at end of file
diff --git a/docs/code_insights/how-tos/index.mdx b/docs/code_insights/how-tos/index.mdx
index 8fde7b5a5..738c9dd50 100644
--- a/docs/code_insights/how-tos/index.mdx
+++ b/docs/code_insights/how-tos/index.mdx
@@ -2,5 +2,6 @@
The following is a list of how-tos that show how to use Code Insights.
-- [Creating a dashboard of code insights](/code_insights/how-tos/creating_a_custom_dashboard_of_code_insights)
-- [Filtering an insight](/code_insights/how-tos/filtering_an_insight)
+- [Creating a dashboard of Code Insights](/code_insights/how-tos/creating_a_custom_dashboard_of_code_insights)
+- [Filtering an Insight](/code_insights/how-tos/filtering_an_insight)
+- [Troubleshooting Code Insights](/code_insights/how-tos/Troubleshooting)
diff --git a/docs/code_insights/index.mdx b/docs/code_insights/index.mdx
index 345d05535..e88e13413 100644
--- a/docs/code_insights/index.mdx
+++ b/docs/code_insights/index.mdx
@@ -1,5 +1,12 @@
# Code Insights
+
+ Supported on [Enterprise](/pricing/enterprise) plans.
+
+ Currently available via the Web app.
+
+
+
Anything you can search, you can track and analyze
diff --git a/docs/code_insights/language_insight_quickstart.mdx b/docs/code_insights/language_insight_quickstart.mdx
index 0e2aa6b8c..9e547763d 100644
--- a/docs/code_insights/language_insight_quickstart.mdx
+++ b/docs/code_insights/language_insight_quickstart.mdx
@@ -24,7 +24,7 @@ If you are more interested tracking the historical or future result count of an
### 3. Once on the "Set up new language usage insight" form fields page, enter the repository you want to analyze.
-Enter repositories in the repository URL format, like `github.com/Sourcegraph/Sourcegraph`.
+Enter repositories in the repository URL format, like `github.com/sourcegraph/docs`. We recommend a small repository so that you get a quick result.
The form field will validate that you've entered the repository correctly.
diff --git a/docs/code_insights/references/common_reasons_code_insights_may_not_match_search_results.mdx b/docs/code_insights/references/common_reasons_code_insights_may_not_match_search_results.mdx
index 7996f0c19..76cb28ea9 100644
--- a/docs/code_insights/references/common_reasons_code_insights_may_not_match_search_results.mdx
+++ b/docs/code_insights/references/common_reasons_code_insights_may_not_match_search_results.mdx
@@ -22,8 +22,6 @@ To investigate this, one can compare the list of repositories in the manual sear
Currently, a data series' most recent datapoint defaults to the end of the prior month. It's possible that in the time between when your insight ran and when you ran a manual search, new matches have been added to your codebase. To confirm this, you can run `type:diff` or `type:commit` searches using the `after:` filter, but note that those filters only support up to 10,000 repositories, so you may first need to limit your search repository set.
-> NOTE: Future releases of Code Insights may include [an always-up-to-date present-time point](https://github.com/sourcegraph/sourcegraph/issues/24186).
-
### Repository timeouts caused a datapoint to miss results
If your code insight is very large, it is possible that a few (\<1% in 100+ manual tests over 26,000 repositories) repositories failed to return match counts due to timing out while searching. To check this, you can run the following GraphQL query in the Sourcegraph GraphQL API:
diff --git a/docs/code_insights/references/common_use_cases.mdx b/docs/code_insights/references/common_use_cases.mdx
index a6e4183be..44ca3146d 100644
--- a/docs/code_insights/references/common_use_cases.mdx
+++ b/docs/code_insights/references/common_use_cases.mdx
@@ -167,7 +167,7 @@ select:repo import\slargePkg patternType:regexp
### React Component use
How many places are importing components from a library
```sgquery
-from '@sourceLibrary/component' patternType:literal
+from '@sourceLibrary/component' patternType:keyword
```
diff --git a/docs/code_insights/references/incomplete_data_points.mdx b/docs/code_insights/references/incomplete_data_points.mdx
index 2e11d4deb..750041bd8 100644
--- a/docs/code_insights/references/incomplete_data_points.mdx
+++ b/docs/code_insights/references/incomplete_data_points.mdx
@@ -6,6 +6,63 @@ In all of these cases, if data is returned at all, it will be an undercount.
See the below situations for tips on avoiding and troubleshooting these errors.
+## Search Queries
+
+This guide applies to all types of Code Insights that use search queries. Language Stats Insights do not use search queries.
+
+## Identify affected repositories
+
+Through the Code Insights you can only see an aggregated warning for incomplete datapoints. If you're running the Code Insight
+with more than one repository, you may want to identify which repositories are causing incomplete datapoints.
+
+To identify affected repositories you first need the series ID. Go to your insights dashboard, and click on the hamburger menu
+in the top right of your insight's widget. Click on "Get shareable link". It may look like the one below. The last part is the ID.
+
+```
+https://test.sourcegraph.com/insights/aW5zaWdodF92aWV3OiIyZ1ZmQzMxMjEwRGhKVkxvc1YybnBqbEduYnUi
+```
+
+With the ID, you can now use the GraphQL API Console through your user settings page, or navigate to `/api/console` on your Sourcegraph instance.
+
+Paste the GraphQL query below into the query field, and replace `MY_SERIES_ID` with the ID you copied from above.
+
+```
+{
+ insightViews(id: "MY_SERIES_ID") {
+ nodes {
+ repositoryDefinition {
+ ...on RepositorySearchScope {
+ search
+ }
+ }
+ dataSeries {
+ status {
+ incompleteDatapoints {
+ time
+ ...on TimeoutDatapointAlert {
+ __typename
+ repositories {
+ name
+ }
+ }
+ ...on GenericIncompleteDatapointAlert {
+ __typename
+ repositories {
+ name
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
+```
+
+Running this query will give you a list of incomplete datapoints along with the repositories that are causing them.
+
+You can then follow the other recommendations on this page to address issues for those repositories.
+
## Timeout errors
For searches that take a long time to complete, it's possible for them to timeout before the search ends, and before we can record the data value.
@@ -24,6 +81,73 @@ You can read more about this case in our [limitations](/code_insights/explanatio
If the data is available, the error alert will inform you which times the search has timed out.
+## Strategies for very large repositories
+
+When dealing with large repositories, several strategies can help identify and manage search limitations effectively.
+
+The goal is to find a query that can execute successfully, and then ramp up complexity until we find the breaking point.
+
+### Use Code Search to test your query
+
+You can use Code Search to verify if the query is able to complete within the given timeout.
+
+Once a query was executed the results may be indexed and you need to choose a different commit or date to achieve comparable results to Code Insights.
+
+#### Unlimited results
+
+Code Search limits the number of results by default. Code Insights however needs to count through all the results.
+
+Add `count:all` to your query to get comparable results.
+
+#### Picking the right commit
+
+When Code Insights runs a search query, it will do so for 12 commits spread out over the configured time range. This
+unindexed search can take longer the further back in time the search goes.
+
+To test that the slowest search will succeed in time, we recommend using the `rev:at.time(...)` (available from version 5.4.0)
+with the time range that you selected. E.g. if your Code Insight looks at the last 2 years you should use `rev:at.time(2y)`.
+
+For example the Code Insights query `file:.*\.md hello repo:^github\.com/my_org/my_repo count:all` should be written as
+`context:global file:.*\.md hello repo:^github\.com/my_org/my_repo count:all rev:at.time(2y)` in Code Search.
+
+If your Sourcegraph instance is on a version older than 5.4.0, you can pick a commit sha from e.g. 2 years ago. Here the query
+`file:.*\.md hello repo:^github\.com/my_org/my_repo count:all` becomes `context:global file:.*\.md hello repo:^github\.com/my_org/my_repo@my_commit_sha count:all`.
+
+#### Timeout
+
+If the query fails with a timeout before one minute has passed, add the parameter `timeout:1m`.
+
+### Precise queries compute faster
+
+If your query is not able to compute results in a reasonable time, you can try to reduce the number of results returned by the query.
+
+For example, if you want to track the version of a NPM dependency in your code base, searching for `my_library file:package.json` will compute much faster because there are less files to look at and fewer results to return.
+
+We recommend to make your query as precise as possible and reduce the number of results until you reach a query that is able to compute fast enough.
+
+Here are some tips:
+- Search only files with a particular ending. E.g. use `file:.*\.md` to search for files with the `.md` ending.
+- Search for files with a certain language. E.g. use `lang:javascript` to search for all JavaScript files. Please note
+ that this can be slower than the file ending filter, but may be necessary for ambiguous file endings (e.g. `.m` is used for Objective-C and Matlab).
+- Put quotes around literal terms, unless you want to search for multiple keywords. E.g. searching for `"hello world"` will only
+ yield results where both words are connected by a whitespace, but `hello world` will yield results where either word appears.
+
+To learn more about writing precise queries, see our [search query syntax](/code-search/queries).
+
+### Increase the timeout
+
+By default, search queries have a one minute timeout. This value is capped by the setting `search.limits.maxTimeoutSeconds` which by default is also one minute.
+
+Your site admin can change this value to increase the maximum timeout. Once it is increased, you can use the search parameter `timeout:` to give the query more time to run.
+
+Example:
+
+```
+timeout:10m
+```
+
+Note that very long searches can have a negative impact on performance, so it's important to use this parameter with caution.
+
## Other errors
For other errors, please reach out to our support team through your usual channels or at support@sourcegraph.com.
diff --git a/docs/code_monitoring/explanations/best_practices.mdx b/docs/code_monitoring/explanations/best_practices.mdx
index d77a87327..fdbf90473 100644
--- a/docs/code_monitoring/explanations/best_practices.mdx
+++ b/docs/code_monitoring/explanations/best_practices.mdx
@@ -8,7 +8,7 @@ There are some best practices we recommend when creating code monitors.
Every code monitor has a name that will be shown wherever the monitor is referenced. In notification actions this name is likely to be the only information about the event, so it’s important for identifying what was triggered, but also has to be “safe” to expose in plain text emails.
-### Do not include results when the notification destination untrusted
+### Do not include results when the notification destination is untrusted
Each code monitor action has the ability to include the result contents when sending a notification. This is often convenient because it lets you immediately see which results triggered the notification. However, because the result contents include the code that matched the search query, they may contain sensitive information. Care should be taken to only send result contents if the destination is secure.
diff --git a/docs/code_monitoring/how-tos/index.mdx b/docs/code_monitoring/how-tos/index.mdx
index c74a45c72..dafa49f2a 100644
--- a/docs/code_monitoring/how-tos/index.mdx
+++ b/docs/code_monitoring/how-tos/index.mdx
@@ -1,5 +1,5 @@
# How-tos
* [Starting points](/code_monitoring/how-tos/starting_points)
-* [Setting up Slack notifications](/code_monitoring/how-tos/slack) (Beta)
-* [Setting up Webhook notifications](/code_monitoring/how-tos/webhook) (Beta)
+* [Setting up Slack notifications](/code_monitoring/how-tos/slack)
+* [Setting up Webhook notifications](/code_monitoring/how-tos/webhook)
diff --git a/docs/code_monitoring/how-tos/slack.mdx b/docs/code_monitoring/how-tos/slack.mdx
index dfbbe4187..51fa8d730 100644
--- a/docs/code_monitoring/how-tos/slack.mdx
+++ b/docs/code_monitoring/how-tos/slack.mdx
@@ -1,21 +1,22 @@
-# Setting up Slack notifications
+# Slack notifications for code monitors
-This feature is in beta.
+You can set up [code monitors](/code_monitoring) to send notifications about new matching search results to Slack channels.
-Slack notifications are supported via webhooks. Webhooks are special URLs that Sourcegraph's Code Monitoring
-can call in order to send a message to a Slack channel when there are new search results for a query.
-In order to use Slack notifications, you must first create a Slack application in your organization's Slack workspace,
-add a webhook for a Slack channel within that application, and then configure a code monitor in Sourcegraph to
-use that webhook's URL.
+## Requirements
-## Prerequisites
+- You must have permission to create apps in your organization's Slack workspace.
-- You must not have have the setting `experimentalFeatures.codeMonitoringWebHooks` disabled in your user, org, or global settings.
-- You must have permission to create apps inside of your organization's Slack workspace
+## Usage
-## Creating a Slack webhook
+1. In Sourcegraph, click on the "Code Monitoring" nav item at the top of the page.
+1. Create a new code monitor or edit an existing monitor by clicking on the "Edit" button next to it.
+1. Go through the standard steps for a code monitor (if it's a new one) and select the action **Send Slack message to channel**.
+1. Paste your webhook URL into the "Webhook URL" field. (See "[Creating a Slack incoming webhook URL](#creating-a-slack-incoming-webhook-url)" below for detailed instructions.)
+1. Click on the "Continue" button, and then the "Save" button.
-1. Navigate to https://api.slack.com/apps and sign in to your Slack account if necessary.
+### Creating a Slack incoming webhook URL
+
+1. Go to https://api.slack.com/apps and sign in to your Slack account if necessary.
1. Click on the "Create an app" button.
1. Create your app "From scratch".
1. Give your app a name and select the workplace you want notifications sent to.
@@ -26,12 +27,3 @@ use that webhook's URL.
1. Select the channel you want notifications sent to, then click on the "Allow" button.
1. Your webhook URL is now created! Click the copy button to copy it to your clipboard.
-
-## Configuring a code monitor to send Slack notifications
-
-1. In Sourcegraph, click on the "Code Monitoring" nav item at the top of the page.
-1. Create a new code monitor or edit an existing monitor by clicking on the "Edit" button next to it.
-1. Go through the standard configuration steps for a code monitor and select action "Send Slack message to channel".
-1. Paste your webhook URL into the "Webhook URL" field.
-1. Click on the "Continue" button, and then the "Save" button.
-
diff --git a/docs/code_monitoring/how-tos/webhook.mdx b/docs/code_monitoring/how-tos/webhook.mdx
index 6f297905e..71a0c057d 100644
--- a/docs/code_monitoring/how-tos/webhook.mdx
+++ b/docs/code_monitoring/how-tos/webhook.mdx
@@ -1,7 +1,5 @@
# Setting up Webhook notifications
-This feature is in beta.
-
Webhook notifications provide a way to execute custom responses to a code monitor notification.
They are implemented as a POST request to a URL of your choice. The body of the request is defined
by Sourcegraph, and contains all the information available about the cause of the notification.
diff --git a/docs/code_monitoring/index.mdx b/docs/code_monitoring/index.mdx
index 5f89d4a27..829e05826 100644
--- a/docs/code_monitoring/index.mdx
+++ b/docs/code_monitoring/index.mdx
@@ -1,5 +1,12 @@
# Code monitoring
+
+ Supported on [Enterprise](/pricing/enterprise) plans.
+
+ Currently available via the Web app.
+
+
+
Keep on top of events in your codebase
Watch your code with code monitors and trigger actions to run automatically in response to events.
diff --git a/docs/code_monitoring/quickstart.mdx b/docs/code_monitoring/quickstart.mdx
index 4fbbd8f8a..e2e80ab61 100644
--- a/docs/code_monitoring/quickstart.mdx
+++ b/docs/code_monitoring/quickstart.mdx
@@ -6,20 +6,20 @@ In this tutorial, we will create a new code monitor that monitors new appearance
## Creating a code monitor
-Prerequisite: Ensure [email notifications](https://docs.sourcegraph.com/admin/observability/alerting#email) are configured in site configuration.
+Prerequisite: Ensure [email notifications](/admin/observability/alerting#email) are configured in site configuration.
1. On your Sourcegraph instance, click the **Code monitoring** menu item at the top right of your page. Alternatively, go to `https://sourcegraph.example.com/code-monitoring` (where sourcegraph.example.com represents your unique Sourcegraph url).
-1. Click the **Create new code monitor** button at the top right of the page.
-1. Fill out the **Name** input with: "TODOs".
-1. Under the **Trigger** section, click **When there are new search results**.
-1. In the **Search query** input, enter the following search query:
-`TODO type:diff patternType:literal`.
+2. Click the **Create new code monitor** button at the top right of the page.
+3. Fill out the **Name** input with: "TODOs".
+4. Under the **Trigger** section, click **When there are new search results**.
+5. In the **Search query** input, enter the following search query:
+`TODO type:diff patternType:keyword`.
(Note that `type:` and `patternType:` are required as part of the search query for code monitoring.)
1. You can click **Preview results** to see all previous additions or removals of TODO to your codebase.
-1. Back in the code monitor form, click **Continue**.
-1. Click **Send email notifications** under the **Actions** section.
-1. Click **Done**.
-1. Click **Create code monitor**.
+2. Back in the code monitor form, click **Continue**.
+3. Click **Send email notifications** under the **Actions** section.
+4. Click **Done**.
+5. Click **Create code monitor**.
You should now be on `https://sourcegraph.example.com/code-monitoring`, and be able to see the TODO code monitor on the page.
@@ -33,5 +33,5 @@ If you want to preview the email notification alerting you of a new result with
If you want to test receiving an email with a real new result, follow these steps:
1. In any repository that's on your Sourcegraph instance (for purposes of this tutorial, we recommend a dummy or test repo that's not used), add `TODO` to any file.
-1. Commit the change, and push it to your code host.
+1. Commit the change, and push it to your code host.
1. Within a few minutes, you should see an email from Sourcegraph with a link to the new result you just pushed.
diff --git a/docs/cody/capabilities/agentic-chat.mdx b/docs/cody/capabilities/agentic-chat.mdx
new file mode 100644
index 000000000..610d739fe
--- /dev/null
+++ b/docs/cody/capabilities/agentic-chat.mdx
@@ -0,0 +1,73 @@
+# Agentic chat
+
+ Learn about the agentic chat experience, an exclusive chat-based AI agent with enhanced capabilities.
+
+Agentic chat (available in version 6.0) is currently in the Experimental stage for Enterprise and is supported on VS Code, JetBrains, Visual Studio editor extensions and Web. Usage may be limited at this stage.
+
+Cody's agentic chat experience is an AI agent that can evaluate context and fetch any additional context (OpenCtx, terminal, etc.) by providing enhanced, context-aware chat capabilities. It extends Cody's functionality by proactively understanding your coding environment and gathering relevant information based on your requests before responding. These features help you get noticeably higher-quality responses.
+
+This agentic chat experience aims to reduce the learning curve associated with traditional coding assistants by minimizing users' need to provide context manually. It achieves this through agentic context retrieval, where the AI autonomously gathers and analyzes context before generating a response.
+
+## Capabilities of agentic chat
+
+The agentic chat experience leverages several key capabilities, including:
+
+- **Proactive context gathering**: Automatically gathers relevant context from your codebase, project structure, and current task
+- **Agentic context reflection**: Review the gathered context to ensure it is comprehensive and relevant to your query
+- **Iterative context improvement**: Performs multiple review loops to refine the context and ensure a thorough understanding
+- **Enhanced response accuracy**: Leverages comprehensive context to provide more accurate and relevant responses, reducing the risk of hallucinations
+
+## What can agentic chat do?
+
+Agentic chat can help you with the following:
+
+### Tool Usage
+
+It has access to a suite of tools for retrieving relevant context. These tools include:
+
+- **Code Search**: Performs code searches
+- **Codebase File**: Retrieves the full content from a file in your codebase
+- **Terminal**: Executes shell commands in your terminal
+- **Web Browser**: Searches the web for live context
+- **OpenCtx**: Any OpenCtx providers could be used by the agent
+
+It integrates seamlessly with external services, such as web content retrieval and issue tracking systems, using OpenCtx providers. To learn more, [read the OpenCtx docs](/cody/capabilities/openctx).
+
+Terminal access is not supported on the Web. It currently only works with VS Code, JetBrains, and Visual Studio editor extensions.
+
+## Terminal access
+
+Agentic chat can use the CLI Tool to request the execution of shell commands to gather context from your terminal. Its ability to execute terminal commands enhances its context-gathering capabilities. However, it’s essential to understand that any information accessible via your terminal could potentially be shared with the LLM. It's recommended not to request information that you don't want to share. Here's what you should consider:
+
+- **Requires user consent**: Agentic chat will pause and ask for permission each time before executing any shell command.
+- **Trusted workspaces only**: Commands can only be executed within trusted workspaces with a valid shell
+- **Potential data sharing**: Any terminal-accessible information may be shared with the LLM
+
+Commands are generated by the agent/LLM based on your request. Avoid asking it to execute destructive commands.
+
+## Use cases
+
+Agentic chat can be helpful to assist you with a wide range of tasks, including:
+
+- **Improved response quality**: Helps you get better and more accurate responses than other LLMs, making up for the additional processing time for context gathering a non-issue
+- **Error resolution**: It can automatically identify error sources and suggest fixes by analyzing error logs
+- **Better unit tests**: Automatically includes imports and other missing contexts to generate better unit tests
+
+## Enable agentic chat
+
+### Getting agentic chat access for Pro users
+
+Pro users can find the agentic chat option in the LLM selector drop-down.
+
+
+
+### Getting agentic chat access for Enterprise customers
+
+Enterprise customers must opt-in to access this agentic chat feature (reach out to your account team for access).
+
+For the experimental release, agentic chat is specifically limited to using Claude Haiku for the reflection steps and Claude Sonnet for the final response to provide a good balance between quality and latency. Therefore, your enterprise instance must have access to both Claude Sonnet and Claude Haiku to use agentic chat. We use the latest versions of these models, and can fall back to older versions when necessary. These models may be changed during the experimental phase to optimize for quality and/or latency.
+
+Additionally, enterprise users need to upgrade their supported client (VS Code, JetBrains, and Visual Studio) to the latest version of the plugin by enabling the following feature flags on their Sourcegraph Instance:
+
+- `agentic-chat-experimental` to get access to the feature
+- `agentic-chat-cli-tool-experimental` to allow [terminal access](#terminal-commands)
diff --git a/docs/cody/capabilities/auto-edit.mdx b/docs/cody/capabilities/auto-edit.mdx
new file mode 100644
index 000000000..5fa82bb3e
--- /dev/null
+++ b/docs/cody/capabilities/auto-edit.mdx
@@ -0,0 +1,144 @@
+# Auto-edit
+
+Auto-edit suggests code changes by analyzing cursor movements and typing. After you've made at least one character edit in your codebase, it begins proposing contextual modifications based on your cursor position and recent changes.
+
+Auto-edit is currently supported with Sourcegraph v6.0+ for Pro, Enterprise Starter, and Enterprise accounts on Cody Gateway. Auto-edit requires Fireworks to be enabled as a provider. Enterprise customers without Fireworks enabled can disable the feature flag.
+
+## Capabilities of auto-edit
+
+- Can automatically insert and delete text
+- Can modify code before and after the cursor position
+- Works with repetitive tasks, especially in test files
+- Can propose similar changes across multiple locations based on recent edits
+- Can handle complex refactoring operations like adding parameters and unpacking functions
+
+## How does auto-edit work?
+
+The system detects potential changes based on the following:
+
+- Cursor placement in the code
+- Recent changes made in similar contexts
+- Function usage patterns
+- Common refactoring patterns
+
+## Auto-edit vs. Autocomplete
+
+In terms of feature set and functionality, auto-edit and autocomplete have some key differences:
+
+| **Feature** | **Autocomplete** | **Auto-edit** |
+| ---------------------- | -------------------------------------- | -------------------------------------------------- |
+| **Text modification** | Can only insert text, not delete | Can both insert and delete text |
+| **Cursor position** | Only proposes content after the cursor | Can modify code before and after the cursor |
+| **Suggestion trigger** | Suggests on every character typed | Proposes changes based on context and recent edits |
+
+## Use cases
+
+The auto-edit feature can help you with various repetitive tasks in your code:
+
+- **Function signature refactoring**: Automatically suggests adding error returns, new parameters, or changing return types across function definitions. For example, when you modify a function to return both a value and an error, auto-edit helps update the function signature.
+- **Call site updates**: When you change a function's signature, auto-edit detects all locations where the function is called and suggests necessary modifications to match the new signature. This includes updating parameter orders, adding error handling, and adjusting return value usage.
+- **Test file maintenance**: Helps with repetitive updates in test files, such as modifying test assertions, updating mock objects, or changing test data structures. Auto-edit recognizes patterns from your recent changes and suggests similar modifications across related tests.
+- **Parameter refactoring**: Assists in adding, removing, or reorganizing function parameters. When you unpack a function to handle more cases, auto-edit helps restructure the parameter list and suggests corresponding changes at call sites.
+- **Type system modifications**: Auto-edit identifies and suggests consistent changes across your codebase when updating type definitions or interfaces. This includes updating variable declarations, function parameters, and return types to maintain type consistency.
+
+Auto-edit is supported by both Cody VS Code and JetBrains plugins.
+
+
+
+
+Auto-edit for VS Code is currently in Beta. It's available for Pro, Enterprise Starter, and Enterprise users on Cody Gateway. Auto-edit requires Fireworks to be enabled as a provider. Enterprise customers without Fireworks enabled can disable the feature flag.
+
+## Enabling auto-edit in VS Code
+
+Auto-edit is enabled by default for Cody Pro Enterprise Starter and Enterprise users. You can opt out and switch back to autocomplete by selecting it from the suggestion mode in the Cody VS Code extension settings.
+
+Site admins can opt their organization out of the auto-edit feature by disabling it from their config settings.
+
+### Auto-edit access for Enterprise customers
+
+Auto-edit is available for Enterprise customers with [Sourcegraph Cody Gateway](/cody/core-concepts/cody-gateway#sourcegraph-cody-gateway) access. Enabling the feature requires two steps:
+
+1. Site administrators must:
+ - Ensure the feature flag `cody-autoedit-experiment-enabled-flag` is enabled (enabled by default)
+ - Add `fireworks::*` as an [allowed provider](https://sourcegraph.com/docs/cody/enterprise/model-configuration#model-filters) (see below)
+2. Once enabled, auto-edit will become the default suggestion mode for all users
+3. Users can optionally switch back to autocomplete from the Cody extension settings
+4. Site admins can opt out of auto-edits using the `cody-autoedit-experiment-enabled-flag` feature flag
+
+The following example demonstrates how to add Fireworks as an allowed LLM provider:
+
+```json
+
+"cody.enabled": true,
+"modelConfiguration": {
+ "sourcegraph": {
+ "modelFilters": {
+ // Only allow "beta" and "stable" models.
+ // Not "experimental" or "deprecated".
+ "statusFilter": ["beta", "stable"],
+
+ // Allow any models provided by Anthropic, OpenAI, Google and Fireworks.
+ "allow": [
+ "anthropic::*", // Anthropic models
+ "openai::*", // OpenAI models
+ "google::*", // Google Gemini models
+ "fireworks::*", // Open source models hosted by Sourcegraph
+ ],
+ }
+ }
+}
+```
+
+
+
+
+
+Auto-edit for JetBrains IDEs is Experimental and supports JetBrains versions 7.84.0+. It's available for Pro, Enterprise Starter, and Enterprise users on Cody Gateway. Auto-edit requires Fireworks to be enabled as a provider. Enterprise customers without Fireworks enabled can disable the feature flag.
+
+## Enabling auto-edit in JetBrains
+
+You can opt-in the auto-edit feature from the JetBrains Cody plugin settings.
+
+- Click the three-dot menu on the top right of the Cody plugin window and select **Open Cody Settings Editor**
+- This will open the `cody_settings.json` file in your editor
+- Here, add `"cody.suggestions.mode": "auto-edit"` setting to enable the auto-edit feature
+
+
+
+### Auto-edit access for Enterprise customers
+
+Auto-edit is available for Enterprise customers with [Sourcegraph Cody Gateway](/cody/core-concepts/cody-gateway#sourcegraph-cody-gateway) access. Enabling the feature requires two steps:
+
+1. Site administrators must:
+ - Ensure the feature flag `cody-autoedit-experiment-enabled-flag` is enabled from the settings editor
+ - Add `fireworks::*` as an [allowed provider](https://sourcegraph.com/docs/cody/enterprise/model-configuration#model-filters) (see below)
+2. Once enabled, auto-edit will become the default suggestion mode for all users
+3. Users can optionally switch back to autocomplete from the Cody extension settings
+4. Site admins can opt out of auto-edits using the `cody-autoedit-experiment-enabled-flag` feature flag
+
+The following example demonstrates how to add Fireworks as an allowed LLM provider:
+
+```json
+
+"cody.enabled": true,
+"modelConfiguration": {
+ "sourcegraph": {
+ "modelFilters": {
+ // Only allow "beta" and "stable" models.
+ // Not "experimental" or "deprecated".
+ "statusFilter": ["beta", "stable"],
+
+ // Allow any models provided by Anthropic, OpenAI, Google and Fireworks.
+ "allow": [
+ "anthropic::*", // Anthropic models
+ "openai::*", // OpenAI models
+ "google::*", // Google Gemini models
+ "fireworks::*", // Open source models hosted by Sourcegraph
+ ],
+ }
+ }
+}
+```
+
+
+
diff --git a/docs/cody/capabilities/autocomplete.mdx b/docs/cody/capabilities/autocomplete.mdx
index 8ae6311ce..22d16e674 100644
--- a/docs/cody/capabilities/autocomplete.mdx
+++ b/docs/cody/capabilities/autocomplete.mdx
@@ -1,30 +1,38 @@
# Autocomplete
- Learn how Cody helps you get contextually-aware autocompletions for your codebase.
+Learn how Cody helps you get contextually-aware autocompletion for your codebase.
-Cody provides intelligent **autocomplete** suggestions as you type using context from your code, such as your open files and file history. Cody autocompletes single lines or whole functions in any programming language, configuration file, or documentation. It’s powered by the latest instant LLM models for accuracy and performance.
+Cody predicts what you're trying to write before you even type it. It offers single-line and multi-line suggestions based on the provided code context, ensuring accurate autocomplete suggestions. Cody autocomplete supports a [wide range of programming languages](/cody/faq#what-programming-languages-does-cody-support) because it uses LLMs trained on broad data.
-Autocomplete supports any programming language because it uses LLMs trained on broad data. It works exceptionally well for Python, Go, JavaScript, and TypeScript.
+Code autocompletions are optimized for both server-side and client-side performance, ensuring seamless integration into your coding workflow. The **default** autocomplete model for Cody Free, Pro, and Enterprise users is **[DeepSeek V2](https://huggingface.co/deepseek-ai/DeepSeek-V2)**, which significantly helps boost both the responsiveness and accuracy of autocomplete.
-
-
-
+## Cody's autocomplete capabilities
-## Prerequisites
+The autocompletion model is designed to enhance speed, accuracy, and the overall user experience that offers:
-To view how Cody provides code completions , you'll need to have the following:
+- **Increased speed and reduced latency**: The P75 latency is reduced by 350 ms, making the autocomplete function faster
+- **Improved accuracy for multi-line completions**: Completions across multiple lines are more relevant and accurately aligned with the surrounding code context
+- **Higher completion acceptance rates**: The average completion acceptance rate (CAR) is improved by more than 4%, providing a more intuitive user interaction
-- A Free or Pro account via Sourcegraph.com or a Sourcegraph Enterprise account
-- A supported editor extension (VS Code, JetBrains, and Neovim) installed
+## How does autocomplete work?
-## Working with code autocomplete
+First, you'll need the following setup:
-The autocomplete feature is enabled by default on all IDE extensions, i.e., VS Code, JetBrains, and Neovim. Generally, there's a checkbox in the extension settings that confirms whether the autocomplete feature is enabled or not. In addition, some autocomplete settings are optionally and explicitly supported by some IDEs. For example, JetBrains IDEs have custom settings that allow you to customize colors and styles of the autocomplete suggestions.
+- A Free or Pro account via Sourcegraph.com or a Sourcegraph Enterprise instance
+- A supported editor extension (VS Code, JetBrains, Visual Studio)
-You can start typing and Cody will automatically provide suggestions and context-aware completions based on your coding patterns and the code context. These autocomplete suggestions appear as grayed text. To accept the suggestion, press the `Enter` or `Tab` key.
+The autocomplete feature is enabled by default on all IDE extensions, i.e., VS Code and JetBrains. Generally, there's a checkbox in the extension settings that confirms whether the autocomplete feature is enabled or not. In addition, some autocomplete settings are optionally and explicitly supported by some IDEs. For example, JetBrains IDEs have settings that allow you to customize colors and styles of the autocomplete suggestions.
+
+When you start typing, Cody will automatically provide suggestions and context-aware completions based on your coding patterns and the code context. These autocomplete suggestions appear as grayed text. Press the `Enter` or `Tab` to accept the suggestion.
+
+
+
+
## Configure autocomplete on an Enterprise Sourcegraph instance
+Users with admin access can only configure autocomplete settings.
+
By default, a fully configured Sourcegraph instance picks a default LLM to generate code autocomplete. Custom models can be used for Cody autocomplete based on your specific requirements. To do so:
- Go to the **Site admin** of your Sourcegraph instance
@@ -32,18 +40,8 @@ By default, a fully configured Sourcegraph instance picks a default LLM to gener
- Here, edit the `completionModel` option inside the `completions`
- Click the **Save** button to save the changes
- Cody autocomplete works only with Anthropic's Claude Instant model. Support for other models will be coming later.
-
- Self-hosted customers must update to version 5.0.4 or more to use autocomplete.
-
-Before configuring the autocomplete feature, it's recommended to read more about [Enabling Cody on Sourcegraph Enterprise](/cody/clients/enable-cody-enterprise) guide.
-
-Cody Autocomplete goes beyond basic suggestions. It understands your code context, offering tailored recommendations based on your current project, language, and coding patterns. Let's view a quick demo using the VS Code extension.
-
-
-
-
+Cody supports and uses a set of models for autocomplete. Learn more about these [here](/cody/capabilities/supported-models#autocomplete). It's also recommended to read the [Enabling Cody on Sourcegraph Enterprise](/cody/clients/enable-cody-enterprise) docs.
-Here, Cody provides suggestions based on your current project, language, and coding patterns. Initially, the `code.js` file is empty. Start writing a function for `bubbleSort`. As you type, Cody suggests the function name and the function parameters.
+## LLM models for autocomplete
-Cody automatically suggests the next few code snippets for every new line based on your current context, i.e., functions for `insertionSort` and `selectionSort`.
+Cody uses a set of models for autocomplete. Learn more about these [here](/cody/capabilities/supported-models#autocomplete).
diff --git a/docs/cody/capabilities/chat.mdx b/docs/cody/capabilities/chat.mdx
index fbe284d0f..e3be0ca47 100644
--- a/docs/cody/capabilities/chat.mdx
+++ b/docs/cody/capabilities/chat.mdx
@@ -1,71 +1,173 @@
# Chat
-Use Cody's chat to get contextually-aware answers to your questions.
+Chat with the AI assistant in your code editor or via the Sourcegraph web app to get intelligent suggestions, code autocompletions, and contextually aware answers.
-Cody **chat** allows you to ask coding-related questions about your entire codebase or a specific code snippet. You can do it from the **Chat** panel of the supported editor extensions (VS Code, JetBrains, and Neovim) or in the web app.
+
+
+ You can **chat** with Cody to ask questions about your code, generate code, and edit code. By default, Cody has the context of your open file and entire repository, and you can use `@` to add context for specific files, symbols, remote repositories, or other non-code artifacts.
-Key functionalities in the VS Code extension include support for multiple simultaneous chats, enhanced chat context configurability through `@` commands, detailed visibility into the code that Cody read before providing a response, and more.
-
-You can learn more about the IDE support for these functionalities in the [feature parity reference](/cody/clients/feature-reference#chat).
+You can do it from the **chat** panel of the supported editor extensions ([VS Code](/cody/clients/install-vscode), [JetBrains](/cody/clients/install-jetbrains), [Visual Studio](/cody/clients/install-visual-studio)) or in the [web](/cody/clients/cody-with-sourcegraph) app.
## Prerequisites
-To use Cody's chat, you'll need to have the following:
+To use Cody's chat, you'll need the following:
-- A Free or Pro account via Sourcegraph.com or a Sourcegraph Enterprise account
-- A supported editor extension (VS Code, JetBrains, and Neovim) installed
+- [Sourcegraph Enterprise Starter](https://sourcegraph.com/pricing) or [Enterprise account](https://sourcegraph.com/pricing)
+- A supported editor extension [VS Code](https://marketplace.visualstudio.com/items?itemName=sourcegraph.cody-ai), [JetBrains](https://plugins.jetbrains.com/plugin/9682-cody-ai-coding-assistant-with-autocomplete--chat) installed or use via Web app
## How does chat work?
-Cody can use several methods (including keyword search and optional embeddings context) to ask relevant questions. For VS Code extension users, Cody also uses context from the files to provide an informed response based on your codebase. Cody also tells you which code files it reads to generate its responses.
+Cody answers questions by searching your codebase and retrieving context relevant to your questions. Cody uses several methods to search for context, including Sourcegraph's native search and keyword search. Finding and using context allows Cody to make informed responses based on your code rather than being limited to general knowledge. When Cody retrieves context to answer a question, it will tell you which code files it reads to generate its response.
-Cody can assist you with various use cases such as:
+Cody can assist you with various use cases, such as:
- Generating an API call: Cody can analyze your API schema to provide context for the code it generates
- Locating a specific component in your codebase: Cody can identify and describe the files where a particular component is defined
- Handling questions that involve multiple files, like understanding data population in a React app: Cody can locate React component definitions, helping you understand how data is passed and where it originates
-## Ask Cody your first question
+## Chat features
+
+There are several features that you can use to make your chat experience better. These features may vary depending on the [client](/cody/clients) you are using. You can learn more about the support for these functionalities in the [feature parity reference](/cody/clients/feature-reference#chat).
+
+## Default context
+
+When you start a new Cody chat, the input window opens with a default `@-mention` context chips for the opened file and the current repository.
+
+
+
+At any point in time, you can edit these context chips or remove them entirely if you do not want to use these as context. Any chat without a context chip will instruct Cody to use no codebase context. However, you can always provide an alternate `@-mention` file or symbols to let Cody use it as a new context source.
+
+When you have both a repository and files @-mentioned, Cody will search the repository for context while prioritizing the mentioned files.
+
+## Add new context
+
+You can add new custom context by adding `@-mention` context chips to the chat. At any point, you can use `@-mention` a repository, file, line range, or symbol, to ask questions about your codebase. Cody will use this new context to generate contextually relevant code.
+
+## OpenCtx context providers
+
+OpenCtx context providers are in the Experimental stage for all Cody VS Code users. Enterprise users can also use this but with limited support. If you have feedback or questions, please visit our [support forum](https://community.sourcegraph.com/c/openctx/10).
+
+[OpenCtx](https://openctx.org/) is an open standard for bringing contextual info about code into your dev tools. Cody Free and Pro users can use OpenCtx providers to fetch and use context from the following sources:
+
+- [Webpages](https://openctx.org/docs/providers/web) (via URL)
+- [Jira tickets](https://openctx.org/docs/providers/jira)
+- [Linear issues](https://openctx.org/docs/providers/linear-issues)
+- [Notion pages](https://openctx.org/docs/providers/notion)
+- [Google Docs](https://openctx.org/docs/providers/google-docs)
+- [Sourcegraph code search](https://openctx.org/docs/providers/sourcegraph-search)
+
+You can use `@-mention` web URLs to pull live information like docs. You can connect Cody to OpenCtx to `@-mention` non-code artifacts like Google Docs, Notion pages, Jira tickets, and Linear issues.
+
+## LLM selection
+
+Cody allows you to select the LLM you want to use for your chat, which is optimized for speed versus accuracy. Cody Free and Pro users can select multiple models. Enterprise users with the new [model configuration](/cody/clients/model-configuration) can use the LLM selection dropdown to choose a chat model.
+
+You can read about these supported LLM models [here](/cody/capabilities/supported-models#chat-and-commands).
+
+
+
+## Smart Apply and Execute code suggestions
+
+Cody lets you dynamically insert code from chat into your files with **Smart Apply**. Whenever Cody provides a code suggestion, you can click the **Apply** button. Cody will then analyze your open code file, find where that relevant code should live, and add a diff. For chat messages where Cody provides multiple code suggestions, you can apply each in sequence to go from chat suggestions to written code.
-Let's use Cody VS Code extension's chat interface to answer your first question.
+Smart Apply also supports the executing of commands in the terminal. When you ask Cody a question related to terminal commands, you can now execute the suggestion in your terminal by clicking the `Execute` button in the chat window.
-- Click the Cody icon in the sidebar to view the detailed panel
-- Next, click the icon for **New Chat** to open a new chat window
-- Write your question or instruction to Cody and then press **Enter**.
+
-For example, ask Cody "What does this file do?"
+### Model used for Smart Apply
-Cody will take a few seconds to process your question, providing contextual information about the files it reads and generating the answer.
+To ensure low latency, Cody uses a more targeted Qwen 2.5 Coder model for Smart Apply. This model improves the responsiveness of the Smart Apply feature in both VS Code and JetBrains while preserving edit quality. Users on Cody Free, Pro, Enterprise Starter, and Enterprise plans get this default Qwen 2.5 Coder model for Smart Apply suggestions.
-
-
-
+Enterprise users not using Cody Gateway get a Claude Sonnet-based model for Smart Apply.
+
+## Chat history
+
+Cody keeps a history of your chat sessions. You can view it by clicking the **History** button in the chat panel. You can **Export** it to a JSON file for later use or click the **Delete all** button to clear the chat history.
+
+## Prompts
+
+Cody offers quick, ready-to-use [prompts](/cody/capabilities/commands) for common actions to write, describe, fix, and smell code. Read more about [prompts](/cody/capabilities/commands) here.
## Ask Cody to write code
-The chat feature can also write code for your questions. For example, in VS Code, ask Cody to "write a function that sorts an array in ascending order".
+Cody chat can also write code for your questions. For example, in VS Code, ask Cody to "write a function that sorts an array in ascending order".
-You are provided with code suggestions in the chat window along with the following options for using the code.
+You are provided with code suggestions in the chat window and the following options for using the code.
- The **Copy Code** icon to your clipboard and paste the code suggestion into your code editor
- Insert the code suggestion at the current cursor location by the **Insert Code at Cursor** icon
- The **Save Code to New File** icon to save the code suggestion to a new file in your project
-During the chat, if Cody needs additional context, it can ask you to provide more information with a follow-up question. If your question is beyond the scope of the context, Cody will ask you to provide an alternate question aligned with the context of your codebase.
+If Cody's answer isn't helpful, you can try asking again with a different context:
+
+- **Public knowledge only**: Cody will not use your own code files as context; it’ll only use knowledge trained into the base model.
+- **Current file only**: Re-run the prompt again using the current file as context.
+- **Add context**: Provides @-mention context options to improve the response by explicitly including files, symbols, remote repositories, or even web pages (by URL).
+
+
+
+The enhanced chat experience input can be accessed from the chat panel of the supported editor extensions (VS Code and JetBrains) and the web app. It combines light code search, AI-powered chat, and agentic capabilities into a unified developer interface. It's designed to accelerate the entire developer workflow by providing a more intuitive and powerful way to interact with code.
+
+## Prerequisites
+
+To use Cody's chat, you'll need the following:
+
+- [Sourcegraph Enterprise Starter](https://sourcegraph.com/pricing) or [Enterprise account](https://sourcegraph.com/pricing)
+- A supported editor extension [VS Code](https://marketplace.visualstudio.com/items?itemName=sourcegraph.cody-ai), [JetBrains](https://plugins.jetbrains.com/plugin/9682-cody-ai-coding-assistant-with-autocomplete--chat) installed or use via Web app
-
-
-
+## Key features
-## Selecting Context
+The enhanced chat experience includes everything in the Free plan, plus the following:
-Cody's chat allows you to add files and symbols as context in your messages.
+## Smart search integration
-- Type `@` and then a filename to include a file as context
-- Type `@#` and then a symbol name to include the symbol's definition as context. Functions, methods, classes, types, etc., are all symbols
+The smart search integration enhances Sourcegraph's chat experience by providing lightweight code search capabilities directly within the chat interface. This feature simplifies developer workflows by offering quick access to code search without leaving the chat environment.
-### Chat vs Commands
+The integration delivers personalized search results ranked by your contribution history, with frequently accessed repositories appearing higher in results. Users can view code snippets with relevant context and open files directly in their editor.
-There could be scenarios when Cody's chat might not be able to answer your question. Or the answer lacks the context that you need. In these cases, it's recommended to use Cody **commands**. Cody's responses to commands might be better at times than responses to chats since they've been pre-packaged and prompt-engineered.
+Search results automatically become available as context for follow-up queries, with flexible controls for selecting which results to include. While optimized for keyword-style queries and searching across a few repositories, this integration complements rather than replaces the full [Code Search](/code-search) product, which remains the recommended tool for comprehensive enterprise-wide code search.
+
+## Context-aware responses
+
+Search results generated through smart search integration can be automatically used as context for follow-up queries. Here's what happens with each scenario:
+
+### Search responses
+
+* Search results can be used directly as context for follow-up queries
+* Users can select which search results to include as context using checkboxes
+* By default, all search results are added as context
+* A context chip shows the number of search results being used (e.g., "10 code search results")
+* Users can remove the context chip if they don't want to use it for follow-ups
+
+### Chat responses
+
+Executing terminal commands for additional context is an experimental feature.
+
+* Performs background searches for context
+* Retrieves full context from files, symbols, remote repos, and web pages
+* Can execute terminal commands (with permission) for additional context
+* Creates personal notes usable across chat sessions
+* Pulls in [OpenCtx](/cody/capabilities/openctx) providers for additional context
+
+## How does chat work?
- Commands are only supported in the VS Code and JetBrains extension.
+The following is a general walkthrough of the chat experience:
+
+1. The user enters a query in the chat interface
+2. By default a user gets a chat response for the query
+3. To get integrated search results, toggle to **Run as search** from the drop-down selector or alternatively use `Cmd+Opt+Enter` (macOS)
+4. For search:
+ - Displays ranked results with code snippets
+ - Shows personalized repository ordering
+ - Provides checkboxes to select context for follow-ups
+5. For chat:
+ - Delivers AI-powered responses
+ - Can incorporate previous search results as context
+6. Users can:
+ - Switch between search and chat modes
+ - Click on results to open files in their editor
+ - Ask follow-up questions using selected context
+ - Use `@` to add context for specific files, symbols, remote repositories, or other non-code artifacts
+
+
+
diff --git a/docs/cody/capabilities/commands.mdx b/docs/cody/capabilities/commands.mdx
deleted file mode 100644
index 4e6c4592f..000000000
--- a/docs/cody/capabilities/commands.mdx
+++ /dev/null
@@ -1,274 +0,0 @@
-# Commands
-
-Learn how Commands can kick-start your workflow with reusable prompts.
-
-Cody offers quick, ready-to-use **commands** for common actions to write, describe, fix, and smell code. These allow you to run predefined actions with smart context-fetching anywhere in the editor. Like autocomplete and chat, commands will search for context in your codebase to provide more contextually aware and informed answers.
-
-Commands are available in VS Code, JetBrains, and the Sourcegraph web app. Commands can handle tasks like:
-
-- Editing and fixing code `edit`
-- Explaining code `explain`
-- Generating unit tests `test`
-- Writing documentation `doc`
-- Improving code quality `smell`
-
-Support for commands may vary by IDE extension. Read the [feature parity reference to learn what commands are available in your IDE](/cody/clients/feature-reference#commands).
-
-Cody’s responses to commands are often better than responses to chats since they’ve been pre-packaged and prompt-engineered.
-
-## Running commands
-
-The process of running a command varies from one IDE to another. For example, in VS Code, there are several ways to run a command:
-
-1. Select code in the editor and use the Cody commands sidebar to run a command:
-
-
-
-2. Run **Cody: Commands** in the VS Code command palette.
-3. Right-click in the editor and select a command in the **Cody** submenu.
-
-## Custom commands
-
-Custom Commands are in beta.
-
-**Custom Commands** allow you to create and define reusable prompts for Cody tailored to your development workflows. They are defined in `JSON` format and will enable you to call CLI tools, write custom prompts, and select context to be sent to Cody. This provides a flexible way to configure Cody to handle use cases like:
-
-- Integrate with your build system to suggest fixes for errors/warnings in the latest build
-- Analyze software dependencies output to explain compatibility or suggest upgrades
-- Read test command failures to explain and suggest fixes
-- Explain code quality output like linter warnings
-
-### Creating a Custom Command
-
-You can create a custom command by editing the configuration JSON file or using the command builder within the VS Code editor. To access the command builder within VS Code:
-
-- Open the Cody commands menu (**Cody: Commands** in the command palette)
-- Select **Custom commands > New Custom Command**
-- Enter the name for your new custom command, such as `my-custom-command`.
-- Next, write a description for the command. For example, `Compare files in open tabs` or `Explain current directory`
-- Provide the relevant instructions for Cody to follow. This is the `prompt` that Cody will use to pass relevant context to the LLM
-- Then, select one or more options for the context Cody should use to generate responses
-- Finally, choose whether to save the command locally or share it with your workspace
-- Press **Enter** to complete the process, and your custom command is successfully created
-- You can hit `esc` key at any time to discard a new custom command
-
-### Running Custom Commands
-
-You can invoke custom commands in 2 ways.
-
-- Run **Cody Command: Custom Commands** in the VS Code command palette.
-- Right-click in the editor and select **Cody > Custom Commands**.
-
-Then select the command you want to run. If your custom command expects a code selection, be sure to select code in the editor before running the custom command.
-
-### Configuring file paths
-
-Custom Commands can be defined in the following two file paths:
-
-- **User Settings (`~/.vscode/code.json`)**: Stored locally. Use this for personal commands to use across all your projects
-- **Workspace Settings (`.vscode/cody.json`)**: Stored in your project’s repository. Use this to share commands with others working on the same codebase and for project-specific commands
-
-If you select **User Settings**, the new custom command will only be available to you. If you select **Workspace Settings** (as an enterprise user), the custom command will also be available to your teammates.
-
-See the [examples](#examples) and [configuration properties](#configuration-properties) below for more details on configuring custom commands.
-
-### Examples
-
-### `commit-message`
-
-```json
-{
- "commit-message": {
- "description": "Commit message for current changes",
- "prompt": "Suggest an informative commit message by summarizing code changes from the shared command output. The commit message should follow the conventional commit format and provide meaningful context for future readers.",
- "context": {
- "selection": false,
- "command": "git diff --cached"
- }
- }
-}
-```
-
-### `compare-tabs`
-
-```json
-{
- "compare-tabs": {
- "description": "Compare files in opened tabs",
- "prompt": "Examine the shared code snippets from my opened tabs. Then explain the relationship between the code samples by answering these questions: 1. What are the main tasks or functions the code is performing? 2. Are there any similarities in functions or logic across the samples? 3. Does one code snippet call or import another? If so, how do they interact? 4. Are there any notable differences in how they approach similar problems? 5. Overall, how are the code snippets related - do they work together as part of a larger program, solve variants of the same problem, or serve entirely different purposes?",
- "context": {
- "openTabs": true,
- "selection": false
- }
- }
-}
-```
-
-### `current-dir`
-
-```json
-{
- "current-dir": {
- "description": "Explain current directory",
- "prompt": "At a high level, explain what this directory is used for.",
- "context": {
- "currentDir": true,
- "selection": false
- }
- }
-}
-```
-
-### `latest-cody-release`
-
-```json
-{
- "latest-cody-release": {
- "description": "Summarize latest Cody release",
- "prompt": "What is the latest stable version of Cody? Briefly summarize the changes that were included in that release based on this CHANGELOG excerpt.",
- "context": {
- "selection": false,
- "command": "curl https://raw.githubusercontent.com/sourcegraph/cody/main/vscode/CHANGELOG.md | head -n 50"
- }
- }
-}
-```
-
-### `readme`
-
-```json
-{
- "readme": {
- "description": "Readme for current dir",
- "prompt": "Write a detailed README.md file to document the code located in the same directory as my current selection. Summarize what the code in this directory is meant to accomplish. Explain the key files, functions, classes, and features. Use Markdown formatting for headings, code blocks, lists, etc. to make the it organized and readable. Aim for a beginner-friendly explanation that gives a developer unfamiliar with the code a good starting point to understand it. Make sure to include: - Overview of directory purpose - Functionality explanations - Relevant diagrams or visuals if helpful. Write the README content clearly and concisely using complete sentences and paragraphs based on the shared context. Use proper spelling, grammar, and punctuation throughout. Surround your full README text with triple backticks so it renders properly as a code block. Do not make assumptions or fabricating additional details.",
- "context": {
- "currentDir": true,
- "selection": true
- }
- }
-}
-```
-
-### `recent-git-changes`
-
-```json
-{
- "recent-git-changes": {
- "description": "Summarize recent changes",
- "prompt": "Summarize the given git changes in 3-5 sentences",
- "context": {
- "command": "git log -10 --pretty=format:'%h - %an: %s' --stat",
- "selection": false
- }
- }
-}
-```
-
-### Configuration properties
-
-#### `commands` (required)
-
-- An object containing the commands
-- Type: `object`
-- Example: `{ "commands": {} }`
-
-#### `commands.` (required)
-
-- The slash name used for the command
-- Type: `string`
-- Example: `"summarize"`
-
-#### `commands..description`
-
-- A short, sentence-case string description of what the command does
-- Type: `string`
-- Example: `"Summarize recent git changes"`
-
-#### `commands..prompt` (required)
-
-- The set of instructions for Cody
-- Type: `string`
-- Example: `"Summarize the given git changes in 3-5 sentences"`
-
-#### `commands..mode`
-
-- The interaction mode to use
-- Type: `string`
-- Default: `"ask"`
-
- Values:
- - `"ask"` — Start a new chat session with the command
- - `"edit"` — Replace the selected code with the response
- - `"insert"` — Insert the response above the selected code
-
-#### `commands..context`
-
-- Optional context data to generate and pass to Cody
-- Type: `object`
-- Default: `{}`
-
-#### `commands..context.codebase`
-
-This option is experimental and might change or be removed in the future.
-
-- Include contextual information from code search based on the prompt of the command
-- Type: `boolean`
-- Default: `false`
-
-#### `commands..context.command`
-
-- Terminal command to run and include the output of
-- Type: `string`
-- Default: `""`
-- Example: ` "git log --since=$(git describe --tags --abbrev=0) --pretty='Commit author: %an%nCommit message: %s%nChange description:%b%n'"`
-
-#### `commands..context.currentDir`
-
-- Include snippets from first 10 files in the current directory
-- Type: `boolean`
-- Default: `false`
-
-#### `commands..context.currentFile`
-
-- Include snippets from the current file. If the file is too long, only the content surrounding the current selection will be included
-- Type: `boolean`
-- Default: `false`
-
-#### `commands..context.directoryPath`
-
-- Include snippets from the first five files within the given relative path of the directory. Content will be limited and truncated according to the token limit
-- Type: `string`
-- Default: `""`
-- Example: `"lib/common"`
-
-#### `commands..context.filePath`
-
-- Include snippets from the given file path relative to the current workspace. If the file is too long, content will be truncated
-- Type: `string`
-- Default: `""`
-- Example: `"CHANGELOG.md", "test/unit/example.test.ts"`
-
-#### `commands..context.none`
-
-- Provide only the prompt, and no additional context. If `true`, overrides all other context settings
-- Type: `boolean`
-- Default: `false`
-
-#### `commands..context.openTabs`
-
-- Include the text content of opened editor tabs
-- Type: `boolean`
-- Default: `false`
-
-#### `commands..context.selection`
-
-- Include currently selected code. When not specified, Cody will try to use visible content from the current file instead
-- Type: `boolean`
-- Default: `false`
-
-
-{/* */}
diff --git a/docs/cody/capabilities/debug-code.mdx b/docs/cody/capabilities/debug-code.mdx
index 5fe3db203..f637003ec 100644
--- a/docs/cody/capabilities/debug-code.mdx
+++ b/docs/cody/capabilities/debug-code.mdx
@@ -2,20 +2,20 @@
Learn how Cody helps you identify errors in your code and provides code fixes.
-Cody is optimized to identify and fix errors in your code. Its debugging capability and autocomplete suggestions can significantly accelerate your debugging process, increasing developer productivity. All Cody IDE extensions (VS Code, JetBrains, and Neovim) support code debugging and fixes capabilities.
+Cody is optimized to identify and fix errors in your code. Its debugging capability and autocomplete suggestions can significantly accelerate your debugging process, increasing developer productivity. All Cody IDE extensions (VS Code, JetBrains) support code debugging and fixes capabilities.
## Use chat for code fixes
When you encounter a code error, you can use the chat interface and ask Cody about it. You can paste the faulty code snippets directly in the chat window, and Cody will provide a fix.
-The suggestions can be a corrected code snippet that you can copy and paste into your code. Or you can ask a follow-up question for additional context to help you debug the code further. Moreover, you can also paste an error message in chat and ask Cody to provide you with a list of possible solutions.
+The suggestions can be a corrected code snippet you can copy and paste into your code. Or you can ask a follow-up question for additional context to help debug the code. Moreover, you can paste an error message in the chat and ask Cody to provide a list of possible solutions.
Let's look at a simple example to understand how Cody can help you debug your code. The following code snippet should print the sum of two numbers.
```js
function sum(a, b) {
- var result = a + b;
- console.log('The sum is: ' + $result);
+ var result = a + b;
+ console.log('The sum is: ' + $result);
}
sum(3 , 4);
@@ -23,44 +23,22 @@ sum(3 , 4);
When you try to `console.log` the `result`, it does not print the correct summed value. Cody can help you both identify the error and provide a solution to fix it. Let's debug the code snippet. Paste the code snippet inside the Cody chat window and ask Cody to fix it.
-
-
-
-
-In addition, Cody helps you reduce the chances of getting syntax and typo errors. The Cody IDE extensions provide context-aware suggestions based on your codebase, helping you avoid common mistakes and reduce your debugging time.
+In addition, Cody helps you reduce the chances of getting syntax and typo errors. The Cody IDE extensions provide context-aware suggestions based on your codebase, helping you avoid common mistakes and reduce debugging time.
## Detecting code smell
Cody can detect early code smells to ensure coding best practices and quality and provide suggestions to improve your code. By detecting such potential errors early on, you can avoid scalability and code maintainability issues that might arise in the future.
-VS Code users can detect code smells by the `/smell` command, and JetBrains users can achieve the same by clicking the **Smell Code** button from the **Commands** tab.
-
-Let's identify code smells on the same function from the previous example.
-
-
-
-
-
-
-As you can see, Cody not only detects code smells but also provides suggestions to improve your code.
+You can detect code smells by the **find-code-smells** prompt from the Prompts drop-down menu in the chat panel. If you want to refine your debugging process, you can create a new prompt from the Prompt Library and use it to debug your code.
## Code Actions
-Cody VS Code extension users also get to use the **Code Actions** feature whenever there's an error in code syntax. When you make a mistake while writing code, Cody's Code Actions come into play, and a red warning triggers. Along this appears a lightbulb icon.
-
-### How Code Actions work
+Code Actions are available only in Cody VS Code extension.
-Let's assume there's an error in the code, and the red warning triggers. Now follow these steps:
+When you make a mistake while writing code, Cody's **Code Actions** come into play and a red warning triggers. Along with this, you get a lightbulb icon. If you click on this lightbulb icon, there is an **Ask Cody to fix** option.
-- Click this lightbulb icon in the project file
+- Click the lightbulb icon in the project file
- Select **Ask Cody to fix** option
-- **Cody is working** notice will appear and provide a quick fix with options for **Edits Applied**, **Retry**, **Undo**, and **Done**
-- If you are satisfied with the fix, click **Edits Applied**
-- To verify the applied changes, you can see a diff view of the fix in a new tab
-- If you are not satisfied with the fix, you can **Retry** or **Undo** the changes
-
-Here's a demo that shows how Code Actions work:
+- **Cody is working** notice will appear and provide a quick fix that you can **Accept**, **Reject**, or **Open Diff** view to see the changes
-
-
-
+
diff --git a/docs/cody/capabilities/ignore-context.mdx b/docs/cody/capabilities/ignore-context.mdx
index a896ba889..b17d5965f 100644
--- a/docs/cody/capabilities/ignore-context.mdx
+++ b/docs/cody/capabilities/ignore-context.mdx
@@ -1,27 +1,132 @@
-# Cody Ignore
+# Manage Cody Context
-This feature is currently in the Experimental stage and only supported with VS Code extension.
+You can control and manage what context from your codebase is used by Cody. You can do this by using Cody Context Filters.
-This guide will walk you through the process of ignoring specific files or folders in your codebase when using Cody.
+Cody Context Filters is available only for Enterprise users on all supported [clients](/cody/clients).
-## Enabling Unstable Features
+## Context Filters
-To use the ignore context feature, you first need to enable unstable features in Cody. Here's how:
+Admins on the Sourcegraph Enterprise instance can use the Cody Context Filters to determine which repositories Cody can use as the context in its requests to third-party LLMs. You can use Context Filters if you have:
-1. Open your settings in Cody Extension
-2. Next go to the `settings.json` file
-3. Add a new line: `"cody.unstableFeatures": true`.
+- A valid Cody Enterprise license running on Sourcegraph instance version `>=5.4.0`
+- Running the supported Cody client versions: VS Code `>=1.20.0` and JetBrains `>=6.0.0`
+- Setting the `cody-context-filters-enabled` feature flag to `true`
-This will enable experimental features, including the ignore context feature.
+Site admins can customize the `cody.contextFilters` field in the site configuration to specify which repositories Cody should `include` or `exclude`, using the following structure:
-## Using the Ignore Context Feature
+```json
+{
+ // Optional. If defined, it must have at least one
+ // field set (either `include` or `exclude`).
+ "cody.contextFilters": {
+ // Optional. If defined, it must have at least one item.
+ "include": [
+ {
+ // Required. Should follow the RE2 syntax.
+ "repoNamePattern": "^github\\.com\\/sourcegraph\\/.*"
+ }
+ ],
+ // Optional. If defined, it must have at least one item.
+ "exclude": [
+ {
+ // Required. Should follow the RE2 syntax.
+ "repoNamePattern": ".*analytics.*"
+ }
+ ]
+ }
+}
-To ignore specific files or folders from the context taken by Cody, you need to create a `ignore` file in your project. Here's how:
+```
-1. Create a new folder in your project root named `.cody`.
-2. Inside the `.cody` folder, create a file named `ignore`.
-3. In the `ignore` file, specify the files or folders you want to ignore.
+## How `include` and `exclude` rules work
-The `.codyignore` file works similarly to a `.gitignore` file. If you want to ignore a file named `secret.json`, you would add `secret.json` to your `.codyignore` file. If you're going to ignore a folder called `lib/shared`, you would add `lib/shared/` to your `.codyignore` file.
+The `include` and `exclude` rules define the repositories Cody can use as context. The rules can be defined in the following combination:
-Once a file or folder is added to the `.codyignore` file, Cody will no longer provide autocomplete suggestions for that file or folder, and it will not appear in your chat results.
+### `cody.contextFilters` field is not defined
+
+By default, Cody can access all repositories for context when making requests to third-party LLMs, with no restrictions on inclusion or exclusion.
+
+### Only `include` rules are specified
+
+Cody is restricted to using content only from repositories whose names match the patterns specified in the `include` field. No repositories are explicitly excluded if no `exclude` rules are defined.
+
+The `include` field can also contain a catch-all pattern (e.g., a `regexp` that matches any string), allowing Cody to access content from all repositories. A single match in the `include` rules is enough for a repository to be included. For example:
+
+```json
+{
+ "cody.contextFilters": {
+ // Only repositories whose names either start with "github.com/sourcegraph/"
+ // or contain "cody" are allowed.
+ "include": [
+ { "repoNamePattern": "^github\\.com\\/sourcegraph\\/.+" },
+ { "repoNamePattern": ".*cody.*" }
+ ]
+ }
+}
+
+```
+
+These `include` rules allow Cody only to utilize the repository matching the `regexp` with full access to fetch context.
+
+### Only `exclude` rules are specified
+
+By default, all repositories are included unless specific `include` rules are defined. If **only** `exclude` rules are specified, Cody will not use content from any repository whose name matches at least one pattern in the `exclude` field.
+
+The `exclude` field can also include a catch-all condition, such as a `regexp` that matches any string. When such a condition is present, Cody is entirely restricted from accessing content from any repository. For example:
+
+```json
+{
+ "cody.contextFilters": {
+ // All repositories are allowed except for "github.com/sourcegraph/cody-analytics"
+ // or the ones containing "secret" in their name.
+ "exclude": [
+ { "repoNamePattern": "^github\\.com\\/sourcegraph\\/cody-analytics$" },
+ { "repoNamePattern": ".*secret.*" }
+ ]
+ }
+}
+
+```
+
+#### Chat behavior when exclude rules are defined
+
+Some Cody features, such as using **Prompts**, will not work if the `exclude` rules are defined. They appear to be disabled in the Cody chat interface. If you try running any of these, you'll be prompted with an error message. However, Cody chat will still work; you can use it to ask questions.
+
+### Both `include` and `exclude` rules are specified
+
+When requesting third-party LLMs, Cody can use content from a repository if its name matches any of the `include` patterns and does not match any of the `exclude` patterns. Thus, the `exclude` rules filter only the repositories allowed by the `include` rules. For example,
+
+```json
+{
+ "cody.contextFilters": {
+ // All repositories starting with "github.com/sourcegraph/" are allowed
+ "include": [
+ { repoNamePattern: "^github\\.com\\/sourcegraph\\/.+" }
+ ],
+ // except for "github.com/sourcegraph/cody-analytics"
+ // and the ones containing "cody" in their name.
+ "exclude": [
+ { "repoNamePattern": "^github\\.com\\/sourcegraph\\/cody-analytics$" },
+ { "repoNamePattern": ".*cody.*" }
+ ]
+ }
+}
+
+```
+
+In this case, Cody can access content from repositories whose names start with `github.com/sourcegraph/`. However, it excludes files from repositories with `cody` in their name.
+
+## Cody Context Filters Compatibility Matrix
+
+ Cody Context Filters work only on Sourcegraph versions `>=5.4.0`, VS Code `>=1.20.0` and JetBrains `>=6.0.0` for Enterprise users.
+
+Depending on the client type, here's a breakdown of versions supported and the behavior for unsupported versions:
+
+| **Client** | Client version | Sourcegraph `v<5.4.0` | Sourcegraph `v=5.4.0` | Sourcegraph `v=5.4.12303` | Sourcegraph `v>=5.4.0` |
+| ------------- | ------------------------- | --------------------- | --------------------- | ------------------------------- | ---------------------- |
+| **VS Code** | `< 1.16.X` | N/A | Cody not compatible | Respects policy, ask to upgrade | Not affected |
+| | `1.18.0 <` and `< 1.20.0` | N/A | Cody not compatible | Respects policy, ask to upgrade | Not affected |
+| | `>= 1.20.0` | N/A | Respects policy | Respects policy | Not affected |
+| **JetBrains** | `<= 5.5.9` | N/A | Cody not compatible | Respects policy, ask to upgrade | Not affected |
+| | `5.5.10 <=` and `< 6.0.0` | N/A | Cody not compatible | Respects policy, ask to upgrade | Not affected |
+| | `>= 6.0.0` | N/A | Respects policy | Respects policy | Not affected |
diff --git a/docs/cody/capabilities/index.mdx b/docs/cody/capabilities/index.mdx
index 180977092..6216177f4 100644
--- a/docs/cody/capabilities/index.mdx
+++ b/docs/cody/capabilities/index.mdx
@@ -1,29 +1,21 @@
# Cody Capabilities
- Learn and understand more about Cody's features and core AI functionality.
+ Cody offers a rich set of capabilities and features that help you write better code faster. Learn and understand more about Cody's features and core AI functionality in this section.
-Cody offers a rich set of capabilities and features that help you write better code faster. These include:
-
-- Chat: Allows users to ask general programming questions or inquire about specific code
-- Autocomplete: Suggests code completions as you type, utilizing context from your code, open files, and file history
-- Commands & Custom Commands: Provide predefined, reusable prompts for common actions, such as documenting code, explaining code, generating unit tests, and identifying code smells
-- Debug code: Helps you with identifying and fixing code errors and bugs.
-- Cody Ignore: Helps you ignore selected files or folders from chat and autocomplete result
-
-Learn more about each by exploring their respective documentation:
-
-
+
+
+
-
+
-
+
-
+
-
+
diff --git a/docs/cody/capabilities/ollama.mdx b/docs/cody/capabilities/ollama.mdx
new file mode 100644
index 000000000..f0876fb18
--- /dev/null
+++ b/docs/cody/capabilities/ollama.mdx
@@ -0,0 +1,55 @@
+# Supported local Ollama models with Cody
+
+{/* Internal docs only. Offloading from our production docs for now. */}
+
+Compatibility with Ollama is currently in the Experimental stage and is available for Cody Free and Pro plans. The support is for Ollama is limited feel free to contact us for any questions or feedback.
+
+## Cody Autocomplete with Ollama
+
+To get autocomplete suggestions from Ollama locally, follow these steps:
+
+- Install and run [Ollama](https://ollama.ai/)
+- Download one of the supported local models using `pull`. The `pull` command is used to download models from the Ollama library to your local machine.
+ - `ollama pull deepseek-coder-v2` for [deepseek-coder](https://ollama.com/library/deepseek-coder-v2)
+ - `ollama pull codellama:13b` for [codellama](https://ollama.ai/library/codellama)
+ - `ollama pull starcoder2:7b` for [starcoder2](https://ollama.ai/library/starcoder2)
+- Update Cody's VS Code settings to use the `experimental-ollama` autocomplete provider and configure the right model:
+
+```json
+"cody.autocomplete.advanced.provider": "experimental-ollama",
+"cody.autocomplete.experimental.ollamaOptions": {
+ "url": "http://localhost:11434",
+ "model": "deepseek-coder-v2"
+}
+```
+
+- Confirm Cody uses Ollama by looking at the Cody output channel or the autocomplete trace view (in the command palette)
+
+## Cody chat with Ollama
+
+
+
+To generate chat with Ollama locally, follow these steps:
+
+- Download [Ollama](https://ollama.com/download)
+- Start Ollama (make sure the Ollama logo is showing up in your menu bar)
+- Select a chat model (model that includes instruct or chat, for example, [gemma:7b-instruct-q4_K_M](https://ollama.com/library/gemma:7b-instruct-q4_K_M)) from the [Ollama Library](https://ollama.com/library)
+- Pull (download) the chat model locally (for example, `ollama pull gemma:7b-instruct-q4_K_M`)
+- Once the chat model is downloaded successfully, open Cody in VS Code
+- Open a new Cody chat
+- In the new chat panel, you should see the chat model you've pulled in the dropdown list
+- Currently, you will need to restart VS Code to see the new models
+
+You can run `ollama list` in your terminal to see what models are currently available on your machine.
+
+### Run Cody offline with local Ollama models
+
+You can use Cody with or without an internet connection. The offline mode does not require you to sign in with your Sourcegraph account to use Ollama. Click the button below the Ollama logo and you'll be ready to go.
+
+
+
+You still have the option to switch to your Sourcegraph account whenever you want to use Claude, OpenAI, Gemini, etc.
diff --git a/docs/cody/capabilities/openctx.mdx b/docs/cody/capabilities/openctx.mdx
new file mode 100644
index 000000000..8ea28a0cb
--- /dev/null
+++ b/docs/cody/capabilities/openctx.mdx
@@ -0,0 +1,34 @@
+# OpenCtx Context Providers
+
+Use additional context sources from outside of your codebase by leveraging OpenCtx providers.
+
+OpenCtx context providers are in the Experimental stage for all Cody users. Enterprise users can also use this, but with limited support. If you have feedback or questions, please visit our [support forum](https://community.sourcegraph.com/c/openctx/10).
+
+[OpenCtx](https://openctx.org/) is an open standard for bringing contextual info about code into your dev tools. Cody Free and Pro users can use OpenCtx providers to fetch and use context from the following sources:
+
+- [Webpages (via URL)](https://openctx.org/docs/providers/web) (enabled in Cody by default)
+- [Jira tickets](https://openctx.org/docs/providers/jira)
+- [Linear issues](https://openctx.org/docs/providers/linear-issues)
+- [Notion pages](https://openctx.org/docs/providers/notion)
+- [Google Docs](https://openctx.org/docs/providers/google-docs)
+- [Slack](https://openctx.org/docs/providers/slack)
+- [Storybook](https://openctx.org/docs/providers/storybook)
+- [Sourcegraph code search](https://openctx.org/docs/providers/sourcegraph-search)
+
+## Enable OpenCtx context providers
+
+OpenCtx context providers are only supported with Cody VS Code extension.
+
+To try OpenCtx context providers with Cody, you must add to your VS Code extension settings. Go to Cody Settings, and check the box for **OpenCtx: Enable**. This will enable OpenCtx. You don't need the OpenCtx VS Code extension to use context fetching with OpenCtx. You should uninstall the extension before using this feature in Cody.
+
+ For example, to use the [DevDocs provider](https://openctx.org/docs/providers/devdocs), add the following to your `settings.json`:
+
+```json
+"openctx.providers": {
+ "https://openctx.org/npm/@openctx/provider-devdocs": {
+ "urls": ["https://devdocs.io/go/", "https://devdocs.io/angular~16/"]
+ }
+},
+```
+
+Please refer to the [context providers docs](https://openctx.org/) for instructions and examples of configuring other providers such as Confluence, Jira, GitHub, Slack, Notion, Linear Issues, Linear Docs, Google Docs, and more.
diff --git a/docs/cody/capabilities/prompts.mdx b/docs/cody/capabilities/prompts.mdx
new file mode 100644
index 000000000..6c8c8f1b6
--- /dev/null
+++ b/docs/cody/capabilities/prompts.mdx
@@ -0,0 +1,138 @@
+# Prompts
+
+Learn how prompts can automate and accelerate your workflow with Cody.
+
+Cody offers quick, ready-to-use **Prompts** to automate key tasks in your workflow. Prompts are created and saved in the **Prompt Library** and can be accessed from the top navigation bar in the Sourcegraph.com instance.
+
+To run Prompts and access Prompt Library, you must have the following:
+
+- Free account on Sourcegraph.com or Sourcegraph Enterprise instance with Cody enabled
+- Cody extension installed in your IDE (VS Code, JetBrains, Visual Studio)
+
+## Prompt Library
+
+The **Prompt Library** allows you to create, edit, share, and save prompts you’ve created or shared within your organization. You can also search for prompts, filter the list to find a specific prompt by the owner, and sort by name or updated recently.
+
+Go to **Tools > Prompt Library** from the top navigation bar in the Sourcegraph.com instance. Alternatively, you can access the **Prompt Library** from the **Cody** extension in your IDE, which directs you to the Prompt Library page.
+
+Here, you can view all prompts (shared with you in an organization or created by you) and some core (built-in) prompts to help you get started.
+
+
+
+### Core (built-in) prompts
+
+The core (built-in) prompts are available to all users. These prompts are designed to help you start with Cody and provide a starting point for your own prompts. You get the following core (built-in) prompts:
+
+- document-code
+- explain-code
+- find-code-smells
+- generate-unit-tests
+
+You can run these prompts by clicking the **play** icon next to the prompt name, **copy the prompt permalink**, or **duplicate the prompt** to make a copy and edit it according to your needs.
+
+## Create prompts
+
+Click the **New prompt** button from the **Prompt Library** page.
+
+- Select the **Owner** and **Prompt Name**
+- Write a prompt description
+- Next, fill out the **Prompt template** box with all your prompt instructions
+- You can also add dynamic context that will allow your prompt to use content from different sources like current selection and current file
+- Select the visibility of the prompt, either **Public** or **Private**
+- You can mark your prompt as **draft**. Draft prompts are not visible to other users until you publish it
+- Choose the mode of the prompt, whether it will be **Chat only** or can **Edit code**
+- Once done, click the **Create prompt** button
+
+There are also a few advanced options that you can configure.
+
+
+
+### Draft prompts
+
+You can mark your prompt as a draft. A draft prompt is not visible to everyone. You can only view, run, and edit your draft prompts until you publish it.
+
+## View prompts
+
+The new prompt is added to the Prompt Library page and appears in the Prompts list in the Cody chat panel (both in the editor and on the web). If your prompt does not appear in the Prompts list, make sure you've logged in with the same account you used to create it.
+
+Once the prompt is visible, it's ready to be used by:
+
+- **The prompt's owner** if it is a user
+- **All members of the organization** if the prompt's owner is an organization
+- **Everyone** if the prompt is marked **Public** (which only site admins can do)
+
+
+
+## Edit prompts
+
+To edit a prompt, click the Edit button next to the prompt in the Prompt Library and make the necessary changes. You can also use this interface to **Transfer Ownership** of the prompt or delete it from this view.
+
+## Prompt tags
+
+Prompt tags are supported in Sourcegraph Enterprise, and only site admins can create them.
+
+Site admins can categorize prompts and create **tags**. This helps you keep your prompts organized, especially when there are many prompts to use and manage.
+
+- Go to **Tools > Prompt Library** from your Enterprise Sourcegraph instance
+- From the left sidebar click **Manage** next to the **tags** list
+- All the new and existing tags are listed here. You can also search for a specific tag by typing its name in the search box
+- Click **New tag**, type the **Tag name** and hit the **Create** button
+
+
+
+Once created, it will appear in the **Tags** list and in the sidebar of the Prompt Library. To manage your prompt tags, you can **edit**, **delete**, or **copy link to prompts with this tag**.
+
+### Assigning tags to prompts
+
+Once site admins create tags, other users in your organization can assign tags to their prompts. While creating or editing a prompt, there is a drop-down selector **Add prompt to...** to assign tags to the prompt.
+
+
+
+You can assign multiple tags to a prompt and group them based on their functionality, category, or any other criteria for your organization. In addition, with tags assigned to prompts, you can filter prompts by tags in the Prompt Library.
+
+## Specific and dynamic context
+
+Sourcegraph 6.0 adds Beta support for the `@` mention menu in the prompt library.
+
+When writing prompts, you can leverage both specific and dynamic context through the `@` mention system.
+
+
+
+Type `@` to open a dropdown menu that lets you reference specific context like symbols, directories, files, repositories and web URLs.
+
+When selecting a web URL, type out the domain, including the `https://` prefix, for example, https://sourcegraph.com.
+
+For dynamic context that adapts based on what the user is working on, the prompt editor provides special mentions for the current selection, current file, current repository, current directory, and open tabs.
+When a user runs a prompt template containing dynamic context mentions, they are automatically resolved to the appropriate specific context based on the user's current workspace state.
+To add dynamic context, click on one of the buttons below the prompt editor. We will soon move the buttons into the `@` mention menu as well.
+
+This powerful combination allows prompt authors to create templates that can intelligently access both explicitly defined context and contextually relevant information at runtime.
+
+## Run prompts
+
+You can run prompts via:
+
+- Clicking the play icon next to a prompt in the Prompt Library list
+- From the **Prompts** dropdown in the Cody chat panel both in the editor and on the web
+
+However, prompts marked with the **Edit code** mode can only run from the IDE editor. You cannot run these prompts from the Prompt Library in the web UI. For example, the **document-code** built-in prompt can only run the IDE editor.
+
+
+
+## Promoted prompts
+
+Promoted prompts are supported in VS Code and Cody Web.
+
+**Site admins** can promote a prompt by enabling the **Promote prompt** checkbox. This setting allows admins to highlight prompts they want users to use. Promoted prompts are marked with an icon next to their name and appear at the top of the prompt list in the Cody chat.
+
+
+
+
+
+Prompt Library replaces the default and custom commands in Cody. Custom Commands (legacy) have been deprecated and will no longer be supported.
+
+If you have custom commands, VS Code automatically detects them and notifies you to migrate them to the Prompts Library. There is a **Migrate commands** button in the Cody chat panel. Click it, and your custom commands will be migrated to the Prompts Library.
+
+Once migrated, you can run it like any other prompt. However, you **cannot** edit the migrated custom command in the Prompts Library.
+
+
diff --git a/docs/cody/capabilities/proxy-setup.mdx b/docs/cody/capabilities/proxy-setup.mdx
new file mode 100644
index 000000000..e95d1cfb5
--- /dev/null
+++ b/docs/cody/capabilities/proxy-setup.mdx
@@ -0,0 +1,138 @@
+# Run Cody via proxies
+
+This documentation helps you set up HTTP, HTTPS, and SOCKS proxies in VS Code and JetBrains IDEs. It also includes instructions for handling self-signed certificates on macOS and Windows.
+
+
+
+
+ You may be unable to authenticate with Cody or see a network reachability issue if you attempt to use Cody before configuring your proxy settings.
+
+ ### Accessing the Proxy Settings
+
+1. Open VS Code.
+2. Navigate to the settings window of VS Code
+3. In the search bar at the top of the Settings pane, type `proxy`
+4. Click on `Edit in settings.json` to open the `settings.json` file
+
+ ### Modifying `settings.json` for Proxy Configuration
+
+Add the following configuration fields in the `settings.json` file to set up your proxy:
+
+```json
+{
+ "http.proxy": "http://proxy_ip:port", // Replace with your proxy IP and port
+ "http.proxySupport": "on",
+ "http.proxyStrictSSL": true,
+ "http.systemCertificates": true,
+ "http.experimental.systemCertificatesV2": true
+}
+```
+
+ ### Self-Signed Certificates in VS Code
+
+If your proxy uses self-signed certificates, ensure the following settings are enabled:
+
+```json
+{
+ "http.systemCertificates": true,
+ "http.experimental.systemCertificatesV2": true
+}
+```
+
+ ### Restart VS Code
+
+After modifying the `settings.json` file, close and restart VS Code to apply the new proxy settings.
+
+ ### Supported Proxy Types
+
+VS Code supports HTTP, HTTPS, and SOCKS proxies. The `http.proxy` setting in `settings.json` will accommodate all three types based on the provided proxy URL.
+
+
+
+
+
+ You may be unable to authenticate with Cody or see a network reachability issue if you attempt to use Cody before configuring your proxy settings.
+
+ ### Accessing the Proxy Settings
+
+1. Open your JetBrains IDE (e.g., IntelliJ IDEA, PyCharm)
+2. Navigate to `Settings` by clicking on `File` > `Settings` (or `Preferences` on macOS)
+3. In the search bar at the top, type `proxy` to find the proxy settings
+4. Select the `HTTP` proxy or `SOCKS` proxy based on your requirement
+
+ ### Configuring HTTP Proxy
+
+1. In the proxy settings, choose `Manual Proxy Configuration`
+2. Enter the following details:
+ - **HTTP Proxy:** `http://proxy_ip:port` (Replace with your proxy IP and port)
+ - **Enable proxy authentication if needed and provide credentials**
+3. Click `Apply` and then `OK` to save the settings
+
+ ### Configuring SOCKS Proxy
+
+1. In the proxy settings, choose `Manual Proxy Configuration`
+2. Enter the following details:
+ - **SOCKS Proxy:** `socks5://proxy_ip:port` (Replace with your proxy IP and port)
+ - **Enable proxy authentication if needed and provide credentials**
+3. Click `Apply` and then `OK` to save the settings
+
+ ### Using the Proxy with Cody
+
+1. Open Cody settings within your JetBrains IDE
+2. Connect to the Sourcegraph instance using the provided instance IP and token:
+ - **Instance IP:** `http://instance_ip`
+ - **Token:** `your_token`
+3. Click `Apply`, then `OK`, and test the connection
+
+ ### Supported Proxy Types
+
+JetBrains supports HTTP and SOCKS proxies. The `Manual Proxy Configuration` in the settings will accommodate both types based on the provided proxy URL.
+
+ ### Known Limitations
+
+1. Currently, only `Manual Proxy Configuration` is supported. The `auto-detect proxy settings` option is not fully supported.
+2. HTTPS proxy is not supported in JetBrains currently
+
+
+
+
+
+## Troubleshooting the Proxy Setup
+
+### Basic Connectivity Test
+
+To verify that your proxy setup works, use the following `curl` command in your terminal, replacing `proxy_ip` and `instance_ip` with your actual proxy and instance IP addresses:
+
+```bash
+curl -x http://proxy_ip:port http://instance_ip
+```
+
+This command should return a response from the instance, confirming that the proxy is correctly routing your requests.
+
+## Adding Self-Signed Certificates
+
+### For macOS
+
+1. Download the self-signed certificate.
+2. Open `Keychain Access` and import the certificate.
+3. Ensure the certificate is added by searching for the proxy IP.
+4. Set the certificate to `Always Trust`.
+
+### For Windows
+
+1. Download the self-signed certificate.
+2. Open `Manage User Certificates` by typing it in the Windows search bar.
+3. Import the certificate into the `Trusted Root Certification Authorities` store.
+4. Confirm that the certificate is listed and trusted.
+
+ Please confirm with your IT Administrator to ensure you trust the right certificate.
+
+When adding self-signed certificates, try making a `curl` request routed through the HTTPS proxy to check if the computer uses the self-signed certificate. Your request will look something like:
+
+```bash
+curl -x https://proxy_ip https://destination_ip
+```
+
+### Additional Support
+
+Please get in touch with the Cody support team if you need further assistance with proxy configurations, especially for special enterprise setups. They can provide guidance tailored to your specific network environment.
diff --git a/docs/cody/capabilities/query-types.mdx b/docs/cody/capabilities/query-types.mdx
new file mode 100644
index 000000000..c6d1de2e0
--- /dev/null
+++ b/docs/cody/capabilities/query-types.mdx
@@ -0,0 +1,94 @@
+# Chat Query Types
+
+This page lists all the query types that will return search results with the Sourcegraph chat.
+
+Query types are only supported on Enterprise Starter and Enterprise plans.
+
+## Symbol Search
+
+Symbol Search is a query type or workflow that helps developers understand how specific symbols (like functions, variables, or hooks) are used across a codebase by combining search results with contextual analysis through chat.
+
+It enables developers to explore and understand symbol usage patterns through a two-step process. First, developers search for a specific symbol (like `useCallback`) using Sourcegraph Chat, which returns relevant code snippets from across the codebase.
+
+These search results are automatically preserved as context for follow-up chat interactions. Developers can refine their understanding by selecting specific search results and asking natural language questions about the symbol's usage patterns. The chat will analyze the selected code context and provide a comprehensive summary of how the symbol is implemented and used throughout the codebase.
+
+### Try it
+
+1. Query for `= useCallback`
+2. Select a subset of the search results which include usage for `useCallback`
+3. Follow up and ask Sourcegraph chat `Summarize how useCallback is used`
+
+### Example
+
+
+
+
+
+## File Search
+
+Search is a query type or workflow that enables users to locate specific files across repositories and perform targeted analysis on the selected files through natural language follow-up queries.
+
+File Search simplifies finding and analyzing specific file types across your codebase. Unlike traditional code search, this workflow allows you to identify relevant files (for example, all `package.json` files), select the specific files you want to analyze, and then ask follow-up questions about the selected files.
+
+This two-step approach is particularly powerful when analyzing patterns or extracting information from similar files spread across multiple repositories. For instance, you could identify all configuration files, select the ones from relevant services, and then analyze their contents for inconsistencies or gather specific information through natural language queries.
+
+### Try it
+
+1. Type `package.json`
+2. Check the checkbox next to the results you want to analyze
+3. Follow up with `List all the dependencies used across these package.json files`
+
+### Example
+
+
+
+
+
+## String Literal Search
+
+String literal search is a query type or workflow that allows you to find exact text matches by enclosing your search term in quotes. This ensures precise matching instead of keyword-based results.
+
+When you enclose the text in quotes like `" authInfo: async provider =>"",` Sourcegraph performs an exact match search rather than keyword matching. After finding relevant files, you can select specific ones to analyze and ask follow-up questions about their contents - creating an interactive workflow combining precise search and contextual code analysis.
+
+### Try it
+
+1. Start a new chat with `"authInfo: async provider =>"`
+2. Select a subset of the search results which include usage for the string
+3. Follow up with `Summarize the contents`
+
+### Example
+
+
+
+
+
+## Error Lookups
+
+Error Lookups is a conversational workflow for Sourcegraph chat that helps developers understand error messages by providing plain-English explanations of when and why specific errors occur in their codebase and external service calls.
+
+Developers can use Error Lookups to understand error messages occurring in their codebase. When encountering an error, especially from external services or dependencies, developers can use chat to:
+
+1. Search for specific error messages across their codebase
+2. Select relevant files where the error is thrown or handled
+3. Request a natural language explanation of the error's context, triggers, and implications
+
+The workflow combines Sourcegraph's code search capabilities with AI-powered analysis to provide developers with a clear, contextual understanding of error scenarios. Instead of having to dig through docs or source code manually, developers can quickly grasp the following:
+
+* The specific conditions that trigger the error
+* The underlying reasons for the error occurrence
+* Common scenarios where this error might appear
+* Potential approaches to handling or preventing the error
+
+This approach helps developers make more informed decisions about error handling and debugging, reducing the time spent deciphering cryptic error messages or searching through external docs.
+
+### Try it
+
+* Query for `"unsupported platform"`
+* Select the file(s) where the error is thrown
+* Follow up with "Explain when and why this error is thrown"
+
+### Demo
+
+
+
+
diff --git a/docs/cody/capabilities/supported-models.mdx b/docs/cody/capabilities/supported-models.mdx
index cdee6c949..b543111e5 100644
--- a/docs/cody/capabilities/supported-models.mdx
+++ b/docs/cody/capabilities/supported-models.mdx
@@ -1,59 +1,64 @@
-# Supported Large Language Models
-
-## Chat and Commands
-
-Cody supports a variety of cutting edge large language models for use in Chat and Commands, allowing you to select the best model for your use case. Free users are defaulted to the Claude 3 Sonnet model from Anthropic, while Pro users have access to select any supported model.
-
-| **Provider** | **Model** | **Free** | **Pro** | **Enterprise** |
-|:--|:--|:--|:--|:--|
-| OpenAI | [gpt-3.5 turbo](https://platform.openai.com/docs/models/gpt-3-5-turbo) | - | ✅ | ✅ |
-| OpenAI | [gpt-4](https://platform.openai.com/docs/models/gpt-4-and-gpt-4-turbo#:~:text=to%20Apr%202023-,gpt%2D4,-Currently%20points%20to) | - | - | ✅ |
-| OpenAI | [gpt-4 turbo](https://platform.openai.com/docs/models/gpt-4-and-gpt-4-turbo#:~:text=TRAINING%20DATA-,gpt%2D4%2D0125%2Dpreview,-New%20GPT%2D4) | - | ✅ | ✅ |
-| Anthropic| [claude Instant](https://docs.anthropic.com/claude/docs/models-overview#model-comparison) | - | ✅ | ✅ |
-| Anthropic| [claude-2.0](https://docs.anthropic.com/claude/docs/models-overview#model-comparison) | - | ✅ | - |
-| Anthropic| [claude-2.1](https://docs.anthropic.com/claude/docs/models-overview#model-comparison) | - | ✅ | ✅ |
-| Anthropic| [claude-3 Haiku](https://docs.anthropic.com/claude/docs/models-overview#model-comparison) | - | ✅ | ✅ |
-| Anthropic| [claude-3 Sonnet](https://docs.anthropic.com/claude/docs/models-overview#model-comparison) | ✅ | ✅ | ✅ |
-| Anthropic| [claude-3 Opus](https://docs.anthropic.com/claude/docs/models-overview#model-comparison) | - | ✅ | ✅ |
-| Mistral| [mixtral 8x7b](https://mistral.ai/technology/#models:~:text=of%20use%20cases.-,Mixtral%208x7B,-Currently%20the%20best) | - | ✅ | - |
-| Mistral| [mixtral 8x22b](https://mistral.ai/technology/#models:~:text=of%20use%20cases.-,Mixtral%208x7B,-Currently%20the%20best) | - | ✅ | - |
-| Ollama* | [variety](https://ollama.com/) | *experimental*| *experimental* | - |
-||||||
-
-To use Claude 3 (Opus and Sonnets) models with Cody Enterprise, make sure you've upgraded your Sourcegraph instance to the latest version.
+# Supported LLMs
-## Autocomplete
+## Chat and Prompts
-Cody uses a set of models for autocomplete which are suited for the low latency use case.
+Cody supports a variety of cutting-edge large language models for use in chat and prompts, allowing you to select the best model for your use case.
+
+Newer versions of Sourcegraph Enterprise, starting from v5.6, it will be even easier to add support for new models and providers, see [Model Configuration](/cody/enterprise/model-configuration) for more information.
+
+| **Provider** | **Model** | **Free** | **Pro** | **Enterprise** | | | | |
+| :------------ | :-------------------------------------------------------------------------------------------------------------------------------------------- | :----------- | :----------- | :------------- | --- | --- | --- | --- |
+| OpenAI | [GPT-4 Turbo](https://platform.openai.com/docs/models/gpt-4-and-gpt-4-turbo#:~:text=TRAINING%20DATA-,gpt%2D4%2D0125%2Dpreview,-New%20GPT%2D4) | - | ✅ | ✅ | | | | |
+| OpenAI | [GPT-4o](https://platform.openai.com/docs/models#gpt-4o) | - | ✅ | ✅ | | | | |
+| OpenAI | [GPT-4o-mini](https://platform.openai.com/docs/models#gpt-4o-mini) | ✅ | ✅ | ✅ | | | | |
+| OpenAI | [o3-mini-medium](https://openai.com/index/openai-o3-mini/) (experimental) | ✅ | ✅ | ✅ | | | | |
+| OpenAI | [o3-mini-high](https://openai.com/index/openai-o3-mini/) (experimental) | - | - | ✅ | | | | |
+| OpenAI | [o3](https://platform.openai.com/docs/models#o3) | - | ✅ | ✅ | | | | |
+| OpenAI | [o4-mini](https://platform.openai.com/docs/models/o4-mini) | ✅ | ✅ | ✅ | | | | |
+| OpenAI | [GPT-4.1](https://platform.openai.com/docs/models/gpt-4.1) | - | ✅ | ✅ | | | | |
+| OpenAI | [GPT-4.1-mini](https://platform.openai.com/docs/models/gpt-4o-mini) | ✅ | ✅ | ✅ | | | | |
+| OpenAI | [GPT-4.1-nano](https://platform.openai.com/docs/models/gpt-4.1-nano) | ✅ | ✅ | ✅ | | | | |
+| Anthropic | [Claude 3.5 Haiku](https://docs.anthropic.com/claude/docs/models-overview#model-comparison) | ✅ | ✅ | ✅ | | | | |
+| Anthropic | [Claude 3.5 Sonnet](https://docs.anthropic.com/claude/docs/models-overview#model-comparison) | ✅ | ✅ | ✅ | | | | |
+| Anthropic | [Claude 3.7 Sonnet](https://docs.anthropic.com/claude/docs/models-overview#model-comparison) | - | ✅ | ✅ | | | | |
+| Google | [Gemini 1.5 Pro](https://deepmind.google/technologies/gemini/pro/) | ✅ | ✅ | ✅ (beta) | | | | |
+| Google | [Gemini 2.0 Flash](https://deepmind.google/technologies/gemini/flash/) | ✅ | ✅ | ✅ | | | | |
+| Google | [Gemini 2.0 Flash](https://deepmind.google/technologies/gemini/flash/) | ✅ | ✅ | ✅ | | | | |
+| Google | [Gemini 2.5 Pro Preview](https://cloud.google.com/vertex-ai/generative-ai/docs/models/gemini/2-5-pro) | - | ✅ | ✅ | | | | |
+| Google | [Gemini 2.5 Flash Preview](https://cloud.google.com/vertex-ai/generative-ai/docs/models/gemini/2-5-flash) (experimental) | ✅ | ✅ | ✅ | | | | |
+
+To use Claude 3 Sonnet models with Cody Enterprise, make sure you've upgraded your Sourcegraph instance to the latest version.
+
+### Claude 3.7 Sonnet
+
+Claude 3.7 has two variants — Claude 3.7 Sonnet and Claude 3.7 Extended Thinking — to support deep reasoning and fast, responsive edit workflows. This means you can use Claude 3.7 in different contexts depending on whether long-form reasoning is required or for tasks where speed and performance are a priority.
-| **Provider** | **Model** | **Free** | **Pro** | **Enterprise** |
-| :----------- | :---------------------------------------------------------------------------------------- | :------------- | :------------- | :------------- |
-| Fireworks.ai | [StarCoder](https://arxiv.org/abs/2305.06161) | ✅ | ✅ | ✅ |
-| Anthropic | [claude Instant](https://docs.anthropic.com/claude/docs/models-overview#model-comparison) | - | - | ✅ |
-| Ollama* | [variety](https://ollama.com/) | *experimental* | *experimental* | - |
-| | | | | |
+Claude 3.7 Extended Thinking is the recommended default chat model for Cloud customers. Self-hosted customers are encouraged to follow this recommendation, as Claude 3.7 outperforms 3.5 in most scenarios.
-[See here for Ollama setup instructions](https://sourcegraph.com/docs/cody/clients/install-vscode#supported-local-ollama-models-with-cody)
+#### Claude 3.7 for GCP
+
+In addition, Sourcegraph Enterprise customers using GCP Vertex (Google Cloud Platform) for Claude models can use both these variants of Claude 3.7 to optimize extended reasoning and deeper understanding. Customers using AWS Bedrock do not have the Claude 3.7 Extended Thinking variant.
+
+Claude 3.7 Sonnet with thinking is not supported for BYOK deployments.
+
+## Autocomplete
+
+Cody uses a set of models for autocomplete which are suited for the low latency use case.
-## Input and output token limits
+| **Provider** | **Model** | **Free** | **Pro** | **Enterprise** | | | | |
+| :----------- | :---------------------------------------------------------------------------------------- | :------- | :------ | :------------- | --- | --- | --- | --- |
+| Fireworks.ai | [DeepSeek-Coder-V2](https://huggingface.co/deepseek-ai/DeepSeek-Coder-V2-Lite-Instruct) | ✅ | ✅ | ✅ | | | | |
+| Anthropic | [claude Instant](https://docs.anthropic.com/claude/docs/models-overview#model-comparison) | - | - | ✅ | | | | |
+| | | | | | | | | |
-For all models, Cody allows up to **4,000 tokens of output**, which is approximately **500-600** lines of code.
+The default autocomplete model for Cody Free, Pro and Enterprise users is DeepSeek-Coder-V2.
-For Claude 3 Sonnet or Opus models users, Cody supports up to **30,000 tokens (~4,000 lines of code)** of user-defined context through `@-mention` syntax and **15,000 tokens** of continued chat history (user queries + system responses). All other models are currently capped at **7,000 tokens** of shared context between user-defined context and chat history.
+The DeepSeek model used by Sourcegraph is hosted by Fireworks.ai, and is hosted as a single-tenant service in a US-based data center. For more information see our [Cody FAQ](https://sourcegraph.com/docs/cody/faq#is-any-of-my-data-sent-to-deepseek).
-Here's a detailed breakdown of the token limits by model:
+## Smart Apply
-| **Model** | **User Defined** | **Chat** **History** | **Output** |
-| ------------------- | ---------------- | -------------------- | ---------- |
-| gpt-3.5-turbo | 7,000 | shared | 4,000 |
-| gpt-4 | 7,000 | shared | 4,000 |
-| gpt-4-turbo | 7,000 | shared | 4,000 |
-| claude instant | 7,000 | shared | 4,000 |
-| claude-2.0 | 7,000 | shared | 4,000 |
-| claude-2.1 | 7,000 | shared | 4,000 |
-| claude-3 Haiku | 7,000 | shared | 4,000 |
-| **claude-3 Sonnet** | **200,000** | **15,000** | **4,000** |
-| **claude-3 Opus** | **200,000** | **15,000** | **4,000** |
-| mixtral 8x7b | 7,000 | shared | 4,000 |
+| **Provider** | **Model** | **Free** | **Pro** | **Enterprise** | | | | | | |
+| :----------- | :------------- | :------- | :------ | :------------- | --- | --- | --- | --- | --- | --- |
+| Fireworks.ai | Qwen 2.5 Coder | ✅ | ✅ | ✅ | | | | | | |
-For more information on how Cody builds context, see our [documentation here](/cody/core-concepts/context).
+Enterprise users not using Cody Gateway get a Claude Sonnet-based model for Smart Apply.
diff --git a/docs/cody/clients/app/app_configuration.mdx b/docs/cody/clients/app/app_configuration.mdx
deleted file mode 100644
index d69dfe322..000000000
--- a/docs/cody/clients/app/app_configuration.mdx
+++ /dev/null
@@ -1,30 +0,0 @@
-# Cody App Configuration
-
-Starting December 2023, we are completely sunsetting the Cody App, which has been deprecated.
-
-## Using a third-party LLM provider
-
-Instead of using Sourcegraph Cody Gateway, you can configure the Cody app to use a third-party provide directly. Currently this can only be Anthropic or OpenAI.
-
-You must create your own key with Anthropic [here](https://console.anthropic.com/account/keys) or with OpenAI [here](https://beta.openai.com/account/api-keys). Once you have the key, go to Settings > Advanced settings and update your site configuration:
-
-```jsonc
-{
- // [...]
- "cody.enabled": true,
- "completions": {
- "enabled": true,
- "provider": "anthropic", // or "openai" if you use OpenAI
- "accessToken": "",
- "endpoint": "https://api.anthropic.com/v1/complete" // or "https://api.openai.com/v1/chat/completions"
- },
- "embeddings": {
- "enabled": true,
- "provider": "openai",
- "accessToken": "",
- "endpoint": "https://api.openai.com/v1/embeddings"
- },
-}
-```
-
-> WARNING: When using OpenAI models for completions, only chat completions will work - code completions are currently unsupported.
diff --git a/docs/cody/clients/app/discord.svg b/docs/cody/clients/app/discord.svg
deleted file mode 100644
index 150d98f7f..000000000
--- a/docs/cody/clients/app/discord.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/docs/cody/clients/app/github.svg b/docs/cody/clients/app/github.svg
deleted file mode 100644
index bca45f819..000000000
--- a/docs/cody/clients/app/github.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/docs/cody/clients/app/index.mdx b/docs/cody/clients/app/index.mdx
deleted file mode 100644
index 0febe18f9..000000000
--- a/docs/cody/clients/app/index.mdx
+++ /dev/null
@@ -1,54 +0,0 @@
-# Cody App
-
-Starting December 2023, we are completely sunsetting the Cody App, which has been deprecated.
-
-The Cody app is a free, lightweight, native desktop application that connects your local code to our AI coding assistant, Cody. You can ask Cody questions about your code using the app's interface. However, Cody will be available directly inside your code editor if connected to the VS Code extension.
-
-## Setup
-
-After a successful installation, follow these steps to complete the app setup:
-
-- Sign in and connect the app with your Sourcegraph.com account, or create a new account if you haven't got one
-- Next, select up to 10 local repositories to add to your code graph
-- This code is sent to OpenAI to create [embeddings](/cody/core-concepts/embeddings), which helps Cody build the code graph and generate more accurate answers about your code
-- If you use [VS Code](/cody/clients/install-vscode) or [JetBrains IntelliJ](/cody/clients/install-jetbrains) IDEs, it's recommended to install their extensions and Ask Cody questions right within your editor
-
-> NOTE: The [JetBrains IntelliJ](/cody/clients/install-jetbrains) extension is in the `Experimental` stage.
-
-## Rate limiting
-
-Several forms of rate limiting help us manage costs for free versions of Cody. We're working actively to relax these limits and facilitate users with [Cody Gateway](/cody/core-concepts/cody-gateway).
-
-If you hit these limits, you can request an increased limit by visiting our [Discord](https://discord.com/servers/sourcegraph-969688426372825169) channel for both chats and completions. If you'd like to use your third-party LLM provider instead of Cody Gateway, create your key with Anthropic or OpenAI and [update your app configuration](/cody/clients/app/app_configuration).
-
-### Embeddings
-
-The default Cody app setup allows you to select up to 10 repos for embeddings. However, you can add more repos and "Schedule Embeddings". Go to **Cody Settings > Advanced settings > Embedding jobs**, and you can add and schedule repositories for embeddings.
-
-However, these additional number of supported repos will vary depending on their size.
-
-## Updating the app
-
-You'll get prompts to upgrade the app automatically. Let us know if you have any issues, and we'll be happy to help.
-
-If you're on a version that's `2023.6.13` or older, it's recommended to [uninstall](#uninstalling-the-app) the app and download the most recent version to add your projects to your code graph during the setup.
-
-> NOTE: The old app versions were called "Sourcegraph" and included Sourcegraph [Code Search](/code-search). However, the recent versions provide a Cody-only experience.
-
-## Uninstalling the app
-
-To uninstall the app, navigate to **Troubleshooting > Clear All Data** from the system tray and delete the app from your applications folder.
-
-If you're on an older version of the app and don't see a "Clear All Data" option, run the following script in your terminal:
-
-```shell
-rm -rf ~/.sourcegraph-psql ~/Library/Application\ Support/com.sourcegraph.cody ~/Library/Caches/com.sourcegraph.cody ~/Library/WebKit/com.sourcegraph.cody
-```
-
-## Get help give feedback
-
-If you run into any trouble or have ideas/feedback, you can reach out via the following:
-
-- [Discord](https://discord.com/invite/s2qDtYGnAE)
-- [GitHub](https://github.com/sourcegraph/app)
-- [X](https://twitter.com/sourcegraph)
diff --git a/docs/cody/clients/app/integrations.mdx b/docs/cody/clients/app/integrations.mdx
deleted file mode 100644
index 567b9110b..000000000
--- a/docs/cody/clients/app/integrations.mdx
+++ /dev/null
@@ -1,53 +0,0 @@
-# Cody app API integrations
-
-Starting December 2023, we are completely sunsetting the Cody App, which has been deprecated.
-
-This page outlines how extensions and other clients can integrate with Cody app.
-
-## API
-
-The Cody app API is a GraphQL API exposed on the localhost port which is `http://localhost:3080` by default.
-
-The GraphQL resolvers for app-specific API calls are defined in [frontend/internal/app/resolvers/app.go](https://sourcegraph.com/github.com/sourcegraph/sourcegraph@main/-/blob/cmd/frontend/internal/app/resolvers/app.go).
-
-## App.json file
-
-The `app.json` file is placed in the app's local data directory when it runs for the first time and it provides the token and local endpoint URL that local clients can use to connect with the app's API.
-
-The location of the file varies by OS:
-
-- Mac OS: `~/Library/Application Support/com.sourcegraph.cody/app.json`
-- Linux:
- - `$XDG_DATA_HOME/com.sourcegraph.cody/app.json`
- - or: `$HOME/.local/share/com.sourcegraph.cody/app.json`
-- Windows: `{FOLDERID_LocalAppData}/com.sourcegraph.cody/app.json`
-
-Example contents of `app.json`:
-
-```json
-{
- "token": "xxxxx",
- "endpoint": "http://localhost:3080",
- "version": "2023.06.16"
-}
-```
-
-## Token
-
-API requests require a token. The token is generated when the Cody app runs for the first time and placed in `app.json` in the app's config directory. See the [Sourcegraph API docs](/api/graphql/) for how to make requests with the token.
-
-## Endpoint
-
-The local API endpoint is `http://localhost:3080` by default. The `endpoint` field in the `app.json` file provides the endpoint that the current app installation is using.
-
-## Detecting if the Cody app is installed
-
-To detect if the Cody app has been installed locally and run at least once, check for the existance of the `app.json` file in the expected directory
-
-## Detecting if the Cody app is running
-
-To detect if the Cody app is running a GET request to the version endpoint can be used. The endpoint can be found at `/__version` and if the app is running it will return a string that is the current version.
-
-## Deep links
-
-The Cody app supports opening deep links that start with the `sourcegraph://` prefix. Opening of a deep links from a browser or from another application will launch the app if it's not already running and will navigate the app's UI to the destination.
diff --git a/docs/cody/clients/app/release-pipeline.mdx b/docs/cody/clients/app/release-pipeline.mdx
deleted file mode 100644
index dc6c86077..000000000
--- a/docs/cody/clients/app/release-pipeline.mdx
+++ /dev/null
@@ -1,128 +0,0 @@
-# Cody App release pipeline
-
-Starting December 2023, we are completely sunsetting the Cody App, which has been deprecated.
-
-The Cody App release pipeline utilizes buildkite to build and bundle Cody App for all current [supported platforms](#supported-platforms). The primary definition of the buildkite pipeline can be found at `.buildkite/pipeline.app.yml` in the Sourcegraph mono repo.
-
-## Branches that trigger the release pipeline
-
-As soon as a commit is pushed on the following branches the release pipeline will start. Note that only one build can be in progress at one time, and pushing a new commit will cancel all previous builds.
-
-- `app-release/stable`: Once a stable release is ready commits should be pushed to this branch ex. `git push HEAD:app-release/stable` will push the current commit on your current branch (which should be main) to `app-release/stable`.
-- `app-release/debug`: To debug the release pipeline, commits can be pushed to this branch ex. `git push HEAD:app-release/debug` will push the current commit on your current branch (which should be main) to `app-release/debug`.
-
-For now the only difference between the two branches is how the release will be named:
-
-- Releases from the `app-release/stable` branch will use the build number in their version number.
-- Releases from the `app-release/debug` branch will use `debug` in the version number.
-
-## Supported platforms
-
-Cody App currently supports the following platforms:
-
-- `x86_64-linux`
-- `x86_64-darwin` (also known as Intel Mac)
-- `aarch64-darwin` (also known as Apple Silicon)
-
-## Broad overview of the pipeline
-
-The pipeline is broken up into 3 stages:
-
-1. Build the Sourcegraph Backend.
-2. Bundle the Sourcegraph Backend using Tauri for the various supported platforms as well as perform code signing.
-3. Publish a **draft** release on GitHub.
-
-The above stages are accomplished by utilizing hosts across two cloud providers namely GCP and AWS.
-
-- For GCP we execute any step that doesn't require tooling specific APIs or tooling.
- - Compiling and bundling of Cody App for Linux platform.
- - We **only** utilize Bazel to compile the Sourcegraph Backend.
- - Performing the GitHub release.
-- We use AWS to host a MacOS host, which we utilize for all Apple specific tooling and processes.
- - Code Signing.
- - Compiling and bundling of Cody App for Intel Mac and Apple Silicon.
- - We use Bazel to compile the Sourcegraph Backend for `aarch64-darwin`.
- - We use Go to compile the Sourcegraph Backend for `x86_64-darwin`.
-
-### Building of Sourcegraph Backend
-
-The script that builds the backend is located at [`dev/app/build-backend.sh`](https://sourcegraph.sourcegraph.com/github.com/sourcegraph/sourcegraph@4cb14a729d2bcd86b47c6ee65f6fe7e34d2ff782/-/blob/enterprise/dev/app/build-backend.sh) and compiled binaries will be put under the directory `.bin` with the following naming convention `sourcegraph-backend-{platform}`. The script by default will use Bazel to compile the Sourcegraph backend and will automatically detect the platform by using the script [`enterprise/dev/app/detect_platform.sh`](https://sourcegraph.sourcegraph.com/github.com/sourcegraph/sourcegraph@4cb14a729d2bcd86b47c6ee65f6fe7e34d2ff782/-/blob/enterprise/dev/app/detect-platform.sh). For cross compilation and especially for the `x86_64-darwin` platform, one has to provide the following environment variables to make the script do the cross compilation:
-
-- `PLATFORM=x86_64-apple-darwin`
-- `CROSS_COMPILE_X86_64_MACOS=1`
-
-### Bundling with Tauri
-
-Tauri is used to provide a cross platform native shell for Sourcegrah App. The pipeline executes the script [`tauri-build.sh`](https://sourcegraph.sourcegraph.com/github.com/sourcegraph/sourcegraph@4cb14a729d2bcd86b47c6ee65f6fe7e34d2ff782/-/blob/enterprise/dev/app/tauri-build.sh) which starts the bundling process. Without going into too much detail of the script it performs the following functions:
-
-- Downloads the various platform specific `sourcegraph-backend` binaries from the previous build steps
-- On MacOS the `sourcegraph-backend` is sent to Apple for precode signing
-- Creates the platform specific bundle
- - For Linux the bundles are `.deb` and `.AppImage`
- - For Darwin the bundles are `.dmg`, `aarch64.app.tar.gz` and `x64.app.tar.gz`.
-- Tauri signs the following bundles and generates `.sig` files with the signatures for the following bundles:
- - `.AppImage`
- - Note the `.deb` bundle contains the `.AppImage` bundle.
- - `.aarch64.app.tar.gz` and `.x64.app.tar.gz`
- - The `.dmg` bundle contains the `.app.tar.gz` bundle.
-- The bundles along with their signatures are uploaded
-
-### Creating the GitHub release
-
-Creation of the GitHub release is driven by the [`create-github-release.sh`](https://sourcegraph.sourcegraph.com/github.com/sourcegraph/sourcegraph@4cb14a729d2bcd86b47c6ee65f6fe7e34d2ff782/-/blob/enterprise/dev/app/create-github-release.sh) script, and crucially also generates the `app.update.manifest`. The script downloads all the artefacts from the previous steps and then generates a release using the GitHub cli. Note that the release will have the following values:
-
-- Tag `app-v{VERSION}`
-- Draft
-- Prerelease
-
-At this point in time no release notes are generated but that is a planned feature to add.
-
-Finally, once the release has been created the script will generate an `app.update.manifest` by executing [`create-update-manifest.sh`](https://sourcegraph.sourcegraph.com/github.com/sourcegraph/sourcegraph@4cb14a729d2bcd86b47c6ee65f6fe7e34d2ff782/-/blob/enterprise/dev/app/create-update-manifest.sh) which has the following format:
-
-```
-{
- "version": "2023.5.30+1306.85e549168c",
- "notes": "",
- "pub_date": "2023-05-30T22:33:56Z",
- "platforms": {
- "aarch64-darwin": {
- "signature": "dW50cnVzdGVkIGNvbW1lbnQ6IHNpZ25hdHVyZSBmcm9tIHRhdXJpIHNlY3JldCBrZXkKUlVRMXp3Y3ZEa1JXajgyZk1CYWZkQjFrWjdzU0ZNT0twQ3ZESm1YMDVhZ3U5MTIycGFFakUwUElKOUt2N0JIZXhCZE9NaVgwSHhrYjZFcU42TDBEaGVlcW1QRXRnNzNuMFFJPQp0cnVzdGVkIGNvbW1lbnQ6IHRpbWVzdGFtcDoxNjg1NDg1NjMxCWZpbGU6U291cmNlZ3JhcGguYXBwLnRhci5negp1RUZLT1B4c0lJcWI3YlI5MzlXM0lKSU5McGJsQ2RNM0JsVXVUenhzTjJRSHpEWGpOMWpyVkc2ZkYwam1hYi9maSs4MnBkYWliK09GRml4ZXUwTVdBQT09Cg==",
- "url": "https://github.com/sourcegraph/sourcegraph/releases/download/untagged-app-v2023.5.30%2B1306.85e549168c/Sourcegraph.2023.5.30%2B1306.85e549168c.aarch64.app.tar.gz"
- },
- "x86_64-darwin": {
- "signature": "dW50cnVzdGVkIGNvbW1lbnQ6IHNpZ25hdHVyZSBmcm9tIHRhdXJpIHNlY3JldCBrZXkKUlVRMXp3Y3ZEa1JXanpyWXJqd3dUcnZVczRES052REZybjdkaWNHYjY1alVnQjYxaERyOTZURHdnMVBrMlVWUmtaRFFIYnpBREN2NkxVNFFKM3B4V3pHdFlTZDhWYnliR3dVPQp0cnVzdGVkIGNvbW1lbnQ6IHRpbWVzdGFtcDoxNjg1NDg1OTY3CWZpbGU6U291cmNlZ3JhcGguYXBwLnRhci5negpFdGg3cEVIVk90L1owUHhJQ0hBY0o1UkgwZllJdHRFNnJ6Ly9hSzQ0WURkNU5zcDdaK2RCcWhsSjRNVWF4NXpIeURsSWVwYnZKaElGK0RPc1cwMktEQT09Cg==",
- "url": "https://github.com/sourcegraph/sourcegraph/releases/download/untagged-app-v2023.5.30%2B1306.85e549168c/Sourcegraph.2023.5.30%2B1306.85e549168c.x86_64.app.tar.gz"
- },
- "x86_64-linux": {
- "signature": "dW50cnVzdGVkIGNvbW1lbnQ6IHNpZ25hdHVyZSBmcm9tIHRhdXJpIHNlY3JldCBrZXkKUlVRMXp3Y3ZEa1JXandyRWNReDc1TGZqTEFJaUxYcEtjWWFHSEpJZndkTnkrQVlKWSt2SHRXRGcxME5LbHhzenRYVktSdHE3YnRYQk90TjFIeXBjcVIweXBqWENuL3cyVHdJPQp0cnVzdGVkIGNvbW1lbnQ6IHRpbWVzdGFtcDoxNjg1NDg1OTQxCWZpbGU6c291cmNlZ3JhcGhfMjAyMy41LjMwKzEzMDYuODVlNTQ5MTY4Y19hbWQ2NC5BcHBJbWFnZS50YXIuZ3oKVkpSa3YvYStUTEVJQytsK21IWUtXWXFXOVp0Mk9FQUVuUTB4YUk1N0w3V1dCV0p5UzJCRkM0bjQ5NGdIQUJCaGF3VUN4UHlhZEl1UnVzN3YwYXM3RHc9PQo=",
- "url": "https://github.com/sourcegraph/sourcegraph/releases/download/untagged-app-v2023.5.30%2B1306.85e549168c/sourcegraph_2023.5.30%2B1306.85e549168c_amd64.AppImage.tar.gz"
- }
- }
-}
-```
-
-The manifest will be available as an artefact on the `Create GitHub release` step of the pipeline. The manifest is used by Sourcegraph.com to tell Cody App clients checking in whether an update is available. Therefore, this manifest has to be uploaded to the following buckets depending on the use case:
-
-- Production
- - Bucket [`sourcegraph-app`](https://sourcegraph.sourcegraph.com/github.com/sourcegraph/sourcegraph/-/blob/cmd/frontend/internal/app/updatecheck/app_update_checker.go?L25): This bucket is available in the `sourcegraph-dev` project, and the manifest should have to following name [`app.update.prod.manifest.json`](https://sourcegraph.sourcegraph.com/github.com/sourcegraph/sourcegraph/-/blob/cmd/frontend/internal/app/updatecheck/app_update_checker.go?L31).
-- Development
- - Bucket [`sourcegraph-app-dev`](https://sourcegraph.sourcegraph.com/github.com/sourcegraph/sourcegraph/-/blob/cmd/frontend/internal/app/updatecheck/app_update_checker.go?L28): This is bucket is available in the `sourcegraph-ci` project, and the manifest should have the following name [`app.update.prod.manifest.json`](https://sourcegraph.sourcegraph.com/github.com/sourcegraph/sourcegraph/-/blob/cmd/frontend/internal/app/updatecheck/app_update_checker.go?L31).
-
-__Note__: if you're wondering why the bucket names are different even though we use two different projects, it is because GCP requires bucket names to be **globally** unique.
-
-### Automatically updating the manifest
-
-`sg` can be used to automatically update the manifest from the latest build on `app-release/stable` and corresponding latest release on GitHub. Updating the manifest will set the new current version for download links as well as prompt users to upgrade the next time the App checks for updates. To run the update-manifest command request the `Cody App Release Bucket access` bundle in Entitle.
-
-Below is an example command:
-
-```
-sg app update-manifest --bucket sourcegraph-app
-```
-
-If one first wants to check the manifest the `--no-upload` flag can be passed which will print out the manifest that will get uploaded
-```
-sg app update-manifest --bucket sourcegraph-app --no-upload
-```
-
-Additionally, the manifest will be updated with the release notes from the GitHub release. By doing this the release notes are presented to the user when they are notified of an available update.
diff --git a/docs/cody/clients/app/troubleshooting.mdx b/docs/cody/clients/app/troubleshooting.mdx
deleted file mode 100644
index 668fe046c..000000000
--- a/docs/cody/clients/app/troubleshooting.mdx
+++ /dev/null
@@ -1,8 +0,0 @@
-# Cody App troubleshooting guide
-
-Starting December 2023, we are completely sunsetting the Cody App, which has been deprecated.
-
-### VS Code extension isn't indexing repositories correctly
-If you've confirmed that your repositories have been added to your app and embeddings have been generated successfully (check Settings > Advanced settings > Embedding jobs), the issue may be that your repositories don't have a git remote. If that's the case, try updating your extension settings (Settings > Settings > Extensions > Cody) to set `Cody: Codebase` to your path. For example, if the path on your local repositories pages is `User/myname/projects/my-repo`, you'd set `Cody: Codebase` to `my-repo`.
-
- If you're having trouble, please file an issue on the [issue tracker](https://github.com/sourcegraph/app/issues) or ask in our [Discord](https://discord.gg/s2qDtYGnAE).
diff --git a/docs/cody/clients/app/twitter.svg b/docs/cody/clients/app/twitter.svg
deleted file mode 100644
index 0704621d5..000000000
--- a/docs/cody/clients/app/twitter.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/docs/cody/clients/cody-with-sourcegraph.mdx b/docs/cody/clients/cody-with-sourcegraph.mdx
index eefd4942b..ed2b967d3 100644
--- a/docs/cody/clients/cody-with-sourcegraph.mdx
+++ b/docs/cody/clients/cody-with-sourcegraph.mdx
@@ -1,60 +1,63 @@
# Cody for Web
-Learn how to use Cody in the web interface with Sourcegraph.com
+Learn how to use Cody in the web interface with your Sourcegraph.com instance.
-
-Cody support for Web interface is in the Experimental stage.
-
+In addition to the Cody extensions for [VS Code](/cody/clients/install-vscode), [JetBrains](/cody/clients/install-jetbrains), and [Visual Studio](/cody/clients/install-visual-studio ) IDEs, Cody is also available in the Sourcegraph web app. Community users can use Cody for free by logging into their accounts on Sourcegraph.com, and enterprise users can use Cody within their Sourcegraph instance.
-In addition to the Cody extensions for [VS Code](/cody/clients/install-vscode), [JetBrains](/cody/clients/install-jetbrains) IDEs, and [Neovim](/cody/clients/install-neovim), Cody is also available in the Sourcegraph web app. Community users can use Cody for free by logging into their accounts on Sourcegraph.com, and enterprise users can use Cody within their Sourcegraph instance.
-
-
-
-
+
+
+
## Initial setup
-Create a [Sourcegraph.com account](https://sourcegraph.com/sign-up) by logging in through codehosts like GitHub and GitLab or via traditional Google sign-in. This takes you to Sourcegraph’s web interface, where you can chat with and get help from Cody by opening **Cody > Web Chat**.
+Create a [Sourcegraph.com account](https://sourcegraph.com/sign-up) by logging in through codehosts like GitHub and GitLab or via traditional Google sign-in. This takes you to Sourcegraph’s web interface. From here, there are two ways to access the Cody chat:
+
+1. Run any search query via **Code Search** and click the **Cody** button on the left to open the chat window
+2. Directly click the **Chat** tab from the top header to open the chat interface
-
+
Enterprise users can also log in to their Sourcegraph.com Enterprise instance and use Cody in the web interface.
-## Using Cody chat
+## Chat interface
+
+The Cody chat interface for the web is similar to the one you get with the IDE extensions. However, the chat experience is slightly different depending on whether you use Cody with your search query results or directly from the top header.
+
+The chat interface with your Code Search queries opens parallel to your query search results, similar to the chat window in the IDE extensions. However, when you click **Cody** from the top header in your Sourcegraph.com instance, the chat interface opens on a new page.
+
+ The new and improved chat UI for Cody for the web is currently available to users on Sourcegraph versions >=5.5. To use this new chat interface, you should update your Sourcegraph instance to the latest version.
+
+## Chat with Cody on the web interface
+
+The feature set for the Cody chat is the same as the IDE extensions. Your previous chats can be viewed from the **History** tab. Claude 3.5 Sonnet (New) is selected as the default chat model. You can change this LLM model based on your use case to optimize speed, accuracy, or cost. Enterprise users with the new [model configuration](/cody/clients/model-configuration) can use the LLM selection dropdown to choose a chat model. You can read about these supported LLM models [here](/cody/capabilities/supported-models#chat-and-commands).
+
+To help you automate your key tasks in your development workflow, you get **[Prompts](/cody/capabilities/commands)**. If you are a part of an organization on Sourcegraph.com or a self-hosted Sourcegraph instance, you can view these pre-built Prompts created by your teammates. On the contrary, you can create your Prompts via the **Prompt Library** from your Sourcegraph instance.
-To view how Cody works in the web, open **Cody Web Chat**. Here, you can ask Cody general coding questions or questions about the repositories you care about.
+## Context selection
-You can view the default **Ask Cody** chat interface on the right sidebar. Once connected, Cody automatically gains context to your connected codebase to help you provide contextually-aware and accurate answers to your questions. There are also example questions that you can use to get started.
+If you use Cody with your search results, the chat input will, by default, have the context of your searched codebase. This context is based on your current repository and file.
-When using Cody chat in the web, you can select up to **10 repositories** to use as context for your question. If you’re logged in to Sourcegraph.com, these can be any **10 open source repositories** that Sourcegraph indexes. If you are an enterprise customer logged in to your company’s Sourcegraph instance, these can be **any 10 repositories** (both private or public) indexed by your admin.
+
-You can also chat with Cody in the sidebar of any project you have open. Use Sourcegraph search to find a repo and click the **Ask Cody** button to start.
+You can add or delete any new or existing context by `@-mentioning` files, symbols, directories, repositories, and web URLs. Enterprise users can `@-mention` remote directories as well. When you have both a repository and files as context, Cody will search the repository for context while prioritizing the mentioned files.
-
-
-
+If you use Cody directly from the top header, the chat input will have no pre-filled context chips by default. You can chat without context or add or delete any new or existing context by `@-mentioning` context chips.
-## Run Commands
+
-You can also run predefined, reusable prompts [Cody Commands](/cody/capabilities/commands) on your Code Search results. These help you generate contextually aware answers for a selected code snippet or the entire codebase. You can run the following commands:
+### Rerun prompts with different context
-- Explain code
-- Generate a docstring
-- Smell code for bugs
-- Generate a unit test
-- Improve variable names
-- Transpile code to a programming language of your choice
+If Cody's answer isn't helpful, you can try asking again with a different context:
-
-
-
+- **Public knowledge only**: Cody will not use your code files as context; it’ll only use knowledge trained into the base model
+- **Add context**: Provides @-mention context options to improve the response by explicitly including files, symbols, and remote repositories
-## Context fetching mechanism
+
-Cody users on the Enterprise plan can leverage the full power of the Sourcegraph search engine as the primary context provider to Cody. Read more about [Context fetching mechanism](/cody/core-concepts/context/#context-fetching-mechanism) in detail.
+For a detailed breakdown of Cody's capabilities across different clients [read these feature parity docs](/cody/clients/feature-reference).
-Enterprise users will no longer have embeddings as a context source. It's replaced with [Cody Context Search](/cody/core-concepts/context#context-selection).
+## Prompts
-## Context scope
+Cody allows you create quick, ready-to-use [prompts](/cody/capabilities/commands) to automate key tasks in your workflow. Prompts are created and saved in the Prompt Library and can be accessed from the **Tools > Prompt Library** in the top navigation bar in your Sourcegraph instance.
-Enterprise users on Cody get multi-repo support and can explicitly specify **up to 10 repos** they would like Cody to use for context.
+
diff --git a/docs/cody/clients/enable-cody-enterprise.mdx b/docs/cody/clients/enable-cody-enterprise.mdx
index e84708ada..73933eb45 100644
--- a/docs/cody/clients/enable-cody-enterprise.mdx
+++ b/docs/cody/clients/enable-cody-enterprise.mdx
@@ -1,135 +1,47 @@
-# Enabling Cody on Sourcegraph Enterprise
+# Cody for Enterprise
-This guide will walk you through the steps to install and set up Cody with your Sourcegraph Enterprise instance.
-
-Cody enhances your coding experience by providing intelligent code suggestions, context-aware completions, and advanced code analysis.
+Cody enhances your coding experience by providing intelligent code suggestions, context-aware completions, and advanced code analysis. These docs will help you use Cody on your Sourcegraph Enterprise instance.
-
+
-## Cody Enterprise features
-
-To cater to your Enterprise requirements, Cody Enterprise offers the following features:
-
-### IDE Token Expiry
-
-Site administrators can customize the time duration of the access token used by other users on the Sourcegraph Enterprise instance to connect Cody from their IDEs via the **Site admin** page. Administrators can choose from various options, including 7, 14, 30, 60, and 90 days.
-
-
-
-### Guardrails
-
-Guardrails for public code is currently in Beta stage and is supported with VS Code and JetBrains IDEs extensions.
-
-Open source attribution guardrails for public code reduce the exposure to copyrighted code, commonly called copyright guardrails. This involves the implementation of a verification mechanism within Cody to ensure that any code generated by the platform does not replicate open source code.
-
-Guardrails for public code are available to all Sourcegraph Enterprise instances and are **disabled** by default. You can enable it from the **Site configuration**. You can do so by setting `"attribution.enabled": true` in site config.
-
-It only matches code snippets that are at least **10 lines** or longer, and the search corpus **290,000** open source repositories.
-
-Guardrails don't differentiate between license types. It matches any code snippet that is at least 10 lines long from the 290,000 indexed open source repositories.
-
-### Admin Controls
-
-Admin Controls is supported with VS Code and JetBrains IDE extension.
-
-Sourcegraph account admins have selective control over users' access to Cody Enterprise, which is now managed via the Sourcegraph role-based access control system. This provides a more intuitive user interface for assigning permission to use Cody.
-
-### Analytics
-
-Cody Analytics are supported with VS Code IDE extension and on the latest versions of JetBrains IDE.
-
-Cody Enterprise users get a clear view of usage analytics for their instance on a self-service basis. A separately managed cloud service for Cody analytics handles user auth, gets metrics data from Sourcegraph's BigQuery instance, and visualizes the metrics data.
-
-The following metrics are available for Cody Enterprise users:
-
-| **Metric Type** | **What is measured?** |
-| --------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| Active users | - Total active users - Average daily users - Average no. of days each user used Cody (of last 30 days) - Cody users by day (last 30 days) - Cody users by month (last two months) - Cody users by number of days used |
-| Completions | - Total accepted completions - Minutes saved per completion - Hours saved by completions - Cody completions by day - Completions acceptance rate - Weighted completions acceptance rate - Average completion latency - Acceptance rate by language |
-| Chat | - Total chat events - Minutes saved per chat - Hours saved by chats - Cody chats by day |
-| Commands | - Total command events - Minutes saved per command - Hours saved by commands - Cody commands by day - Most used commands |
-
-To enable Cody Analytics:
-
-- Create an account on [Sourcegraph Accounts](https://accounts.sourcegraph.com/)
-- A user already having an account on Sourcegraph.com gets automatically migrated to Sourcegraph Accounts. Users can sign in to Cody Analytics using their email and password
-- Users without a Sourcegraph.com account, please get in touch with one of our teammates. They can help with both the account setup and assigning instances to specific users
-- Map your user account to a Sourcegraph instance, and this gives you access to Cody's analytics
-
-### Multi-repo context
-
-Multi-repo context for Sourcegraph Enterprise is supported with VS Code and JetBrains IDEs extensions.
-
-Cody Enterprise allows up to 10 repos to support multi-repo context for users on IDE extensions. These can be added from the enhanced context selector window. Multi-repo context can search and retrieve context from multiple repositories responding to user questions, opening up more complex use cases. Enterprise users can ask questions requiring broader knowledge from across a codebase.
-
-### Enhanced context selector
-
-Enhanced context selector is currently supported on VS Code and JetBrains IDE extensions.
-
-The **Enhanced context selector** panel allows Cody Enterprise users to add up to **10 repos** to search across multiple repositories. This will enable users to ask questions requiring broader knowledge from across a codebase.
-
-Create a new chat in VS Code and click the **Enhanced Context** icon in the chat type field. Click the **Choose Repositories...** button and select up to 10 repositories from the list.
-
-
+## Setting up Cody Enterprise
+You can set up Cody for your Enterprise instance by two methods:
-## Setting up Cody Enterprise
+1. Sourcegraph Cloud
+2. Self-hosted Sourcegraph
-You can set up Cody for your Enterprise instance in one of the following ways:
+## Cody on Sourcegraph Cloud
-- [Self-hosted Sourcegraph](#cody-on-self-hosted-sourcegraph-enterprise)
-- [Sourcegraph Cloud](#cody-on-sourcegraph-cloud)
+With [Sourcegraph Cloud](/cloud/), you get Cody as a managed service, and you **do not** need to enable Cody as is required for self-hosted setup. However, by contacting your account manager, Cody can still be enabled or disabled on-demand on your Sourcegraph instance.
-## Cody on self-hosted Sourcegraph Enterprise
+## Self-hosted Sourcegraph Enterprise
### Prerequisites
-- You have Sourcegraph version 5.1.0 or above
-- A Sourcegraph Enterprise subscription with [Cody Gateway access](/cody/core-concepts/cody-gateway) or [an account with a third-party LLM provider](#using-a-third-party-llm-provider)
+- You have Sourcegraph version `5.1.0` or more
+- A Sourcegraph Enterprise subscription with [Cody Gateway](/cody/core-concepts/cody-gateway) or an account with a third-party LLM provider
### Enable Cody on your Sourcegraph instance
-Cody uses one or more third-party LLM (Large Language Model) providers. Make sure you review Cody's usage and privacy notice . Code snippets are sent to a third-party language model provider when you use the Cody extension.
-
-This requires site-admin privileges. To do so,
-
-1. First, configure your desired LLM provider either by [Using Sourcegraph Cody Gateway](/cody/core-concepts/cody-gateway#using-cody-gateway-in-sourcegraph-enterprise) (recommended) or [Using a third-party LLM provider directly](#using-a-third-party-llm-provider)
-
- If you are a Sourcegraph Cloud customer, skip directly to step 3.
+Site admins can only enable Cody on the Sourcegraph instance. To do so,
-2. Next, go to **Site admin > Site configuration** (`/site-admin/configuration`) on your instance and set:
+- First, configure your desired LLM provider either by [using Sourcegraph Cody Gateway](/cody/core-concepts/cody-gateway) or by directly using a third-party LLM provider
+- Next, go to **Site admin > Site configuration** (`/site-admin/configuration`) on your instance and set:
```json
{
// [...]
- "cody.enabled": true
+ "cody.enabled": true,
+ "completions": {
+ "provider": "sourcegraph"
+ }
}
```
-Cody is now fully enabled on your self-hosted Sourcegraph enterprise instance!
-
-## Cody on Sourcegraph Cloud
-
-- With [Sourcegraph Cloud](/cloud/), you get Cody as a managed service, and you **do not** need to [enable Cody as is required for self-hosted setup](#enable-cody-on-your-sourcegraph-instance)
-- However, by contacting your account manager, Cody can still be enabled on-demand on your Sourcegraph instance. The Sourcegraph team will refer to the handbook
-- Next, you can configure the [VS Code extension](#configure-the-vs-code-extension) by following the same steps as mentioned for the self-hosted environment
-- After which, you are all set to use Cody with Sourcegraph Cloud
-
-[Learn more about running Cody on Sourcegraph Cloud](/cloud/#cody).
-
-## Enabling codebase-aware answers
-
- To enable codebase-aware answers for Cody, you must first [configure the code graph context](/cody/core-concepts/code-graph).
-
-The `Cody: Codebase` setting in VS Code enables codebase-aware answers for the Cody extension.
-
-- Open your VS Code workspace settings via Cmd/Ctrl+, , (or File > Preferences (Settings) on Windows & Linux)
-- Search for the `Cody: Codebase` setting
-- Enter the repository name as listed in your Sourcegraph instance, for example, `github.com/sourcegraph/sourcegraph` without the `https` protocol
-
-By setting this configuration to the repository name, Cody can provide more accurate and relevant answers to your coding questions based on the context of your current codebase.
+- Cody is enabled on your self-hosted Sourcegraph enterprise instance
## Disable Cody
@@ -144,15 +56,13 @@ To turn Cody off:
}
```
-- Next, remove `completions` configuration if they exist
-
## Enable Cody only for some users
-To enable Cody only for some users, for example, when rolling out a Cody POC, follow all the steps mentioned in [Enabling Cody on your Sourcegraph instance](#enable-cody-on-your-sourcegraph-instance). Then, do the following:
+How to enable Cody only for _some_ users depends on what version of Sourcegraph you are running.
-### Sourcegraph 5.3+
+### Sourcegraph v5.3+
-In Sourcegraph 5.3+, access to Cody is managed via user roles. By default, all users have access.
+In Sourcegraph v5.3+, access to Cody is managed via user roles. By default, all users have access.
First, ensure Cody is enabled in your site configuration. Go to **Site admin > Site configuration** (`/site-admin/configuration`) on your instance and set:
@@ -164,16 +74,16 @@ First, ensure Cody is enabled in your site configuration. Go to **Site admin > S
}
```
- Ensure `cody.restrictUsersFeatureFlag` is **not** in your site configuration. If it is, remove it or else the old feature-flag approach from Sourcegraph 5.2 and earlier will be used.
+ Ensure `cody.restrictUsersFeatureFlag` is **not** in your site configuration. If it is, remove it or else the old feature-flag approach from Sourcegraph 5.2 and earlier will be used.
Next, go to **Site admin > Users & Auth > Roles** (`/site-admin/roles`) on your instance. On that page, you can:
-- Control whether users _by default_ have access to Cody (expand `User [System]` and toggle **Cody** > **Access** as desired)
+- Control whether users **by default** have access to Cody (expand `User [System]` and toggle **Cody** > **Access** as desired)
- Control whether groups of users have access to Cody (`+Create role` and enable the **Cody** > **Access** toggle as desired)
-### Sourcegraph 5.2 and earlier
+### Sourcegraph v5.2 and earlier
-In Sourcegraph 5.2 and earlier, you should use the feature flag `cody` to turn Cody on selectively for some users. To do so:
+In Sourcegraph v5.2 and earlier, you should use the feature flag `cody` to turn Cody on selectively for some users. To do so:
- Go to **Site admin > Site configuration** (`/site-admin/configuration`) on your instance and set:
@@ -192,130 +102,16 @@ In Sourcegraph 5.2 and earlier, you should use the feature flag `cody` to turn C

-## Using a third-party LLM provider
-
-Instead of [Sourcegraph Cody Gateway](/cody/core-concepts/cody-gateway), you can also configure Sourcegraph to use a third-party provider directly, like:
-
-- [Anthropic](#anthropic)
-- [OpenAI](#openai)
-- [Azure OpenAI](#azure-openai)
-- [AWS Bedrock](#anthropic-claude-through-aws-bedrock)
-- [StarCoder](#use-starcoder-for-autocomplete)
-
-### Anthropic
-
-Create your own key with Anthropic [here](https://console.anthropic.com/account/keys). Once you have the key, go to **Site admin > Site configuration** (`/site-admin/configuration`) on your instance and set:
-
-```json
-{
- // [...]
- "cody.enabled": true,
- "completions": {
- "provider": "anthropic",
- "chatModel": "claude-2.0", // Or any other model you would like to use
- "fastChatModel": "claude-instant-1.2", // Or any other model you would like to use
- "completionModel": "claude-instant-1.2", // Or any other model you would like to use
- "accessToken": ""
- }
-}
-```
-
-### OpenAI
-
-Create your own key with OpenAI here . Once you have the key, go to **Site admin > Site configuration** (`/site-admin/configuration`) on your instance and set:
-
-```json
-{
- // [...]
- "cody.enabled": true,
- "completions": {
- "provider": "openai",
- "chatModel": "gpt-4", // Or any other model you would like to use
- "fastChatModel": "gpt-3.5-turbo", // Or any other model you would like to use
- "completionModel": "gpt-3.5-turbo-instruct", // Or any other model that supports the legacy completions endpoint
- "accessToken": ""
- }
-}
-```
-
-Read and learn more about OpenAI models here →
-
-### Azure OpenAI
+## Configure Cody for LLM providers
-Create a project in the Azure OpenAI portal. Go to **Keys and Endpoint** from the project overview and get **one of the keys** on that page and the **endpoint**.
+Cody supports several LLM providers and models. You can access these models via the Cody Gateway, directly using your own model provider account or infrastructure.
-Next, under **Model deployments**, click "manage deployments" and ensure you deploy the models you want, for example, `gpt-35-turbo`. Take note of the **deployment name**.
+There are two ways of configuring Cody for LLM providers:
-Once done, go to **Site admin > Site configuration** (`/site-admin/configuration`) on your instance and set:
+
-```json
-{
- // [...]
- "cody.enabled": true,
- "completions": {
- "provider": "azure-openai",
- "chatModel": "",
- "fastChatModel": "",
- "completionModel": "", // the model must support the legacy completions endpoint such as gpt-3.5-turbo-instruct
- "endpoint": "",
- "accessToken": ""
- }
-}
-```
-
-For the access token, you can either:
-
-- As of 5.2.4 the access token can be left empty and it will rely on Environmental, Workload Identity or Managed Identity credentials configured for the `frontend` and `worker` services
-- Set it to `` if directly configuring the credentials using the API key specified in the Azure portal
-
-### Anthropic Claude through AWS Bedrock
-
-First, make sure you can access AWS Bedrock. Then, request access to the Anthropic Claude models in Bedrock.
-This may take some time to provision.
-
-Next, create an IAM user with programmatic access in your AWS account. Depending on your AWS setup, different ways may be required to provide access. All completion requests are made from the `frontend` service, so this service needs to be able to access AWS. You can use instance role bindings or directly configure the IAM user credentials in the configuration.
-
-Once ready, go to **Site admin > Site configuration** (`/site-admin/configuration`) on your instance and set:
-
-```json
-{
- // [...]
- "cody.enabled": true,
- "completions": {
- "provider": "aws-bedrock",
- "chatModel": "anthropic.claude-v2",
- "fastChatModel": "anthropic.claude-instant-v1",
- "endpoint": "", // For example: us-west-2.
- "accessToken": ""
- }
-}
-```
-
-For the access token, you can either:
-
-- Leave it empty and rely on instance role bindings or other AWS configurations in the `frontend` service
-- Set it to `:` if directly configuring the credentials
-- Set it to `::` if a session token is also required
-
-### Use StarCoder for Autocomplete
-
-When tested with other coder models for the autocomplete use case, [StarCoder](https://huggingface.co/blog/starcoder) offered significant improvements in quality and latency compared to our control groups for users on Sourcegraph.com. You can read more about the improvements in our [October 2023 release notes](https://sourcegraph.com/blog/feature-release-october-2023) and the [GA release notes](https://sourcegraph.com/blog/cody-is-generally-available).
-
-To ensure a fast and reliable experience, we are partnering with [Fireworks](https://fireworks.ai/) and have set up a dedicated hardware deployment for our Enterprise users. Sourcegraph supports StarCoder using the [Cody Gateway](/cody/core-concepts/cody-gateway.
-
-To enable StarCoder go to **Site admin > Site configuration** (`/site-admin/configuration`) and change the `completionModel`:
-
-```json
-{
- // [...]
- "cody.enabled": true,
- "completions": {
- "provider": "sourcegraph",
- "completionModel": "fireworks/starcoder"
- }
-}
-```
+
-Users of the Cody Extensions will automatically pick up this change when connected to your Enterprise instance.
+
-It's recommended that every instance admin not using a third-party LLM provider makes this change and we are planning to make this the default in a future release.
+
diff --git a/docs/cody/clients/feature-reference.mdx b/docs/cody/clients/feature-reference.mdx
index 22de3aea4..8dc9d61fa 100644
--- a/docs/cody/clients/feature-reference.mdx
+++ b/docs/cody/clients/feature-reference.mdx
@@ -1,67 +1,52 @@
-# Feature Parity Reference for Cody Clients
+# Feature Parity Reference for Sourcegraph Clients
-This document compares Cody's features and capabilities across different clients.
-
-Here's a feature parity matrix that compares the capabilities of Cody Clients across different platforms like VS Code, JetBrains, Neovim, and Sourcegraph.com (Web UI).
+This document compares features and capabilities across different clients and platforms like VS Code, JetBrains, and Sourcegraph.com (Web UI).
## Chat
-| **Feature** | **VS Code** | **JetBrains** | **Neovim** | **Web** |
-|---------------------------------|-------------|---------------|------------|---------|
-| Talk to Cody | ✓ | ✓ | ✓ | ✓ |
-| Chat history | ✓ | ✓ | x | ✓ |
-| Stop chat generating | ✓ | ✓ | x | ✓ |
-| Edit sent messages | ✓ | x | x | ✓ |
-| Show context files | ✓ | ✓ | ✓ | ✓ |
-| Custom commands | ✓ | x | x | x |
-| Clear chat history | ✓ | ✓ | x | ✓ |
-| LLM Selection | ✓ | ✓ | x | x |
-| Enhanced Context Selection | ✓ | ✓ | x | x |
-| `@-file` support for context | ✓ | ✓ | x | x |
-| `@#-symbol` support for context | ✓ | x | x | x |
-| Ollama support (experimental) | ✓ | x | x | x |
-
-LLM selection is only supported for Cody Pro plan. On Cody Free you get the Claude 3 Sonnet as the default LLM.
-
-## Code Autocomplete
-
-| **Feature** | **VS Code** | **JetBrains** | **Neovim** | **Web** |
-|-----------------------------------------------|-------------|---------------|------------|---------|
-| Single-line autocompletion | ✓ | ✓ | ✓ | x |
-| Single-line, multi-part autocompletion | ✓ | ✓ | ✓ | x |
-| Multi-line, inline autocompletion | ✓ | ✓ | ✓ | x |
-| Dynamic multi-line autocompletion | ✓ | ✓ | x | x |
-| Enable/Disable by language | ✓ | ✓ | ✓ | x |
-| Customize autocomplete colors | x | ✓ | ✓ | x |
-| Cycle through multiple completion suggestions | ✓ | ✓ | ✓ | x |
-| Ollama support (experimental) | ✓ | x | x | x |
-
-## Code Context
-
-| **Feature** | **VS Code** | **JetBrains** | **Neovim** | **Web** |
-|----------------------------|-------------|---------------|------------|---------|
-| Multi-repo context | ✓ | ✓ | x | ✓ |
-| Repo selection for context | ✓ | ✓ | x | ✓ |
-| Local repo context | ✓ | ✓ | x | x |
-| Embeddings | ✓ | x | ✓ | x |
-
-Please refer to the tier-wise [context fetching mechanism](/cody/core-concepts/context#context-fetching-mechanism) and [context scope](/cody/core-concepts/context#context-scope) docs for detailed breakdown.
-
-## Commands
-
-| **Feature** | **VS Code** | **JetBrains** | **Neovim** | **Web** |
-|-------------------------------|-------------|---------------|------------|---------|
-| Edit code | ✓ | x | x | x |
-| Generate `docstring` | ✓ | x | ✓ | ✓ |
-| Generate unit test (inline) | ✓ | x | x | x |
-| Generate unit test (chat) | x | ✓ | ✓ | ✓ |
-| Explain code | ✓ | ✓ | ✓ | ✓ |
-| Smell code | ✓ | ✓ | ✓ | ✓ |
-| Ask Cody to fix | ✓ | x | x | x |
-| Ask a question | ✓ | x | ✓ | ✓ |
-| Reset chat | ✓ | x | x | x |
-| Task instruction | x | x | ✓ | x |
-| Restart Cody/Sourcegraph | x | x | ✓ | x |
-| Toggle chat window | x | x | ✓ | x |
-| Improve variable names | x | x | x | ✓ |
-| Ollama support (experimental) | ✓ | x | x | x |
+| **Feature** | **VS Code** | **JetBrains** | **Visual Studio** | **Web** | **CLI** |
+| ---------------------------------------- | ----------- | ------------- | ----------------- | -------------------- | ------- |
+| Chat | ✅ | ✅ | ✅ | ✅ | ✅ |
+| Chat history | ✅ | ✅ | ✅ | ✅ | ❌ |
+| Clear chat history | ✅ | ✅ | ✅ | ✅ | ❌ |
+| Edit sent messages | ✅ | ✅ | ✅ | ✅ | ❌ |
+| SmartApply/Execute | ✅ | ❌ | ❌ | ❌ | ❌ |
+| Show context files | ✅ | ✅ | ✅ | ✅ | ❌ |
+| @-file | ✅ | ✅ | ✅ | ✅ | ❌ |
+| @-symbol | ✅ | ❌ | ✅ | ✅ | ❌ |
+| LLM Selection | ✅ | ✅ | ✅ | ✅ | ❌ |
+| **Context Selection** | | | | | |
+| Single-repo context | ✅ | ✅ | ✅ | ✅ | ❌ |
+| Multi-repo context | ❌ | ❌ | ❌ | ✅ (public code only) | ❌ |
+| Local context | ✅ | ✅ | ✅ | ❌ | ✅ |
+| OpenCtx context providers (experimental) | ✅ | ❌ | ❌ | ❌ | ❌ |
+| **Prompts** | | | | | |
+| Access to prompts and Prompt library | ✅ | ✅ | ✅ | ✅ | ❌ |
+| Promoted Prompts | ✅ | ❌ | ❌ | ✅ | ❌ |
+
+## Code Autocomplete and Auto-edit
+
+| **Feature** | **VS Code** | **JetBrains** | **Visual Studio** |
+| ------------------------------------------------------ | ----------- | ------------- | ----------------- |
+| Single and multi-line autocompletion | ✅ | ✅ | ✅ |
+| Cycle through multiple completion suggestions | ✅ | ✅ | ✅ |
+| Accept suggestions word-by-word | ✅ | ❌ | ❌ |
+| Auto-edit suggestions via cursor movements and typing | ✅ | ✅ | ❌ |
+
+Few exceptions that apply to Cody Pro and Cody Enterprise users:
+
+
+
+- Multi-repo context is not supported in VS Code, JetBrains, or the Web UI for Cody Pro
+
+
+
+
+
+- Admin LLM selection is suported on VS Code, JetBrains, Visual Studio, and Web both for chat and code autocomplete
+- Multi-repo context is supported on VS Code, JetBrains, Visual Studio, and Web
+- [Guardrails](/cody/clients/enable-cody-enterprise#guardrails) are supported on VS Code, JetBrains, and Web
+- [Repo-based Cody Context Filters](/cody/capabilities/ignore-context#cody-context-filters) are supported on all Cody clients.
+- `@-mention` directories are supported on VS Code, JetBrains, Visual Studio, and Web
+
+
diff --git a/docs/cody/clients/index.mdx b/docs/cody/clients/index.mdx
index 433dbd177..c90372f3a 100644
--- a/docs/cody/clients/index.mdx
+++ b/docs/cody/clients/index.mdx
@@ -1,11 +1,12 @@
# Cody Clients
-You can install and start using Cody in your favorite IDEs and with the Sourcegraph web app.
+There are multiple ways to use Cody: you can install its extension in your favorite IDEs, access it via the Sourcegraph web app, or use it through the Cody CLI.
-
-
-
-
-
+
+
+
+
+
+
diff --git a/docs/cody/clients/install-cli.mdx b/docs/cody/clients/install-cli.mdx
new file mode 100644
index 000000000..37339860c
--- /dev/null
+++ b/docs/cody/clients/install-cli.mdx
@@ -0,0 +1,209 @@
+# Install Cody CLI
+
+Learn how to install the cody command-line tool and using the cody chat subcommand.
+
+
+Cody CLI support is in the Experimental stage for Enterprise accounts.
+
+
+Cody CLI is the same technology that powers the Cody IDE plugins but available from the command-line.
+Use Cody CLI for ad-hoc exploration in your terminal or as part of scripts to automate your workflows.
+
+
+
+
+
+## Prerequisites
+
+- You have Node.js `v20` or newer installed
+- You have `npm`, `yarn`, `pnpm`, or an equivalent package manager installed
+
+## Install CLI from npm
+
+Run the following command to install the Cody CLI:
+
+
+```shell
+npm install -g @sourcegraph/cody
+```
+
+
+```shell
+yarn global add @sourcegraph/cody
+```
+
+
+```shell
+pnpm install -g @sourcegraph/cody
+```
+
+
+
+Confirm that the installation was successful by running the following command:
+
+```shell
+cody help
+```
+
+
+
+## Authenticate with cody auth login
+
+To start using the Cody CLI, you need to authenticate it with your Sourcegraph account.
+
+When using `cody auth login`, the access token is stored in the secure storage of your operating system or equivalent security tool.
+If you prefer not to let Cody store your access token, authenticate with [environment variables](#authenticate-with-only-environment-variables) instead.
+
+First, make sure you have installed the necessary tools to use `cody auth login`.
+
+
+
+The pre-installed `security` tool is used. No additional installation is required.
+
+
+The [CredentialManager](https://www.powershellgallery.com/packages/CredentialManager/2.0) PowerShell module is required.
+Open a PowerShell terminal with administrator privileges and run the following command:
+
+```powershell
+Install-Module -Name CredentialManager
+```
+
+
+
+The [`secret-tool`](https://manpages.ubuntu.com/manpages/focal/man1/secret-tool.1.html#:~:text=secret%2Dtool%20is%20a%20command,of%20attribute%20keys%20and%20values) command-line tool is used. Run the following commands to install it:
+```shell
+sudo apt install libsecret-tools
+sudo apt install gnome-keyring
+```
+
+
+
+Run the following command to authenticate the Cody CLI:
+
+
+
+```shell
+cody auth login --web
+```
+This will open a browser window where you can authenticate with your Sourcegraph account.
+Close the browser tab after authentication is complete.
+
+
+
+- Cody Enterprise accounts can sign into their Sourcegraph Enterprise account and create an access token under `Account > Settings > Access Tokens`.
+-
+```shell
+export SRC_ENDPOINT=ENDPOINT
+export SRC_ACCESS_TOKEN=ACCESS_TOKEN
+cody auth login # stores the access token securely
+```
+You don't need to export `SRC_ENDPOINT` or `SRC_ACCESS_TOKEN` after running `cody auth login`.
+Subsequent command invocation will use the stored access token.
+
+
+
+Confirm that the authentication was successful by running the following command:
+
+```shell
+cody auth whoami
+# ✔ Authenticated as USERNAME on ENDPOINT
+```
+
+## Authenticate with only environment variables
+
+**Skip this step if you have already authenticated with the `cody auth login` command.**
+
+If you prefer not to let Cody CLI store your access token, you can also pass the endpoint URL and access token through the environment variables `SRC_ENDPOINT` and `SRC_ACCESS_TOKEN`.
+
+
+
+```shell
+export SRC_ENDPOINT=ENDPOINT
+export SRC_ACCESS_TOKEN=ACCESS_TOKEN
+```
+
+
+```powershell
+$env:SRC_ENDPOINT = "ENDPOINT"
+$env:SRC_ACCESS_TOKEN = "ACCESS_TOKEN"
+```
+
+
+
+It's recommended to store these access tokens in a secure location.
+For example, you can store them with a password manager like [1Password](https://1password.com/) or [Bitwarden](https://bitwarden.com/).
+
+It is not recommended to export these variables in your shell startup script because it will expose your access token to all commands you run from the terminal. Instead, consider sourcing these environment variables on-demand when you need to authenticate with the Cody CLI.
+
+## Sign out with cody auth logout
+
+To sign out of the Cody CLI, run the following command:
+
+```shell
+cody auth logout
+```
+
+Running this command wil remove the access token from the secure storage of your operating system.
+
+Run `cody auth whoami` to confirm that the Cody CLI is no longer authenticated.
+
+## Chat with basic message
+
+Once you've authenticated the Cody CLI, you can start using it to chat with Cody.
+
+To start a new chat, run the following command:
+
+```shell
+cody chat -m 'Explain React hooks'
+```
+
+The following commands are equivalent to the above:
+
+```shell
+# use --message instead of -m
+cody chat --message 'Explain React hooks'
+
+# space separated arguments
+cody chat Explain React hooks
+```
+
+## Chat with --context-file to add context from local files
+
+Use `--context-file` to provide context from local files
+
+```shell
+cody chat --context-file src/controller.ts -m 'Are there code smells in this file?'
+```
+
+## Chat with --context-repo to add context from remote repositories
+
+This feature is only supported on Cody Enterprise.
+
+Use `--context-repo` to provide context from remote repositories.
+
+```shell
+cody chat --context-repo github.com/sourcegraph/cody -m 'What is the agent?'
+```
+
+## Chat with --stdin to read message from standard input
+
+Use `--stdin` to provide context from standard input
+
+
+```shell
+echo 'Explain React hooks' | cody chat --stdin
+```
+
+Combine `--stdin` with `--message` to send a concatenated message. The
+`--message` string appears at the top of the prompt and the `--stdin` text
+appears at the bottom.
+
+```shell
+git diff | cody chat --stdin -m 'Write a commit message for this diff'
+```
+
+Use the `-` trailing argument as an alternative to `--stdin` to read the diff from standard input.
+
+```shell
+git diff | cody chat -m 'Write a commit message for this diff' -
+```
diff --git a/docs/cody/clients/install-eclipse.mdx b/docs/cody/clients/install-eclipse.mdx
new file mode 100644
index 000000000..0134d5f82
--- /dev/null
+++ b/docs/cody/clients/install-eclipse.mdx
@@ -0,0 +1,78 @@
+# Installing Cody in Eclipse
+
+Learn how to use Cody and its features with the Eclipse editor.
+
+Cody for Eclipse is currently in the Experimental stage and supports only chat. It is compatible with Eclipse version 2024-03 (4.31.0) and runs on Windows 11. The support is also limited feel free to contact us for any questions or feedback.
+
+Cody extension for Eclipse enhances your coding experience by providing intelligent and contextually aware answers to your questions. This guide will walk you through installing and setting Cody within your Eclipse editor.
+
+
+
+
+
+## Prerequisites
+
+- You have the correct version of [Eclipse](https://www.eclipse.org/downloads/packages/release/2024-03/r) IDE installed
+- You have a Free or Pro account via Sourcegraph.com or a Sourcegraph Enterprise account
+
+## Install the Eclipse extension
+
+- Inside Eclipse, go to **Help > Install New Software**
+- Next, add the site URL `https://sourcegraph.github.io/eclipse`
+- After adding this URL, you should see the **Cody** category in the list of available plugins
+
+
+
+- Click **Next** and follow the installation instructions
+- After you have completed the installation and restarted Eclipse, you should see the **Cody** view in the **Window > Show View > Other** menu
+
+
+
+## Connect the extension to Sourcegraph
+
+Cody for Eclipse is available for all Cody plans, including Cody Free, Pro, and Enterprise.
+
+After a successful installation, open the **Cody** view. You should see a button to sign into your Sourcegraph account.
+
+
+
+Cody Free or Pro users can sign in to their Sourcegraph.com accounts. Meanwhile, Sourcegraph Enterprise users should connect Cody via their Enterprise instance URL and the Access Token.
+
+Complete these steps, and you'll be ready to use Cody chat in Eclipse.
+
+## Chat
+
+Cody in Eclipse allows you to ask questions about your code and get contextually aware answers. The chat window is available in a unified interface next to your code. All your previous and existing chats are stored for later use and can be accessed via the **History** icon from the top menu. You can download them to share or use later in a `.json` file or delete them.
+
+The chat input field has a default `@-mention` [context chips](#context-retrieval). These are automatically populated with the names of the files you have open in your editor. There is also a drop-down for [LLM selection](#llm-selection) and a button to run pre-built [prompts](#prompts).
+
+
+
+## LLM selection
+
+Cody offers a variety of large language models (LLMs) to power your chat experience. Cody Free users can access the latest base models from Anthropic, OpenAI, Google. At the same time, Cody Pro and Enterprise users can access more extended models.
+
+You can read more about it in our [Supported LLM models docs](/cody/capabilities/supported-models).
+
+## Selecting Context with @-mentions
+
+Cody's chat allows you to [add files and symbols as context](/cody/core-concepts/context) in your messages.
+
+- Type `@-file` and then a filename to include a file as a context
+- Type `@#` and then a symbol name to include the symbol's definition as context. Functions, methods, classes, types, etc., are all symbols
+
+### Context retrieval
+
+When you start a new Cody chat, the chat input window opens with a default `@-mention` context chips for all the context it intends to use. This context is based on your current repository and current file (or a file selection if you have code highlighted).
+
+At any point in time, you can edit these context chips or remove them completely if you do not want to use these as context. Any chat without a context chip will instruct Cody to use no codebase context. However, you can always provide an alternate `@-mention` file or symbols to let Cody use it as a new context source.
+
+When you have both a repository and files @-mentioned, Cody will search the repository for context while prioritizing the mentioned files.
+
+## Prompts
+
+Cody offers a variety of [pre-built prompts](/cody/capabilities/commands) to help you get the most out of your chat experience. You can access these prompts from the chat input field.
+
+## Feedback
+
+While Cody for Eclipse is currently in the experimental stage, we are open to feedback [in our forum](https://community.sourcegraph.com/c/cody/eclipse/13).
diff --git a/docs/cody/clients/install-jetbrains.mdx b/docs/cody/clients/install-jetbrains.mdx
index e7feed288..1aa87efaf 100644
--- a/docs/cody/clients/install-jetbrains.mdx
+++ b/docs/cody/clients/install-jetbrains.mdx
@@ -1,15 +1,11 @@
-# Install Cody for JetBrains
+# Installing Cody for JetBrains
-Learn how to use Cody and its features with the JetBrains IntelliJ editor.
+Learn how to use Cody and its features with JetBrains editors.
-
-Cody support for the JetBrains editor extension is in the Beta stage.
-
-
-The Cody extension by Sourcegraph enhances your coding experience in your IDE by providing intelligent code suggestions, context-aware completions, and advanced code analysis. This guide will walk you through the steps to install and set up Cody within your JetBrains environment.
+The Cody plugin by Sourcegraph enhances your coding experience in your IDE by providing intelligent code suggestions, context-aware completions, and advanced code analysis. This guide will walk you through the steps to install and set up Cody within your JetBrains environment.
-
+
## Prerequisites
@@ -29,63 +25,155 @@ The Cody extension by Sourcegraph enhances your coding experience in your IDE by
- [RubyMine](https://www.jetbrains.com/ruby/)
- [WebStorm](https://www.jetbrains.com/webstorm/)
-## Install the JetBrains IntelliJ Cody extension
+## Install the JetBrains Cody plugin
Follow these steps to install the Cody plugin:
-- Open JetBrains IntelliJ editor on your local machine
-- Open **Settings** (Mac: `⌘+,` Windows: `Ctrl+Alt+S`) and select **Plugins**
-- Type and search **Sourcegraph Cody + Code Search** extension and click **Install**
+- Open a supported JetBrains editor on your local machine
+- Open **Settings** (macOS: `⌘+,` Windows: `Ctrl+Alt+S`) and select **Plugins**
+- Search for **Cody: AI Coding Assistant with Autocomplete & Chat** in the marketplace and click **Install**
-
+
-Alternatively, you can [Download and install the extension from the Jetbrains marketplace](https://plugins.jetbrains.com/plugin/9682-sourcegraph).
+Alternatively, you can also [download and install the plugin from the JetBrains marketplace](https://plugins.jetbrains.com/plugin/9682-sourcegraph) directly.
-## Connect the extension to Sourcegraph
+## Connect the plugin to Sourcegraph
-After a successful installation, Cody's icon appears in the sidebar. Clicking it prompts you to start with codehosts like GitHub, GitLab, and your Google login. This allows Cody to access your Sourcegraph.com account.
+After a successful installation, the Cody icon appears in the Tool Windows Bar.
-Alternatively, you can also click the **Sign in with an Enterprise Instance** to connect to your enterprise instance.
+### Cody Free or Cody Pro Users
-
+Cody Free and Pro users can sign in to their Sourcegraph.com accounts using SSO through GitHub, GitLab, or Google.
-### For Sourcegraph Enterprise users
+
-To connect the extension with your Enterprise instance,
+### Sourcegraph Enterprise Cody Users
-- Click **Sign in with an Enterprise Instance**
-- Enter the server for your enterprise instance (e.g. `https://.sourcegraph.com`)
-- Select **Generate new token**. You'll be directed to the **Access tokens** page on your instance in the browser
-- Generate a new token, copy it, and paste it into the **Token** field in your editor
-- Click **Sign in**
+Sourcegraph Enterprise users should connect Cody to their Enterprise instance by clicking **Sign in with an Enterprise Instance**.
-### For Sourcegraph.com users
+To connect the plugin with your Enterprise instance,
-For Cody Free and Cody Pro users, you can Log in through SSO to authenticate the IntelliJ extension with your Sourcegraph.com account.
+- Click **Sign in with an Enterprise Instance**
+- Enter the URL of your Enterprise instance. If you are unsure, please get in touch with your administrator
+- Select **Authorize in Browser**. You'll be directed to an authorization page on your instance in the browser
+
+Alternatively, you can access advanced authorization settings by clicking **Show Advanced**. You can manually enter a token generated from your User Settings in your Sourcegraph Enterprise instance or add optional custom request headers.
## Verifying the installation
-Once Cody is successfully connected, you'll see that the sign-in panel has been replaced by a welcome message from Cody. Let's create an autocomplete suggestion to verify that the Cody extension has been successfully installed and is working as expected.
+Once connected, click the Cody icon from the sidebar again. The Cody plugin will open in a configurable side panel.
+
+Let's create an autocomplete suggestion to verify that the Cody plugin has been installed and works as expected.
-Cody provides intelligent code suggestions and context-aware autocompletions for numerous programming languages like JavaScript, Python, TypeScript, Go, etc.
+Cody provides intelligent code suggestions and context-aware autocompletion for numerous programming languages, such as JavaScript, Python, TypeScript, Go, etc.
-- Create a new file in IntelliJ, for example, `code.js`
+- Create a new file in your JetBrains IDE, for example, `code.js`
- Next, type the following algorithm function to sort an array of numbers
```js
-function bubbleSort(array)
+function bubbleSort(array){
+}
```
- As you start typing, Cody will automatically provide suggestions and context-aware completions based on your coding patterns and the code context
- These autocomplete suggestions appear as grayed text. To accept the suggestion, press the `Tab` key
-
-
-
+## Chat
+
+Cody chat in JetBrains is available in a unified interface that opens right next to your code. Once connected to Sourcegraph, a new chat input field opens with the default `@-mention` [context chips](#context-retrieval).
+
+All your previous and existing chats are stored for later use and can be accessed via the **History** icon from the top menu. You can download them to share or use later in a `.json` file or delete them.
+
+### Chat interface
+
+The chat interface is designed intuitively. Your very first chat input lives at the top of the panel, and the first message in any chat log will stay pinned to the top of the chat. After your first message, the chat input window moves to the bottom of the sidebar.
+
+Since your first message to Cody anchors the conversation, you can return to the top chat box anytime, edit your prompt, or rerun it using a different LLM model.
+
+
+
+ Users must be on JetBrains v2023.2 and Cody plugin v7.0.0 or above to get the new and improved chat UI.
+
+### Chat History
+
+A chat history icon at the top of your chat input window allows you to navigate between chats (and search chats) without opening the Cody sidebar.
+
+### Changing LLM model for chat
+
+ You need to be a Cody Free or Pro user to have multi-model selection capability. You can view which LLMs you can access on our [supported LLMs page](/cody/capabilities/supported-models). Enterprise users with the new [model configuration](/cody/clients/model-configuration) can use the LLM selection dropdown to choose a chat model.
+
+For Chat:
+
+- Open chat or toggle between editor and chat
+- Click on the model selector (which by default indicates Claude 3.5 Sonnet)
+- See the selection of models and click the model you desire. This model will now be the default model for any new chats
+
+For Edit:
+
+- On any file, select some code and right-click
+- Select **Cody > Edit Code** (optionally, you can do this with `Opt+K`/`Alt+K`)
+- Select the default model available
+- See the selection of models and click the model you desire. This model will now be the default model for any new edits
+
+### Selecting Context with @-mentions
+
+Cody's chat allows you to add files as context in your messages.
+
+- Type `@-file` and then a filename to include a file as a context.
+
+The `@-file` also supports line numbers to query the context of large files. You can add ranges of large files to your context by @-mentioning a large file and appending a number range to the filename, for example, `@filepath/filename:1-10`.
+
+When you `@-mention` files to add to Cody’s context window, the file lookup takes `files.exclude`, `search.exclude`, and `.gitgnore` files into account. This makes the file search faster as a result up to 100ms.
+
+Moreover, when you `@-mention` files, Cody will track the number of characters in those files against the context window limit of the selected chat model. As you `@-mention` multiple files, Cody will calculate how many tokens of the context window remain. When the remaining context window size becomes too small, you'll receive **File too large** errors when attempting to `@-mention` additional files.
+
+You can read more about context limits when selecting context [here](/cody/core-concepts/token-limits).
+
+### Context retrieval
+
+When you start a new Cody chat, the input window opens with default `@-mention` context chips for all the context it intends to use. This context is based on your current repository and current file (or a file selection if you have code highlighted).
+
+
+
+At any point in time, you can edit these context chips, add additional context chips, or remove them completely if you do not want to use these as context. Any chat without a context chip will instruct Cody to use no codebase context. However, you can always provide an alternate `@-mention` file to let Cody use it as a new context source.
+
+When you have both a repository and files @-mentioned, Cody will search the repository for context while prioritizing the mentioned files.
+
+### Rerun prompts with different context
+
+If Cody's answer isn't helpful, you can try asking again with a different context:
+
+- **Public knowledge only**: Cody will not use your code files as context; it’ll only use knowledge trained into the base model.
+- **Current file only**: Rerun the prompt using just the current file as context.
+- **Add context**: Provides @-mention context options to improve the response by explicitly including files, remote repositories, or web pages (URL).
+
+
+
+## Context fetching mechanism
+
+JetBrains users on the Free or Pro plan use [local context](/cody/core-concepts/context#context-sources).
+
+Enterprise users can leverage the full power of the Sourcegraph search engine as Cody's primary context provider.
+
+ Read more about [Context fetching mechanisms](/cody/core-concepts/context/#context-fetching-mechanism) in detail.
+
+## Context sources
+You can @-mention files and web pages in Cody. Cody Enterprise also supports @-mentioning repositories to search for context in a broader scope.
+Cody Free and Pro offer single-repo context, and Cody Enterprise supports multi-repo context.
+
+### Cody Context Filters
+
+Context Filters is available for all Cody Enterprise users running Cody JetBrains plugin version `>=6.0.0`.
+
+Admins on the Sourcegraph Enterprise instance can use Cody Context Filters to determine which repositories Cody can use as the context in its requests to third-party LLMs. Inside your site configuration, you can define a set of `include` and `exclude` rules that will be used to filter the list of repositories Cody can access.
+
+For repos mentioned in the `exclude` field, Cody prompts are disabled, and you cannot use them for context fetching. If you try running any of these, you'll be prompted with an error message. However, Cody chat will still work, and you can use it to ask questions.
+
+[Read more about Cody Context Filters here →](/cody/capabilities/ignore-context)
## Autocomplete
-Autocomplete suggestions appear as inlay suggestions and are enabled by default in your JetBrains IntelliJ editor. With this setting, there is a list of programming languages supported and enabled by default.
+Cody provides multi-line autocomplete as you type. Autocomplete suggestions appear as inlay suggestions and are enabled by default in your JetBrains IDE. This setting lists the programming languages supported and enabled by default.
To manually configure the Autocomplete feature,
@@ -93,52 +181,91 @@ To manually configure the Autocomplete feature,
- Next, click the **Sourcegraph & Cody** dropdown and select **Cody**
- The **Autocomplete** settings will appear with the list of **Enabled Languages**
-In addition, Autocomplete suggestions use the same color as inline parameter hints according to your configured editor theme. However, you can optionally enable the **Custom color for completions** checkbox to customize the color of your choice.
+Autocomplete suggestions use the same color as inline parameter hints according to your configured editor theme. However, you can optionally enable the **Custom color for completions** checkbox to customize the color of your choice.
-## Commands
+In addition, you can use the following keyboard shortcuts to interact with Cody's autocomplete suggestions:
-Cody with JetBrains offers quick, ready-to-use Commands for common actions to write, describe, fix, and smell code. These allow you to run predefined actions with smart context-fetching anywhere in the editor, like:
+- `Tab` to accept a suggestion
+- `Alt + [` (Windows) or `Opt + [` (macOS) to cycle suggestions
+- `Alt + \` (Windows) or `Opt + \` (macOS) to manually trigger autocomplete if no suggestions have been returned
-- Explain Selected Code
-- Generate Unit Test
-- Smell Code
+
+
+
-
+## Prompts
-## Supported LLM models
+Cody allows you create quick, ready-to-use [prompts](/cody/capabilities/commands) to automate key tasks in your workflow. Prompts are created and saved in the Prompt Library and can be accessed from the **Tools > Prompt Library** in the top navigation bar in your Sourcegraph instance.
-For Cody Free users, Claude 3 Sonnet is the default LLM model for Chat and Commands. Users on Cody **Pro** have the ability to choose from a list of supported LLM models for Chat and Commands. These LLMs are Claude Instant, Claude 2.0, Claude 2.1, Claude 3 (Opus and Sonnet), ChatGPT 3.5 Turbo, ChatGPT 4 Turbo Preview, and Mixtral.
+To help you get started, there are a few prompts that are available by default. These can assist you to:
-
+- Document code
+- Explain code
+- Detect code smells
+- Generate unit tests
-Enterprise users get Claude 3 (Opus and Sonnet) as the default LLM models without extra cost. You also get additional capabilities like BYOLLM (Bring Your Own LLM), supporting Single-Tenant and Self Hosted setups for flexible coding environments. Your site administrator determines the LLM, and cannot be changed within the editor. However, Cody Enterprise users when using Cody Gateway have the ability to [configure custom models](/cody/core-concepts/cody-gateway#configuring-custom-models) Anthropic (like Claude 2.0 and Claude Instant) and OpenAI (GPT 3.5 and GPT 4).
+
-To use Claude 3 (Opus and Sonnets) models with Cody Enterprise, make sure you've upgraded your Sourcegraph instance to the latest version.
+### Inline code edits
-## Chat history
+You can directly perform inline edits on your code without opening the chat window.
-Next to the **Chat** tab is **Chat History**, which displays Cody's previous chat interactions. You can revisit any previous chat interactions to get the context of the conversation. You can export your chat history as JSON files for later use.
+- Select the code you want to edit
+- Then right-click and select **Cody > Edit Code**
+- Alternatively, you can press Opt+K (macOS) or Alt+K (Windows) to open the inline editor
-## Context fetching mechanism
+Here, you can describe the change you want to make and select the LLM model you want to use.
+
+Once you enter your prompt, Cody will perform inline edits that you can **Accept**, **Undo**, or **Show diff** for the change. Click **Edit & Retry** to iterate your prompt and get alternate suggestions.
+
+
+
+### Inline code fix
+
+Cody with JetBrains can also propose fixes and updates to errors in your code. The inline **Ask Cody to Fix** functionality alerts a user when it notices an issue. It provides a workflow to suggest a fix, review the suggestion, and accept the change, all within the editor.
+
+All you need to do is select and highlight the code line with the error and click the lightbulb icon. Then select **Ask Cody to Fix**. You can then view the diff and accept or undo the suggested change.
+
+## Updating the plugin
+
+JetBrains IDEs will typically notify you when updates are available for installed plugins. Follow the prompts to update the Cody AI plugin to the latest version.
+
+## Change the update channel for stable or nightly releases
+
+Our nightly release channel gets updated much more frequently, which might help verify bug fixes that will be included in the next stable release.
+To update your update channel, you can do the following:
+
+1. Open your JetBrains IDE settings by selecting **IDE Name | Settings** on macOS or **File | Settings** on Windows and Linux from the main menu.
+1. Get to the Cody Settings by navigating to `Tools -> Sourcegraph & Cody`
+1. Under the update channel, select `Stable` or `Nightly`
+
+## Supported LLM models
+
+Cody Free and Pro users can choose from a list of supported LLM models for chat.
-JetBrains users on the Free or Pro plan can leverage [local search](/cody/core-concepts/context#context-selection) as the primary context source for Cody chat. Local or remote embeddings will no longer be produced or used as a context source.
+
-Enterprise users can leverage the full power of the Sourcegraph search engine as the primary context provider to Cody.
+Enterprise users who have [model configuration](/Cody/clients/model-configuration#model-configuration) configured can also select from the available models for their instance. On instances with the ["completions" configuration](/Cody/clients/model-configuration#completions-configuration), a site admin determines the LLM, which cannot be changed within the editor.
- Read more about [Context fetching mechanism](/cody/core-concepts/context/#context-fetching-mechanism) in detail.
+Read and learn more about the [supported LLMs](/cody/capabilities/supported-models) and [token limits](/cody/core-concepts/token-limits) on Cody Free, Pro and Enterprise.
-## Context scope
+## Add/remove account
-JetBrains users on the Free or Pro plan get single-repo support in chat and can use one repo for context fetching. Enterprise users get multi-repo support in chat and can explicitly specify **up to 10 additional repos** they would like Cody to use for context.
+To add or remove an account, you can do the following:
-## Context Selection
+1. Open Cody by clicking the Cody icon on the toolbar
+1. On the open sidebar, select the Account icon
+1. Select `Sign Out` to remove an account
-Cody automatically understands your codebase context based on the project opened in your workspace. However, you can override the automatic codebase detection at any point by enabling the **Chat Context** checkbox. This provides enhanced context selection powered by local search and allows Cody to use the selected codebase to answer your questions.
+Alternatively, you can also manage multiple accounts in Cody Settings:
-
+1. Open your IDE settings by selecting **IDE | Settings** on macOS or **File | Settings** on Windows and Linux from the main menu.
+1. Go to the Cody Settings by navigating to `Tools -> Sourcegraph & Cody`
+1. Under authentication, see the accounts that are currently logged in
+1. To remove, select your account and hit `-`. To add click `+` and choose the appropriate login method
-Moreover, Cody's chat allows you to add files as context in your messages. Type `@-file` in the Cody chat window and then a filename to include a file as context.
+## Find Cody features
-## Updating the extension
+You can find and discover all Cody features and actions using the **Search Everywhere** option in JetBrains IDEs. Press `Shift` twice to open the `Search Everywhere` window. Then, type in the `Cody:` prefix to get a list of all supported Cody actions.
-JetBrains IntelliJ will typically notify you when updates are available for installed extensions. Follow the prompts to update the Cody extension to the latest version.
+
diff --git a/docs/cody/clients/install-neovim.mdx b/docs/cody/clients/install-neovim.mdx
index 5e88be849..480758f85 100644
--- a/docs/cody/clients/install-neovim.mdx
+++ b/docs/cody/clients/install-neovim.mdx
@@ -5,7 +5,7 @@
-Cody support for Neovim is in the experimental stage.
+Cody for Neovim is currently in the experimental stage and is no longer actively maintained, so support will be limited.
The Cody extension for Neovim by Sourcegraph enhances your coding experience in your IDE by providing intelligent code suggestions, context-aware completions, and advanced code analysis.
@@ -94,7 +94,7 @@ The `sg.nvim` extension supports the following features for Sourcegraph Search:
| | Directly from buffer names `:edit sg://github.com/tjdevries/sam.py/-/src/sam.py` |
| **Read non-files** | Repository roots, folders (both expanded and non-expanded), open file from folder |
| **Built-in LSP client** | Connects to Sourcegraph via `Goto Definition` and `Goto References` (less than 20 references) |
-| **Basic search** | Literal, regexp, and structural search support, `type:symbol` support, and repo support |
+| **Basic search** | Keyword and regexp support, `type:symbol` support, and repo support |
| **Advanced search features** | Autocompletions and memory of last searches |
## Commands
diff --git a/docs/cody/clients/install-visual-studio.mdx b/docs/cody/clients/install-visual-studio.mdx
new file mode 100644
index 000000000..ea92cc12d
--- /dev/null
+++ b/docs/cody/clients/install-visual-studio.mdx
@@ -0,0 +1,88 @@
+# Installing Cody in Visual Studio
+
+Learn how to use Cody and its features with the Visual Studio editor.
+
+Cody for Visual Studio is currently in the Experimental stage and currently supports chat and autocomplete.
+
+Cody extension for Visual Studio enhances your coding experience by providing intelligent and contextually aware answers to your questions. This guide will walk you through installing and setting Cody within your Visual Studio editor.
+
+
+
+
+
+## Prerequisites
+
+- You have the latest version of [Visual Studio](https://visualstudio.microsoft.com/) installed
+- You have a Free or Pro account via Sourcegraph.com or a Sourcegraph Enterprise account
+
+## Install the Visual Studio extension
+
+- Download the Cody extension for Visual Studio from the [GitHub repository](https://github.com/sourcegraph/cody-vs/releases)
+- Run the installer and follow the prompts to install the extension
+- Once installed, go to the **Extensions > Manage Extensions** tab in Visual Studio and search for Cody under the **Installed** list for confirmation
+
+## Connect the extension to Sourcegraph
+
+Cody for Visual Studio is available for all Cody plans, including Cody Free, Pro, and Enterprise.
+
+After a successful installation, go to **Tools** from the main toolbar at the top and click the **Cody Chat** from the drop-down. This opens the dialog box to connect to your Sourcegraph instance.
+
+Cody Free or Pro users can sign in to their Sourcegraph.com accounts through GitHub, GitLab, or Google. Meanwhile, Sourcegraph Enterprise users should connect Cody via their Enterprise instance URL and the Access Token.
+
+Complete these steps, and you'll be ready to start using Cody in Visual Studio.
+
+
+
+## Chat
+
+Cody in Visual Studio allows you to ask questions about your code and get contextually aware answers. The chat window is available in a unified interface next to your code. All your previous and existing chats are stored for later use and can be accessed via the **History** icon from the top menu. You can download them to share or use later in a `.json` file or delete them.
+
+The chat input field has a default `@-mention` [context chips](#context-retrieval). These are automatically populated with the names of the files you have open in your editor. There is also a drop-down for [LLM selection](#llm-selection) and a button to run pre-built [prompts and commands](#prompts).
+
+
+
+## LLM selection
+
+Cody offers a variety of large language models (LLMs) to power your chat experience. Cody Free users can access the latest base models from Anthropic, OpenAI, Google. At the same time, Cody Pro and Enterprise users can access more extended models.
+
+You can read more about it in our [Supported LLM models docs](/cody/capabilities/supported-models).
+
+## Selecting Context with @-mentions
+
+Cody's chat allows you to [add files and symbols as context](/cody/core-concepts/context) in your messages.
+
+- Type `@-file` and then a filename to include a file as a context
+- Type `@#` and then a symbol name to include the symbol's definition as context. Functions, methods, classes, types, etc., are all symbols
+
+
+
+### Context retrieval
+
+When you start a new Cody chat, the chat input window opens with a default `@-mention` context chips for all the context it intends to use. This context is based on your current repository and current file (or a file selection if you have code highlighted).
+
+At any point in time, you can edit these context chips or remove them completely if you do not want to use these as context. Any chat without a context chip will instruct Cody to use no codebase context. However, you can always provide an alternate `@-mention` file or symbols to let Cody use it as a new context source.
+
+When you have both a repository and files @-mentioned, Cody will search the repository for context while prioritizing the mentioned files.
+
+## Prompts
+
+Cody allows you create quick, ready-to-use [prompts](/cody/capabilities/commands) to automate key tasks in your workflow. Prompts are created and saved in the Prompt Library and can be accessed from the **Tools > Prompt Library** in the top navigation bar in your Sourcegraph instance.
+
+To help you get started, there are a few prompts that are available by default. These can assist you to:
+
+- Document code
+- Explain code
+- Detect code smells
+- Generate unit tests
+
+
+
+## Autocomplete
+
+Cody for Visual Studio supports single and multi-line autocompletions. The autocomplete feature is available in the Cody extension starting in `v0.2.0` and requires a Visual Studios version of 17.8+ and above. It's enabled by default, with settings to turn it off.
+
+
+
+
+
+Advanced features like [auto-edit](/cody/capabilities/auto-edit) are not yet supported. To disable the autocomplete feature, you can do it from your Cody settings section.
diff --git a/docs/cody/clients/install-vscode.mdx b/docs/cody/clients/install-vscode.mdx
index 7fa869b9d..1f0ac77fc 100644
--- a/docs/cody/clients/install-vscode.mdx
+++ b/docs/cody/clients/install-vscode.mdx
@@ -5,7 +5,7 @@
The Cody extension by Sourcegraph enhances your coding experience in VS Code by providing intelligent code suggestions, context-aware autocomplete, and advanced code analysis. This guide will walk you through the steps to install and set up Cody within your VS Code environment.
-
+
## Prerequisites
@@ -15,14 +15,14 @@ The Cody extension by Sourcegraph enhances your coding experience in VS Code by
## Install the VS Code extension
-Follow these steps to install the Cody AI extension for VS Code:
+You can install Cody extension directly from the [VS Code marketplace](https://marketplace.visualstudio.com/items?itemName=sourcegraph.cody-ai) or by following these steps directly within VS Code:
- Open VS Code editor on your local machine
- Click the **Extensions** icon in the Activity Bar on the side of VS Code, or use the keyboard shortcut `Cmd+Shift+X` (macOS) or `Ctrl+Shift+X` (Windows/Linux)
- Type **Cody AI** in the search bar and click the **Install** button
- After installing, you may be prompted to reload VS Code to activate the extension
-
+
Alternatively, you can also [download and install the extension from the VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=sourcegraph.cody-ai) directly.
@@ -34,60 +34,54 @@ After a successful installation, the Cody icon appears in the [Activity sidebar]
Cody Free and Cody Pro users can sign in to their Sourcegraph.com accounts through GitHub, GitLab, or Google.
-
+
### Sourcegraph Enterprise Cody Users
- If you are using an older version of Cody, uninstall it and reload VS Code. It's always recommended to install the latest version before proceeding to next steps.
+ If you are using an older version of Cody, uninstall it and reload VS Code. It's always recommended to install the latest version before proceeding to the next steps.
Sourcegraph Enterprise users should connect Cody to their Enterprise instance by clicking **Sign In to Your Enterprise Instance**.
-You'll be prompted to choose how to sign-in, select **Sign In to Sourcegraph Instances v5.1 and above**.
+You'll be prompted to choose how to sign-in, Enter the URL of your Enterprise instance. If you are unsure, please contact your administrator.
-
+
-Enter the URL of your Enterprise instance. If you are unsure, please contact your administrator.
+A pop-up will ask if you want to Open the URL in a new window. Click **Open** to open the URL in a new window. Next, sign in to your instance. If you do not yet have a login, please contact your administrator.
-
-
-A pop-up will ask if you want to Open the URL in a new window. Click **Open** to open the URL in a new window.
-
-
-
-Sign in to your instance. If you do not yet have a login, please contact your administrator.
-
-
+
Create an access token from Account Settings - Access Tokens. Click **+ Generate new token**
-
+
Name the token and click **+ Generate token**.
-
+
-Copy the token and return to VSCode.
+Copy the token and return to VS Code.
-
+
Again, click **Sign In to Your Enterprise Instance** and choose **Sign In to Sourcegraph Instances v5.1 and above**. Enter the URL of your instance.
-You should now be prompted to authorize Sourcegraph to connect to your VSCode extension using the token you created. Click **Authorize**.
-
-
-
-Finally, you will be asked to allow the extension access. CLick **Open**.
-
-
-
-VSCode should now display the Cody panel and you're ready to go.
+You should now be prompted to authorize Sourcegraph to connect to your VS Code extension using the token you created. Click **Authorize**. Finally, you will be asked to allow the extension access. CLick **Open**. VS Code should now display the Cody panel and you're ready to go.
## Verifying the installation
Once connected, click the Cody icon from the sidebar again. The Cody extension will open in a configurable side panel.
-
-
Let's create an autocomplete suggestion to verify that the Cody extension has been successfully installed and is working as expected.
Cody provides intelligent code suggestions and context-aware autocompletions for numerous programming languages like JavaScript, Python, TypeScript, Go, etc.
@@ -104,107 +98,164 @@ function bubbleSort(array){
- As you start typing, Cody will automatically provide suggestions and context-aware completions based on your coding patterns and the code context
- These autocomplete suggestions appear as grayed text. To accept the suggestion, press the `Tab` key
-
-
-
+
+
+
## Chat
-Cody chat in VS Code is available in a tab next to your code. Once connected to Sourcegraph, a **New Chat** button opens the chat window on the right. You can have multiple Cody Chats going simultaneously in separate tabs.
+Cody chat in VS Code is available in a unified interface opened right next to your code. Once connected to Sourcegraph, a new chat input field is opened with a default `@-mention` [context chips](#context-retrieval).
-All previous and existing chats are stored under the chats panel on the left. You can download these to share or use later in a `.json` file, or delete them altogether.
+All your previous and existing chats are stored for later use and can be accessed via the **History** icon from the top menu. You can download them to share or use later in a `.json` file or delete them altogether.
-### Chat history
+### Chat interface
-There is a **Chat History** button at the top of your chat tabs, so you can navigate between chats (and search chats) without opening the Cody sidebar.
+The chat interface is designed intuitively. Your very first chat input lives at the top of the panel, and the first message in any chat log will stay pinned to the top of the chat. After your first message, the chat input window moves to the bottom of the sidebar.
-
+Since your first message to Cody anchors the conversation, you can return to the top chat box anytime, edit your prompt, or re-run it using a different LLM model.
-### Chat interface
+
+
+
-The chat interface is designed intuitively, which makes it easier to edit chat messages or start a new chat quickly. You can hit **Enter** to edit your message immediately without waiting for the stream to finish. This allows for quicker experimentation and iteration and less dependence on sending follow-up messages to clarify your question (which can also fill up your chat's context window).
+### Chat History
-
-
-
+A chat history icon at the top of your chat input window allows you to navigate between chats (and search chats) without opening the Cody sidebar.
+
+### Changing LLM model for chat
+
+ You need to be a Cody Free or Pro user to have multi-model selection capability. You can view which LLMs you have access to on our [supported LLMs page](/cody/capabilities/supported-models). Enterprise users with the new [model configuration](/cody/clients/model-configuration) can use the LLM selection dropdown to choose a chat model.
+
+For Chat:
+
+- Open chat or toggle between editor and chat (Opt+L/Alt+L)
+- Click on the model selector (which by default indicates Claude 3.5 Sonnet)
+- See the selection of models and click the model you desire. This model will now be the default model going forward on any new chats
+
+For Edit:
+
+- On any file, select some code and a right-click
+- Select Cody->Edit Code (optionally, you can do this with Opt+K/Alt+K)
+- Select the default model available
+- See the selection of models and click the model you desire. This model will now be the default model going forward on any new edits
### Selecting Context with @-mentions
Cody's chat allows you to add files and symbols as context in your messages.
-- Type `@-file` and then a filename to include a file as context
+- Type `@-file` and then a filename to include a file as a context
- Type `@#` and then a symbol name to include the symbol's definition as context. Functions, methods, classes, types, etc., are all symbols
The `@-file` also supports line numbers to query the context of large files. You can add ranges of large files to your context by @-mentioning a large file and appending a number range to the filename, for example, `@filepath/filename:1-10`.
When you `@-mention` files to add to Cody’s context window, the file lookup takes `files.exclude`, `search.exclude`, and `.gitgnore` files into account. This makes the file search faster as a result up to 100ms.
-Moreover, when you `@-mention` files, Cody will track the number of characters in those files against the context window limit of the selected chat model. As you `@-mention` multiple files, Cody will calculate how many tokens of the context window remain. When the remaining context window size becomes too small, you get **File too large** errors for further more `@-mention` files.
+Moreover, when you `@-mention` files, Cody will track the number of characters in those files against the context window limit of the selected chat model. As you `@-mention` multiple files, Cody will calculate how many tokens of the context window remain. When the remaining context window size becomes too small, you'll receive **File too large** errors when attempting to `@-mention` additional files.
+
+Cody defaults to showing @-mention context chips for all the context it intends to use. When you open a new chat, Cody will show context chips for your current repository and current file (or file selection if you have code highlighted).
+
+### Context retrieval
+
+When you start a new Cody chat, the chat input window opens with a default `@-mention` context chips for all the context it intends to use. This context is based on your current repository and current file (or a file selection if you have code highlighted).
+
+
+
+At any point in time, you can edit these context chips or remove them completely if you do not want to use these as context. Any chat without a context chip will instruct Cody to use no codebase context. However, you can always provide an alternate `@-mention` file or symbols to let Cody use it as a new source of context.
-
+When you have both a repository and files @-mentioned, Cody will search the repository for context while prioritizing the mentioned files.
+
+### @-mention context providers with OpenCtx
+
+OpenCtx context providers are in Experimental stage for all Cody users. Enterprise users can also use this but with limited support. If you have feedback or questions, please visit our [support forum](https://community.sourcegraph.com/c/openctx/10).
+
+[OpenCtx](https://openctx.org/) is an open standard for bringing contextual info about code into your dev tools. Cody Free and Pro users can use OpenCtx providers to fetch and use context from the following sources:
+
+- [Webpages](https://openctx.org/docs/providers/web) (via URL)
+- [Jira tickets](https://openctx.org/docs/providers/jira)
+- [Linear issues](https://openctx.org/docs/providers/linear-issues)
+- [Notion pages](https://openctx.org/docs/providers/notion)
+- [Google Docs](https://openctx.org/docs/providers/google-docs)
+- [Sourcegraph code search](https://openctx.org/docs/providers/sourcegraph-search)
+
+To try it out, add context providers to your VS Code settings. For example, to use the [DevDocs provider](https://openctx.org/docs/providers/devdocs), add the following to your `settings.json`:
+
+```json
+"openctx.providers": {
+ "https://openctx.org/npm/@openctx/provider-devdocs": {
+ "urls": ["https://devdocs.io/go/", "https://devdocs.io/angular~16/"]
+ }
+},
+```
+
+You don't need the OpenCtx VS Code extension to use context fetching with OpenCtx. We recommend uninstalling the extension before using this feature in Cody.
+
+### Rerun prompts with different context
+
+If Cody's answer isn't helpful, you can try asking again with different context:
+
+- Public knowledge only: Cody will not use your own code files as context; it’ll only use knowledge trained into the base model.
+- Add context: Provides @-mention context options to improve the response by explicitly including files, symbols, remote repositories, or even web pages (by URL).
+
+
## Context fetching mechanism
-VS Code users on the Free or Pro plan can leverage [local context](/cody/core-concepts/context#context-selection) (local keyword search) as the primary context source for Cody chat with access to local embeddings. Remote embeddings will no longer be produced or used as a context source.
+VS Code users on the Free or Pro plan use [local context](/cody/core-concepts/context#context-sources).
-Enterprise users can leverage the full power of the Sourcegraph search engine as the primary context provider to Cody.
+Enterprise users can use the full power of the Sourcegraph search engine as Cody's primary context provider.
Read more about [Context fetching mechanism](/cody/core-concepts/context/#context-fetching-mechanism) in detail.
-## Context scope
+## Context sources
+
+You can @-mention files, symbols, and web pages in Cody. Cody Enterprise also supports @-mentioning repositories to search for context in a broader scope. Cody's experimental [OpenCtx](https://openctx.org) support adds even more context sources, including Jira, Linear, Google Docs, Notion, and more.
-VS Code users on the Free or Pro plan get single-repo support and can use one repo for context fetching. Enterprise users get multi-repo support and can explicitly specify **up to 10 additional repos** they would like Cody to use for context.
+Cody Free and Pro offer single-repo context, and Cody Enterprise supports multi-repo context.
-### Enhanced Context Selector
+### Cody Context Filters
-Cody's Enhanced Context enables Cody to leverage search and embeddings-based context. Community users can generate local embeddings for their projects by clicking the icon next to the chat input. Users can also disable Enhanced Context or configure more granular control of Cody’s context by including `@-files` or `@#-symbols` in the chat input. This feature only supports local files and paths relative to your workspace. Start typing `@`, and Cody will suggest files for you to include.
+Context Filters is available for all Cody Enterprise users running Cody VS Code extension version `>=1.20.0`.
-Enhanced context selector offers single-repo support for Cody Free and Pro while multi-repo support for Cody Enterprise.
+Admins on the Sourcegraph Enterprise instance can use the Cody Context Filters to determine which repositories Cody can use as the context in its requests to third-party LLMs. Inside your site configuration, you can define a set of `include` and `exclude` rules that will be used to filter the list of repositories Cody can access.
-
+For repos mentioned in the `exclude` field, prompts are disabled, and you cannot use them for context fetching. If you try running any of these, you'll be prompted with an error message. However, Cody chat will still work, and you can use it to ask questions.
-The following tables shows what happens when Enhanced Context Selection is enabled or disabled.
+[Read more about the Cody Context Filters here →](/cody/capabilities/ignore-context)
-| | Opened Files | Highlighted Code | Embeddings (If available) | Search (as backup) | |
-| ------------------------- | ------------ | ---------------- | ------------------------- | ------------------ | --- |
-| Enhanced Context Enabled | ✅ | ✅ | ✅ | ✅ | |
-| Enhanced Context Disabled | ❌ | ❌ | ❌ | ❌ | |
+## Prompts
-## Commands
+Cody allows you create quick, ready-to-use [prompts](/cody/capabilities/commands) to automate key tasks in your workflow. Prompts are created and saved in the Prompt Library and can be accessed from the **Tools > Prompt Library** in the top navigation bar in your Sourcegraph instance.
-Cody offers quick, ready-to-use [Commands](/cody/capabilities/commands) for common actions to write, describe, fix, and smell code. These allow you to run predefined actions with smart context-fetching anywhere in the editor, like:
+To help you get started, there are a few prompts that are available by default. These can assist you to:
-- Ask Cody a question
-- Add code documentation
-- Edit code with instructions
+- Document code
- Explain code
-- Identify code smells
+- Detect code smells
- Generate unit tests
-- Custom commands
-Let's understand how the `/doc` command generates code documentation for a function.
+
-
-
-
+## Smart Apply code suggestions
-### Custom Commands
+Cody lets you dynamically insert code from chat into your files with **Smart Apply**. Every time Cody provides you with a code suggestion, you can click the **Apply** button. Cody will then analyze your open code file, find where that relevant code should live, and add a diff. For chat messages where Cody provides multiple code suggestions, you can apply each in sequence to go from chat suggestions to written code.
-Custom Commands are currently available in Beta for all users and are currently supported by Cody for the VS Code extension version 0.8 and above.
+Smart Apply also supports executing commands in the terminal. When you ask Cody a question related to terminal commands, you can execute the suggestion in your terminal by clicking the `Execute` button in the chat window.
-For customization and advanced use cases, you can create **Custom Commands** tailored to your requirements. You can also bind keyboard shortcuts to run your custom commands quickly. To bind a keyboard shortcut, open the Keyboard Shortcuts editor and search for `cody.command.custom.` to see the list of your custom commands.
+
-
+## Keyboard shortcuts
-Learn more about Custom Commands [here](/cody/capabilities/commands#custom-commands)
+Cody provides a set of powerful keyboard shortcuts to streamline your workflow and boost productivity. These shortcuts allow you to quickly access Cody's features without leaving your keyboard.
-## Cody Natural Language Search
+* `Opt+L` (macOS) or `Alt+L` (Windows/Linux): Toggles between the chat view and the last active text editor. If a chat view doesn't exist, it opens a new one. When used with an active selection in a text editor, it adds the selected code to the chat for context.
-Cody Natural Language Search is currently available in Beta for all users on VS Code extension.
+* `Shift+Opt+L` (macOS) or `Shift+Alt+L` (Windows/Linux): Instantly starts a new chat session, perfect for when you want to begin a fresh conversation with Cody.
-Cody's **Natural Language Search** is an AI-powered code search that allows users to input a natural language search query and look for it within their project. For example, "password hashing" or "connection retries".
+* `Opt+K` (macOS) or `Alt+K` (Windows/Linux): Opens the Edit Code instruction box. This works with either selected code or the code at the cursor position, allowing you to quickly request edits or improvements.
-In the left-hand panel, type your queries in the **Search** field, and the search results are displayed. You can select one of the search results and verify that the correct file opens in a new tab. Natural Language Search works for all Cody users with the ability to search across your entire local codebase from within the IDE.
+* `Opt+C` (macOS) or `Alt+C` (Windows/Linux): Opens the Cody Commands Menu, giving you quick access to a range of Cody's powerful features.
+
+* `Cmd+.` (macOS) or `Ctrl+.` (Windows/Linux): Opens the Quick Fix menu, which includes options for Cody to edit or generate code based on your current context.
## Updating the extension
@@ -216,55 +267,107 @@ Cody also works with Cursor, Gitpod, IDX, and other similar VS Code forks. To ac
## Supported LLM models
-Claude 3 Sonnet is the default LLM model for Cody Free users for Chat and Commands. Users on Cody **Pro** can choose from a list of supported LLM models for Chat, Commands, and Autocomplete. These LLMs are Claude Instant, Claude 2.0, Claude 2.1, Claude 3 (Haiku, Opus and Sonnet), ChatGPT 3.5 Turbo, ChatGPT 4 Turbo Preview, and Mixtral.
+Claude 3.5 Sonnet is the default LLM model for inline edits and prompts. If you've used a different or older LLM model for inline edits before, remember to manually change your model to Claude 3.5 Sonnet. Default model changes only affect new users.
-
+Users on Cody **Free** and **Pro** can choose from a list of [supported LLM models](/cody/capabilities/supported-models) for chat.
-Cody Enterprise users get Claude 3 (Opus and Sonnet) as the default LLM models without extra cost. In addition, Enterprise users also get capabilities like BYOLLM (Bring Your Own LLM) key. Your site administrator determines the LLM; you cannot change it from the editor. However, when using Cody Gateway, you can [configure custom models](/cody/core-concepts/cody-gateway#configuring-custom-models) Anthropic (like Claude 2.0 and Claude Instant) and OpenAI (GPT 3.5 and GPT 4).
+
-To use Claude 3 (Opus and Sonnets) models with Cody Enterprise, make sure you've upgraded your Sourcegraph instance to the latest version.
+Enterprise users get Claude 3.5 Sonnet as the default LLM models without extra cost. Moreover, Enterprise users can use Claude 3.5 models through Cody Gateway, Anthropic BYOK, Amazon Bedrock (limited availability), and GCP Vertex.
-## Supported local Ollama models with Cody
+For enterprise users on Amazon Bedrock: 3.5 Sonnet is unavailable in `us-west-2` but available in `us-east-1`. Check the current model availability on AWS and your customer's instance location before switching. Provisioned throughput via AWS is not supported for 3.5 Sonnet.
-Support with Ollama is currently in the Experimental stage and is available for Cody Free and Pro plans.
+You also get additional capabilities like BYOLLM (Bring Your Own LLM), supporting Single-Tenant and Self Hosted setups for flexible coding environments. Your site administrator determines the LLM, and cannot be changed within the editor. However, Cody Enterprise users when using Cody Gateway have the ability to [configure custom models](/cody/core-concepts/cody-gateway#configuring-custom-models) from Anthropic, OpenAI, and Google Gemini.
-### Cody Autocomplete with Ollama
+Read more about all the supported LLM models [here](/cody/capabilities/supported-models)
-To generate autocomplete suggestions with Ollama locally, follow these steps:
+## Experimental models
-- Install and run [Ollama](https://ollama.ai/)
-- Download one of the support local models:
- - `ollama pull deepseek-coder:6.7b-base-q4_K_M` for [deepseek-coder](https://ollama.ai/library/deepseek-coder)
- - `ollama pull codellama:7b-code` for [codellama](https://ollama.ai/library/codellama)
-- Update Cody's VS Code settings to use the `experimental-ollama` autocomplete provider and configure the right model:
+Support for the following models is currently in the Experimental stage, and available for Cody Free and Pro plans.
-```json
+The following experimental model providers can be configured in Cody's extension settings JSON:
+
+- Google (requires [Google AI Studio API key](https://aistudio.google.com/app/apikey))
+- Groq (requires [GroqCloud API key](https://console.groq.com/docs/api-keys))
+- OpenAI & OpenAI-Compatible API (requires [OpenAI API key](https://platform.openai.com/account/api-keys))
+- Ollama (remote)
- {
- "cody.autocomplete.advanced.provider": "experimental-ollama",
- "cody.autocomplete.experimental.ollamaOptions": {
- "url": "http://localhost:11434",
- "model": "deepseek-coder:6.7b-base-q4_K_M"
- }
- }
+Once configured, and VS Code has been restarted, you can select the configured model from the dropdown both for chat and for edits.
+
+Example VS Code user settings JSON configuration:
+
+```json
+{
+ "cody.dev.models": [
+ {
+ "provider": "google",
+ "model": "gemini-2.0-flash-exp",
+ "inputTokens": 1048576,
+ "outputTokens": 8192,
+ "apiKey": "",
+ "options": {
+ "temperature": 0.0
+ }
+ },
+ {
+ "provider": "groq",
+ "model": "llama2-70b-4096",
+ "inputTokens": 4000,
+ "outputTokens": 4000,
+ "apiKey": "",
+ "options": {
+ "temperature": 0.0
+ }
+ },
+ {
+ "provider": "openai",
+ "model": "some-model-id",
+ "inputTokens": 32000,
+ "outputTokens": 4000,
+ "apiKey": "",
+ "options": {
+ "temperature": 0.0
+ },
+ "apiEndpoint": "https://host.domain/path"
+ },
+ {
+ "provider": "ollama",
+ "model": "some-model-id",
+ "apiEndpoint": "https://host.domain/path"
+ }
+ ]
+}
```
-- Confirm Cody uses Ollama by looking at the Cody output channel or the autocomplete trace view (in the command palette)
+### Provider configuration options
+
+- `"provider"`: `"google"`, `"groq"`, `"ollama"` or `"openai"`
+ - The LLM provider type.
+- `"model"`: `string`
+ - The ID of the model, e.g. `"gemini-2.0-flash-exp"`
+- `"inputTokens"`: `number` - optional
+ - The context window size of the model's input. Default: 7000.
+- `"outputTokens"`: `number` - optional
+ - The context window size of the model's output. Default: 4000.
+- `"apiKey"`: `string` - optional
+ - The API key for the endpoint. Required if the provider is `"google"`, `"groq"`, `"ollama"` or `"openai"`.
+- `"apiEndpoint"`: `string` - optional
+ - The endpoint URL, if you don't want to use the provider’s default endpoint.
+- `"options"` : `object` - optional
+ - Additional parameters like `temperature`, `topK`, `topP` based on provider documentation.
+
+### Debugging experimental models
-#### Cody Chat and Commands with Ollama
+To debug problems with the experimental models, use the VS Code output panel which can be opened using the following steps:
-
+- Open the Cody Sidebar
+- Next to "Settings and Support" click the "..." icon
+- Click "Open Output Channel"
-To generate chat and commands with Ollama locally, follow these steps:
+## Add/remove account
-- Download [Ollama](https://ollama.com/download)
-- Start Ollama (make sure the Ollama logo is showing up in your menu bar)
-- Select a chat model (model that includes instruct or chat, for example, [gemma:7b-instruct-q4_K_M](https://ollama.com/library/gemma:7b-instruct-q4_K_M)) from the [Ollama Library](https://ollama.com/library)
-- Pull the chat model locally (for example, `ollama pull gemma:7b-instruct-q4_K_M`)
-- Once the chat model is downloaded successfully, open Cody in VS Code
-- Enable the `cody.experimental.ollamaChat` configuration
-- Open a new Cody chat
-- In the new chat panel, you should see the chat model you've pulled in the dropdown list
-- Currently, you will need to restart VS Code to see the new models
+To add/remove an account you can do the following:
-You can run `ollama list` in your terminal to see what models are currently available on your machine.
+1. Open Cody by clicking the Cody icon on the left navbar
+1. On the open sidebar select the Account icon
+1. Select `Sign Out` to remove account or `Switch Account` to login to a different account
diff --git a/docs/cody/core-concepts/cody-gateway.mdx b/docs/cody/core-concepts/cody-gateway.mdx
index e8e500c67..1b345363c 100644
--- a/docs/cody/core-concepts/cody-gateway.mdx
+++ b/docs/cody/core-concepts/cody-gateway.mdx
@@ -1,57 +1,40 @@
# Sourcegraph Cody Gateway
-Learn how Cody Gateway powers the default Sourcegraph provider for completions to facilitate Cody features.
+Learn how Cody Gateway powers the default Sourcegraph provider for completions, enabling Cody features for Sourcegraph Enterprise customers.
-Cody Gateway is supported for Sourcegraph Enterprise customers on v5.1 or more.
+Cody Gateway is available for Sourcegraph Enterprise customers using version 5.1 or more.
-Sourcegraph Cody Gateway powers the default `"provider": "sourcegraph"` and Cody completions for Sourcegraph Enterprise users. It supports a variety of upstream LLM providers, such as [Anthropic](https://www.anthropic.com/) and [OpenAI](https://openai.com/), with rate limits, quotas, and model availability tied to your Sourcegraph Enterprise subscription.
+Cody Gateway powers the default `"provider": "sourcegraph"` and Cody completions for Sourcegraph Enterprise users. It integrates with various upstream LLM providers, including [Anthropic](https://www.anthropic.com/) and [OpenAI](https://openai.com/), with rate limits, quotas, and model availability tied to your Sourcegraph Enterprise subscription.
-## Using Cody Gateway in Sourcegraph Enterprise
+## Supported Models
-To enable completions provided by Cody Gateway on your Sourcegraph Enterprise instance, make sure your license key is set, and Cody is enabled in your [site configuration](/admin/config/site_config):
+For a full list of supported models and providers, read our [Supported LLMs](/cody/capabilities/supported-models) docs.
+
+## Setting up Cody Gateway in Sourcegraph Enterprise
+
+To enable completions provided by Cody Gateway on your Sourcegraph Enterprise instance, make sure your license key is set and Cody is enabled in your [site configuration](/admin/config/site_config):
```jsonc
{
"licenseKey": "<...>",
"cody.enabled": true,
+ "completions": {
+ "provider": "sourcegraph"
+ }
}
```
-After adding the license key, the default configuration and authentication will be automatically applied.
+Once the license key is added, default configuration and authentication are automatically applied.
-For more details about configuring Cody, read the following resources:
-
-- [Enabling Cody for Sourcegraph Enterprise](/cody/clients/enable-cody-enterprise)
+For more details about configuring Cody, it's recommended to read about [Enabling Cody for Sourcegraph Enterprise](/cody/clients/enable-cody-enterprise).
Cody Gateway is hosted at `cody-gateway.sourcegraph.com`. To use Cody Gateway, your Sourcegraph instance must be connected to the service in this domain.
Sourcegraph Cody Gateway access must be included in your Sourcegraph Enterprise subscription. You can verify it by checking it with your account manager. If you are a [Sourcegraph Cloud](/cloud/) user, Cody is enabled by default on your instance starting with Sourcegraph 5.1.
-## Configuring custom models
-
-To configure custom models for various Cody configurations (for example, `"completions"`), specify the desired model with the upstream provider as a prefix to the name of the model. For example, to use the `claude-2` model from Anthropic, you would configure:
-
-```json
-{
- "completions": { "chatModel": "anthropic/claude-2.0" },
-}
-```
-
-The currently supported upstream providers for models are:
-
-- [`anthropic/`](https://www.anthropic.com/)
-- [`openai/`](https://openai.com/)
-
-For Sourcegraph Enterprise customers, model availability depends on your Sourcegraph Enterprise subscription.
-
-When using OpenAI models for completions, only chat completions will work - code completions are currently unsupported.
-
## Rate limits and quotas
-Rate limits, quotas, and model availability are tied to one of the following:
-
-- your Sourcegraph Enterprise license for Sourcegraph Enterprise instances
-- your Sourcegraph.com account, for [Cody App users](/cody/clients/app)
+Rate limits, quotas, and model availability are tied to your Sourcegraph Enterprise license for Sourcegraph Enterprise instances.
All successful requests to Cody Gateway will count toward your rate limits. Unsuccessful requests are not counted as usage.
@@ -63,8 +46,6 @@ In addition to the above, we may throttle concurrent requests to Cody Gateway pe
## Privacy and security
-Sourcegraph Cody Gateway does not retain sensitive data (prompt test and source code included in requests, etc.) from any traffic received. Only rate limit consumption per Sourcegraph Enterprise license and some high-level diagnostic data (error codes from upstream, numeric/enum request parameters, etc) are tracked.
-
-The code that powers Cody Gateway is also [source-available](https://sourcegraph.com/search?q=context:global+repo:%5Egithub%5C.com/sourcegraph/sourcegraph$+f:cmd/cody-gateway+lang:go&patternType=lucky&sm=1&groupBy=path) for audit.
+Sourcegraph Cody Gateway does not retain sensitive data (prompt test and source code included in requests, etc.) from any traffic received. Only rate limit consumption per Sourcegraph Enterprise license and high-level diagnostic data (error codes from upstream, numeric/enum request parameters, etc) are tracked.
-For more details about Cody Gateway security practices, please reach out to your account manager. You can also refer to the [Cody usage and privacy notice](https://about.sourcegraph.com/terms/cody-notice) for more privacy details about Cody in general.
+For more details about Cody Gateway security practices, please contact your account manager. For more privacy details about Cody in general, refer to the [Cody usage and privacy notice](https://about.sourcegraph.com/terms/cody-notice).
diff --git a/docs/cody/core-concepts/context.mdx b/docs/cody/core-concepts/context.mdx
index 43ea3d094..c0d9b3076 100644
--- a/docs/cody/core-concepts/context.mdx
+++ b/docs/cody/core-concepts/context.mdx
@@ -6,88 +6,72 @@ Context refers to any additional information provided to help Cody understand an
## Why is context important?
-Context and [methods of retrieving context](#context-selection) are crucial to the quality and accuracy of AI. Cody relies on its ability to retrieve context from user codebases in order to provide reliable and accurate answers to developers’ questions. When Cody has access to the most relevant context about your codebase, it can:
+Context and [methods of retrieving context](#context-sources) are crucial to the quality and accuracy of AI. Cody relies on its ability to retrieve context from user codebases to provide reliable and accurate answers to developers’ questions. When Cody has access to the most relevant context about your codebase, it can:
- Answer questions about your codebase
-- Produce unit tests and documentation
+- Produce unit tests and docs
- Generate code that aligns with the libraries and style of your codebase
- Significantly reduce your work that's required to translate LLM-provided answers into actionable value for your users
-## Context selection
+## Context sources
-Cody employs various methods to gather context relevant to user input, ensuring the quality of the information provided. These methods include:
+Cody uses a variety of sources to retrieve context relevant to the user input. These sources include:
-- **Local**: Sparse vector search running on a user's machine. Creates a locally computed and stored search index of an active repo. Queries are converted to an expanded set of keywords, which are used to retrieve relevant documents from the index
-- **Cody Context Search**: Sourcegraph Search API. Queries are sent to the SG instance (managed or self-hosted), and search is done using the SG search stack. Relevant documents are returned to the user IDE for use by the LLM
-- **Embeddings**: Dense vector search requiring both documents (code) and queries (chats) to be converted to an embedding representation via the OpenAI embedding model. Retrieval is then done by comparing the relationship between the query and document embedding vectors
-- **Keyword Search**: A traditional text search approach that finds keywords matching user input in local code. This method is used when a codebase lacks embeddings
-- **Code Graph**: Analyzing the structure of the code, Cody examines how components are interconnected and used, finding context based on code elements' relationships
+- **Keyword Search**: A traditional text-based search method that finds keywords matching the user input. When needed, queries are automatically rewritten to include more relevant terms.
+- **Sourcegraph Search**: The powerful native Sourcegraph Search API. Queries are sent to the SG instance (managed or self-hosted), and search is done using the SG search stack. Relevant documents are returned to the user IDE for use by the LLM.
+- **Code Graph**: Analyzing the structure of the code, Cody examines how components are interconnected and used, finding context based on code elements' relationships.
All these methods collectively ensure Cody's ability to provide relevant and high-quality context to enhance your coding experience.
-## Context fetching mechanism
+## Cody context fetching features
-Enterprise users on Cody [Web](/cody/clients/cody-with-sourcegraph), [VS Code](/cody/clients/install-vscode) and [JetBrains](/cody/clients/install-jetbrains) can leverage the full power of the Sourcegraph search engine as the primary context provider to Cody. This means access to more repos and files from across your codebase and a system that is more scalable and easier to configure.
+Cody uses @-mentions to retrieve context from your codebase. Inside the chat window, there is an `@` icon that you can click to select a context source. Alternatively, you can press `@` to open the context picker.
-Users on Cody Free or Pro plans leverage context depending on the type of [clients](/cody/clients) they use.
+Based on your Cody tier, you can @-mention the following:
-Here's a detailed breakdown of the context fetching mechanism for each client for Cody Free, Pro, and Enterprise users:
+| **Tier** | **Client** | **Files** | **Symbols** | **Web URLs** | **Remote Files/Directories** | **OpenCtx** |
+| -------------- | ------------- | --------- | ----------- | ------------ | ---------------------------- | ----------- |
+| **Free/Pro** | VS Code | ✅ | ✅ | ✅ | ❌ | ✅ |
+| | JetBrains | ✅ | ❌ | ✅ | ❌ | ❌ |
+| | Visual Studio | ✅ | ✅ | ✅ | ❌ | ❌ |
+| | Cody Web | ✅ | ✅ | ✅ | ❌ | ❌ |
+| **Enterprise** | VS Code | ✅ | ✅ | ✅ | ✅ | ✅ |
+| | JetBrains | ✅ | ❌ | ✅ | ✅ | ❌ |
+| | Visual Studio | ✅ | ✅ | ✅ | ✅ | ✅ |
+| | Cody Web | ✅ | ✅ | ✅ | ✅ | ❌ |
-| **Tier** | **Client** | **Local** | **Search** | **Embeddings** |
-| -------------- | ---------- | -------- | ---------- | ----------------------- |
-| **Free/Pro** | VS Code | ✅ | ❌ | ✅ Local ❌ Remote |
-| | JetBrains | ✅ | ❌ | ❌ Local ❌ Remote |
-| **Enterprise** | Cody Web | ❌ | ✅ | ❌ |
-| | VS Code | ❌ | ✅ | ❌ |
-| | JetBrains | ❌ | ✅ | ❌ |
+## Repo-based context
-## Context scope
+Cody supports repo-based context. You can link single or multiple repositories based on your tier. Here's a detailed breakdown of the number of repositories supported by each client for Cody Free, Pro, and Enterprise users:
-The scope primarily outlines the extent of the codebase Cody can access to fetch context. Typically, it is referenced by the number of repositories Cody can access. The context scope is determined by the client used and the pricing tier of the user. There are two different types:
-
-- **Single-repo context**: Users can only access a single repo for context fetching
-- **Multi-repo context**: Users have the option to explicitly specify up to **10 repos** they would like Cody to use for context fetching
-
-Here's a detailed breakdown of the context scope for each client for Cody Free, Pro, and Enterprise users:
-
-| **Tier** | **Client** | **Single-repo context** | **Multi-repo context** |
-| -------------- | ---------- | ----------------------- | ---------------------- |
-| **Free/Pro** | VS Code | ✅ | ❌ |
-| | JetBrains | ✅ | ❌ |
-| **Enterprise** | Cody Web | ✅ | ✅ |
-| | VS Code | ✅ | ✅ |
-| | JetBrains | ✅ | ✅ |
+| **Tier** | **Client** | **Repositories** |
+| -------------- | ------------- | ---------------- |
+| **Free/Pro** | VS Code | 1 |
+| | JetBrains | 1 |
+| | Visual Studio | 1 |
+| **Enterprise** | Cody Web | Multi |
+| | VS Code | Multi |
+| | JetBrains | Multi |
+| | Visual Studio | Multi |
## How does context work with Cody prompts?
-Cody works in conjunction with an LLM to provide codebase-aware answers. The LLM is a machine learning model that generates text in response to natural language prompts. However, the LLM doesn't inherently understand your codebase or specific coding requirements. Cody bridges this gap by generating context-aware prompts.
+Cody works in conjunction with an LLM to provide codebase-aware answers. The LLM is a machine learning model that generates text in response to natural language prompts. However, the LLM needs to inherently understand your codebase or specific coding requirements. Cody bridges this gap by generating context-aware prompts.
A typical prompt has three parts:
-- **Prefix**: An optional description of the desired output, often derived from predefined [Commands](/cody/capabilities/commands) that specify tasks the LLM can perform
+- **Prefix**: An optional description of the desired output, often derived from predefined [Prompts](/cody/capabilities/commands) that specify tasks the LLM can perform
- **User input**: The information provided, including your code query or request
- **Context**: Additional information that helps the LLM provide a relevant answer based on your specific codebase
-For example, Cody's `/explain` code command receives a prompt like this:
-
-- **Prefix**: Explain the following Go code at a high level. Only include details that are essential to an overall understanding of what's happening in the code
-- **User input**: `zoekt.QueryToZoektQuery(b.query, b.resultTypes, b.features, typ)`
-- **Context**: Contents of `sourcegraph/sourcegraph/internal/search/zoekt/query.go`
-
-### Impact of context LLM vs Cody
-
-When the same prompt is sent to a standard LLM, the response may lack specifics about your codebase. In contrast, Cody augments the prompt with context from relevant code snippets, making the answer far more specific to your codebase. This difference underscores the importance of context in Cody's functionality.
-
-## Usage and Limits
-
-Cody's usage and limits policies help optimize its performance and ensure cost-effectiveness. This section provides insights into the context window size, token limits for chat, commands, and completions, and administrators' control over these settings.
+## Impact of context LLM vs Cody
-### Cody context window size
+When the same prompt is sent to a standard LLM, the response may need more specifics about your codebase. In contrast, Cody augments the prompt with context from relevant code snippets, making the answer far more specific to your codebase. This difference underscores the importance of context in Cody's functionality.
-While Cody aims to provide maximum context for each prompt, there are limits to ensure efficiency. For more details, see our [documentation on token limits](/cody/core-concepts/token-limits.mdx).
+## Manage Cody context window size
-### Manage context window size
+While Cody aims to provide maximum context for each prompt, there are limits to ensure efficiency. For more details, see our [docs on token limits](/cody/core-concepts/token-limits).
-Site administrators can update the maximum context window size to meet their specific requirements. While using fewer tokens is a cost-saving solution, it can also cause errors. For example, using the `/edit` command with few tokens might get you errors like `You've selected too much code`.
+Site administrators can update the maximum context window size to meet their specific requirements. While using fewer tokens is a cost-saving solution, it can also cause errors. For example, using an `edit` or `describe` type prompts with a too small context window size might give you errors like `You've selected too much code`.
-Using more tokens usually produces high-quality responses. It's recommended not to modify the token limit. However, if needed, you can set the value to a limit that does not comprise quality and generates errors.
+Using more tokens usually produces higher-quality responses but also increases response times. In general, it's recommended not to modify the token limit. However, if needed, you can set it to a value that should not compromise quality or generate errors.
diff --git a/docs/cody/core-concepts/embeddings.mdx b/docs/cody/core-concepts/embeddings.mdx
index 17b448e1d..ff12ed82c 100644
--- a/docs/cody/core-concepts/embeddings.mdx
+++ b/docs/cody/core-concepts/embeddings.mdx
@@ -2,6 +2,8 @@
Learn how you can use embeddings with Cody for better code understanding.
+Embeddings are no longer supported on Cody Free, Pro or Enterprise.
+
## What are embeddings?
Embeddings are a semantic representation of text that allows you to create a search index over your codebase. Cody splits your codebase into searchable chunks and sends them to an external service specified in your site's configuration for embedding. The resulting embedding index is stored in your local hard drive.
@@ -10,15 +12,4 @@ Embeddings are a semantic representation of text that allows you to create a sea
As of Sourcegraph version 5.3, embeddings are only available to Cody Free and Cody Pro users on the VS Code extension.
-Cody Free and Pro users can leverage local embeddings for context fetching. Local embeddings are indexed from the **Enhanced Context** panel. Once indexed, Cody will use these embeddings to provide context to your search queries.
-
-## Enable embeddings
-
-To enable embeddings in VS Code IDE:
-
-- Open a repository in your workspace
-- Next, create a new Cody chat
-- Inside the chat window, open the **Enhanced Context Selector** window and select **Enable Embeddings**
-- This uploads the repository's context to OpenAI's Embeddings API and gets stored locally
-
-Embeddings are no longer supported for Cody Enterprise and JetBrains IDE extension. You can learn more about Cody's [context fetching mechanism](/cody/core-concepts/context#context-fetching-mechanism).
+Cody Free and Pro users can leverage local embeddings for context fetching. Embeddings are created automatically and are used to provide context to Cody in chat, edits, and more.
diff --git a/docs/cody/core-concepts/enterprise-architecture.mdx b/docs/cody/core-concepts/enterprise-architecture.mdx
index c67583176..c45a5073d 100644
--- a/docs/cody/core-concepts/enterprise-architecture.mdx
+++ b/docs/cody/core-concepts/enterprise-architecture.mdx
@@ -1,18 +1,23 @@
-# Enterprise architecture
+# Cody Enterprise architecture
-[Cody Enterprise](/cody/clients/enable-cody-enterprise) can run in the Sourcegraph Cloud environment or on your own infrastructure. Here are a few possible deployment architectures.
+[Cody Enterprise](/cody/clients/enable-cody-enterprise) can be deployed via the Sourcegraph Cloud or on your self-hosted infrastructure. This page describes the architecture diagrams for Cody deployed in different Sourcegraph environments.
{/* Figma source: https://www.figma.com/file/lAPHpdhtEmOJ22IQXVZ0vs/Cody-architecture-diagrams-SQS-draft-2024-04?type=whiteboard&node-id=0-1&t=blg78H2YXXbdGSPc-0 */}
## Sourcegraph Cloud deployment
+This is a recommended deployment for Cody Enterprise. It uses the Sourcegraph Cloud infrastructure and Cody gateway.
+
## Sourcegraph Enterprise Server (self-hosted) on Amazon Bedrock
-
+This is an example of a more complex deployment that uses Sourcegraph Enterprise Server (self-hosted) and Amazon Bedrock.
+
## Data flow
-
\ No newline at end of file
+The following diagram describes the data flow between the different components of Cody Enterprise.
+
+
diff --git a/docs/cody/core-concepts/index.mdx b/docs/cody/core-concepts/index.mdx
index 8ef68cb25..3585e4967 100644
--- a/docs/cody/core-concepts/index.mdx
+++ b/docs/cody/core-concepts/index.mdx
@@ -12,4 +12,6 @@
+
+
diff --git a/docs/cody/core-concepts/keyword-search.mdx b/docs/cody/core-concepts/keyword-search.mdx
index 51eeba5d8..5c93ef41c 100644
--- a/docs/cody/core-concepts/keyword-search.mdx
+++ b/docs/cody/core-concepts/keyword-search.mdx
@@ -4,16 +4,6 @@
Keyword search is the traditional approach to text search. It splits content into terms and builds a mapping from terms to documents. At query time, it extracts terms from the query and uses the mapping to retrieve your documents.
-Both Cody chat and completions use Keyword Search. It comes out of the box without any additional setup. While powerful, this method can be used as a fallback solution when a codebase lacks embeddings with enhanced context quality and decreased latency over time.
+Both Cody chat and completions use Keyword Search. It comes out of the box without any additional setup. Cody with Keyword Search searches your local VS Code workspace and is a cost-effective and time-saving solution.
-## Keyword Search vs Embeddings
-
-Embeddings search over your entire repo set. While Cody with Keyword Search only searches your local VS Code workspace.
-
-While setting things up, Keyword Search as the default experience is a cost-effective and time-saving solution. Embeddings need to be produced and managed. It's a time-consuming process.
-
-The codebase is divided into 20-30 line chunks, each run through an embedding service. The results must then be stored on an accessible machine for local Cody clients.
-
-For an enterprise admin who has set up Cody with a Code Search instance, developers on their local machines can seamlessly access it. However, indexing a codebase to produce embeddings can take minutes or even hours for users with Cody solely on their local machine.
-
-Cody employs keyword-based context to ensure a good user experience until embeddings become available. When they are accessible, Cody will use them, thereby enhancing the quality of responses.
+For an enterprise admin who has set up Cody with a Code Search instance, developers on their local machines can seamlessly access it.
diff --git a/docs/cody/core-concepts/token-limits.mdx b/docs/cody/core-concepts/token-limits.mdx
index 0ade0644c..fa4ea8fde 100644
--- a/docs/cody/core-concepts/token-limits.mdx
+++ b/docs/cody/core-concepts/token-limits.mdx
@@ -1,65 +1,111 @@
# Cody Input and Output Token Limits
-For all models, Cody allows up to **4,000 tokens of output**, which is approximately **500-600** lines of code.
+Learn about Cody's token limits and how to manage them.
-For Claude 3 Sonnet or Opus models users, Cody supports up to **30,000 tokens (~4,000 lines of code)** of user-defined context through `@-mention` syntax and **15,000 tokens** of continued chat history (user queries + system responses). All other models are currently capped at **7,000 tokens** of shared context between user-defined context and chat history.
+For all models, Cody allows up to **4,000 tokens of output**, which is approximately **500-600** lines of code. For Claude 3 Sonnet models, Cody tracks two separate token limits:
+
+- The @-mention context is limited to **30,000 tokens** (~4,000 lines of code) and can be specified using the @-filename syntax. The user explicitly defines this context, which provides specific information to Cody.
+- Conversation context is limited to **15,000 tokens**, including user questions, system responses, and automatically retrieved context items. Apart from user questions, Cody generates this context automatically.
+
+All other models are currently capped at **7,000 tokens** of shared context between the `@-mention` context and chat history.
Here's a detailed breakdown of the token limits by model:
-| **Model** | **User Defined** | **Chat** **History** | **Output** |
-| ------------------- | ---------------- | -------------------- | ---------- |
-| gpt-3.5-turbo | 7,000 | shared | 4,000 |
-| gpt-4 | 7,000 | shared | 4,000 |
-| gpt-4-turbo | 7,000 | shared | 4,000 |
-| claude instant | 7,000 | shared | 4,000 |
-| claude-2.0 | 7,000 | shared | 4,000 |
-| claude-2.1 | 7,000 | shared | 4,000 |
-| claude-3 Haiku | 7,000 | shared | 4,000 |
-| **claude-3 Sonnet** | **200,000** | **15,000** | **4,000** |
-| **claude-3 Opus** | **200,000** | **15,000** | **4,000** |
-| mixtral 8x7b | 7,000 | shared | 4,000 |
-
-For more information on how Cody builds context, see our [documentation here](/cody/core-concepts/context).
+
+
+| **Model** | **Conversation Context** | **@-mention Context** | **Output** |
+| ----------------------------- | ------------------------ | --------------------- | ---------- |
+| GPT 4o mini | 7,000 | shared | 4,000 |
+| GPT o3 mini medium | 7,000 | shared | 4,000 |
+| Claude 3.5 Haiku | 7,000 | shared | 4,000 |
+| **Claude 3.5 Sonnet (New)** | **15,000** | **30,000** | **4,000** |
+| Gemini 1.5 Pro | 7,000 | shared | 4,000 |
+| Gemini 2.0 Flash | 7,000 | shared | 4,000 |
+| Gemini 2.0 Flash-Lite Preview | 7,000 | shared | 4,000 |
+
+
+
+
+
+The Pro tier supports the token limits for the LLM models on Free tier, plus:
+
+| **Model** | **Conversation Context** | **@-mention Context** | **Output** |
+| ----------------------------- | ------------------------ | --------------------- | ---------- |
+| GPT 4o mini | 7,000 | shared | 4,000 |
+| GPT o3 mini medium | 7,000 | shared | 4,000 |
+| GPT 4 Turbo | 7,000 | shared | 4,000 |
+| GPT 4o | 7,000 | shared | 4,000 |
+| o1 | 7,000 | shared | 4,000 |
+| Claude 3.5 Haiku | 7,000 | shared | 4,000 |
+| **Claude 3.5 Sonnet (New)** | **15,000** | **30,000** | **4,000** |
+| Claude 3.7 Sonnet | 15,000 | 30,000 | 4,000 |
+| Gemini 1.5 Pro | 15,000 | 30,000 | 4,000 |
+| Gemini 2.0 Flash | 7,000 | shared | 4,000 |
+| Gemini 2.0 Flash-Lite Preview | 7,000 | shared | 4,000 |
+
+
+
+
+
+The Enterprise tier supports the token limits for the LLM models on Free and Pro tier, plus:
+
+| **Model** | **Conversation Context** | **@-mention Context** | **Output** |
+| ----------------------------- | ------------------------ | --------------------- | ---------- |
+| GPT 4o mini | 7,000 | shared | 4,000 |
+| GPT o3 mini medium | 7,000 | shared | 4,000 |
+| GPT 4 Turbo | 7,000 | shared | 4,000 |
+| GPT 4o | 7,000 | shared | 4,000 |
+| o1 | 7,000 | shared | 4,000 |
+| o3 mini high | 7,000 | shared | 4,000 |
+| Claude 3.5 Haiku | 7,000 | shared | 4,000 |
+| **Claude 3.5 Sonnet (New)** | **15,000** | **30,000** | **4,000** |
+| Claude 3.7 Sonnet | 15,000 | 30,000 | 4,000 |
+| Gemini 2.0 Flash | 7,000 | shared | 4,000 |
+| Gemini 2.0 Flash-Lite Preview | 7,000 | shared | 4,000 |
+
+
+
+
+
+
+For Cody Enterprise, the token limits are the standard limits. Exact token limits may vary depending on your deployment. Please get in touch with your Sourcegraph representative. For more information on how Cody builds context, see our [docs here](/cody/core-concepts/context).
## What is a Context Window?
-A context window in large language models refers to the maximum number of tokens (words or subwords) that the model can process at once. This window determines how much context the model can consider when generating text or code.
+A context window in large language models refers to the maximum number of tokens (words or subwords) the model can process simultaneously. This window determines how much context the model can consider when generating text or code.
-Context windows exist due to computational limitations and memory constraints. Large language models have billions of parameters, and processing extremely long sequences of text can quickly become computationally expensive and memory-intensive. By limiting the context window, the model can operate more efficiently and make predictions in a reasonable amount of time.
+Context windows exist due to computational limitations and memory constraints. Large language models have billions of parameters, and processing extremely long sequences of text can quickly become computationally expensive and memory-intensive. Limiting the context window allows the model to operate more efficiently and make predictions in a reasonable amount of time.
## What is an Output Limit?
-**Output Limit** refers to the maximum number of tokens that a large language model can generate in a single response. This limit is typically set to ensure that the model's output remains manageable and relevant to the given context.
+**Output Limit** refers to the maximum number of tokens a large language model can generate in a single response. This limit is typically set to ensure the model's output remains manageable and relevant to the context.
-When a model generates text or code, it does so token by token, predicting the most likely next token based on the input context and its learned patterns. The output limit determines when the model should stop generating further tokens, even if it could potentially continue.
+When a model generates text or code, it does so token by token, predicting the most likely next token based on the input context and its learned patterns. The output limit determines when the model should stop generating further tokens, even if it could continue.
-The output limit helps to keep the generated text focused, concise, and manageable by preventing the model from going off-topic or generating excessively long responses, ensuring that the output can be efficiently processed and displayed by downstream applications or user interfaces while managing computational resources.
+The output limit helps to keep the generated text focused, concise, and manageable by preventing the model from going off-topic or generating excessively long responses. It also ensures that the output can be efficiently processed and displayed by downstream applications or user interfaces while managing computational resources.
-## Current Foundation Model Limits
+## Tradeoffs: Size, Accuracy, Latency and Cost
-Here is a table with the context window sizes and ouput limits for each of our [supported models](/cody/capabilities/supported-models).
+So why does Cody not use each model's full available context window? We need to consider a few tradeoffs, namely, context size, retrieval accuracy, latency, and costs.
-| **Model** | **Context Window** | **Output Limit** |
-| --------------- | ------------------ | ---------------- |
-| gpt-3.5-turbo | 16,385 tokens | 4,096 tokens |
-| gpt-4 | 8,192 tokens | 4,096 tokens |
-| gpt-4-turbo | 128,000 tokens | 4,096 tokens |
-| claude instant | 100,000 tokens | 4,096 tokens |
-| claude-2.0 | 100,000 tokens | 4,096 tokens |
-| claude-2.1 | 200,000 tokens | 4,096 tokens |
-| claude-3 Haiku | 200,000 tokens | 4,096 tokens |
-| claude-3 Sonnet | 200,000 tokens | 4,096 tokens |
-| claude-3 Opus | 200,000 tokens | 4,096 tokens |
-| mixtral 8x7b | 32,000 tokens | 4,096 tokens |
+### Context Size
-## Tradeoffs: Size, Accuracy, Latency and Cost
+A larger context window allows Cody to consider more information, potentially leading to more coherent and relevant outputs. However, in RAG-based systems like Cody, the value of increasing the context window is related to the precision and recall of the underlying retrieval mechanism.
+
+If the relevant files can be retrieved with high precision and added to an existing context window, expansion may not increase response quality. Conversely, some queries require a vast array of documents to synthesize the best response, so increasing the context window would be beneficial. We work to balance these nuances against increased latency and cost tradeoffs for input token lengths.
+
+### Retrieval Accuracy
+
+Not all context windows are created equal. Research shows that an LLM's ability to retrieve a fact from a context window can degrade dramatically as the size of the context window increases. This means it is important to put the relevant information into as few tokens as possible to avoid confusing the underlying LLM.
+
+As foundation models continue to improve, we see an increase in context retrieval, meaning that large context windows are becoming more viable. We are excited to bring these improvements to Cody.
-So why doesn't Cody use the full available context window for each model? There are a few tradeoffs that we need to consider, namely, context size, retrieval accuracy, latency and costs.
+### Latency
-1. **Context Size**: A larger context window allows Cody to consider more information, potentially leading to more coherent and relevant outputs. However, in RAG based systems like Cody, the value of increasing the context window is related to the precision and recall of the underlying retrieval mechanism. If the relevant files can be retrieved with high precision and added to an existing context window, expansion may not actually increase response quality. Conversely, some queries require a vast array of documents to syntehsize the best possible response, so an increase in context window would be beneficial. We work to balance these nuances against the latency and cost tradeoffs that come with increased input token lengths.
+With a larger context window, the model needs to process more data, which can increase the latency or response time. The end user often experiences this as "time to first token" or how long they wait until they see an output start to stream.
-2. **Retrieval Accuracy**: Not all context windows are created equal. Research shows that an LLM's ability to retrieve a fact from a context window can degrade dramatically as the size of the context window increases. This means that it is important to put the relevant information into as few tokens as possible, so as not to confuse the underlying LLM. As foundation models continue to improve, we are seeing increased within context retrieval meaning that large context windows are becoming more viable. We are excited to bring these improvements to Cody.
+In some cases, longer latency is a worthy tradeoff for higher accuracy, but our research shows that this is very use-case and user-dependent.
-3. **Latency**: With a larger context window, the model needs to process more data, which can increase the latency or response time. This is often experienced by the end user as "time to first token" or how long the user waits until they see an output start to stream. In some cases longer latency is a worthy tradeoff for higher accuracy, but our research shows that this is very use case and user dependent.
+### Computational Cost
-4. **Computational Cost**: Finally, the costs of processing large context windows scale linearly with the context window size. In order to provide a high quality response at a reasonable cost to the user, Cody leverages our expertise in code based RAG to drive down the generation costs while maintaining output quality.
+Finally, processing large context windows costs linearly with the context window size. Cody leverages our expertise in code-based RAG to drive down generation costs while maintaining output quality to provide a high-quality response at a reasonable cost to the user.
diff --git a/docs/cody/embedded-repos.mdx b/docs/cody/embedded-repos.mdx
deleted file mode 100644
index 38f9ce673..000000000
--- a/docs/cody/embedded-repos.mdx
+++ /dev/null
@@ -1,1942 +0,0 @@
-# Embeddings for repositories with 5+ stars
-
-Last updated: 07/23/2023, 12:29 AM UTC
-
-1. [0hq/tinyvector](https://github.com/0hq/tinyvector)
-1. [1Password/1password-teams-open-source](https://github.com/1Password/1password-teams-open-source)
-1. [21y4d/nmapAutomator](https://github.com/21y4d/nmapAutomator)
-1. [AUTOMATIC1111/stable-diffusion-webui](https://github.com/AUTOMATIC1111/stable-diffusion-webui)
-1. [AcademySoftwareFoundation/OpenTimelineIO](https://github.com/AcademySoftwareFoundation/OpenTimelineIO)
-1. [AcademySoftwareFoundation/rez](https://github.com/AcademySoftwareFoundation/rez)
-1. [Addepar/addepar.github.com](https://github.com/Addepar/addepar.github.com)
-1. [Addepar/ember-charts](https://github.com/Addepar/ember-charts)
-1. [Addepar/ember-data](https://github.com/Addepar/ember-data)
-1. [Addepar/ember-json-viewer](https://github.com/Addepar/ember-json-viewer)
-1. [Addepar/ember-table](https://github.com/Addepar/ember-table)
-1. [Addepar/ember-widgets](https://github.com/Addepar/ember-widgets)
-1. [Addepar/emberconf-schedule-2019](https://github.com/Addepar/emberconf-schedule-2019)
-1. [Addepar/http-route-proxy](https://github.com/Addepar/http-route-proxy)
-1. [Addepar/styleguides](https://github.com/Addepar/styleguides)
-1. [Aircoookie/WLED](https://github.com/Aircoookie/WLED)
-1. [AlexanderGrooff/nginx-static-analysis](https://github.com/AlexanderGrooff/nginx-static-analysis)
-1. [AlphaWallet/alpha-wallet-android](https://github.com/AlphaWallet/alpha-wallet-android)
-1. [AlphaWallet/alpha-wallet-ios](https://github.com/AlphaWallet/alpha-wallet-ios)
-1. [AndrewRayCode/shaderfrog-2.0-hybrid-graph-demo](https://github.com/AndrewRayCode/shaderfrog-2.0-hybrid-graph-demo)
-1. [AppLovin/AppLovin-MAX-SDK-Android](https://github.com/AppLovin/AppLovin-MAX-SDK-Android)
-1. [Arinerron/heaptrace](https://github.com/Arinerron/heaptrace)
-1. [Automattic/mongoose](https://github.com/Automattic/mongoose)
-1. [B-Selin/mastermind](https://github.com/B-Selin/mastermind)
-1. [Benqi-fi/BENQI-Smart-Contracts](https://github.com/Benqi-fi/BENQI-Smart-Contracts)
-1. [BestBuyAPIs/bby-query-builder](https://github.com/BestBuyAPIs/bby-query-builder)
-1. [BestBuyAPIs/bestbuy-cli](https://github.com/BestBuyAPIs/bestbuy-cli)
-1. [BestBuyAPIs/bestbuy-sdk-js](https://github.com/BestBuyAPIs/bestbuy-sdk-js)
-1. [BestBuyAPIs/open-data-set](https://github.com/BestBuyAPIs/open-data-set)
-1. [Breakend/PileOfLaw](https://github.com/Breakend/PileOfLaw)
-1. [BuilderIO/qwik](https://github.com/BuilderIO/qwik)
-1. [BurntSushi/ripgrep](https://github.com/BurntSushi/ripgrep)
-1. [ByConity/ByConity](https://github.com/ByConity/ByConity)
-1. [CESNET/libyang](https://github.com/CESNET/libyang)
-1. [CESNET/libyang-python](https://github.com/CESNET/libyang-python)
-1. [Canto-Network/canto](https://github.com/Canto-Network/canto)
-1. [Capgemini/dcx-react-library](https://github.com/Capgemini/dcx-react-library)
-1. [CarperAI/trlx](https://github.com/CarperAI/trlx)
-1. [CascadeOS/CascadeOS](https://github.com/CascadeOS/CascadeOS)
-1. [CesiumGS/cesium](https://github.com/CesiumGS/cesium)
-1. [Chainlit/chainlit](https://github.com/Chainlit/chainlit)
-1. [ChenYFan/ClientWorker](https://github.com/ChenYFan/ClientWorker)
-1. [Chocobozzz/PeerTube](https://github.com/Chocobozzz/PeerTube)
-1. [ClickHouse/ClickHouse](https://github.com/ClickHouse/ClickHouse)
-1. [Codecademy/learn-python](https://github.com/Codecademy/learn-python)
-1. [CodelyTV/php-ddd-example](https://github.com/CodelyTV/php-ddd-example)
-1. [ColinSPuck/RustyVoxelEngine](https://github.com/ColinSPuck/RustyVoxelEngine)
-1. [CompVis/stable-diffusion](https://github.com/CompVis/stable-diffusion)
-1. [Conflux-Chain/js-conflux-sdk](https://github.com/Conflux-Chain/js-conflux-sdk)
-1. [CorwinDev/Discord-Bot](https://github.com/CorwinDev/Discord-Bot)
-1. [DIYgod/RSSHub](https://github.com/DIYgod/RSSHub)
-1. [Demigiant/dotween](https://github.com/Demigiant/dotween)
-1. [DevotedHealth/terraform-provider-looker](https://github.com/DevotedHealth/terraform-provider-looker)
-1. [DioxusLabs/dioxus](https://github.com/DioxusLabs/dioxus)
-1. [DolbyIO/awesome-audio](https://github.com/DolbyIO/awesome-audio)
-1. [DolbyIO/comms-sdk-react-native](https://github.com/DolbyIO/comms-sdk-react-native)
-1. [DolbyLaboratories/AM-Viewer](https://github.com/DolbyLaboratories/AM-Viewer)
-1. [DolbyLaboratories/DVEF](https://github.com/DolbyLaboratories/DVEF)
-1. [DolbyLaboratories/dlb_mp4base](https://github.com/DolbyLaboratories/dlb_mp4base)
-1. [DolbyLaboratories/dlb_mp4demux](https://github.com/DolbyLaboratories/dlb_mp4demux)
-1. [DrKLO/Telegram](https://github.com/DrKLO/Telegram)
-1. [Dyalog/pynapl](https://github.com/Dyalog/pynapl)
-1. [EasyAiStudio/AutoPromptFill](https://github.com/EasyAiStudio/AutoPromptFill)
-1. [EbookFoundation/free-programming-books](https://github.com/EbookFoundation/free-programming-books)
-1. [EddieHubCommunity/LinkFree](https://github.com/EddieHubCommunity/LinkFree)
-1. [EdgeApp/airbitz-android-gui](https://github.com/EdgeApp/airbitz-android-gui)
-1. [EdgeApp/airbitz-core](https://github.com/EdgeApp/airbitz-core)
-1. [EdgeApp/airbitz-core-java](https://github.com/EdgeApp/airbitz-core-java)
-1. [EdgeApp/airbitz-core-objc](https://github.com/EdgeApp/airbitz-core-objc)
-1. [EdgeApp/airbitz-ios-gui](https://github.com/EdgeApp/airbitz-ios-gui)
-1. [EdgeApp/airbitz-plugins](https://github.com/EdgeApp/airbitz-plugins)
-1. [EdgeApp/airbitz-wallet-recovery](https://github.com/EdgeApp/airbitz-wallet-recovery)
-1. [EdgeApp/android-ndk-linux](https://github.com/EdgeApp/android-ndk-linux)
-1. [EdgeApp/biggystring](https://github.com/EdgeApp/biggystring)
-1. [EdgeApp/edge-core-js](https://github.com/EdgeApp/edge-core-js)
-1. [EdgeApp/edge-currency-accountbased](https://github.com/EdgeApp/edge-currency-accountbased)
-1. [EdgeApp/edge-currency-plugins](https://github.com/EdgeApp/edge-currency-plugins)
-1. [EdgeApp/edge-exchange-plugins](https://github.com/EdgeApp/edge-exchange-plugins)
-1. [EdgeApp/edge-login-ui-rn](https://github.com/EdgeApp/edge-login-ui-rn)
-1. [EdgeApp/edge-react-gui](https://github.com/EdgeApp/edge-react-gui)
-1. [EmperorFPI/envolved39](https://github.com/EmperorFPI/envolved39)
-1. [Expensify/App](https://github.com/Expensify/App)
-1. [Eyevinn/mp4ff](https://github.com/Eyevinn/mp4ff)
-1. [FFmpeg/FFmpeg](https://github.com/FFmpeg/FFmpeg)
-1. [FelixKratz/dotfiles](https://github.com/FelixKratz/dotfiles)
-1. [Ff00ff/mammoth](https://github.com/Ff00ff/mammoth)
-1. [Fictiverse/Redream](https://github.com/Fictiverse/Redream)
-1. [FlightControl-Master/MOOSE](https://github.com/FlightControl-Master/MOOSE)
-1. [FlowiseAI/Flowise](https://github.com/FlowiseAI/Flowise)
-1. [GSConnect/gnome-shell-extension-gsconnect](https://github.com/GSConnect/gnome-shell-extension-gsconnect)
-1. [GabeRundlett/gvox_engine](https://github.com/GabeRundlett/gvox_engine)
-1. [GetJobber/atlantis](https://github.com/GetJobber/atlantis)
-1. [GetJobber/jest-a-coverage-slip-detector](https://github.com/GetJobber/jest-a-coverage-slip-detector)
-1. [GiancarloZ/GardEnvy](https://github.com/GiancarloZ/GardEnvy)
-1. [GillianPerard/typescript-json-serializer](https://github.com/GillianPerard/typescript-json-serializer)
-1. [GitHuberPilot/statistics_model](https://github.com/GitHuberPilot/statistics_model)
-1. [Glowforge/attribution](https://github.com/Glowforge/attribution)
-1. [Glowforge/kernel-module-glowforge](https://github.com/Glowforge/kernel-module-glowforge)
-1. [Glowforge/kernel-module-imx-pwm-audio](https://github.com/Glowforge/kernel-module-imx-pwm-audio)
-1. [Glowforge/linux-glowforge](https://github.com/Glowforge/linux-glowforge)
-1. [Glowforge/meta-glowforge-gpl](https://github.com/Glowforge/meta-glowforge-gpl)
-1. [Glowforge/u-boot-glowforge](https://github.com/Glowforge/u-boot-glowforge)
-1. [GoogleCloudPlatform/gcping](https://github.com/GoogleCloudPlatform/gcping)
-1. [GoogleCloudPlatform/microservices-demo](https://github.com/GoogleCloudPlatform/microservices-demo)
-1. [GoogleCloudPlatform/spark-on-k8s-operator](https://github.com/GoogleCloudPlatform/spark-on-k8s-operator)
-1. [GoogleCloudPlatform/terraformer](https://github.com/GoogleCloudPlatform/terraformer)
-1. [Gopiandcode/petrol](https://github.com/Gopiandcode/petrol)
-1. [Habrador/Unity-Programming-Patterns](https://github.com/Habrador/Unity-Programming-Patterns)
-1. [HiTECNOLOGYs/cl-charms](https://github.com/HiTECNOLOGYs/cl-charms)
-1. [HigherOrderCO/HVM](https://github.com/HigherOrderCO/HVM)
-1. [HoffsMH/infra](https://github.com/HoffsMH/infra)
-1. [Homebrew/brew](https://github.com/Homebrew/brew)
-1. [Homebrew/homebrew-cask](https://github.com/Homebrew/homebrew-cask)
-1. [InvoicePlane/InvoicePlane](https://github.com/InvoicePlane/InvoicePlane)
-1. [JabRef/jabref](https://github.com/JabRef/jabref)
-1. [JetBrains/intellij-community](https://github.com/JetBrains/intellij-community)
-1. [JetBrains/kotlin](https://github.com/JetBrains/kotlin)
-1. [JoepVanlier/JSFX](https://github.com/JoepVanlier/JSFX)
-1. [JoshuaKGoldberg/TypeStat](https://github.com/JoshuaKGoldberg/TypeStat)
-1. [JoshuaKGoldberg/ts-api-utils](https://github.com/JoshuaKGoldberg/ts-api-utils)
-1. [JuliaLang/julia](https://github.com/JuliaLang/julia)
-1. [KDE/konsole](https://github.com/KDE/konsole)
-1. [KeepSafe/dexcount-gradle-plugin](https://github.com/KeepSafe/dexcount-gradle-plugin)
-1. [KichangKim/DeepDanbooru](https://github.com/KichangKim/DeepDanbooru)
-1. [KirillOsenkov/SourceBrowser](https://github.com/KirillOsenkov/SourceBrowser)
-1. [Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
-1. [LTLA/scuttle](https://github.com/LTLA/scuttle)
-1. [LazyVim/LazyVim](https://github.com/LazyVim/LazyVim)
-1. [LinqLover/SimulationStudio](https://github.com/LinqLover/SimulationStudio)
-1. [Linyou/taichi-ngp-renderer](https://github.com/Linyou/taichi-ngp-renderer)
-1. [LukeMathWalker/pavex](https://github.com/LukeMathWalker/pavex)
-1. [MacoskoLab/brain-atlas](https://github.com/MacoskoLab/brain-atlas)
-1. [MacoskoLab/slideseq-tools](https://github.com/MacoskoLab/slideseq-tools)
-1. [Mastercard/client-encryption-java](https://github.com/Mastercard/client-encryption-java)
-1. [Mastercard/insomnia-plugin-mastercard](https://github.com/Mastercard/insomnia-plugin-mastercard)
-1. [Mathijs-Bakker/Extenject](https://github.com/Mathijs-Bakker/Extenject)
-1. [McLovin-RSPS/AutoPromptFill](https://github.com/McLovin-RSPS/AutoPromptFill)
-1. [McLovin-RSPS/MapConverter](https://github.com/McLovin-RSPS/MapConverter)
-1. [McLovin-RSPS/Vanguard-RuneLite](https://github.com/McLovin-RSPS/Vanguard-RuneLite)
-1. [McLovin-RSPS/Xeros-Client](https://github.com/McLovin-RSPS/Xeros-Client)
-1. [McLovin-RSPS/fluxious-client](https://github.com/McLovin-RSPS/fluxious-client)
-1. [McLovin-RSPS/qodat](https://github.com/McLovin-RSPS/qodat)
-1. [MetaMask/metamask-extension](https://github.com/MetaMask/metamask-extension)
-1. [MetaMask/metamask-mobile](https://github.com/MetaMask/metamask-mobile)
-1. [Metim0l/free-gpt-engineer](https://github.com/Metim0l/free-gpt-engineer)
-1. [MichaelPilyavskiy/ReaScripts](https://github.com/MichaelPilyavskiy/ReaScripts)
-1. [Mikubill/sd-webui-controlnet](https://github.com/Mikubill/sd-webui-controlnet)
-1. [MineDojo/Voyager](https://github.com/MineDojo/Voyager)
-1. [MockBukkit/MockBukkit](https://github.com/MockBukkit/MockBukkit)
-1. [Momilijaz96/Face-DTR](https://github.com/Momilijaz96/Face-DTR)
-1. [Momilijaz96/SentimentAnalysis](https://github.com/Momilijaz96/SentimentAnalysis)
-1. [MoralisWeb3/Moralis-Python-SDK](https://github.com/MoralisWeb3/Moralis-Python-SDK)
-1. [Mudlet/Mudlet](https://github.com/Mudlet/Mudlet)
-1. [Museum-Barberini/Barberini-Analytics](https://github.com/Museum-Barberini/Barberini-Analytics)
-1. [NCATSTranslator/ReasonerAPI](https://github.com/NCATSTranslator/ReasonerAPI)
-1. [NCIP/lexevs](https://github.com/NCIP/lexevs)
-1. [NVIDIA/DeepLearningExamples](https://github.com/NVIDIA/DeepLearningExamples)
-1. [NVIDIA/Megatron-LM](https://github.com/NVIDIA/Megatron-LM)
-1. [NVIDIA/NeMo](https://github.com/NVIDIA/NeMo)
-1. [NVIDIA/TransformerEngine](https://github.com/NVIDIA/TransformerEngine)
-1. [NVIDIA/tensorflow](https://github.com/NVIDIA/tensorflow)
-1. [NetSPI/PowerUpSQL](https://github.com/NetSPI/PowerUpSQL)
-1. [NicholasLYang/vicuna](https://github.com/NicholasLYang/vicuna)
-1. [NixOS/nix](https://github.com/NixOS/nix)
-1. [NixOS/nixpkgs](https://github.com/NixOS/nixpkgs)
-1. [NordicSemiconductor/asset-tracker-cloud-aws-js](https://github.com/NordicSemiconductor/asset-tracker-cloud-aws-js)
-1. [Nuand/bladeRF](https://github.com/Nuand/bladeRF)
-1. [Nutlope/roomGPT](https://github.com/Nutlope/roomGPT)
-1. [Occlusion-Solutions/llm_explorer](https://github.com/Occlusion-Solutions/llm_explorer)
-1. [OneKeyHQ/app-monorepo](https://github.com/OneKeyHQ/app-monorepo)
-1. [Open-EO/openeo-geopyspark-driver](https://github.com/Open-EO/openeo-geopyspark-driver)
-1. [Open-EO/openeo-geopyspark-integrationtests](https://github.com/Open-EO/openeo-geopyspark-integrationtests)
-1. [Open-EO/openeo-geotrellis-extensions](https://github.com/Open-EO/openeo-geotrellis-extensions)
-1. [Open-EO/openeo-geotrellis-kubernetes](https://github.com/Open-EO/openeo-geotrellis-kubernetes)
-1. [Open-EO/openeo-processes](https://github.com/Open-EO/openeo-processes)
-1. [Open-EO/openeo-python-client](https://github.com/Open-EO/openeo-python-client)
-1. [Open-EO/openeo-python-driver](https://github.com/Open-EO/openeo-python-driver)
-1. [Open-Swarm-Net/GPT-Swarm](https://github.com/Open-Swarm-Net/GPT-Swarm)
-1. [OpenMS/OpenMS](https://github.com/OpenMS/OpenMS)
-1. [OpenSmalltalk/opensmalltalk-vm](https://github.com/OpenSmalltalk/opensmalltalk-vm)
-1. [OpenZeppelin/openzeppelin-contracts](https://github.com/OpenZeppelin/openzeppelin-contracts)
-1. [OpenZeppelin/openzeppelin-contracts-upgradeable](https://github.com/OpenZeppelin/openzeppelin-contracts-upgradeable)
-1. [OptimalScale/LMFlow](https://github.com/OptimalScale/LMFlow)
-1. [OrchardCMS/OrchardCore](https://github.com/OrchardCMS/OrchardCore)
-1. [Outsiderj/McBucks](https://github.com/Outsiderj/McBucks)
-1. [PX4/PX4-Autopilot](https://github.com/PX4/PX4-Autopilot)
-1. [PatrickJS/awesome-angular](https://github.com/PatrickJS/awesome-angular)
-1. [PowerShell/PowerShell](https://github.com/PowerShell/PowerShell)
-1. [PrefectHQ/marvin](https://github.com/PrefectHQ/marvin)
-1. [PrefectHQ/prefect](https://github.com/PrefectHQ/prefect)
-1. [PriNova/SAM-GPT](https://github.com/PriNova/SAM-GPT)
-1. [Promises/refactored-client-377](https://github.com/Promises/refactored-client-377)
-1. [PySimpleGUI/PySimpleGUI](https://github.com/PySimpleGUI/PySimpleGUI)
-1. [Pycord-Development/pycord](https://github.com/Pycord-Development/pycord)
-1. [Qihoo360/evpp](https://github.com/Qihoo360/evpp)
-1. [RawrJoey/ptcg-elite](https://github.com/RawrJoey/ptcg-elite)
-1. [ReaTeam/JSFX](https://github.com/ReaTeam/JSFX)
-1. [ReaTeam/ReaScripts](https://github.com/ReaTeam/ReaScripts)
-1. [ReactiveX/RxJava](https://github.com/ReactiveX/RxJava)
-1. [ReactiveX/RxSwift](https://github.com/ReactiveX/RxSwift)
-1. [ReactiveX/rxjs](https://github.com/ReactiveX/rxjs)
-1. [ReeceDonovan/donovan.dev](https://github.com/ReeceDonovan/donovan.dev)
-1. [Regen1337/-](https://github.com/Regen1337/-)
-1. [RimWorld-zh/RimWorld-Decompile](https://github.com/RimWorld-zh/RimWorld-Decompile)
-1. [RoadieHQ/roadie-backstage-plugins](https://github.com/RoadieHQ/roadie-backstage-plugins)
-1. [Ruu3f/freeGPT](https://github.com/Ruu3f/freeGPT)
-1. [Sairyss/domain-driven-hexagon](https://github.com/Sairyss/domain-driven-hexagon)
-1. [SciML/GlobalSensitivity.jl](https://github.com/SciML/GlobalSensitivity.jl)
-1. [SciML/Optimization.jl](https://github.com/SciML/Optimization.jl)
-1. [ScorpionOO8/PerfectChallenge](https://github.com/ScorpionOO8/PerfectChallenge)
-1. [SeleniumHQ/selenium](https://github.com/SeleniumHQ/selenium)
-1. [ShaderFrog/glsl-parser](https://github.com/ShaderFrog/glsl-parser)
-1. [Shaked/gomobiledetect](https://github.com/Shaked/gomobiledetect)
-1. [Shopify/shopify-app-template-node](https://github.com/Shopify/shopify-app-template-node)
-1. [SigmaHQ/sigma](https://github.com/SigmaHQ/sigma)
-1. [Significant-Gravitas/Auto-GPT](https://github.com/Significant-Gravitas/Auto-GPT)
-1. [SillyTavern/SillyTavern](https://github.com/SillyTavern/SillyTavern)
-1. [Snowfork/snowbridge](https://github.com/Snowfork/snowbridge)
-1. [SocialFinance/datalab](https://github.com/SocialFinance/datalab)
-1. [SocialFinance/fiximulator](https://github.com/SocialFinance/fiximulator)
-1. [SocialFinance/homebrew-sofi](https://github.com/SocialFinance/homebrew-sofi)
-1. [SocialFinance/sofi-checks](https://github.com/SocialFinance/sofi-checks)
-1. [Stahldavid/autocode](https://github.com/Stahldavid/autocode)
-1. [StanGirard/quivr](https://github.com/StanGirard/quivr)
-1. [StarRocks/starrocks](https://github.com/StarRocks/starrocks)
-1. [StephanRoemer/ReaScripts](https://github.com/StephanRoemer/ReaScripts)
-1. [StockSharp/StockSharp](https://github.com/StockSharp/StockSharp)
-1. [SynthstromAudible/DelugeFirmware](https://github.com/SynthstromAudible/DelugeFirmware)
-1. [THU-DSP-LAB/ventus-gpgpu](https://github.com/THU-DSP-LAB/ventus-gpgpu)
-1. [THUDM/CodeGeeX](https://github.com/THUDM/CodeGeeX)
-1. [TanStack/query](https://github.com/TanStack/query)
-1. [TanStack/router](https://github.com/TanStack/router)
-1. [TanStack/table](https://github.com/TanStack/table)
-1. [Tencent/QMUI_Android](https://github.com/Tencent/QMUI_Android)
-1. [Tencent/mars](https://github.com/Tencent/mars)
-1. [Tencent/wcdb](https://github.com/Tencent/wcdb)
-1. [TensorSpeech/TensorFlowASR](https://github.com/TensorSpeech/TensorFlowASR)
-1. [Textualize/textual](https://github.com/Textualize/textual)
-1. [TheAlgorithms/Java](https://github.com/TheAlgorithms/Java)
-1. [TheAlgorithms/Python](https://github.com/TheAlgorithms/Python)
-1. [TimDettmers/bitsandbytes](https://github.com/TimDettmers/bitsandbytes)
-1. [TimothyStiles/poly](https://github.com/TimothyStiles/poly)
-1. [TransformerOptimus/SuperAGI](https://github.com/TransformerOptimus/SuperAGI)
-1. [Trusted-AI/adversarial-robustness-toolbox](https://github.com/Trusted-AI/adversarial-robustness-toolbox)
-1. [TryGhost/Ghost](https://github.com/TryGhost/Ghost)
-1. [Uniswap/web3-react](https://github.com/Uniswap/web3-react)
-1. [Unity-Technologies/ECS-Network-Racing-Sample](https://github.com/Unity-Technologies/ECS-Network-Racing-Sample)
-1. [Unity-Technologies/EntityComponentSystemSamples](https://github.com/Unity-Technologies/EntityComponentSystemSamples)
-1. [Unity-Technologies/UnityCsReference](https://github.com/Unity-Technologies/UnityCsReference)
-1. [Unity-Technologies/unity-ads-android](https://github.com/Unity-Technologies/unity-ads-android)
-1. [Unleash/unleash-client-node](https://github.com/Unleash/unleash-client-node)
-1. [Unleash/unleash-proxy](https://github.com/Unleash/unleash-proxy)
-1. [UseHover/Stax](https://github.com/UseHover/Stax)
-1. [VirtusLab/Inkuire](https://github.com/VirtusLab/Inkuire)
-1. [VirtusLab/scala-cli](https://github.com/VirtusLab/scala-cli)
-1. [WebKit/WebKit](https://github.com/WebKit/WebKit)
-1. [WiseLibs/better-sqlite3](https://github.com/WiseLibs/better-sqlite3)
-1. [WongKinYiu/yolov7](https://github.com/WongKinYiu/yolov7)
-1. [WordPress/WordPress](https://github.com/WordPress/WordPress)
-1. [Workiva/frugal](https://github.com/Workiva/frugal)
-1. [Workiva/go-datastructures](https://github.com/Workiva/go-datastructures)
-1. [Workiva/over_react](https://github.com/Workiva/over_react)
-1. [Workiva/react_testing_library](https://github.com/Workiva/react_testing_library)
-1. [X-Raym/REAPER-ReaScripts](https://github.com/X-Raym/REAPER-ReaScripts)
-1. [XetaIO/Xeta](https://github.com/XetaIO/Xeta)
-1. [Yelp/paasta](https://github.com/Yelp/paasta)
-1. [YuLab-SMU/enrichplot](https://github.com/YuLab-SMU/enrichplot)
-1. [YuLab-SMU/ggtree](https://github.com/YuLab-SMU/ggtree)
-1. [Zettlr/Zettlr](https://github.com/Zettlr/Zettlr)
-1. [Zielon/INSTA-pytorch](https://github.com/Zielon/INSTA-pytorch)
-1. [Zielon/metrical-tracker](https://github.com/Zielon/metrical-tracker)
-1. [a16z-infra/companion-app](https://github.com/a16z-infra/companion-app)
-1. [aarnphm/whispercpp](https://github.com/aarnphm/whispercpp)
-1. [abetlen/llama-cpp-python](https://github.com/abetlen/llama-cpp-python)
-1. [abey79/vpype](https://github.com/abey79/vpype)
-1. [abey79/vsketch](https://github.com/abey79/vsketch)
-1. [abrudz/aplcart](https://github.com/abrudz/aplcart)
-1. [abseil/abseil-cpp](https://github.com/abseil/abseil-cpp)
-1. [accel-sim/accel-sim-framework](https://github.com/accel-sim/accel-sim-framework)
-1. [accel-sim/gpgpu-sim_distribution](https://github.com/accel-sim/gpgpu-sim_distribution)
-1. [acheong08/ChatGPT](https://github.com/acheong08/ChatGPT)
-1. [acheong08/EdgeGPT](https://github.com/acheong08/EdgeGPT)
-1. [activepieces/activepieces](https://github.com/activepieces/activepieces)
-1. [actix/actix-web](https://github.com/actix/actix-web)
-1. [adelosa/learnasm370](https://github.com/adelosa/learnasm370)
-1. [ading2210/poe-api](https://github.com/ading2210/poe-api)
-1. [adithya-s-sekhar/termux-setup](https://github.com/adithya-s-sekhar/termux-setup)
-1. [adobe/react-spectrum](https://github.com/adobe/react-spectrum)
-1. [adobe/spectrum-css](https://github.com/adobe/spectrum-css)
-1. [adobe/spectrum-web-components](https://github.com/adobe/spectrum-web-components)
-1. [adplabs/JQL](https://github.com/adplabs/JQL)
-1. [adplabs/PigeonKeeper](https://github.com/adplabs/PigeonKeeper)
-1. [adplabs/unicorn](https://github.com/adplabs/unicorn)
-1. [aertslab/scenicplus](https://github.com/aertslab/scenicplus)
-1. [ago109/predictive-forward-forward](https://github.com/ago109/predictive-forward-forward)
-1. [aianlinb/LibGGPK3](https://github.com/aianlinb/LibGGPK3)
-1. [airbnb/javascript](https://github.com/airbnb/javascript)
-1. [airbnb/lottie-android](https://github.com/airbnb/lottie-android)
-1. [airbytehq/airbyte](https://github.com/airbytehq/airbyte)
-1. [ajaxorg/ace](https://github.com/ajaxorg/ace)
-1. [akka/akka](https://github.com/akka/akka)
-1. [alcaras/mplus.subcreation.net](https://github.com/alcaras/mplus.subcreation.net)
-1. [alibaba/ARouter](https://github.com/alibaba/ARouter)
-1. [alibaba/formily](https://github.com/alibaba/formily)
-1. [alibaba/ice](https://github.com/alibaba/ice)
-1. [allegro/bigcache](https://github.com/allegro/bigcache)
-1. [allegro/bigflow](https://github.com/allegro/bigflow)
-1. [allegro/hermes](https://github.com/allegro/hermes)
-1. [alpacahq/alpaca-py](https://github.com/alpacahq/alpaca-py)
-1. [altair-viz/altair](https://github.com/altair-viz/altair)
-1. [ameinias/ObiFluid](https://github.com/ameinias/ObiFluid)
-1. [americanexpress/earlybird](https://github.com/americanexpress/earlybird)
-1. [americanexpress/holocron](https://github.com/americanexpress/holocron)
-1. [americanexpress/jest-image-snapshot](https://github.com/americanexpress/jest-image-snapshot)
-1. [americanexpress/one-app](https://github.com/americanexpress/one-app)
-1. [americanexpress/react-albus](https://github.com/americanexpress/react-albus)
-1. [analogdevicesinc/hdl](https://github.com/analogdevicesinc/hdl)
-1. [angrycub/nomad_example_jobs](https://github.com/angrycub/nomad_example_jobs)
-1. [angular/angular](https://github.com/angular/angular)
-1. [ant-design/ant-design](https://github.com/ant-design/ant-design)
-1. [apache/airflow](https://github.com/apache/airflow)
-1. [apache/arrow-datafusion](https://github.com/apache/arrow-datafusion)
-1. [apache/arrow-rs](https://github.com/apache/arrow-rs)
-1. [apache/beam](https://github.com/apache/beam)
-1. [apache/cassandra](https://github.com/apache/cassandra)
-1. [apache/doris](https://github.com/apache/doris)
-1. [apache/flink](https://github.com/apache/flink)
-1. [apache/hadoop](https://github.com/apache/hadoop)
-1. [apache/hive](https://github.com/apache/hive)
-1. [apache/hudi](https://github.com/apache/hudi)
-1. [apache/lucene](https://github.com/apache/lucene)
-1. [apache/ofbiz](https://github.com/apache/ofbiz)
-1. [apache/ofbiz-framework](https://github.com/apache/ofbiz-framework)
-1. [apache/ofbiz-plugins](https://github.com/apache/ofbiz-plugins)
-1. [apache/seatunnel](https://github.com/apache/seatunnel)
-1. [apache/spark](https://github.com/apache/spark)
-1. [apache/trafficserver](https://github.com/apache/trafficserver)
-1. [apexsharp/apexparser](https://github.com/apexsharp/apexparser)
-1. [apexsharp/apexsharp](https://github.com/apexsharp/apexsharp)
-1. [api-platform/api-platform](https://github.com/api-platform/api-platform)
-1. [apollographql/embeddable-explorer](https://github.com/apollographql/embeddable-explorer)
-1. [apollographql/fullstack-tutorial](https://github.com/apollographql/fullstack-tutorial)
-1. [appium/appium](https://github.com/appium/appium)
-1. [apple/swift](https://github.com/apple/swift)
-1. [apple/swift-algorithms](https://github.com/apple/swift-algorithms)
-1. [apple/swift-corelibs-foundation](https://github.com/apple/swift-corelibs-foundation)
-1. [appsmithorg/appsmith](https://github.com/appsmithorg/appsmith)
-1. [appwrite/appwrite](https://github.com/appwrite/appwrite)
-1. [appwrite/sdk-for-flutter](https://github.com/appwrite/sdk-for-flutter)
-1. [apuentemedallia/tools-and-techniques-for-vulnerability-validation](https://github.com/apuentemedallia/tools-and-techniques-for-vulnerability-validation)
-1. [ardanlabs/gotraining](https://github.com/ardanlabs/gotraining)
-1. [ardanlabs/service](https://github.com/ardanlabs/service)
-1. [argoproj/argo-cd](https://github.com/argoproj/argo-cd)
-1. [argoproj/argo-workflows](https://github.com/argoproj/argo-workflows)
-1. [ariburaco/chatgpt-file-uploader-extended](https://github.com/ariburaco/chatgpt-file-uploader-extended)
-1. [arkworks-rs/crypto-primitives](https://github.com/arkworks-rs/crypto-primitives)
-1. [artichoke/artichoke](https://github.com/artichoke/artichoke)
-1. [artichoke/artichoke.github.io](https://github.com/artichoke/artichoke.github.io)
-1. [artichoke/roe](https://github.com/artichoke/roe)
-1. [asafstr2/shemenotef](https://github.com/asafstr2/shemenotef)
-1. [ashmind/SharpLab](https://github.com/ashmind/SharpLab)
-1. [asim/turbo](https://github.com/asim/turbo)
-1. [askibin/perpetuals](https://github.com/askibin/perpetuals)
-1. [askibin/twamm](https://github.com/askibin/twamm)
-1. [asticode/go-astits](https://github.com/asticode/go-astits)
-1. [astral-sh/ruff](https://github.com/astral-sh/ruff)
-1. [aurae-runtime/aurae](https://github.com/aurae-runtime/aurae)
-1. [aurora-opensource/au](https://github.com/aurora-opensource/au)
-1. [aurora-opensource/streetscape.gl](https://github.com/aurora-opensource/streetscape.gl)
-1. [aurora-opensource/xviz](https://github.com/aurora-opensource/xviz)
-1. [auth0-samples/auth0-golang-api-samples](https://github.com/auth0-samples/auth0-golang-api-samples)
-1. [authzed/spicedb](https://github.com/authzed/spicedb)
-1. [autorope/donkeycar](https://github.com/autorope/donkeycar)
-1. [aws-amplify/amplify-js](https://github.com/aws-amplify/amplify-js)
-1. [aws-powertools/powertools-lambda-python](https://github.com/aws-powertools/powertools-lambda-python)
-1. [aws-powertools/powertools-lambda-typescript](https://github.com/aws-powertools/powertools-lambda-typescript)
-1. [aws-samples/aws-glue-samples](https://github.com/aws-samples/aws-glue-samples)
-1. [aws/aws-cdk](https://github.com/aws/aws-cdk)
-1. [aws/aws-cdk-go](https://github.com/aws/aws-cdk-go)
-1. [aws/aws-cdk-rfcs](https://github.com/aws/aws-cdk-rfcs)
-1. [aws/aws-cli](https://github.com/aws/aws-cli)
-1. [aws/aws-lambda-go](https://github.com/aws/aws-lambda-go)
-1. [aws/aws-sdk-go](https://github.com/aws/aws-sdk-go)
-1. [aws/aws-sdk-go-v2](https://github.com/aws/aws-sdk-go-v2)
-1. [aws/aws-sdk-js](https://github.com/aws/aws-sdk-js)
-1. [axios/axios](https://github.com/axios/axios)
-1. [aypan17/machiavelli](https://github.com/aypan17/machiavelli)
-1. [azure-rtos/threadx](https://github.com/azure-rtos/threadx)
-1. [backstage/backstage](https://github.com/backstage/backstage)
-1. [balena-io/open-balena-api](https://github.com/balena-io/open-balena-api)
-1. [bazelbuild/bazel](https://github.com/bazelbuild/bazel)
-1. [bazelbuild/rules_foreign_cc](https://github.com/bazelbuild/rules_foreign_cc)
-1. [bbatsov/prelude](https://github.com/bbatsov/prelude)
-1. [bboymega/Termux_url_opener_all_in_one_downloader](https://github.com/bboymega/Termux_url_opener_all_in_one_downloader)
-1. [beir-cellar/beir](https://github.com/beir-cellar/beir)
-1. [bellard/quickjs](https://github.com/bellard/quickjs)
-1. [benmills/vim-golang-alternate](https://github.com/benmills/vim-golang-alternate)
-1. [bentoml/BentoML](https://github.com/bentoml/BentoML)
-1. [benweet/stackedit](https://github.com/benweet/stackedit)
-1. [betaflight/betaflight-configurator](https://github.com/betaflight/betaflight-configurator)
-1. [bgavran/Category_Theory_Machine_Learning](https://github.com/bgavran/Category_Theory_Machine_Learning)
-1. [bgkatz/motorcontrol](https://github.com/bgkatz/motorcontrol)
-1. [bigomics/omicsplayground](https://github.com/bigomics/omicsplayground)
-1. [bigscience-workshop/Megatron-DeepSpeed](https://github.com/bigscience-workshop/Megatron-DeepSpeed)
-1. [bigscience-workshop/petals](https://github.com/bigscience-workshop/petals)
-1. [bigskysoftware/htmx](https://github.com/bigskysoftware/htmx)
-1. [bilibili/ijkplayer](https://github.com/bilibili/ijkplayer)
-1. [billxbf/ReWOO](https://github.com/billxbf/ReWOO)
-1. [binary-husky/gpt_academic](https://github.com/binary-husky/gpt_academic)
-1. [biolab/orange3](https://github.com/biolab/orange3)
-1. [biolink/biolink-model](https://github.com/biolink/biolink-model)
-1. [biopython/biopython](https://github.com/biopython/biopython)
-1. [bisontrails/rules_kustomize](https://github.com/bisontrails/rules_kustomize)
-1. [bitcoin/bitcoin](https://github.com/bitcoin/bitcoin)
-1. [bitwarden/server](https://github.com/bitwarden/server)
-1. [blackrock/TopNotch](https://github.com/blackrock/TopNotch)
-1. [blackrock/lcso](https://github.com/blackrock/lcso)
-1. [blender/blender](https://github.com/blender/blender)
-1. [blender/blender-addons](https://github.com/blender/blender-addons)
-1. [blender/cycles](https://github.com/blender/cycles)
-1. [blockworks-foundation/mango-v4](https://github.com/blockworks-foundation/mango-v4)
-1. [bloxapp/ssv](https://github.com/bloxapp/ssv)
-1. [bloxapp/ssv-contracts](https://github.com/bloxapp/ssv-contracts)
-1. [bloxapp/ssv-keys](https://github.com/bloxapp/ssv-keys)
-1. [bloxapp/ssv-network](https://github.com/bloxapp/ssv-network)
-1. [bloxapp/ssv-spec](https://github.com/bloxapp/ssv-spec)
-1. [bloxapp/ssv-web](https://github.com/bloxapp/ssv-web)
-1. [blugelabs/bluge](https://github.com/blugelabs/bluge)
-1. [boardgameio/boardgame.io](https://github.com/boardgameio/boardgame.io)
-1. [bookingcom/bpfink](https://github.com/bookingcom/bpfink)
-1. [bookingcom/carbonapi](https://github.com/bookingcom/carbonapi)
-1. [boostorg/boost](https://github.com/boostorg/boost)
-1. [boto/boto3](https://github.com/boto/boto3)
-1. [bpowers/judyarrays](https://github.com/bpowers/judyarrays)
-1. [bregman-arie/devops-exercises](https://github.com/bregman-arie/devops-exercises)
-1. [browserify/resolve](https://github.com/browserify/resolve)
-1. [bufbuild/buf](https://github.com/bufbuild/buf)
-1. [buildbuddy-io/buildbuddy](https://github.com/buildbuddy-io/buildbuddy)
-1. [buildkite/go-buildkite](https://github.com/buildkite/go-buildkite)
-1. [buildo/bento-design-system](https://github.com/buildo/bento-design-system)
-1. [buildo/retro](https://github.com/buildo/retro)
-1. [bytebase/bytebase](https://github.com/bytebase/bytebase)
-1. [bytecodealliance/wasmtime](https://github.com/bytecodealliance/wasmtime)
-1. [caddyserver/caddy](https://github.com/caddyserver/caddy)
-1. [caddyserver/certmagic](https://github.com/caddyserver/certmagic)
-1. [caddyserver/website](https://github.com/caddyserver/website)
-1. [cakephp/cakephp](https://github.com/cakephp/cakephp)
-1. [camel-ai/camel](https://github.com/camel-ai/camel)
-1. [canonical/cloud-init](https://github.com/canonical/cloud-init)
-1. [canonical/go-dqlite](https://github.com/canonical/go-dqlite)
-1. [canonical/lxd](https://github.com/canonical/lxd)
-1. [canonical/microk8s](https://github.com/canonical/microk8s)
-1. [canonical/pebble](https://github.com/canonical/pebble)
-1. [capitalone/AI_Dictionary_English_Spanish](https://github.com/capitalone/AI_Dictionary_English_Spanish)
-1. [capitalone/BankAccountStarter-API-reference-app](https://github.com/capitalone/BankAccountStarter-API-reference-app)
-1. [capitalone/CreditOffers-API-reference-app](https://github.com/capitalone/CreditOffers-API-reference-app)
-1. [capitalone/DataProfiler](https://github.com/capitalone/DataProfiler)
-1. [capitalone/OAuthClient](https://github.com/capitalone/OAuthClient)
-1. [capitalone/Particle-Cloud-Framework](https://github.com/capitalone/Particle-Cloud-Framework)
-1. [capitalone/Rewards-API-reference-app](https://github.com/capitalone/Rewards-API-reference-app)
-1. [capitalone/SWHttpTrafficRecorder](https://github.com/capitalone/SWHttpTrafficRecorder)
-1. [capitalone/ablation](https://github.com/capitalone/ablation)
-1. [capitalone/acronym-decoder](https://github.com/capitalone/acronym-decoder)
-1. [capitalone/architecture-viewer](https://github.com/capitalone/architecture-viewer)
-1. [capitalone/bash_shell_mock](https://github.com/capitalone/bash_shell_mock)
-1. [capitalone/checks-out](https://github.com/capitalone/checks-out)
-1. [capitalone/cqrs-manager-for-distributed-reactive-services](https://github.com/capitalone/cqrs-manager-for-distributed-reactive-services)
-1. [capitalone/dataCompareR](https://github.com/capitalone/dataCompareR)
-1. [capitalone/datacompy](https://github.com/capitalone/datacompy)
-1. [capitalone/easy-screenshots](https://github.com/capitalone/easy-screenshots)
-1. [capitalone/edgetest](https://github.com/capitalone/edgetest)
-1. [capitalone/edgetest-conda](https://github.com/capitalone/edgetest-conda)
-1. [capitalone/edgetest-hub](https://github.com/capitalone/edgetest-hub)
-1. [capitalone/federated-model-aggregation](https://github.com/capitalone/federated-model-aggregation)
-1. [capitalone/fpe](https://github.com/capitalone/fpe)
-1. [capitalone/giraffez](https://github.com/capitalone/giraffez)
-1. [capitalone/global-attribution-mapping](https://github.com/capitalone/global-attribution-mapping)
-1. [capitalone/go-future-context](https://github.com/capitalone/go-future-context)
-1. [capitalone/grpc-cucumber-js](https://github.com/capitalone/grpc-cucumber-js)
-1. [capitalone/json-syntax](https://github.com/capitalone/json-syntax)
-1. [capitalone/jwt-security](https://github.com/capitalone/jwt-security)
-1. [capitalone/local-crontab](https://github.com/capitalone/local-crontab)
-1. [capitalone/locopy](https://github.com/capitalone/locopy)
-1. [capitalone/modtracker](https://github.com/capitalone/modtracker)
-1. [capitalone/oas-nodegen](https://github.com/capitalone/oas-nodegen)
-1. [capitalone/otvPlots](https://github.com/capitalone/otvPlots)
-1. [capitalone/react-native-pathjs-charts](https://github.com/capitalone/react-native-pathjs-charts)
-1. [capitalone/rubicon-ml](https://github.com/capitalone/rubicon-ml)
-1. [capitalone/screen-object](https://github.com/capitalone/screen-object)
-1. [capitalone/serverless-shell](https://github.com/capitalone/serverless-shell)
-1. [capitalone/slackbot-destroyer](https://github.com/capitalone/slackbot-destroyer)
-1. [capitalone/stack-deployment-tool](https://github.com/capitalone/stack-deployment-tool)
-1. [capitalone/synthetic-data](https://github.com/capitalone/synthetic-data)
-1. [capnproto/capnproto](https://github.com/capnproto/capnproto)
-1. [carlmjohnson/requests](https://github.com/carlmjohnson/requests)
-1. [carlospolop/hacktricks](https://github.com/carlospolop/hacktricks)
-1. [cdktf/cdktf-provider-aws-go](https://github.com/cdktf/cdktf-provider-aws-go)
-1. [cfillion/reaimgui](https://github.com/cfillion/reaimgui)
-1. [cfillion/reascripts](https://github.com/cfillion/reascripts)
-1. [chakra-ui/chakra-ui](https://github.com/chakra-ui/chakra-ui)
-1. [chaosparrot/talon_hud](https://github.com/chaosparrot/talon_hud)
-1. [charmbracelet/bubbletea](https://github.com/charmbracelet/bubbletea)
-1. [chathub-dev/chathub](https://github.com/chathub-dev/chathub)
-1. [chroma-core/chroma](https://github.com/chroma-core/chroma)
-1. [chromium/chromium](https://github.com/chromium/chromium)
-1. [chubin/wttr.in](https://github.com/chubin/wttr.in)
-1. [ciaochaos/qrbtf](https://github.com/ciaochaos/qrbtf)
-1. [ciel-lang/CIEL](https://github.com/ciel-lang/CIEL)
-1. [cilium/cilium](https://github.com/cilium/cilium)
-1. [circe/circe](https://github.com/circe/circe)
-1. [circleci/bond](https://github.com/circleci/bond)
-1. [circleci/ex](https://github.com/circleci/ex)
-1. [civo/civo-cloud-controller-manager](https://github.com/civo/civo-cloud-controller-manager)
-1. [civo/civogo](https://github.com/civo/civogo)
-1. [civo/cli](https://github.com/civo/cli)
-1. [civo/terraform-provider-civo](https://github.com/civo/terraform-provider-civo)
-1. [cleder/fastkml](https://github.com/cleder/fastkml)
-1. [cleder/pygeoif](https://github.com/cleder/pygeoif)
-1. [clerkinc/clerk-docs](https://github.com/clerkinc/clerk-docs)
-1. [clerkinc/clerk-sdk-go](https://github.com/clerkinc/clerk-sdk-go)
-1. [clerkinc/javascript](https://github.com/clerkinc/javascript)
-1. [cloudflare/workerd](https://github.com/cloudflare/workerd)
-1. [cloudscape-design/components](https://github.com/cloudscape-design/components)
-1. [cloudwego/cloudwego.github.io](https://github.com/cloudwego/cloudwego.github.io)
-1. [cocktailpeanut/dalai](https://github.com/cocktailpeanut/dalai)
-1. [codemirror/autocomplete](https://github.com/codemirror/autocomplete)
-1. [codemirror/collab](https://github.com/codemirror/collab)
-1. [codemirror/commands](https://github.com/codemirror/commands)
-1. [codemirror/lang-javascript](https://github.com/codemirror/lang-javascript)
-1. [codemirror/lang-sql](https://github.com/codemirror/lang-sql)
-1. [codemirror/language](https://github.com/codemirror/language)
-1. [codemirror/language-data](https://github.com/codemirror/language-data)
-1. [codemirror/lint](https://github.com/codemirror/lint)
-1. [codemirror/merge](https://github.com/codemirror/merge)
-1. [codemirror/search](https://github.com/codemirror/search)
-1. [codemirror/state](https://github.com/codemirror/state)
-1. [codemirror/view](https://github.com/codemirror/view)
-1. [coder/coder](https://github.com/coder/coder)
-1. [codota/tabnine-nvim](https://github.com/codota/tabnine-nvim)
-1. [cohesity/ansible-collection](https://github.com/cohesity/ansible-collection)
-1. [cohesity/app-sdk-go](https://github.com/cohesity/app-sdk-go)
-1. [cohesity/cohesity-powershell-module](https://github.com/cohesity/cohesity-powershell-module)
-1. [cohesity/management-sdk-python](https://github.com/cohesity/management-sdk-python)
-1. [colinhacks/zod](https://github.com/colinhacks/zod)
-1. [collabora/WhisperSpeech](https://github.com/collabora/WhisperSpeech)
-1. [cometbft/cometbft](https://github.com/cometbft/cometbft)
-1. [commaai/openpilot](https://github.com/commaai/openpilot)
-1. [compbiomed/singleCellTK](https://github.com/compbiomed/singleCellTK)
-1. [compodoc/compodoc](https://github.com/compodoc/compodoc)
-1. [concrete-utopia/utopia](https://github.com/concrete-utopia/utopia)
-1. [conda/conda](https://github.com/conda/conda)
-1. [conda/conda-build](https://github.com/conda/conda-build)
-1. [confluentinc/schema-registry](https://github.com/confluentinc/schema-registry)
-1. [containerd/containerd](https://github.com/containerd/containerd)
-1. [containerd/nerdctl](https://github.com/containerd/nerdctl)
-1. [contentful/contentful.js](https://github.com/contentful/contentful.js)
-1. [coolsnowwolf/lede](https://github.com/coolsnowwolf/lede)
-1. [coredns/coredns.io](https://github.com/coredns/coredns.io)
-1. [coreinfrastructure/best-practices-badge](https://github.com/coreinfrastructure/best-practices-badge)
-1. [cp-algorithms/cp-algorithms](https://github.com/cp-algorithms/cp-algorithms)
-1. [crate-ci/typos](https://github.com/crate-ci/typos)
-1. [crossoverJie/cim](https://github.com/crossoverJie/cim)
-1. [cruise-automation/daytona](https://github.com/cruise-automation/daytona)
-1. [cruise-automation/fwanalyzer](https://github.com/cruise-automation/fwanalyzer)
-1. [cruise-automation/isopod](https://github.com/cruise-automation/isopod)
-1. [cruise-automation/webviz](https://github.com/cruise-automation/webviz)
-1. [crystal-lang/crystal](https://github.com/crystal-lang/crystal)
-1. [csells/curlconverter](https://github.com/csells/curlconverter)
-1. [cssnano/cssnano](https://github.com/cssnano/cssnano)
-1. [ctsstc/typio-form-recovery-reboot](https://github.com/ctsstc/typio-form-recovery-reboot)
-1. [cucumber/cucumber-ruby](https://github.com/cucumber/cucumber-ruby)
-1. [cue-lang/cue](https://github.com/cue-lang/cue)
-1. [curl/curl](https://github.com/curl/curl)
-1. [cursorless-dev/cursorless](https://github.com/cursorless-dev/cursorless)
-1. [cypress-io/cypress](https://github.com/cypress-io/cypress)
-1. [d3/d3](https://github.com/d3/d3)
-1. [dagger/dagger](https://github.com/dagger/dagger)
-1. [dagster-io/dagster](https://github.com/dagster-io/dagster)
-1. [dailydotdev/apps](https://github.com/dailydotdev/apps)
-1. [dailydotdev/daily](https://github.com/dailydotdev/daily)
-1. [dair-ai/Prompt-Engineering-Guide](https://github.com/dair-ai/Prompt-Engineering-Guide)
-1. [dapr/dapr](https://github.com/dapr/dapr)
-1. [dart-lang/sdk](https://github.com/dart-lang/sdk)
-1. [dask/dask](https://github.com/dask/dask)
-1. [databricks/terraform-provider-databricks](https://github.com/databricks/terraform-provider-databricks)
-1. [datafuselabs/databend](https://github.com/datafuselabs/databend)
-1. [datawire/ambassador-docs](https://github.com/datawire/ambassador-docs)
-1. [datawire/edge-stack](https://github.com/datawire/edge-stack)
-1. [datawire/emojivoto](https://github.com/datawire/emojivoto)
-1. [datawire/envoy-gateway](https://github.com/datawire/envoy-gateway)
-1. [datawire/go-mkopensource](https://github.com/datawire/go-mkopensource)
-1. [davecheney/pub](https://github.com/davecheney/pub)
-1. [davidteren/sensible_rails_starter](https://github.com/davidteren/sensible_rails_starter)
-1. [dbt-labs/dbt-core](https://github.com/dbt-labs/dbt-core)
-1. [ddd-by-examples/library](https://github.com/ddd-by-examples/library)
-1. [de4dot/de4dot](https://github.com/de4dot/de4dot)
-1. [deepak2431/issue_gpt](https://github.com/deepak2431/issue_gpt)
-1. [deforum-art/sd-webui-deforum](https://github.com/deforum-art/sd-webui-deforum)
-1. [dell/dkms](https://github.com/dell/dkms)
-1. [delta-io/delta](https://github.com/delta-io/delta)
-1. [demonnic/Highlighter](https://github.com/demonnic/Highlighter)
-1. [demonnic/MDK](https://github.com/demonnic/MDK)
-1. [demonnic/muddler](https://github.com/demonnic/muddler)
-1. [denoland/deno](https://github.com/denoland/deno)
-1. [denoland/fresh](https://github.com/denoland/fresh)
-1. [derailed/k9s](https://github.com/derailed/k9s)
-1. [dgtlmoon/changedetection.io](https://github.com/dgtlmoon/changedetection.io)
-1. [dhenson02/libredis](https://github.com/dhenson02/libredis)
-1. [digitalocean/doctl](https://github.com/digitalocean/doctl)
-1. [directus/directus](https://github.com/directus/directus)
-1. [discourse/discourse](https://github.com/discourse/discourse)
-1. [disney/groovity](https://github.com/disney/groovity)
-1. [disney/meteor-base](https://github.com/disney/meteor-base)
-1. [disney/quanta](https://github.com/disney/quanta)
-1. [distribution/distribution](https://github.com/distribution/distribution)
-1. [divnix/std](https://github.com/divnix/std)
-1. [django/django](https://github.com/django/django)
-1. [dmcable/spacexr](https://github.com/dmcable/spacexr)
-1. [docker/compose](https://github.com/docker/compose)
-1. [dolfies/discord.py-self](https://github.com/dolfies/discord.py-self)
-1. [dolthub/dolt](https://github.com/dolthub/dolt)
-1. [domgen/insightappsec-scan-github-actions](https://github.com/domgen/insightappsec-scan-github-actions)
-1. [doomemacs/doomemacs](https://github.com/doomemacs/doomemacs)
-1. [dosbox-staging/dosbox-staging](https://github.com/dosbox-staging/dosbox-staging)
-1. [dotnet/Silk.NET](https://github.com/dotnet/Silk.NET)
-1. [dotnet/aspnetcore](https://github.com/dotnet/aspnetcore)
-1. [dotnet/efcore](https://github.com/dotnet/efcore)
-1. [dotnet/orleans](https://github.com/dotnet/orleans)
-1. [dotnet/roslyn](https://github.com/dotnet/roslyn)
-1. [dotnet/roslyn-sdk](https://github.com/dotnet/roslyn-sdk)
-1. [dotnet/sdk](https://github.com/dotnet/sdk)
-1. [dreamwidth/dreamwidth](https://github.com/dreamwidth/dreamwidth)
-1. [dreamworksanimation/openmoonray](https://github.com/dreamworksanimation/openmoonray)
-1. [drift-labs/protocol-v2](https://github.com/drift-labs/protocol-v2)
-1. [drizzle-team/drizzle-orm](https://github.com/drizzle-team/drizzle-orm)
-1. [droidian/deviceinfo](https://github.com/droidian/deviceinfo)
-1. [droidian/hybris-usb](https://github.com/droidian/hybris-usb)
-1. [dropbox/dbx_build_tools](https://github.com/dropbox/dbx_build_tools)
-1. [dropbox/dropshots](https://github.com/dropbox/dropshots)
-1. [dropbox/godropbox](https://github.com/dropbox/godropbox)
-1. [dropbox/ts-transform-import-path-rewrite](https://github.com/dropbox/ts-transform-import-path-rewrite)
-1. [dropbox/zxcvbn](https://github.com/dropbox/zxcvbn)
-1. [drupal/drupal](https://github.com/drupal/drupal)
-1. [dstoc/pkmapp](https://github.com/dstoc/pkmapp)
-1. [dtolnay/inventory](https://github.com/dtolnay/inventory)
-1. [dtolnay/linkme](https://github.com/dtolnay/linkme)
-1. [duckdb/duckdb](https://github.com/duckdb/duckdb)
-1. [easy-graph/Easy-Graph](https://github.com/easy-graph/Easy-Graph)
-1. [ebkalderon/tower-lsp](https://github.com/ebkalderon/tower-lsp)
-1. [eclipse-zenoh/zenoh](https://github.com/eclipse-zenoh/zenoh)
-1. [eclipse/eclipse-collections](https://github.com/eclipse/eclipse-collections)
-1. [ecomfe/reskript](https://github.com/ecomfe/reskript)
-1. [elastic/beats](https://github.com/elastic/beats)
-1. [elastic/elasticsearch](https://github.com/elastic/elasticsearch)
-1. [electronicarts/CnC_Remastered_Collection](https://github.com/electronicarts/CnC_Remastered_Collection)
-1. [electronicarts/EASTL](https://github.com/electronicarts/EASTL)
-1. [electronicarts/ea-async](https://github.com/electronicarts/ea-async)
-1. [element-plus/element-plus](https://github.com/element-plus/element-plus)
-1. [elementor/wp2static](https://github.com/elementor/wp2static)
-1. [elixir-ecto/ecto](https://github.com/elixir-ecto/ecto)
-1. [elixir-lang/elixir](https://github.com/elixir-lang/elixir)
-1. [emacs-mirror/emacs](https://github.com/emacs-mirror/emacs)
-1. [emilybache/GildedRose-Refactoring-Kata](https://github.com/emilybache/GildedRose-Refactoring-Kata)
-1. [emissary-ingress/emissary](https://github.com/emissary-ingress/emissary)
-1. [emptycrown/llama-hub](https://github.com/emptycrown/llama-hub)
-1. [emscripten-core/emscripten](https://github.com/emscripten-core/emscripten)
-1. [emscripten-core/emsdk](https://github.com/emscripten-core/emsdk)
-1. [encode/django-rest-framework](https://github.com/encode/django-rest-framework)
-1. [endojs/endo](https://github.com/endojs/endo)
-1. [envoyproxy/envoy](https://github.com/envoyproxy/envoy)
-1. [enzymejs/enzyme](https://github.com/enzymejs/enzyme)
-1. [ergoplatform/oracle-core](https://github.com/ergoplatform/oracle-core)
-1. [erikerlandson/coulomb](https://github.com/erikerlandson/coulomb)
-1. [erocarrera/pefile](https://github.com/erocarrera/pefile)
-1. [es-shims/es5-shim](https://github.com/es-shims/es5-shim)
-1. [esbuild-kit/tsx](https://github.com/esbuild-kit/tsx)
-1. [eslint/eslint](https://github.com/eslint/eslint)
-1. [espnet/espnet](https://github.com/espnet/espnet)
-1. [ethereum/go-ethereum](https://github.com/ethereum/go-ethereum)
-1. [ethereum/solidity](https://github.com/ethereum/solidity)
-1. [ethereum/web3.py](https://github.com/ethereum/web3.py)
-1. [eugenp/tutorials](https://github.com/eugenp/tutorials)
-1. [evmos/ethermint](https://github.com/evmos/ethermint)
-1. [ewired/gjs-guide](https://github.com/ewired/gjs-guide)
-1. [exchange-core/exchange-core](https://github.com/exchange-core/exchange-core)
-1. [explosion/spaCy](https://github.com/explosion/spaCy)
-1. [expressjs/express](https://github.com/expressjs/express)
-1. [facebook/docusaurus](https://github.com/facebook/docusaurus)
-1. [facebook/folly](https://github.com/facebook/folly)
-1. [facebook/lexical](https://github.com/facebook/lexical)
-1. [facebook/prop-types](https://github.com/facebook/prop-types)
-1. [facebook/prophet](https://github.com/facebook/prophet)
-1. [facebook/react](https://github.com/facebook/react)
-1. [facebook/react-native](https://github.com/facebook/react-native)
-1. [facebook/yoga](https://github.com/facebook/yoga)
-1. [facebookincubator/AITemplate](https://github.com/facebookincubator/AITemplate)
-1. [facebookresearch/detectron2](https://github.com/facebookresearch/detectron2)
-1. [facebookresearch/fairseq](https://github.com/facebookresearch/fairseq)
-1. [facebookresearch/llama](https://github.com/facebookresearch/llama)
-1. [faif/python-patterns](https://github.com/faif/python-patterns)
-1. [fairnesscoop/permacoop](https://github.com/fairnesscoop/permacoop)
-1. [fastapi-users/fastapi-users](https://github.com/fastapi-users/fastapi-users)
-1. [faster-cpython/cpython](https://github.com/faster-cpython/cpython)
-1. [fayazara/onelink](https://github.com/fayazara/onelink)
-1. [fbsamples/audience-network](https://github.com/fbsamples/audience-network)
-1. [felHR85/UsbSerial](https://github.com/felHR85/UsbSerial)
-1. [felixge/traceutils](https://github.com/felixge/traceutils)
-1. [finos/spring-bot](https://github.com/finos/spring-bot)
-1. [firebase/firebase-admin-python](https://github.com/firebase/firebase-admin-python)
-1. [firebase/firebase-js-sdk](https://github.com/firebase/firebase-js-sdk)
-1. [fish-shell/fish-shell](https://github.com/fish-shell/fish-shell)
-1. [fivetran/benchmark](https://github.com/fivetran/benchmark)
-1. [flix/flix](https://github.com/flix/flix)
-1. [floating-ui/floating-ui](https://github.com/floating-ui/floating-ui)
-1. [floooh/sokol](https://github.com/floooh/sokol)
-1. [flores-jacob/philippine-regions-provinces-cities-municipalities-barangays](https://github.com/flores-jacob/philippine-regions-provinces-cities-municipalities-barangays)
-1. [flutter-stripe/flutter_stripe](https://github.com/flutter-stripe/flutter_stripe)
-1. [flutter/codelabs](https://github.com/flutter/codelabs)
-1. [flutter/flutter](https://github.com/flutter/flutter)
-1. [flutter/packages](https://github.com/flutter/packages)
-1. [flutter/samples](https://github.com/flutter/samples)
-1. [fluxcd/kustomize-controller](https://github.com/fluxcd/kustomize-controller)
-1. [fluxcd/source-controller](https://github.com/fluxcd/source-controller)
-1. [folke/lazy.nvim](https://github.com/folke/lazy.nvim)
-1. [framer/motion](https://github.com/framer/motion)
-1. [francoismassart/eslint-plugin-tailwindcss](https://github.com/francoismassart/eslint-plugin-tailwindcss)
-1. [frappe/erpnext](https://github.com/frappe/erpnext)
-1. [freddyaboulton/gradio-tools](https://github.com/freddyaboulton/gradio-tools)
-1. [freeCodeCamp/freeCodeCamp](https://github.com/freeCodeCamp/freeCodeCamp)
-1. [freenome/flyte](https://github.com/freenome/flyte)
-1. [fuqunaga/RosettaUI](https://github.com/fuqunaga/RosettaUI)
-1. [fyne-io/fyne](https://github.com/fyne-io/fyne)
-1. [gajus/slonik](https://github.com/gajus/slonik)
-1. [galaxyproject/ansible-galaxy](https://github.com/galaxyproject/ansible-galaxy)
-1. [garden-io/garden](https://github.com/garden-io/garden)
-1. [gatsbyjs/gatsby](https://github.com/gatsbyjs/gatsby)
-1. [gcanti/fp-ts](https://github.com/gcanti/fp-ts)
-1. [gemini-hlsw/clue](https://github.com/gemini-hlsw/clue)
-1. [gemini-hlsw/crystal](https://github.com/gemini-hlsw/crystal)
-1. [gemini-hlsw/explore](https://github.com/gemini-hlsw/explore)
-1. [gemini-hlsw/lucuma-catalog](https://github.com/gemini-hlsw/lucuma-catalog)
-1. [gemini-hlsw/lucuma-core](https://github.com/gemini-hlsw/lucuma-core)
-1. [gemini-hlsw/lucuma-odb](https://github.com/gemini-hlsw/lucuma-odb)
-1. [gemini-hlsw/lucuma-react](https://github.com/gemini-hlsw/lucuma-react)
-1. [gemini-hlsw/lucuma-schemas](https://github.com/gemini-hlsw/lucuma-schemas)
-1. [gemini-hlsw/lucuma-sso](https://github.com/gemini-hlsw/lucuma-sso)
-1. [gemini-hlsw/lucuma-ui](https://github.com/gemini-hlsw/lucuma-ui)
-1. [geopandas/geopandas](https://github.com/geopandas/geopandas)
-1. [getlantern/systray](https://github.com/getlantern/systray)
-1. [getsentry/relay](https://github.com/getsentry/relay)
-1. [getsentry/self-hosted](https://github.com/getsentry/self-hosted)
-1. [getsentry/sentry](https://github.com/getsentry/sentry)
-1. [getsentry/snuba](https://github.com/getsentry/snuba)
-1. [getsentry/symbolicator](https://github.com/getsentry/symbolicator)
-1. [ggerganov/ggml](https://github.com/ggerganov/ggml)
-1. [ggerganov/llama.cpp](https://github.com/ggerganov/llama.cpp)
-1. [ggerganov/whisper.cpp](https://github.com/ggerganov/whisper.cpp)
-1. [gin-gonic/gin](https://github.com/gin-gonic/gin)
-1. [gitkraken/vscode-gitlens](https://github.com/gitkraken/vscode-gitlens)
-1. [gitlab.com/CalcProgrammer1/OpenRGB](https://gitlab.com/CalcProgrammer1/OpenRGB)
-1. [gitlab.com/antonok/enum_dispatch](https://gitlab.com/antonok/enum_dispatch)
-1. [gitlab.com/gitlab-com/www-gitlab-com](https://gitlab.com/gitlab-com/www-gitlab-com)
-1. [gitlab.com/gitlab-org/gitlab](https://gitlab.com/gitlab-org/gitlab)
-1. [gitlab.com/gitlab-org/gitlab-foss](https://gitlab.com/gitlab-org/gitlab-foss)
-1. [gitlab.com/gitlab-org/gitlab-runner](https://gitlab.com/gitlab-org/gitlab-runner)
-1. [gitlab.com/graphviz/graphviz](https://gitlab.com/graphviz/graphviz)
-1. [gitlab.com/plom/plom](https://gitlab.com/plom/plom)
-1. [gitlab.com/sourcegraph/jsonrpc2](https://gitlab.com/sourcegraph/jsonrpc2)
-1. [gitpod-io/gitpod](https://github.com/gitpod-io/gitpod)
-1. [gitpod-io/gitpod-code](https://github.com/gitpod-io/gitpod-code)
-1. [gitpod-io/openvscode-server](https://github.com/gitpod-io/openvscode-server)
-1. [gitpod-io/website](https://github.com/gitpod-io/website)
-1. [gkamradt/langchain-tutorials](https://github.com/gkamradt/langchain-tutorials)
-1. [gnuradio/gnuradio](https://github.com/gnuradio/gnuradio)
-1. [go-delve/delve](https://github.com/go-delve/delve)
-1. [go-kratos/kratos](https://github.com/go-kratos/kratos)
-1. [go-kratos/kratos-layout](https://github.com/go-kratos/kratos-layout)
-1. [go-python/cpy3](https://github.com/go-python/cpy3)
-1. [go/Sirupsen/logrus](https://go/github.com/Sirupsen/logrus)
-1. [go/aws/aws-cdk-go/awscdk](https://go/github.com/aws/aws-cdk-go/awscdk)
-1. [go/aws/aws-cdk-go/awscdk/v2](https://go/github.com/aws/aws-cdk-go/awscdk/v2)
-1. [go/go.mongodb.org/mongo-driver](https://go/go.mongodb.org/mongo-driver)
-1. [go/smallstep/cli](https://go/github.com/smallstep/cli)
-1. [godotengine/godot](https://github.com/godotengine/godot)
-1. [gofiber/fiber](https://github.com/gofiber/fiber)
-1. [gohugoio/hugo](https://github.com/gohugoio/hugo)
-1. [golang/go](https://github.com/golang/go)
-1. [goldmansachs/gs-quant](https://github.com/goldmansachs/gs-quant)
-1. [goldmansachs/obevo](https://github.com/goldmansachs/obevo)
-1. [goldmansachs/reladomo](https://github.com/goldmansachs/reladomo)
-1. [google/blockly](https://github.com/google/blockly)
-1. [google/closure-library](https://github.com/google/closure-library)
-1. [google/gin-config](https://github.com/google/gin-config)
-1. [google/go-github](https://github.com/google/go-github)
-1. [google/googletest](https://github.com/google/googletest)
-1. [google/gvisor](https://github.com/google/gvisor)
-1. [google/highway](https://github.com/google/highway)
-1. [google/jax](https://github.com/google/jax)
-1. [google/python-fire](https://github.com/google/python-fire)
-1. [google/skia](https://github.com/google/skia)
-1. [google/starlark-go](https://github.com/google/starlark-go)
-1. [googleads/googleads-mobile-android-examples](https://github.com/googleads/googleads-mobile-android-examples)
-1. [gothinkster/realworld](https://github.com/gothinkster/realworld)
-1. [gradio-app/gradio](https://github.com/gradio-app/gradio)
-1. [gradle/gradle](https://github.com/gradle/gradle)
-1. [gradle/gradle-completion](https://github.com/gradle/gradle-completion)
-1. [gradle/gradle-profiler](https://github.com/gradle/gradle-profiler)
-1. [grafana/grafana](https://github.com/grafana/grafana)
-1. [grafana/loki](https://github.com/grafana/loki)
-1. [graphql-java/graphql-java](https://github.com/graphql-java/graphql-java)
-1. [graphql-python/gql](https://github.com/graphql-python/gql)
-1. [graphql/swapi-graphql](https://github.com/graphql/swapi-graphql)
-1. [greenboxal/aip](https://github.com/greenboxal/aip)
-1. [greenhat/cairo](https://github.com/greenhat/cairo)
-1. [greenhat/omnizk](https://github.com/greenhat/omnizk)
-1. [grf-labs/grf](https://github.com/grf-labs/grf)
-1. [growthbook/growthbook](https://github.com/growthbook/growthbook)
-1. [growthbook/growthbook-c-sharp](https://github.com/growthbook/growthbook-c-sharp)
-1. [growthbook/growthbook-cli](https://github.com/growthbook/growthbook-cli)
-1. [growthbook/growthbook-golang](https://github.com/growthbook/growthbook-golang)
-1. [growthbook/growthbook-js](https://github.com/growthbook/growthbook-js)
-1. [growthbook/growthbook-kotlin](https://github.com/growthbook/growthbook-kotlin)
-1. [growthbook/growthbook-php](https://github.com/growthbook/growthbook-php)
-1. [growthbook/growthbook-proxy](https://github.com/growthbook/growthbook-proxy)
-1. [growthbook/growthbook-python](https://github.com/growthbook/growthbook-python)
-1. [growthbook/growthbook-react](https://github.com/growthbook/growthbook-react)
-1. [grpc-ecosystem/grpc-gateway](https://github.com/grpc-ecosystem/grpc-gateway)
-1. [grpc/grpc](https://github.com/grpc/grpc)
-1. [grpc/grpc-go](https://github.com/grpc/grpc-go)
-1. [guanfuchen/statistics_model](https://github.com/guanfuchen/statistics_model)
-1. [guilleiguaran/xv6](https://github.com/guilleiguaran/xv6)
-1. [hackforla/311-data-archive](https://github.com/hackforla/311-data-archive)
-1. [haguro/elevenlabs-go](https://github.com/haguro/elevenlabs-go)
-1. [hahwul/dalfox](https://github.com/hahwul/dalfox)
-1. [halfrost/LeetCode-Go](https://github.com/halfrost/LeetCode-Go)
-1. [handshake-org/hs-airdrop](https://github.com/handshake-org/hs-airdrop)
-1. [hapijs/joi](https://github.com/hapijs/joi)
-1. [hashicorp-forge/hermes](https://github.com/hashicorp-forge/hermes)
-1. [hashicorp/consul](https://github.com/hashicorp/consul)
-1. [hashicorp/design-system](https://github.com/hashicorp/design-system)
-1. [hashicorp/dev-portal](https://github.com/hashicorp/dev-portal)
-1. [hashicorp/errwrap](https://github.com/hashicorp/errwrap)
-1. [hashicorp/go-multierror](https://github.com/hashicorp/go-multierror)
-1. [hashicorp/go-tfe](https://github.com/hashicorp/go-tfe)
-1. [hashicorp/hcl](https://github.com/hashicorp/hcl)
-1. [hashicorp/nomad](https://github.com/hashicorp/nomad)
-1. [hashicorp/react-components](https://github.com/hashicorp/react-components)
-1. [hashicorp/terraform](https://github.com/hashicorp/terraform)
-1. [hashicorp/terraform-provider-aws](https://github.com/hashicorp/terraform-provider-aws)
-1. [hashicorp/vault](https://github.com/hashicorp/vault)
-1. [hashicorp/waypoint-client](https://github.com/hashicorp/waypoint-client)
-1. [haskell-hint/hint](https://github.com/haskell-hint/hint)
-1. [hasura/graphql-engine](https://github.com/hasura/graphql-engine)
-1. [hatemhosny/parse-starter](https://github.com/hatemhosny/parse-starter)
-1. [helix-editor/helix](https://github.com/helix-editor/helix)
-1. [helm/helm](https://github.com/helm/helm)
-1. [hgrecco/pint](https://github.com/hgrecco/pint)
-1. [hms-dbmi/UpSetR](https://github.com/hms-dbmi/UpSetR)
-1. [holoviz/holoviews](https://github.com/holoviz/holoviews)
-1. [holoviz/panel](https://github.com/holoviz/panel)
-1. [holoviz/param](https://github.com/holoviz/param)
-1. [home-assistant/core](https://github.com/home-assistant/core)
-1. [hora-search/hora](https://github.com/hora-search/hora)
-1. [hpi-swa-lab/SqueakByExample-english](https://github.com/hpi-swa-lab/SqueakByExample-english)
-1. [hpi-swa-lab/godot-pronto](https://github.com/hpi-swa-lab/godot-pronto)
-1. [hpi-swa-lab/squeak-inbox-talk](https://github.com/hpi-swa-lab/squeak-inbox-talk)
-1. [hpi-swa-lab/squeak-tracedebugger](https://github.com/hpi-swa-lab/squeak-tracedebugger)
-1. [hpi-swa/sandblocks](https://github.com/hpi-swa/sandblocks)
-1. [hrsh7th/nvim-cmp](https://github.com/hrsh7th/nvim-cmp)
-1. [http4s/http4s](https://github.com/http4s/http4s)
-1. [huangsam/ultimate-python](https://github.com/huangsam/ultimate-python)
-1. [hubbleprotocol/scope](https://github.com/hubbleprotocol/scope)
-1. [huggingface/accelerate](https://github.com/huggingface/accelerate)
-1. [huggingface/diffusers](https://github.com/huggingface/diffusers)
-1. [huggingface/peft](https://github.com/huggingface/peft)
-1. [huggingface/tokenizers](https://github.com/huggingface/tokenizers)
-1. [huggingface/transformers](https://github.com/huggingface/transformers)
-1. [hustoj/hustoj-neo](https://github.com/hustoj/hustoj-neo)
-1. [hustoj/runner](https://github.com/hustoj/runner)
-1. [hwchase17/langchain](https://github.com/hwchase17/langchain)
-1. [hwchase17/langchain-codespaces](https://github.com/hwchase17/langchain-codespaces)
-1. [hwchase17/langchain-gradio-template](https://github.com/hwchase17/langchain-gradio-template)
-1. [hwchase17/langchain-hub](https://github.com/hwchase17/langchain-hub)
-1. [hwchase17/langchain-pages](https://github.com/hwchase17/langchain-pages)
-1. [hwchase17/langchain-streamlit-template](https://github.com/hwchase17/langchain-streamlit-template)
-1. [hwchase17/langchain-template-node-fly](https://github.com/hwchase17/langchain-template-node-fly)
-1. [hwchase17/langchainjs](https://github.com/hwchase17/langchainjs)
-1. [hypothesis/browser-extension](https://github.com/hypothesis/browser-extension)
-1. [iPoetDev/terni-lapilli--toe](https://github.com/iPoetDev/terni-lapilli--toe)
-1. [iainc/iA-Writer-Templates](https://github.com/iainc/iA-Writer-Templates)
-1. [ibi-group/datatools-server](https://github.com/ibi-group/datatools-server)
-1. [ibi-group/datatools-ui](https://github.com/ibi-group/datatools-ui)
-1. [ideasman42/nerd-dictation](https://github.com/ideasman42/nerd-dictation)
-1. [iluwatar/java-design-patterns](https://github.com/iluwatar/java-design-patterns)
-1. [immich-app/immich](https://github.com/immich-app/immich)
-1. [import-js/eslint-plugin-import](https://github.com/import-js/eslint-plugin-import)
-1. [indeedeng/anomaly-detection](https://github.com/indeedeng/anomaly-detection)
-1. [indeedeng/api](https://github.com/indeedeng/api)
-1. [indeedeng/apollo-kotlin](https://github.com/indeedeng/apollo-kotlin)
-1. [indeedeng/charm](https://github.com/indeedeng/charm)
-1. [indeedeng/cni](https://github.com/indeedeng/cni)
-1. [indeedeng/imhotep](https://github.com/indeedeng/imhotep)
-1. [indeedeng/imhotep-builder-jira](https://github.com/indeedeng/imhotep-builder-jira)
-1. [indeedeng/imhotep-cloudformation](https://github.com/indeedeng/imhotep-cloudformation)
-1. [indeedeng/imhotep-docker](https://github.com/indeedeng/imhotep-docker)
-1. [indeedeng/proctor](https://github.com/indeedeng/proctor)
-1. [indico/indico](https://github.com/indico/indico)
-1. [indoorvivants/sn-bindgen](https://github.com/indoorvivants/sn-bindgen)
-1. [influitive/apartment](https://github.com/influitive/apartment)
-1. [influitive/multiple_man](https://github.com/influitive/multiple_man)
-1. [infracost/infracost](https://github.com/infracost/infracost)
-1. [input-leap/input-leap](https://github.com/input-leap/input-leap)
-1. [inspect-js/node-deep-equal](https://github.com/inspect-js/node-deep-equal)
-1. [inspect-js/object-inspect](https://github.com/inspect-js/object-inspect)
-1. [inspect-js/which-collection](https://github.com/inspect-js/which-collection)
-1. [instacart/Nantes](https://github.com/instacart/Nantes)
-1. [instacart/Snacks](https://github.com/instacart/Snacks)
-1. [instacart/TrueTime.swift](https://github.com/instacart/TrueTime.swift)
-1. [instacart/activerecord-redshift-adapter](https://github.com/instacart/activerecord-redshift-adapter)
-1. [instacart/ahab](https://github.com/instacart/ahab)
-1. [instacart/ahoy-android](https://github.com/instacart/ahoy-android)
-1. [instacart/amountable](https://github.com/instacart/amountable)
-1. [instacart/arn](https://github.com/instacart/arn)
-1. [instacart/cwam](https://github.com/instacart/cwam)
-1. [instacart/formula](https://github.com/instacart/formula)
-1. [instacart/instacart-android-pp-sandbox](https://github.com/instacart/instacart-android-pp-sandbox)
-1. [instacart/instacart-ios-pp-starter](https://github.com/instacart/instacart-ios-pp-starter)
-1. [instacart/jardin-archived](https://github.com/instacart/jardin-archived)
-1. [instacart/lore](https://github.com/instacart/lore)
-1. [instacart/makara](https://github.com/instacart/makara)
-1. [instacart/ohmycron](https://github.com/instacart/ohmycron)
-1. [instacart/openapi-generator](https://github.com/instacart/openapi-generator)
-1. [instacart/optplayground](https://github.com/instacart/optplayground)
-1. [instacart/pghero](https://github.com/instacart/pghero)
-1. [instacart/rack-attack](https://github.com/instacart/rack-attack)
-1. [instacart/redux-rails](https://github.com/instacart/redux-rails)
-1. [instacart/redux-rails-resource](https://github.com/instacart/redux-rails-resource)
-1. [instacart/rswag](https://github.com/instacart/rswag)
-1. [instacart/sidekiq](https://github.com/instacart/sidekiq)
-1. [instacart/truetime-android](https://github.com/instacart/truetime-android)
-1. [instacart/ubuntu-ec2net](https://github.com/instacart/ubuntu-ec2net)
-1. [instacart/wilson_score](https://github.com/instacart/wilson_score)
-1. [intel/neural-compressor](https://github.com/intel/neural-compressor)
-1. [invoiceninja/invoiceninja](https://github.com/invoiceninja/invoiceninja)
-1. [ironsource-mobile/Mediation-Demo-Apps](https://github.com/ironsource-mobile/Mediation-Demo-Apps)
-1. [isocpp/CppCoreGuidelines](https://github.com/isocpp/CppCoreGuidelines)
-1. [isrc-cas/flounder](https://github.com/isrc-cas/flounder)
-1. [istio/istio](https://github.com/istio/istio)
-1. [istio/tools](https://github.com/istio/tools)
-1. [jaceyi/chat](https://github.com/jaceyi/chat)
-1. [jagannatharjun/qbt-theme](https://github.com/jagannatharjun/qbt-theme)
-1. [jakartaee/persistence](https://github.com/jakartaee/persistence)
-1. [jamf/API_Scripts](https://github.com/jamf/API_Scripts)
-1. [jamf/AppConfig-Generator](https://github.com/jamf/AppConfig-Generator)
-1. [jamf/PPPC-Utility](https://github.com/jamf/PPPC-Utility)
-1. [jamf/aftermath](https://github.com/jamf/aftermath)
-1. [jamf/authchanger](https://github.com/jamf/authchanger)
-1. [jamf/mut](https://github.com/jamf/mut)
-1. [jamf/regatta](https://github.com/jamf/regatta)
-1. [janestreet/bonsai](https://github.com/janestreet/bonsai)
-1. [janestreet/ppx_expect](https://github.com/janestreet/ppx_expect)
-1. [janestreet/ppx_fields_conv](https://github.com/janestreet/ppx_fields_conv)
-1. [janestreet/re2](https://github.com/janestreet/re2)
-1. [janestreet/torch](https://github.com/janestreet/torch)
-1. [janestreet/universe](https://github.com/janestreet/universe)
-1. [janestreet/vcaml](https://github.com/janestreet/vcaml)
-1. [janestreet/virtual_dom](https://github.com/janestreet/virtual_dom)
-1. [janet-lang/argparse](https://github.com/janet-lang/argparse)
-1. [janet-lang/circlet](https://github.com/janet-lang/circlet)
-1. [janet-lang/janet](https://github.com/janet-lang/janet)
-1. [janet-lang/janet-lang.org](https://github.com/janet-lang/janet-lang.org)
-1. [janet-lang/janet.vim](https://github.com/janet-lang/janet.vim)
-1. [janet-lang/janetui](https://github.com/janet-lang/janetui)
-1. [janet-lang/jaylib](https://github.com/janet-lang/jaylib)
-1. [janet-lang/jhydro](https://github.com/janet-lang/jhydro)
-1. [janet-lang/jpm](https://github.com/janet-lang/jpm)
-1. [janet-lang/json](https://github.com/janet-lang/json)
-1. [jaredpalmer/formik](https://github.com/jaredpalmer/formik)
-1. [jart/blink](https://github.com/jart/blink)
-1. [jart/cosmopolitan](https://github.com/jart/cosmopolitan)
-1. [jauderho/bl3auto](https://github.com/jauderho/bl3auto)
-1. [jauderho/dockerfiles](https://github.com/jauderho/dockerfiles)
-1. [jauderho/psfiles](https://github.com/jauderho/psfiles)
-1. [jauderho/sandbox](https://github.com/jauderho/sandbox)
-1. [jdorfman/gitcoin-bounites](https://github.com/jdorfman/gitcoin-bounites)
-1. [jdorfman/www](https://github.com/jdorfman/www)
-1. [jellydn/next-swagger-doc](https://github.com/jellydn/next-swagger-doc)
-1. [jerryjliu/llama_index](https://github.com/jerryjliu/llama_index)
-1. [jestjs/jest](https://github.com/jestjs/jest)
-1. [jgm/pandoc](https://github.com/jgm/pandoc)
-1. [jina-ai/auto-gpt-web](https://github.com/jina-ai/auto-gpt-web)
-1. [jitsucom/bulker](https://github.com/jitsucom/bulker)
-1. [jlevy/the-art-of-command-line](https://github.com/jlevy/the-art-of-command-line)
-1. [joemccann/dillinger](https://github.com/joemccann/dillinger)
-1. [johnspade/taskobot-scala](https://github.com/johnspade/taskobot-scala)
-1. [joinhandshake/Querl](https://github.com/joinhandshake/Querl)
-1. [joinhandshake/api-python](https://github.com/joinhandshake/api-python)
-1. [joinhandshake/fast_inserter](https://github.com/joinhandshake/fast_inserter)
-1. [joinhandshake/knockoff](https://github.com/joinhandshake/knockoff)
-1. [joinhandshake/seira](https://github.com/joinhandshake/seira)
-1. [jokergoo/ComplexHeatmap](https://github.com/jokergoo/ComplexHeatmap)
-1. [josephmisiti/awesome-machine-learning](https://github.com/josephmisiti/awesome-machine-learning)
-1. [jpmorganchase/jif-dashboard](https://github.com/jpmorganchase/jif-dashboard)
-1. [jpmorganchase/modular](https://github.com/jpmorganchase/modular)
-1. [jpmorganchase/python-training](https://github.com/jpmorganchase/python-training)
-1. [jpmorganchase/salt-ds](https://github.com/jpmorganchase/salt-ds)
-1. [jsdotlua/react-lua](https://github.com/jsdotlua/react-lua)
-1. [json5/json5](https://github.com/json5/json5)
-1. [jspsych/jsPsych](https://github.com/jspsych/jsPsych)
-1. [jsx-eslint/eslint-plugin-jsx-a11y](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y)
-1. [jsx-eslint/eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react)
-1. [junegunn/fzf](https://github.com/junegunn/fzf)
-1. [jupyter-server/jupyter_server](https://github.com/jupyter-server/jupyter_server)
-1. [jupyter/jupyter_client](https://github.com/jupyter/jupyter_client)
-1. [jupyter/notebook](https://github.com/jupyter/notebook)
-1. [jupyterlab/jupyterlab](https://github.com/jupyterlab/jupyterlab)
-1. [jwt/ruby-jwt](https://github.com/jwt/ruby-jwt)
-1. [k2-fsa/k2](https://github.com/k2-fsa/k2)
-1. [kairos-io/kairos](https://github.com/kairos-io/kairos)
-1. [kamranahmedse/design-patterns-for-humans](https://github.com/kamranahmedse/design-patterns-for-humans)
-1. [kangax/compat-table](https://github.com/kangax/compat-table)
-1. [kedro-org/kedro](https://github.com/kedro-org/kedro)
-1. [keeshii/ryuu-play](https://github.com/keeshii/ryuu-play)
-1. [keinsell/neuronek](https://github.com/keinsell/neuronek)
-1. [kelseyhightower/kubernetes-the-hard-way](https://github.com/kelseyhightower/kubernetes-the-hard-way)
-1. [kelseyhightower/vault-init](https://github.com/kelseyhightower/vault-init)
-1. [ken107/read-aloud](https://github.com/ken107/read-aloud)
-1. [keyval-dev/odigos](https://github.com/keyval-dev/odigos)
-1. [khuedoan/homelab](https://github.com/khuedoan/homelab)
-1. [kolobashek/specmash-itinerary](https://github.com/kolobashek/specmash-itinerary)
-1. [kolobashek/specmash-server](https://github.com/kolobashek/specmash-server)
-1. [koolhazz/LuaGameEngine](https://github.com/koolhazz/LuaGameEngine)
-1. [kovidgoyal/kitty](https://github.com/kovidgoyal/kitty)
-1. [krassowski/complex-upset](https://github.com/krassowski/complex-upset)
-1. [kristoff-it/zig-okredis](https://github.com/kristoff-it/zig-okredis)
-1. [kube-hetzner/terraform-hcloud-kube-hetzner](https://github.com/kube-hetzner/terraform-hcloud-kube-hetzner)
-1. [kubearmor/KubeArmor](https://github.com/kubearmor/KubeArmor)
-1. [kubernetes-client/javascript](https://github.com/kubernetes-client/javascript)
-1. [kubernetes-sigs/kui](https://github.com/kubernetes-sigs/kui)
-1. [kubernetes/apimachinery](https://github.com/kubernetes/apimachinery)
-1. [kubernetes/kubernetes](https://github.com/kubernetes/kubernetes)
-1. [kubernetes/test-infra](https://github.com/kubernetes/test-infra)
-1. [kubevirt/kubevirt](https://github.com/kubevirt/kubevirt)
-1. [kumahq/kuma](https://github.com/kumahq/kuma)
-1. [kumahq/kuma-demo](https://github.com/kumahq/kuma-demo)
-1. [kumahq/kuma-gui](https://github.com/kumahq/kuma-gui)
-1. [kumahq/kuma-website](https://github.com/kumahq/kuma-website)
-1. [kuzudb/kuzu](https://github.com/kuzudb/kuzu)
-1. [kysely-org/kysely](https://github.com/kysely-org/kysely)
-1. [labstack/echo](https://github.com/labstack/echo)
-1. [lampepfl/dotty](https://github.com/lampepfl/dotty)
-1. [laravel/framework](https://github.com/laravel/framework)
-1. [laravel/laravel](https://github.com/laravel/laravel)
-1. [launchbadge/sqlx](https://github.com/launchbadge/sqlx)
-1. [laurent22/joplin](https://github.com/laurent22/joplin)
-1. [lazear/sage](https://github.com/lazear/sage)
-1. [leondz/garak](https://github.com/leondz/garak)
-1. [leptos-rs/leptos](https://github.com/leptos-rs/leptos)
-1. [levitsky/pyteomics](https://github.com/levitsky/pyteomics)
-1. [lf-edge/eve](https://github.com/lf-edge/eve)
-1. [libgdx/libgdx](https://github.com/libgdx/libgdx)
-1. [libp2p/go-libp2p-pubsub](https://github.com/libp2p/go-libp2p-pubsub)
-1. [libuv/libuv](https://github.com/libuv/libuv)
-1. [lieff/minimp3](https://github.com/lieff/minimp3)
-1. [linebender/xilem](https://github.com/linebender/xilem)
-1. [linkedin/rest.li](https://github.com/linkedin/rest.li)
-1. [linkedin/venice](https://github.com/linkedin/venice)
-1. [linuxserver/docker-kasm](https://github.com/linuxserver/docker-kasm)
-1. [lit/lit](https://github.com/lit/lit)
-1. [live-codes/livecodes](https://github.com/live-codes/livecodes)
-1. [livebook-dev/livebook](https://github.com/livebook-dev/livebook)
-1. [livekit/livekit](https://github.com/livekit/livekit)
-1. [livewire/livewire](https://github.com/livewire/livewire)
-1. [ljharb/es-abstract](https://github.com/ljharb/es-abstract)
-1. [ljharb/object.assign](https://github.com/ljharb/object.assign)
-1. [ljharb/tape](https://github.com/ljharb/tape)
-1. [lllyasviel/ControlNet-v1-1-nightly](https://github.com/lllyasviel/ControlNet-v1-1-nightly)
-1. [llvm/llvm-project](https://github.com/llvm/llvm-project)
-1. [localstack/localstack](https://github.com/localstack/localstack)
-1. [locationtech/geotrellis](https://github.com/locationtech/geotrellis)
-1. [logspace-ai/langflow](https://github.com/logspace-ai/langflow)
-1. [loopbackio/loopback-connector](https://github.com/loopbackio/loopback-connector)
-1. [loopbackio/loopback-connector-mysql](https://github.com/loopbackio/loopback-connector-mysql)
-1. [loopbackio/loopback-datasource-juggler](https://github.com/loopbackio/loopback-datasource-juggler)
-1. [loopbackio/loopback-next](https://github.com/loopbackio/loopback-next)
-1. [luc-tielen/eclair-lang](https://github.com/luc-tielen/eclair-lang)
-1. [luca-git/OlaGPT](https://github.com/luca-git/OlaGPT)
-1. [lucidrains/audiolm-pytorch](https://github.com/lucidrains/audiolm-pytorch)
-1. [lucidrains/vector-quantize-pytorch](https://github.com/lucidrains/vector-quantize-pytorch)
-1. [lucidrains/vit-pytorch](https://github.com/lucidrains/vit-pytorch)
-1. [lucidrains/x-transformers](https://github.com/lucidrains/x-transformers)
-1. [lugia19/elevenlabslib](https://github.com/lugia19/elevenlabslib)
-1. [luning/jquery.parcel](https://github.com/luning/jquery.parcel)
-1. [luxiaoxun/NettyRpc](https://github.com/luxiaoxun/NettyRpc)
-1. [lvgl/lv_binding_micropython](https://github.com/lvgl/lv_binding_micropython)
-1. [maciejgryka/regex_help](https://github.com/maciejgryka/regex_help)
-1. [mage-ai/mage-ai](https://github.com/mage-ai/mage-ai)
-1. [magenta/magenta](https://github.com/magenta/magenta)
-1. [magento/magento2](https://github.com/magento/magento2)
-1. [magit/transient](https://github.com/magit/transient)
-1. [man-group/ArcticDB](https://github.com/man-group/ArcticDB)
-1. [man-group/notebooker](https://github.com/man-group/notebooker)
-1. [man-group/pytest-plugins](https://github.com/man-group/pytest-plugins)
-1. [mantinedev/mantine](https://github.com/mantinedev/mantine)
-1. [mantinedev/ui.mantine.dev](https://github.com/mantinedev/ui.mantine.dev)
-1. [marcleblanc2/cody-embeddings-discord-bot](https://github.com/marcleblanc2/cody-embeddings-discord-bot)
-1. [mark-when/timeline](https://github.com/mark-when/timeline)
-1. [mastodon/mastodon](https://github.com/mastodon/mastodon)
-1. [matomo-org/device-detector](https://github.com/matomo-org/device-detector)
-1. [matplotlib/matplotlib](https://github.com/matplotlib/matplotlib)
-1. [mattermost/mattermost](https://github.com/mattermost/mattermost)
-1. [maxcountryman/axum-login](https://github.com/maxcountryman/axum-login)
-1. [maxcountryman/flask-login](https://github.com/maxcountryman/flask-login)
-1. [mckaywrigley/chatbot-ui](https://github.com/mckaywrigley/chatbot-ui)
-1. [medallia/Word2VecJava](https://github.com/medallia/Word2VecJava)
-1. [mehcode/config-rs](https://github.com/mehcode/config-rs)
-1. [melonjs/melonJS](https://github.com/melonjs/melonJS)
-1. [meltano/meltano](https://github.com/meltano/meltano)
-1. [memphisdev/memphis](https://github.com/memphisdev/memphis)
-1. [memphisdev/memphis-benchmark](https://github.com/memphisdev/memphis-benchmark)
-1. [memphisdev/memphis-cli-old](https://github.com/memphisdev/memphis-cli-old)
-1. [memphisdev/memphis-docker](https://github.com/memphisdev/memphis-docker)
-1. [memphisdev/memphis-k8s](https://github.com/memphisdev/memphis-k8s)
-1. [memphisdev/memphis.go](https://github.com/memphisdev/memphis.go)
-1. [memphisdev/memphis.java](https://github.com/memphisdev/memphis.java)
-1. [memphisdev/memphis.js](https://github.com/memphisdev/memphis.js)
-1. [memphisdev/memphis.net](https://github.com/memphisdev/memphis.net)
-1. [memphisdev/memphis.py](https://github.com/memphisdev/memphis.py)
-1. [mercadolibre/chico](https://github.com/mercadolibre/chico)
-1. [mercadolibre/golang-restclient](https://github.com/mercadolibre/golang-restclient)
-1. [mercadolibre/java-restclient](https://github.com/mercadolibre/java-restclient)
-1. [mercadolibre/java-sdk](https://github.com/mercadolibre/java-sdk)
-1. [mercadolibre/mlbusiness-components-ios](https://github.com/mercadolibre/mlbusiness-components-ios)
-1. [mercadolibre/net-sdk](https://github.com/mercadolibre/net-sdk)
-1. [mercadolibre/php-sdk](https://github.com/mercadolibre/php-sdk)
-1. [mercadolibre/piper](https://github.com/mercadolibre/piper)
-1. [mercadolibre/python-sdk](https://github.com/mercadolibre/python-sdk)
-1. [mercadolibre/toiler](https://github.com/mercadolibre/toiler)
-1. [mesonbuild/meson](https://github.com/mesonbuild/meson)
-1. [metabase/metabase](https://github.com/metabase/metabase)
-1. [mholt/acmez](https://github.com/mholt/acmez)
-1. [micropython/micropython](https://github.com/micropython/micropython)
-1. [microsoft/DeepSpeed](https://github.com/microsoft/DeepSpeed)
-1. [microsoft/JARVIS](https://github.com/microsoft/JARVIS)
-1. [microsoft/OLive](https://github.com/microsoft/OLive)
-1. [microsoft/OpenAPI.NET](https://github.com/microsoft/OpenAPI.NET)
-1. [microsoft/PowerToys](https://github.com/microsoft/PowerToys)
-1. [microsoft/SPTAG](https://github.com/microsoft/SPTAG)
-1. [microsoft/TaskMatrix](https://github.com/microsoft/TaskMatrix)
-1. [microsoft/TypeScript](https://github.com/microsoft/TypeScript)
-1. [microsoft/Windows-Driver-Frameworks](https://github.com/microsoft/Windows-Driver-Frameworks)
-1. [microsoft/Windows-driver-samples](https://github.com/microsoft/Windows-driver-samples)
-1. [microsoft/calculator](https://github.com/microsoft/calculator)
-1. [microsoft/fluentui-blazor](https://github.com/microsoft/fluentui-blazor)
-1. [microsoft/guidance](https://github.com/microsoft/guidance)
-1. [microsoft/kiota](https://github.com/microsoft/kiota)
-1. [microsoft/microsoft-ui-xaml](https://github.com/microsoft/microsoft-ui-xaml)
-1. [microsoft/onnxruntime](https://github.com/microsoft/onnxruntime)
-1. [microsoft/playwright](https://github.com/microsoft/playwright)
-1. [microsoft/pyright](https://github.com/microsoft/pyright)
-1. [microsoft/semantic-kernel](https://github.com/microsoft/semantic-kernel)
-1. [microsoft/thrifty](https://github.com/microsoft/thrifty)
-1. [microsoft/vscode](https://github.com/microsoft/vscode)
-1. [microsoft/vscode-jupyter](https://github.com/microsoft/vscode-jupyter)
-1. [microsoft/vscode-languageserver-node](https://github.com/microsoft/vscode-languageserver-node)
-1. [miekg/dns](https://github.com/miekg/dns)
-1. [mikelove/DESeq2](https://github.com/mikelove/DESeq2)
-1. [milvus-io/knowhere](https://github.com/milvus-io/knowhere)
-1. [milvus-io/milvus](https://github.com/milvus-io/milvus)
-1. [mirror/x264](https://github.com/mirror/x264)
-1. [mit-cml/appinventor-sources](https://github.com/mit-cml/appinventor-sources)
-1. [mit-pdos/xv6-riscv](https://github.com/mit-pdos/xv6-riscv)
-1. [mjpieters/aiolimiter](https://github.com/mjpieters/aiolimiter)
-1. [mlc-ai/mlc-llm](https://github.com/mlc-ai/mlc-llm)
-1. [mljar/mercury](https://github.com/mljar/mercury)
-1. [mllg/batchtools](https://github.com/mllg/batchtools)
-1. [mobxjs/mobx](https://github.com/mobxjs/mobx)
-1. [moby/moby](https://github.com/moby/moby)
-1. [mocobeta/janome](https://github.com/mocobeta/janome)
-1. [monobilisim/whatsapp-ws](https://github.com/monobilisim/whatsapp-ws)
-1. [morganstanley/binlog](https://github.com/morganstanley/binlog)
-1. [morganstanley/desktopJS](https://github.com/morganstanley/desktopJS)
-1. [morganstanley/testplan](https://github.com/morganstanley/testplan)
-1. [mozilla/pdf.js](https://github.com/mozilla/pdf.js)
-1. [mrnugget/fzz](https://github.com/mrnugget/fzz)
-1. [mrnugget/vimconfig](https://github.com/mrnugget/vimconfig)
-1. [mrousavy/react-native-mmkv](https://github.com/mrousavy/react-native-mmkv)
-1. [mrxiaozhuox/karaty](https://github.com/mrxiaozhuox/karaty)
-1. [mui/material-ui](https://github.com/mui/material-ui)
-1. [mysql/mysql-server](https://github.com/mysql/mysql-server)
-1. [n8n-io/n8n](https://github.com/n8n-io/n8n)
-1. [nalexn/clean-architecture-swiftui](https://github.com/nalexn/clean-architecture-swiftui)
-1. [needle-mirror/com.unity.entities](https://github.com/needle-mirror/com.unity.entities)
-1. [neelnanda-io/TransformerLens](https://github.com/neelnanda-io/TransformerLens)
-1. [neo4j/neo4j](https://github.com/neo4j/neo4j)
-1. [neovim/neovim](https://github.com/neovim/neovim)
-1. [neovim/nvim-lspconfig](https://github.com/neovim/nvim-lspconfig)
-1. [nerfstudio-project/nerfstudio](https://github.com/nerfstudio-project/nerfstudio)
-1. [nestjs/docs.nestjs.com](https://github.com/nestjs/docs.nestjs.com)
-1. [nestjs/graphql](https://github.com/nestjs/graphql)
-1. [nestjs/nest](https://github.com/nestjs/nest)
-1. [nestjs/passport](https://github.com/nestjs/passport)
-1. [netdata/libjudy](https://github.com/netdata/libjudy)
-1. [netneurolab/netneurotools](https://github.com/netneurolab/netneurotools)
-1. [netneurolab/neuromaps](https://github.com/netneurolab/neuromaps)
-1. [netty/netty](https://github.com/netty/netty)
-1. [networkx/networkx](https://github.com/networkx/networkx)
-1. [neurorestore/Libra](https://github.com/neurorestore/Libra)
-1. [newrelic/go-agent](https://github.com/newrelic/go-agent)
-1. [nextauthjs/next-auth](https://github.com/nextauthjs/next-auth)
-1. [nextdns/nextdns](https://github.com/nextdns/nextdns)
-1. [nginx/nginx](https://github.com/nginx/nginx)
-1. [ngrx/platform](https://github.com/ngrx/platform)
-1. [niespodd/browser-fingerprinting](https://github.com/niespodd/browser-fingerprinting)
-1. [nim-lang/Nim](https://github.com/nim-lang/Nim)
-1. [nix-community/home-manager](https://github.com/nix-community/home-manager)
-1. [nix-community/poetry2nix](https://github.com/nix-community/poetry2nix)
-1. [nlewo/nix2container](https://github.com/nlewo/nix2container)
-1. [nltk/nltk](https://github.com/nltk/nltk)
-1. [nmrshll/auth-rs](https://github.com/nmrshll/auth-rs)
-1. [nmrshll/auth-rs-warp](https://github.com/nmrshll/auth-rs-warp)
-1. [nmrshll/bb](https://github.com/nmrshll/bb)
-1. [nmrshll/chart](https://github.com/nmrshll/chart)
-1. [nocodb/nocodb](https://github.com/nocodb/nocodb)
-1. [node-red/node-red](https://github.com/node-red/node-red)
-1. [node-red/node-red-nodes](https://github.com/node-red/node-red-nodes)
-1. [nodejs/node](https://github.com/nodejs/node)
-1. [nodejs/nodejs.org](https://github.com/nodejs/nodejs.org)
-1. [nokia/5g-network-emulator](https://github.com/nokia/5g-network-emulator)
-1. [nokia/7x50_protobufs](https://github.com/nokia/7x50_protobufs)
-1. [nokia/AndroidOpenCameraKapture](https://github.com/nokia/AndroidOpenCameraKapture)
-1. [nokia/AttestationEngine](https://github.com/nokia/AttestationEngine)
-1. [nokia/Augustus](https://github.com/nokia/Augustus)
-1. [nokia/Avro-Schema-Generator](https://github.com/nokia/Avro-Schema-Generator)
-1. [nokia/BYONND](https://github.com/nokia/BYONND)
-1. [nokia/CMPclient-embedded-lib](https://github.com/nokia/CMPclient-embedded-lib)
-1. [nokia/CPU-Pooler](https://github.com/nokia/CPU-Pooler)
-1. [nokia/ClickNF](https://github.com/nokia/ClickNF)
-1. [nokia/CloudFlow](https://github.com/nokia/CloudFlow)
-1. [nokia/LearningStore](https://github.com/nokia/LearningStore)
-1. [nokia/NCBounds](https://github.com/nokia/NCBounds)
-1. [nokia/ONAP-VESPA](https://github.com/nokia/ONAP-VESPA)
-1. [nokia/OSSMediator](https://github.com/nokia/OSSMediator)
-1. [nokia/OWASP-CheatSheetSeries](https://github.com/nokia/OWASP-CheatSheetSeries)
-1. [nokia/PyBGL](https://github.com/nokia/PyBGL)
-1. [nokia/PyVenvManage](https://github.com/nokia/PyVenvManage)
-1. [nokia/RED](https://github.com/nokia/RED)
-1. [nokia/SROS-grpc-services](https://github.com/nokia/SROS-grpc-services)
-1. [nokia/SReXperts](https://github.com/nokia/SReXperts)
-1. [nokia/SYSLIB](https://github.com/nokia/SYSLIB)
-1. [nokia/SliM](https://github.com/nokia/SliM)
-1. [nokia/TPMCourse](https://github.com/nokia/TPMCourse)
-1. [nokia/YangModels](https://github.com/nokia/YangModels)
-1. [nokia/accelerated-offloading](https://github.com/nokia/accelerated-offloading)
-1. [nokia/adcs-issuer](https://github.com/nokia/adcs-issuer)
-1. [nokia/akka-typed-persistence](https://github.com/nokia/akka-typed-persistence)
-1. [nokia/ansible-networking-collections](https://github.com/nokia/ansible-networking-collections)
-1. [nokia/argocd-krm-plugin-examples](https://github.com/nokia/argocd-krm-plugin-examples)
-1. [nokia/armadillo-with-fixed-point-support](https://github.com/nokia/armadillo-with-fixed-point-support)
-1. [nokia/asn1c](https://github.com/nokia/asn1c)
-1. [nokia/atom-netconf](https://github.com/nokia/atom-netconf)
-1. [nokia/awkcc](https://github.com/nokia/awkcc)
-1. [nokia/backstage](https://github.com/nokia/backstage)
-1. [nokia/causal-digital-twin](https://github.com/nokia/causal-digital-twin)
-1. [nokia/code-compass](https://github.com/nokia/code-compass)
-1. [nokia/codesearch](https://github.com/nokia/codesearch)
-1. [nokia/consumer-rate-limiting](https://github.com/nokia/consumer-rate-limiting)
-1. [nokia/contract-test-framework](https://github.com/nokia/contract-test-framework)
-1. [nokia/cppJNI](https://github.com/nokia/cppJNI)
-1. [nokia/danm](https://github.com/nokia/danm)
-1. [nokia/danm-utils](https://github.com/nokia/danm-utils)
-1. [nokia/docker-registry-client](https://github.com/nokia/docker-registry-client)
-1. [nokia/domino-library](https://github.com/nokia/domino-library)
-1. [nokia/dynamic-local-pv-provisioner](https://github.com/nokia/dynamic-local-pv-provisioner)
-1. [nokia/etcd-cpp-api](https://github.com/nokia/etcd-cpp-api)
-1. [nokia/git-changelog-generator](https://github.com/nokia/git-changelog-generator)
-1. [nokia/gitcache-ssh](https://github.com/nokia/gitcache-ssh)
-1. [nokia/gitops-conductor](https://github.com/nokia/gitops-conductor)
-1. [nokia/gnmi](https://github.com/nokia/gnmi)
-1. [nokia/gnmic](https://github.com/nokia/gnmic)
-1. [nokia/helm-charts](https://github.com/nokia/helm-charts)
-1. [nokia/intel-nuc-router](https://github.com/nokia/intel-nuc-router)
-1. [nokia/jspy](https://github.com/nokia/jspy)
-1. [nokia/k8s-ipam](https://github.com/nokia/k8s-ipam)
-1. [nokia/kong](https://github.com/nokia/kong)
-1. [nokia/kong-oidc](https://github.com/nokia/kong-oidc)
-1. [nokia/koredump](https://github.com/nokia/koredump)
-1. [nokia/kubernetes-community](https://github.com/nokia/kubernetes-community)
-1. [nokia/kubernetes-contrib](https://github.com/nokia/kubernetes-contrib)
-1. [nokia/ldap-tgen](https://github.com/nokia/ldap-tgen)
-1. [nokia/libNoSync](https://github.com/nokia/libNoSync)
-1. [nokia/libdash](https://github.com/nokia/libdash)
-1. [nokia/mesos-scala-api](https://github.com/nokia/mesos-scala-api)
-1. [nokia/minifold](https://github.com/nokia/minifold)
-1. [nokia/moler](https://github.com/nokia/moler)
-1. [nokia/napalm-sros](https://github.com/nokia/napalm-sros)
-1. [nokia/natural-language-processing](https://github.com/nokia/natural-language-processing)
-1. [nokia/ncm-issuer](https://github.com/nokia/ncm-issuer)
-1. [nokia/nephio-nephio](https://github.com/nokia/nephio-nephio)
-1. [nokia/nlc2cmd-submission-hubris](https://github.com/nokia/nlc2cmd-submission-hubris)
-1. [nokia/nokia-deployer](https://github.com/nokia/nokia-deployer)
-1. [nokia/nsp-workflow](https://github.com/nokia/nsp-workflow)
-1. [nokia/ntt](https://github.com/nokia/ntt)
-1. [nokia/pandas-extras](https://github.com/nokia/pandas-extras)
-1. [nokia/prometheus-metric-tools](https://github.com/nokia/prometheus-metric-tools)
-1. [nokia/protobufs](https://github.com/nokia/protobufs)
-1. [nokia/pygnmi](https://github.com/nokia/pygnmi)
-1. [nokia/pysros](https://github.com/nokia/pysros)
-1. [nokia/pytest-exploratory](https://github.com/nokia/pytest-exploratory)
-1. [nokia/radish-bdd-extensions](https://github.com/nokia/radish-bdd-extensions)
-1. [nokia/rcm-bluez](https://github.com/nokia/rcm-bluez)
-1. [nokia/regexp-learner](https://github.com/nokia/regexp-learner)
-1. [nokia/restful](https://github.com/nokia/restful)
-1. [nokia/robotframework-autoitlibrary](https://github.com/nokia/robotframework-autoitlibrary)
-1. [nokia/saltstack-formulas](https://github.com/nokia/saltstack-formulas)
-1. [nokia/samtools](https://github.com/nokia/samtools)
-1. [nokia/scorecard](https://github.com/nokia/scorecard)
-1. [nokia/skilltree](https://github.com/nokia/skilltree)
-1. [nokia/srlinux-ansible-collection](https://github.com/nokia/srlinux-ansible-collection)
-1. [nokia/srlinux-container-image](https://github.com/nokia/srlinux-container-image)
-1. [nokia/srlinux-ndk-go](https://github.com/nokia/srlinux-ndk-go)
-1. [nokia/srlinux-ndk-protobufs](https://github.com/nokia/srlinux-ndk-protobufs)
-1. [nokia/srlinux-ndk-py](https://github.com/nokia/srlinux-ndk-py)
-1. [nokia/srlinux-yang-models](https://github.com/nokia/srlinux-yang-models)
-1. [nokia/sros-ansible](https://github.com/nokia/sros-ansible)
-1. [nokia/time-series-data-collector](https://github.com/nokia/time-series-data-collector)
-1. [nokia/ts-serialize-closures](https://github.com/nokia/ts-serialize-closures)
-1. [nokia/twampy](https://github.com/nokia/twampy)
-1. [nokia/unixgame-challenges](https://github.com/nokia/unixgame-challenges)
-1. [nokia/vault_keystone_plugin](https://github.com/nokia/vault_keystone_plugin)
-1. [nokia/virtualenvrunner](https://github.com/nokia/virtualenvrunner)
-1. [nokia/vscode-netconf](https://github.com/nokia/vscode-netconf)
-1. [nokia/vscode-ttcn3](https://github.com/nokia/vscode-ttcn3)
-1. [nokia/web-assembly-self-certifying-compilation-framework](https://github.com/nokia/web-assembly-self-certifying-compilation-framework)
-1. [nokia/wiredis](https://github.com/nokia/wiredis)
-1. [nokia/wireless-suite](https://github.com/nokia/wireless-suite)
-1. [nokiatech/heif](https://github.com/nokiatech/heif)
-1. [nomic-ai/gpt4all](https://github.com/nomic-ai/gpt4all)
-1. [nopSolutions/nopCommerce](https://github.com/nopSolutions/nopCommerce)
-1. [not-fl3/macroquad](https://github.com/not-fl3/macroquad)
-1. [nothings/stb](https://github.com/nothings/stb)
-1. [nrfconnect/sdk-nrf](https://github.com/nrfconnect/sdk-nrf)
-1. [nrwl/nx](https://github.com/nrwl/nx)
-1. [nuljon/mm](https://github.com/nuljon/mm)
-1. [numpy/numpy](https://github.com/numpy/numpy)
-1. [numtide/devshell](https://github.com/numtide/devshell)
-1. [nushell/nushell](https://github.com/nushell/nushell)
-1. [nutanix/libvfio-user](https://github.com/nutanix/libvfio-user)
-1. [nuxt/nuxt](https://github.com/nuxt/nuxt)
-1. [nvim-lua/kickstart.nvim](https://github.com/nvim-lua/kickstart.nvim)
-1. [nvim-lua/plenary.nvim](https://github.com/nvim-lua/plenary.nvim)
-1. [nvim-telescope/telescope.nvim](https://github.com/nvim-telescope/telescope.nvim)
-1. [nvm-sh/nvm](https://github.com/nvm-sh/nvm)
-1. [o1-labs/snarkyjs](https://github.com/o1-labs/snarkyjs)
-1. [objeck/objeck-lang](https://github.com/objeck/objeck-lang)
-1. [observatorium/api](https://github.com/observatorium/api)
-1. [oceanbase/oceanbase](https://github.com/oceanbase/oceanbase)
-1. [oess/oeommtools](https://github.com/oess/oeommtools)
-1. [okta/okta-auth-js](https://github.com/okta/okta-auth-js)
-1. [olrea/openai-cpp](https://github.com/olrea/openai-cpp)
-1. [onnx/onnx](https://github.com/onnx/onnx)
-1. [onnx/onnx-tensorrt](https://github.com/onnx/onnx-tensorrt)
-1. [oobabooga/text-generation-webui](https://github.com/oobabooga/text-generation-webui)
-1. [open-mmlab/mmcv](https://github.com/open-mmlab/mmcv)
-1. [open-telemetry/opentelemetry-collector](https://github.com/open-telemetry/opentelemetry-collector)
-1. [open-telemetry/opentelemetry-collector-contrib](https://github.com/open-telemetry/opentelemetry-collector-contrib)
-1. [open-telemetry/opentelemetry-demo](https://github.com/open-telemetry/opentelemetry-demo)
-1. [open-telemetry/opentelemetry-go](https://github.com/open-telemetry/opentelemetry-go)
-1. [open-telemetry/opentelemetry-java](https://github.com/open-telemetry/opentelemetry-java)
-1. [open-telemetry/opentelemetry-js](https://github.com/open-telemetry/opentelemetry-js)
-1. [openai-translator/openai-translator](https://github.com/openai-translator/openai-translator)
-1. [openai/chatgpt-retrieval-plugin](https://github.com/openai/chatgpt-retrieval-plugin)
-1. [openai/evals](https://github.com/openai/evals)
-1. [openai/openai-cookbook](https://github.com/openai/openai-cookbook)
-1. [openai/openai-python](https://github.com/openai/openai-python)
-1. [openai/triton](https://github.com/openai/triton)
-1. [openconfig/gnmi](https://github.com/openconfig/gnmi)
-1. [openconfig/gnmic](https://github.com/openconfig/gnmic)
-1. [openconfig/reference](https://github.com/openconfig/reference)
-1. [openconfig/ygot](https://github.com/openconfig/ygot)
-1. [opencv/opencv](https://github.com/opencv/opencv)
-1. [opendoor-labs/protoc-gen-graphql](https://github.com/opendoor-labs/protoc-gen-graphql)
-1. [opendoor-labs/pyfin](https://github.com/opendoor-labs/pyfin)
-1. [opendoor-labs/rets](https://github.com/opendoor-labs/rets)
-1. [openfga/openfga](https://github.com/openfga/openfga)
-1. [openframeworks/openFrameworks](https://github.com/openframeworks/openFrameworks)
-1. [openjdk/jdk](https://github.com/openjdk/jdk)
-1. [openlayers/openlayers](https://github.com/openlayers/openlayers)
-1. [openrelayxyz/plugeth](https://github.com/openrelayxyz/plugeth)
-1. [openssl/openssl](https://github.com/openssl/openssl)
-1. [opentripplanner/OpenTripPlanner](https://github.com/opentripplanner/OpenTripPlanner)
-1. [opentripplanner/otp-react-redux](https://github.com/opentripplanner/otp-react-redux)
-1. [opentripplanner/otp-ui](https://github.com/opentripplanner/otp-ui)
-1. [openxla/iree](https://github.com/openxla/iree)
-1. [operator-framework/api](https://github.com/operator-framework/api)
-1. [operator-framework/catalogd](https://github.com/operator-framework/catalogd)
-1. [operator-framework/deppy](https://github.com/operator-framework/deppy)
-1. [operator-framework/olm-docs](https://github.com/operator-framework/olm-docs)
-1. [operator-framework/operator-controller](https://github.com/operator-framework/operator-controller)
-1. [operator-framework/operator-lifecycle-manager](https://github.com/operator-framework/operator-lifecycle-manager)
-1. [operator-framework/operator-registry](https://github.com/operator-framework/operator-registry)
-1. [operator-framework/operator-sdk](https://github.com/operator-framework/operator-sdk)
-1. [operator-framework/rukpak](https://github.com/operator-framework/rukpak)
-1. [osTicket/osTicket](https://github.com/osTicket/osTicket)
-1. [osTicket/osTicket-plugins](https://github.com/osTicket/osTicket-plugins)
-1. [ossu/computer-science](https://github.com/ossu/computer-science)
-1. [oven-sh/bun](https://github.com/oven-sh/bun)
-1. [pachyderm/pachyderm](https://github.com/pachyderm/pachyderm)
-1. [pacocoursey/cmdk](https://github.com/pacocoursey/cmdk)
-1. [paisano-nix/core](https://github.com/paisano-nix/core)
-1. [paisano-nix/tui](https://github.com/paisano-nix/tui)
-1. [palantir/blueprint](https://github.com/palantir/blueprint)
-1. [pallets/click](https://github.com/pallets/click)
-1. [pallets/flask](https://github.com/pallets/flask)
-1. [pandas-dev/pandas](https://github.com/pandas-dev/pandas)
-1. [panoply/esthetic](https://github.com/panoply/esthetic)
-1. [panva/node-oidc-provider](https://github.com/panva/node-oidc-provider)
-1. [paritytech/substrate](https://github.com/paritytech/substrate)
-1. [pastelsky/bundlephobia](https://github.com/pastelsky/bundlephobia)
-1. [paul-gauthier/aider](https://github.com/paul-gauthier/aider)
-1. [paulmillr/es6-shim](https://github.com/paulmillr/es6-shim)
-1. [payloadcms/payload](https://github.com/payloadcms/payload)
-1. [payloadcms/plugin-cloud-storage](https://github.com/payloadcms/plugin-cloud-storage)
-1. [payloadcms/plugin-form-builder](https://github.com/payloadcms/plugin-form-builder)
-1. [payloadcms/plugin-nested-docs](https://github.com/payloadcms/plugin-nested-docs)
-1. [payloadcms/plugin-password-protection](https://github.com/payloadcms/plugin-password-protection)
-1. [payloadcms/plugin-search](https://github.com/payloadcms/plugin-search)
-1. [payloadcms/plugin-seo](https://github.com/payloadcms/plugin-seo)
-1. [payloadcms/template-ecommerce](https://github.com/payloadcms/template-ecommerce)
-1. [payloadcms/template-ecommerce-nextjs](https://github.com/payloadcms/template-ecommerce-nextjs)
-1. [pbatard/rufus](https://github.com/pbatard/rufus)
-1. [penpot/penpot](https://github.com/penpot/penpot)
-1. [penpot/penpot-admin](https://github.com/penpot/penpot-admin)
-1. [penpot/penpot-docs](https://github.com/penpot/penpot-docs)
-1. [penpot/penpot-files](https://github.com/penpot/penpot-files)
-1. [penrose/penrose](https://github.com/penrose/penrose)
-1. [phillco/talon-axkit](https://github.com/phillco/talon-axkit)
-1. [phoenixframework/phoenix](https://github.com/phoenixframework/phoenix)
-1. [php/php-src](https://github.com/php/php-src)
-1. [pinterest/PINRemoteImage](https://github.com/pinterest/PINRemoteImage)
-1. [pinterest/api-description](https://github.com/pinterest/api-description)
-1. [pinterest/api-quickstart](https://github.com/pinterest/api-quickstart)
-1. [pinterest/arcanist-linters](https://github.com/pinterest/arcanist-linters)
-1. [pinterest/arcanist-owners](https://github.com/pinterest/arcanist-owners)
-1. [pinterest/bazel](https://github.com/pinterest/bazel)
-1. [pinterest/bender](https://github.com/pinterest/bender)
-1. [pinterest/bonsai](https://github.com/pinterest/bonsai)
-1. [pinterest/corman](https://github.com/pinterest/corman)
-1. [pinterest/debezium](https://github.com/pinterest/debezium)
-1. [pinterest/gestalt](https://github.com/pinterest/gestalt)
-1. [pinterest/knox](https://github.com/pinterest/knox)
-1. [pinterest/querybook](https://github.com/pinterest/querybook)
-1. [plaid/pattern](https://github.com/plaid/pattern)
-1. [plaid/plaid-python](https://github.com/plaid/plaid-python)
-1. [plaid/quickstart](https://github.com/plaid/quickstart)
-1. [plasmicapp/plasmic](https://github.com/plasmicapp/plasmic)
-1. [plastic-labs/tutor-gpt](https://github.com/plastic-labs/tutor-gpt)
-1. [plausible/analytics](https://github.com/plausible/analytics)
-1. [plokhotnyuk/jsoniter-scala](https://github.com/plokhotnyuk/jsoniter-scala)
-1. [plokhotnyuk/rtree2d](https://github.com/plokhotnyuk/rtree2d)
-1. [pmndrs/jotai](https://github.com/pmndrs/jotai)
-1. [pnpm/pnpm](https://github.com/pnpm/pnpm)
-1. [pola-rs/polars](https://github.com/pola-rs/polars)
-1. [pomdtr/sunbeam](https://github.com/pomdtr/sunbeam)
-1. [postcss/postcss](https://github.com/postcss/postcss)
-1. [postgres/postgres](https://github.com/postgres/postgres)
-1. [preactjs/preact](https://github.com/preactjs/preact)
-1. [preactjs/signals](https://github.com/preactjs/signals)
-1. [prestodb/presto](https://github.com/prestodb/presto)
-1. [primefaces/primeng](https://github.com/primefaces/primeng)
-1. [princeton-nlp/tree-of-thought-llm](https://github.com/princeton-nlp/tree-of-thought-llm)
-1. [princeton-vl/infinigen](https://github.com/princeton-vl/infinigen)
-1. [prisma/docs](https://github.com/prisma/docs)
-1. [prisma/ecosystem-tests](https://github.com/prisma/ecosystem-tests)
-1. [prisma/language-tools](https://github.com/prisma/language-tools)
-1. [prisma/prisma](https://github.com/prisma/prisma)
-1. [prisma/prisma-engines](https://github.com/prisma/prisma-engines)
-1. [probml/pyprobml](https://github.com/probml/pyprobml)
-1. [processing/p5.js](https://github.com/processing/p5.js)
-1. [prometheus/alertmanager](https://github.com/prometheus/alertmanager)
-1. [prometheus/prometheus](https://github.com/prometheus/prometheus)
-1. [prometheus/prometheus_api_client_ruby](https://github.com/prometheus/prometheus_api_client_ruby)
-1. [provectus/kafka-ui](https://github.com/provectus/kafka-ui)
-1. [prysmaticlabs/prysm](https://github.com/prysmaticlabs/prysm)
-1. [psf/black](https://github.com/psf/black)
-1. [pubkey/rxdb](https://github.com/pubkey/rxdb)
-1. [public-apis/public-apis](https://github.com/public-apis/public-apis)
-1. [pulumi/pulumi](https://github.com/pulumi/pulumi)
-1. [pydantic/pydantic](https://github.com/pydantic/pydantic)
-1. [pydcs/dcs](https://github.com/pydcs/dcs)
-1. [pygame/pygame](https://github.com/pygame/pygame)
-1. [pymc-devs/pymc](https://github.com/pymc-devs/pymc)
-1. [pynamodb/PynamoDB](https://github.com/pynamodb/PynamoDB)
-1. [pypa/cibuildwheel](https://github.com/pypa/cibuildwheel)
-1. [pyscript/pyscript](https://github.com/pyscript/pyscript)
-1. [python-discord/bot](https://github.com/python-discord/bot)
-1. [python/cpython](https://github.com/python/cpython)
-1. [pytorch/examples](https://github.com/pytorch/examples)
-1. [pytorch/pytorch](https://github.com/pytorch/pytorch)
-1. [qbittorrent/qBittorrent](https://github.com/qbittorrent/qBittorrent)
-1. [qdrant/qdrant](https://github.com/qdrant/qdrant)
-1. [qdrant/vector-db-benchmark](https://github.com/qdrant/vector-db-benchmark)
-1. [qemu/qemu](https://github.com/qemu/qemu)
-1. [qilingframework/qiling](https://github.com/qilingframework/qiling)
-1. [qmk/qmk_configurator](https://github.com/qmk/qmk_configurator)
-1. [quickwit-oss/tantivy](https://github.com/quickwit-oss/tantivy)
-1. [quil/quil](https://github.com/quil/quil)
-1. [quilljs/quill](https://github.com/quilljs/quill)
-1. [qunash/hf-spaces-semantic-search](https://github.com/qunash/hf-spaces-semantic-search)
-1. [radix-ui/primitives](https://github.com/radix-ui/primitives)
-1. [rafaelw/mutation-summary](https://github.com/rafaelw/mutation-summary)
-1. [rails/rails](https://github.com/rails/rails)
-1. [rainforestapp/rainforest-cli](https://github.com/rainforestapp/rainforest-cli)
-1. [ramda/ramda](https://github.com/ramda/ramda)
-1. [ramnes/notion-sdk-py](https://github.com/ramnes/notion-sdk-py)
-1. [ranaroussi/yfinance](https://github.com/ranaroussi/yfinance)
-1. [rancher/elemental](https://github.com/rancher/elemental)
-1. [rasbt/deeplearning-models](https://github.com/rasbt/deeplearning-models)
-1. [rasterio/rasterio](https://github.com/rasterio/rasterio)
-1. [ravendb/ravendb](https://github.com/ravendb/ravendb)
-1. [ray-project/kuberay](https://github.com/ray-project/kuberay)
-1. [ray-project/ray](https://github.com/ray-project/ray)
-1. [raycast/extensions](https://github.com/raycast/extensions)
-1. [raysan5/raylib](https://github.com/raysan5/raylib)
-1. [rclone/rclone](https://github.com/rclone/rclone)
-1. [react-hook-form/react-hook-form](https://github.com/react-hook-form/react-hook-form)
-1. [react-navigation/react-navigation](https://github.com/react-navigation/react-navigation)
-1. [reactjs/react.dev](https://github.com/reactjs/react.dev)
-1. [reddit/IndicatorFastScroll](https://github.com/reddit/IndicatorFastScroll)
-1. [redhat-developer/odo](https://github.com/redhat-developer/odo)
-1. [redis/redis](https://github.com/redis/redis)
-1. [redis/redis-doc](https://github.com/redis/redis-doc)
-1. [reduxjs/redux](https://github.com/reduxjs/redux)
-1. [reduxjs/redux-toolkit](https://github.com/reduxjs/redux-toolkit)
-1. [redwoodjs/redwood](https://github.com/redwoodjs/redwood)
-1. [reinismu/runescape-web-client-377](https://github.com/reinismu/runescape-web-client-377)
-1. [release-it/release-it](https://github.com/release-it/release-it)
-1. [remix-run/react-router](https://github.com/remix-run/react-router)
-1. [remix-run/remix](https://github.com/remix-run/remix)
-1. [renovatebot/renovate](https://github.com/renovatebot/renovate)
-1. [renovatebot/renovate-approve-bot](https://github.com/renovatebot/renovate-approve-bot)
-1. [renovatebot/renovate-approve-bot-bitbucket-cloud](https://github.com/renovatebot/renovate-approve-bot-bitbucket-cloud)
-1. [renovatebot/renovatebot.github.io](https://github.com/renovatebot/renovatebot.github.io)
-1. [replayio/devtools](https://github.com/replayio/devtools)
-1. [replicatedhq/kURL](https://github.com/replicatedhq/kURL)
-1. [replicatedhq/kots](https://github.com/replicatedhq/kots)
-1. [returntocorp/semgrep](https://github.com/returntocorp/semgrep)
-1. [returntocorp/semgrep-rules](https://github.com/returntocorp/semgrep-rules)
-1. [reworkd/AgentGPT](https://github.com/reworkd/AgentGPT)
-1. [roboflow/notebooks](https://github.com/roboflow/notebooks)
-1. [roboflow/supervision](https://github.com/roboflow/supervision)
-1. [roboflow/zero-shot-object-tracking](https://github.com/roboflow/zero-shot-object-tracking)
-1. [roq-trading/roq-api](https://github.com/roq-trading/roq-api)
-1. [ros2/examples](https://github.com/ros2/examples)
-1. [ros2/ros2](https://github.com/ros2/ros2)
-1. [rostedt/trace-cmd](https://github.com/rostedt/trace-cmd)
-1. [rrousselGit/riverpod](https://github.com/rrousselGit/riverpod)
-1. [rspec/rspec-core](https://github.com/rspec/rspec-core)
-1. [rstudio/py-shiny](https://github.com/rstudio/py-shiny)
-1. [rstudio/shiny](https://github.com/rstudio/shiny)
-1. [rstudio/shiny-examples](https://github.com/rstudio/shiny-examples)
-1. [rubrikinc/wachy](https://github.com/rubrikinc/wachy)
-1. [run-llama/llama-api](https://github.com/run-llama/llama-api)
-1. [run-llama/llama-hub](https://github.com/run-llama/llama-hub)
-1. [run-llama/llama-lab](https://github.com/run-llama/llama-lab)
-1. [russellhaering/gosaml2](https://github.com/russellhaering/gosaml2)
-1. [rust-embedded/rust-raspberrypi-OS-tutorials](https://github.com/rust-embedded/rust-raspberrypi-OS-tutorials)
-1. [rust-lang/rust](https://github.com/rust-lang/rust)
-1. [rust-lang/rust-analyzer](https://github.com/rust-lang/rust-analyzer)
-1. [rust-phf/rust-phf](https://github.com/rust-phf/rust-phf)
-1. [rust-unofficial/patterns](https://github.com/rust-unofficial/patterns)
-1. [rwestphal/yang2-rs](https://github.com/rwestphal/yang2-rs)
-1. [saadeghi/daisyui](https://github.com/saadeghi/daisyui)
-1. [safe-global/safe-android](https://github.com/safe-global/safe-android)
-1. [safe-global/safe-wallet-web](https://github.com/safe-global/safe-wallet-web)
-1. [sagemathinc/cocalc](https://github.com/sagemathinc/cocalc)
-1. [saki4510t/UVCCamera](https://github.com/saki4510t/UVCCamera)
-1. [salesforce/ALBEF](https://github.com/salesforce/ALBEF)
-1. [salesforce/BLIP](https://github.com/salesforce/BLIP)
-1. [salesforce/CodeGen](https://github.com/salesforce/CodeGen)
-1. [salesforce/CodeT5](https://github.com/salesforce/CodeT5)
-1. [salesforce/CodeTF](https://github.com/salesforce/CodeTF)
-1. [salesforce/LAVIS](https://github.com/salesforce/LAVIS)
-1. [salesforce/Merlion](https://github.com/salesforce/Merlion)
-1. [salesforce/OmniXAI](https://github.com/salesforce/OmniXAI)
-1. [salesforce/Timbermill](https://github.com/salesforce/Timbermill)
-1. [salesforce/TransmogrifAI](https://github.com/salesforce/TransmogrifAI)
-1. [salesforce/ai-economist](https://github.com/salesforce/ai-economist)
-1. [salesforce/akita](https://github.com/salesforce/akita)
-1. [salesforce/base-components-recipes](https://github.com/salesforce/base-components-recipes)
-1. [salesforce/cloudsplaining](https://github.com/salesforce/cloudsplaining)
-1. [salesforce/ctrl](https://github.com/salesforce/ctrl)
-1. [salesforce/decaNLP](https://github.com/salesforce/decaNLP)
-1. [salesforce/design-system-react](https://github.com/salesforce/design-system-react)
-1. [salesforce/hassh](https://github.com/salesforce/hassh)
-1. [salesforce/ja3](https://github.com/salesforce/ja3)
-1. [salesforce/jarm](https://github.com/salesforce/jarm)
-1. [salesforce/lwc](https://github.com/salesforce/lwc)
-1. [salesforce/o4](https://github.com/salesforce/o4)
-1. [salesforce/p4-fusion](https://github.com/salesforce/p4-fusion)
-1. [salesforce/policy_sentry](https://github.com/salesforce/policy_sentry)
-1. [salesforce/reactive-grpc](https://github.com/salesforce/reactive-grpc)
-1. [salesforce/sa11y](https://github.com/salesforce/sa11y)
-1. [salesforce/sloop](https://github.com/salesforce/sloop)
-1. [salesforce/tough-cookie](https://github.com/salesforce/tough-cookie)
-1. [salsa-rs/salsa](https://github.com/salsa-rs/salsa)
-1. [sanity-io/sanity](https://github.com/sanity-io/sanity)
-1. [sass/sass](https://github.com/sass/sass)
-1. [satijalab/seurat](https://github.com/satijalab/seurat)
-1. [sbcl/sbcl](https://github.com/sbcl/sbcl)
-1. [scala-js/scala-js](https://github.com/scala-js/scala-js)
-1. [scala-native/scala-native](https://github.com/scala-native/scala-native)
-1. [scala/scala](https://github.com/scala/scala)
-1. [scalacenter/bloop](https://github.com/scalacenter/bloop)
-1. [scalameta/mdoc](https://github.com/scalameta/mdoc)
-1. [scalameta/metals](https://github.com/scalameta/metals)
-1. [scalameta/munit](https://github.com/scalameta/munit)
-1. [scalameta/scalameta](https://github.com/scalameta/scalameta)
-1. [scaleapi/nucleus-python-client](https://github.com/scaleapi/nucleus-python-client)
-1. [schemahero/schemahero](https://github.com/schemahero/schemahero)
-1. [scikit-learn/scikit-learn](https://github.com/scikit-learn/scikit-learn)
-1. [scipy/scipy](https://github.com/scipy/scipy)
-1. [seanmonstar/reqwest](https://github.com/seanmonstar/reqwest)
-1. [seek-oss/aec](https://github.com/seek-oss/aec)
-1. [selfrefactor/rambda](https://github.com/selfrefactor/rambda)
-1. [sequelize/sequelize](https://github.com/sequelize/sequelize)
-1. [serde-rs/serde](https://github.com/serde-rs/serde)
-1. [serenity-kit/Serenity](https://github.com/serenity-kit/Serenity)
-1. [servo/rust-url](https://github.com/servo/rust-url)
-1. [sgtest/megarepo](https://github.com/sgtest/megarepo)
-1. [shadcn-ui/taxonomy](https://github.com/shadcn-ui/taxonomy)
-1. [shadcn-ui/ui](https://github.com/shadcn-ui/ui)
-1. [shaman-ai/agent-actors](https://github.com/shaman-ai/agent-actors)
-1. [shaman-ai/llambdao](https://github.com/shaman-ai/llambdao)
-1. [shap/shap](https://github.com/shap/shap)
-1. [shapely/shapely](https://github.com/shapely/shapely)
-1. [shapely/shapely-rfc](https://github.com/shapely/shapely-rfc)
-1. [shinyorg/shiny](https://github.com/shinyorg/shiny)
-1. [shivasurya/App-invites](https://github.com/shivasurya/App-invites)
-1. [shivasurya/FeedbackDialog](https://github.com/shivasurya/FeedbackDialog)
-1. [shivasurya/android](https://github.com/shivasurya/android)
-1. [shivasurya/instamojo-webhook](https://github.com/shivasurya/instamojo-webhook)
-1. [shivasurya/openai-assistant](https://github.com/shivasurya/openai-assistant)
-1. [shivasurya/waterloo-grt-live-map](https://github.com/shivasurya/waterloo-grt-live-map)
-1. [shomali11/slacker](https://github.com/shomali11/slacker)
-1. [signalapp/Signal-Android](https://github.com/signalapp/Signal-Android)
-1. [signalapp/Signal-Desktop](https://github.com/signalapp/Signal-Desktop)
-1. [silverbullet233/starrocks](https://github.com/silverbullet233/starrocks)
-1. [simonw/datasette](https://github.com/simonw/datasette)
-1. [simonw/sqlite-utils](https://github.com/simonw/sqlite-utils)
-1. [simplcommerce/SimplCommerce](https://github.com/simplcommerce/SimplCommerce)
-1. [singer-io/getting-started](https://github.com/singer-io/getting-started)
-1. [singer-io/singer-tap-template](https://github.com/singer-io/singer-tap-template)
-1. [sirupsen/logrus](https://github.com/sirupsen/logrus)
-1. [sjoerdev/voxel-engine](https://github.com/sjoerdev/voxel-engine)
-1. [sky-uk/osprey](https://github.com/sky-uk/osprey)
-1. [slackapi/bolt-python](https://github.com/slackapi/bolt-python)
-1. [slackapi/python-slack-events-api](https://github.com/slackapi/python-slack-events-api)
-1. [slackapi/python-slack-sdk](https://github.com/slackapi/python-slack-sdk)
-1. [slowkow/ggrepel](https://github.com/slowkow/ggrepel)
-1. [smallstep/cli](https://github.com/smallstep/cli)
-1. [smallstep/cli-utils](https://github.com/smallstep/cli-utils)
-1. [smallstep/clients](https://github.com/smallstep/clients)
-1. [smol-ai/developer](https://github.com/smol-ai/developer)
-1. [smol-ai/logger](https://github.com/smol-ai/logger)
-1. [smol-ai/menubar](https://github.com/smol-ai/menubar)
-1. [socketio/socket.io](https://github.com/socketio/socket.io)
-1. [socketteer/loom](https://github.com/socketteer/loom)
-1. [solana-labs/solana-program-library](https://github.com/solana-labs/solana-program-library)
-1. [solendprotocol/solana-program-library](https://github.com/solendprotocol/solana-program-library)
-1. [solidjs/solid](https://github.com/solidjs/solid)
-1. [solidusio/solidus](https://github.com/solidusio/solidus)
-1. [solidusio/solidus_auth_devise](https://github.com/solidusio/solidus_auth_devise)
-1. [sonatype-nexus-community/iq-config-as-code](https://github.com/sonatype-nexus-community/iq-config-as-code)
-1. [sonatype/nexus-public](https://github.com/sonatype/nexus-public)
-1. [soulhighwing/LocalGPT](https://github.com/soulhighwing/LocalGPT)
-1. [sourcegraph/about](https://github.com/sourcegraph/about)
-1. [sourcegraph/app](https://github.com/sourcegraph/app)
-1. [sourcegraph/appdash](https://github.com/sourcegraph/appdash)
-1. [sourcegraph/code-intel-extensions](https://github.com/sourcegraph/code-intel-extensions)
-1. [sourcegraph/cody](https://github.com/sourcegraph/cody)
-1. [sourcegraph/cody-embeddings-discord-bot](https://github.com/sourcegraph/cody-embeddings-discord-bot)
-1. [sourcegraph/conc](https://github.com/sourcegraph/conc)
-1. [sourcegraph/deploy-sourcegraph-docker](https://github.com/sourcegraph/deploy-sourcegraph-docker)
-1. [sourcegraph/deploy-sourcegraph-helm](https://github.com/sourcegraph/deploy-sourcegraph-helm)
-1. [sourcegraph/doctree](https://github.com/sourcegraph/doctree)
-1. [sourcegraph/go-langserver](https://github.com/sourcegraph/go-langserver)
-1. [sourcegraph/handbook](https://github.com/sourcegraph/handbook)
-1. [sourcegraph/jsonrpc2](https://github.com/sourcegraph/jsonrpc2)
-1. [sourcegraph/jsonschemadoc](https://github.com/sourcegraph/jsonschemadoc)
-1. [sourcegraph/jsonx](https://github.com/sourcegraph/jsonx)
-1. [sourcegraph/k8s](https://github.com/sourcegraph/k8s)
-1. [sourcegraph/llmsp](https://github.com/sourcegraph/llmsp)
-1. [sourcegraph/scip](https://github.com/sourcegraph/scip)
-1. [sourcegraph/scip-clang](https://github.com/sourcegraph/scip-clang)
-1. [sourcegraph/scip-go](https://github.com/sourcegraph/scip-go)
-1. [sourcegraph/scip-java](https://github.com/sourcegraph/scip-java)
-1. [sourcegraph/scip-kotlin](https://github.com/sourcegraph/scip-kotlin)
-1. [sourcegraph/scip-python](https://github.com/sourcegraph/scip-python)
-1. [sourcegraph/scip-ruby](https://github.com/sourcegraph/scip-ruby)
-1. [sourcegraph/scip-rust](https://github.com/sourcegraph/scip-rust)
-1. [sourcegraph/scip-typescript](https://github.com/sourcegraph/scip-typescript)
-1. [sourcegraph/sg.nvim](https://github.com/sourcegraph/sg.nvim)
-1. [sourcegraph/sourcegraph](https://github.com/sourcegraph/sourcegraph)
-1. [sourcegraph/src-cli](https://github.com/sourcegraph/src-cli)
-1. [sourcegraph/srclib](https://github.com/sourcegraph/srclib)
-1. [sourcegraph/typescript-language-server](https://github.com/sourcegraph/typescript-language-server)
-1. [sourcegraph/zoekt](https://github.com/sourcegraph/zoekt)
-1. [spacecloud-io/space-cloud](https://github.com/spacecloud-io/space-cloud)
-1. [spdx/spdx-to-osv](https://github.com/spdx/spdx-to-osv)
-1. [speechbrain/speechbrain](https://github.com/speechbrain/speechbrain)
-1. [spf13/cobra](https://github.com/spf13/cobra)
-1. [spinamp/spindexer](https://github.com/spinamp/spindexer)
-1. [spring-projects/spring-boot](https://github.com/spring-projects/spring-boot)
-1. [spring-projects/spring-cloud](https://github.com/spring-projects/spring-cloud)
-1. [spring-projects/spring-data-book](https://github.com/spring-projects/spring-data-book)
-1. [spring-projects/spring-data-elasticsearch](https://github.com/spring-projects/spring-data-elasticsearch)
-1. [spring-projects/spring-data-redis](https://github.com/spring-projects/spring-data-redis)
-1. [spring-projects/spring-framework](https://github.com/spring-projects/spring-framework)
-1. [spring-projects/spring-restdocs](https://github.com/spring-projects/spring-restdocs)
-1. [spring-projects/spring-security](https://github.com/spring-projects/spring-security)
-1. [spring-projects/spring-ws](https://github.com/spring-projects/spring-ws)
-1. [spring/spring](https://github.com/spring/spring)
-1. [spyderbat/spydertop](https://github.com/spyderbat/spydertop)
-1. [sqlalchemy/sqlalchemy](https://github.com/sqlalchemy/sqlalchemy)
-1. [sqlite/sqlite](https://github.com/sqlite/sqlite)
-1. [square/javapoet](https://github.com/square/javapoet)
-1. [square/kotlinpoet](https://github.com/square/kotlinpoet)
-1. [square/okhttp](https://github.com/square/okhttp)
-1. [square/okio](https://github.com/square/okio)
-1. [stargate/stargate](https://github.com/stargate/stargate)
-1. [status-im/status-mobile](https://github.com/status-im/status-mobile)
-1. [steam-test1/Payday-2-LuaJIT-Complete](https://github.com/steam-test1/Payday-2-LuaJIT-Complete)
-1. [stenevang/sftp](https://github.com/stenevang/sftp)
-1. [steven-tey/dub](https://github.com/steven-tey/dub)
-1. [stitchfix/hamilton](https://github.com/stitchfix/hamilton)
-1. [storj/common](https://github.com/storj/common)
-1. [storj/gateway-mt](https://github.com/storj/gateway-mt)
-1. [storj/private](https://github.com/storj/private)
-1. [storj/storj](https://github.com/storj/storj)
-1. [storj/uplink](https://github.com/storj/uplink)
-1. [strapi/strapi](https://github.com/strapi/strapi)
-1. [streamlit/streamlit](https://github.com/streamlit/streamlit)
-1. [stretchr/testify](https://github.com/stretchr/testify)
-1. [stripe/stripe-android](https://github.com/stripe/stripe-android)
-1. [stripe/stripe-apps](https://github.com/stripe/stripe-apps)
-1. [stripe/stripe-cli](https://github.com/stripe/stripe-cli)
-1. [stripe/stripe-connect-custom-rocketdeliveries](https://github.com/stripe/stripe-connect-custom-rocketdeliveries)
-1. [stripe/stripe-ios](https://github.com/stripe/stripe-ios)
-1. [stripe/stripe-node](https://github.com/stripe/stripe-node)
-1. [stripe/stripe-php](https://github.com/stripe/stripe-php)
-1. [stripe/stripe-python](https://github.com/stripe/stripe-python)
-1. [stripe/stripe-ruby](https://github.com/stripe/stripe-ruby)
-1. [stryker-mutator/stryker-js](https://github.com/stryker-mutator/stryker-js)
-1. [stryker-mutator/stryker4s](https://github.com/stryker-mutator/stryker4s)
-1. [suika2engine/suika2](https://github.com/suika2engine/suika2)
-1. [supabase/postgres-meta](https://github.com/supabase/postgres-meta)
-1. [supabase/postgrest-js](https://github.com/supabase/postgrest-js)
-1. [supabase/realtime](https://github.com/supabase/realtime)
-1. [supabase/supabase](https://github.com/supabase/supabase)
-1. [supabase/supabase-js](https://github.com/supabase/supabase-js)
-1. [supranational/blst](https://github.com/supranational/blst)
-1. [sveltejs/kit](https://github.com/sveltejs/kit)
-1. [sveltejs/svelte](https://github.com/sveltejs/svelte)
-1. [sveltejs/svelte-todomvc](https://github.com/sveltejs/svelte-todomvc)
-1. [svenstaro/miniserve](https://github.com/svenstaro/miniserve)
-1. [swig/swig](https://github.com/swig/swig)
-1. [swyxio/swyxkit](https://github.com/swyxio/swyxkit)
-1. [symfony/symfony](https://github.com/symfony/symfony)
-1. [sympy/sympy](https://github.com/sympy/sympy)
-1. [syntaxfm/website](https://github.com/syntaxfm/website)
-1. [systemd/systemd](https://github.com/systemd/systemd)
-1. [t3-oss/create-t3-app](https://github.com/t3-oss/create-t3-app)
-1. [tableau/embedding-playbook](https://github.com/tableau/embedding-playbook)
-1. [tailscale/tailscale](https://github.com/tailscale/tailscale)
-1. [tailwindlabs/tailwindcss](https://github.com/tailwindlabs/tailwindcss)
-1. [talonhub/community](https://github.com/talonhub/community)
-1. [tatsu-lab/stanford_alpaca](https://github.com/tatsu-lab/stanford_alpaca)
-1. [tauri-apps/tauri](https://github.com/tauri-apps/tauri)
-1. [teaxyz/cli](https://github.com/teaxyz/cli)
-1. [tekumara/fakesnow](https://github.com/tekumara/fakesnow)
-1. [telepresenceio/telepresence](https://github.com/telepresenceio/telepresence)
-1. [tensorflow/tensorflow](https://github.com/tensorflow/tensorflow)
-1. [tensorflow/tfx](https://github.com/tensorflow/tfx)
-1. [tercen/ondo](https://github.com/tercen/ondo)
-1. [testcontainers/testcontainers-dotnet](https://github.com/testcontainers/testcontainers-dotnet)
-1. [testcontainers/testcontainers-go](https://github.com/testcontainers/testcontainers-go)
-1. [testcontainers/testcontainers-java](https://github.com/testcontainers/testcontainers-java)
-1. [testcontainers/testcontainers-ruby](https://github.com/testcontainers/testcontainers-ruby)
-1. [thanos-io/thanos](https://github.com/thanos-io/thanos)
-1. [thi-ng/umbrella](https://github.com/thi-ng/umbrella)
-1. [thomasjacquin/allsky](https://github.com/thomasjacquin/allsky)
-1. [tiangolo/fastapi](https://github.com/tiangolo/fastapi)
-1. [tiangolo/sqlmodel](https://github.com/tiangolo/sqlmodel)
-1. [tidyverse/dplyr](https://github.com/tidyverse/dplyr)
-1. [tidyverse/ggplot2](https://github.com/tidyverse/ggplot2)
-1. [tidyverse/purrr](https://github.com/tidyverse/purrr)
-1. [tidyverse/readr](https://github.com/tidyverse/readr)
-1. [tidyverse/rvest](https://github.com/tidyverse/rvest)
-1. [tidyverse/tidyr](https://github.com/tidyverse/tidyr)
-1. [tigerbeetledb/docs](https://github.com/tigerbeetledb/docs)
-1. [tintinweb/smart-contract-sanctuary](https://github.com/tintinweb/smart-contract-sanctuary)
-1. [tinygrad/tinygrad](https://github.com/tinygrad/tinygrad)
-1. [tis-gmbh/vscode-migrate](https://github.com/tis-gmbh/vscode-migrate)
-1. [tldraw/signia](https://github.com/tldraw/signia)
-1. [tldraw/tldraw](https://github.com/tldraw/tldraw)
-1. [tloen/alpaca-lora](https://github.com/tloen/alpaca-lora)
-1. [toasttab/GC-API-example-implementation](https://github.com/toasttab/GC-API-example-implementation)
-1. [toasttab/Loyalty-API-example-implementation](https://github.com/toasttab/Loyalty-API-example-implementation)
-1. [tobiasbueschel/search-gpt](https://github.com/tobiasbueschel/search-gpt)
-1. [tokio-rs/axum](https://github.com/tokio-rs/axum)
-1. [tokio-rs/tokio](https://github.com/tokio-rs/tokio)
-1. [tokio-rs/tokio-core](https://github.com/tokio-rs/tokio-core)
-1. [tokio-rs/tokio-io](https://github.com/tokio-rs/tokio-io)
-1. [tokio-rs/tokio-timer](https://github.com/tokio-rs/tokio-timer)
-1. [tokio-rs/tracing](https://github.com/tokio-rs/tracing)
-1. [torocatala/stickershop](https://github.com/torocatala/stickershop)
-1. [torvalds/linux](https://github.com/torvalds/linux)
-1. [tpetrychyn/osrs-map-editor](https://github.com/tpetrychyn/osrs-map-editor)
-1. [traefik/traefik](https://github.com/traefik/traefik)
-1. [transmissions11/solmate](https://github.com/transmissions11/solmate)
-1. [tree-sitter/tree-sitter](https://github.com/tree-sitter/tree-sitter)
-1. [treeverse/lakeFS](https://github.com/treeverse/lakeFS)
-1. [trilogy-group/cn-gitpod](https://github.com/trilogy-group/cn-gitpod)
-1. [trimble-oss/contribute](https://github.com/trimble-oss/contribute)
-1. [trimble-oss/dba-dash](https://github.com/trimble-oss/dba-dash)
-1. [trimble-oss/modus](https://github.com/trimble-oss/modus)
-1. [trimble-oss/modus-web-components](https://github.com/trimble-oss/modus-web-components)
-1. [trinodb/trino](https://github.com/trinodb/trino)
-1. [triton-inference-server/server](https://github.com/triton-inference-server/server)
-1. [trpc/trpc](https://github.com/trpc/trpc)
-1. [tuist/tuist](https://github.com/tuist/tuist)
-1. [tullytim/pinecone-cli](https://github.com/tullytim/pinecone-cli)
-1. [turbot/steampipe](https://github.com/turbot/steampipe)
-1. [turbot/steampipe-docs](https://github.com/turbot/steampipe-docs)
-1. [turbot/steampipe-plugin-mastodon](https://github.com/turbot/steampipe-plugin-mastodon)
-1. [turbot/steampipe-plugin-sdk](https://github.com/turbot/steampipe-plugin-sdk)
-1. [tw-in-js/twind](https://github.com/tw-in-js/twind)
-1. [twbs/bootstrap](https://github.com/twbs/bootstrap)
-1. [tweepy/tweepy](https://github.com/tweepy/tweepy)
-1. [twentyhq/twenty](https://github.com/twentyhq/twenty)
-1. [twilio-labs/paste](https://github.com/twilio-labs/paste)
-1. [twitter/the-algorithm](https://github.com/twitter/the-algorithm)
-1. [twitter/the-algorithm-ml](https://github.com/twitter/the-algorithm-ml)
-1. [typelevel/cats](https://github.com/typelevel/cats)
-1. [typelevel/cats-effect](https://github.com/typelevel/cats-effect)
-1. [typelevel/fs2](https://github.com/typelevel/fs2)
-1. [typeorm/typeorm](https://github.com/typeorm/typeorm)
-1. [typescript-eslint/typescript-eslint](https://github.com/typescript-eslint/typescript-eslint)
-1. [typst/typst](https://github.com/typst/typst)
-1. [uWaterloo/OpenData](https://github.com/uWaterloo/OpenData)
-1. [uber/h3-py](https://github.com/uber/h3-py)
-1. [ueberdosis/tiptap](https://github.com/ueberdosis/tiptap)
-1. [ultralytics/yolov5](https://github.com/ultralytics/yolov5)
-1. [umijs/umi](https://github.com/umijs/umi)
-1. [unicorn-engine/unicorn](https://github.com/unicorn-engine/unicorn)
-1. [unionai-oss/pandera](https://github.com/unionai-oss/pandera)
-1. [unocss/unocss](https://github.com/unocss/unocss)
-1. [upserve/docker-api](https://github.com/upserve/docker-api)
-1. [uptech/git-ps-rs](https://github.com/uptech/git-ps-rs)
-1. [urbit/js-http-api](https://github.com/urbit/js-http-api)
-1. [urbit/urbit](https://github.com/urbit/urbit)
-1. [urbit/vere](https://github.com/urbit/vere)
-1. [urllib3/urllib3](https://github.com/urllib3/urllib3)
-1. [v8/v8](https://github.com/v8/v8)
-1. [varabyte/kobweb](https://github.com/varabyte/kobweb)
-1. [varabyte/kotter](https://github.com/varabyte/kotter)
-1. [varabyte/truthish](https://github.com/varabyte/truthish)
-1. [vasanthk/react-bits](https://github.com/vasanthk/react-bits)
-1. [vercel-labs/ai](https://github.com/vercel-labs/ai)
-1. [vercel/next.js](https://github.com/vercel/next.js)
-1. [vercel/turbo](https://github.com/vercel/turbo)
-1. [vercel/vercel](https://github.com/vercel/vercel)
-1. [vim/vim](https://github.com/vim/vim)
-1. [vimwiki/vimwiki](https://github.com/vimwiki/vimwiki)
-1. [vindarel/cl-ansi-term](https://github.com/vindarel/cl-ansi-term)
-1. [vinta/awesome-python](https://github.com/vinta/awesome-python)
-1. [vinted/elasticsearch-dsl-rs](https://github.com/vinted/elasticsearch-dsl-rs)
-1. [vitejs/vite](https://github.com/vitejs/vite)
-1. [voxelphile/boson](https://github.com/voxelphile/boson)
-1. [vuejs/core](https://github.com/vuejs/core)
-1. [vuejs/pinia](https://github.com/vuejs/pinia)
-1. [vuejs/vue](https://github.com/vuejs/vue)
-1. [vuetifyjs/vuetify](https://github.com/vuetifyjs/vuetify)
-1. [vueuse/vueuse](https://github.com/vueuse/vueuse)
-1. [w3bdesign/dfweb-v3](https://github.com/w3bdesign/dfweb-v3)
-1. [w3bdesign/earthdoom](https://github.com/w3bdesign/earthdoom)
-1. [wagmi-dev/wagmi](https://github.com/wagmi-dev/wagmi)
-1. [walmartlabs/concord](https://github.com/walmartlabs/concord)
-1. [walmartlabs/lacinia-pedestal](https://github.com/walmartlabs/lacinia-pedestal)
-1. [warp-tech/russh](https://github.com/warp-tech/russh)
-1. [warrant-dev/warrant](https://github.com/warrant-dev/warrant)
-1. [wasp-lang/wasp](https://github.com/wasp-lang/wasp)
-1. [wbkd/react-flow](https://github.com/wbkd/react-flow)
-1. [wdullaer/MaterialDateTimePicker](https://github.com/wdullaer/MaterialDateTimePicker)
-1. [web-infra-dev/modern.js](https://github.com/web-infra-dev/modern.js)
-1. [webpack/webpack](https://github.com/webpack/webpack)
-1. [webpro/knip](https://github.com/webpro/knip)
-1. [wention/BeautifulSoup4](https://github.com/wention/BeautifulSoup4)
-1. [williamboman/mason-lspconfig.nvim](https://github.com/williamboman/mason-lspconfig.nvim)
-1. [windmill-labs/windmill](https://github.com/windmill-labs/windmill)
-1. [wine-mirror/wine](https://github.com/wine-mirror/wine)
-1. [winfsp/cgofuse](https://github.com/winfsp/cgofuse)
-1. [winglang/wing](https://github.com/winglang/wing)
-1. [wintercms/storm](https://github.com/wintercms/storm)
-1. [wintercms/winter](https://github.com/wintercms/winter)
-1. [wmd-glowforge/text2vector](https://github.com/wmd-glowforge/text2vector)
-1. [wolfeidau/snowdrift](https://github.com/wolfeidau/snowdrift)
-1. [wolfi-dev/os](https://github.com/wolfi-dev/os)
-1. [wolfpld/tracy](https://github.com/wolfpld/tracy)
-1. [wordpress-mobile/WordPress-Android](https://github.com/wordpress-mobile/WordPress-Android)
-1. [xeome/Zmem](https://github.com/xeome/Zmem)
-1. [xeome/jcc](https://github.com/xeome/jcc)
-1. [xhwhis/monkey.rs](https://github.com/xhwhis/monkey.rs)
-1. [xmake-io/xmake](https://github.com/xmake-io/xmake)
-1. [xmtp-labs/xmtp-inbox-web](https://github.com/xmtp-labs/xmtp-inbox-web)
-1. [yk/gpt-4chan-public](https://github.com/yk/gpt-4chan-public)
-1. [yoheinakajima/babyagi](https://github.com/yoheinakajima/babyagi)
-1. [yowainwright/codependence](https://github.com/yowainwright/codependence)
-1. [yugabyte/yugabyte-db](https://github.com/yugabyte/yugabyte-db)
-1. [zapier/zapier-platform](https://github.com/zapier/zapier-platform)
-1. [zed-industries/docs](https://github.com/zed-industries/docs)
-1. [zellij-org/zellij](https://github.com/zellij-org/zellij)
-1. [zephyrproject-rtos/zephyr](https://github.com/zephyrproject-rtos/zephyr)
-1. [zhllxt/asio2](https://github.com/zhllxt/asio2)
-1. [ziglang/zig](https://github.com/ziglang/zig)
-1. [zigtools/zls](https://github.com/zigtools/zls)
-1. [zilliztech/feder](https://github.com/zilliztech/feder)
-1. [zillow/luminaire](https://github.com/zillow/luminaire)
-1. [zillow/zind](https://github.com/zillow/zind)
-1. [zio/zio](https://github.com/zio/zio)
-1. [zitadel/oidc](https://github.com/zitadel/oidc)
-1. [zitadel/zitadel](https://github.com/zitadel/zitadel)
-1. [zitadel/zitadel-go](https://github.com/zitadel/zitadel-go)
-1. [zotero/pdf-reader](https://github.com/zotero/pdf-reader)
-1. [zotero/translate](https://github.com/zotero/translate)
-1. [zotero/zotero](https://github.com/zotero/zotero)
-1. [zsh-users/zsh](https://github.com/zsh-users/zsh)
diff --git a/docs/cody/enterprise/completions-configuration.mdx b/docs/cody/enterprise/completions-configuration.mdx
new file mode 100644
index 000000000..cdab972ab
--- /dev/null
+++ b/docs/cody/enterprise/completions-configuration.mdx
@@ -0,0 +1,196 @@
+# Completions Configuration
+
+Learn how to configure Cody via `completions` on a Sourcegraph Enterprise instance.
+
+Configuring Cody via `completions` is legacy but it's still supported. We recommend using the new [`modelConfiguration`](/cody/enterprise/model-configuration) for flexible LLM model selection.
+
+[Cody Enterprise](https://sourcegraph.com/enterprise) supports many models and model providers. You can configure Cody Enterprise to access models via Sourcegraph Cody Gateway or directly using your own model provider account or infrastructure. Let's look at these options in more detail.
+
+## Using Sourcegraph Cody Gateway
+
+This is the recommended way to configure Cody Enterprise. It supports all the latest models from Anthropic, OpenAI, and more without requiring a separate account or incurring separate charges. You can learn more about these in our [supported models](/cody/capabilities/supported-models) docs.
+
+## Using your organization's account with a model provider
+
+### Example: Your organization's Anthropic account
+
+First, [create your own key with Anthropic](https://console.anthropic.com/account/keys). Once you have the key, go to **Site admin > Site configuration** (`/site-admin/configuration`) on your instance and set:
+
+```json
+{
+ // [...]
+ "cody.enabled": true,
+ "completions": {
+ "provider": "anthropic",
+ "chatModel": "claude-2.0", // Or any other model you would like to use
+ "fastChatModel": "claude-instant-1.2", // Or any other model you would like to use
+ "completionModel": "claude-instant-1.2", // Or any other model you would like to use
+ "accessToken": ""
+ }
+}
+```
+
+### Example: Your organization's OpenAI account
+
+First, [create your own key with OpenAI](https://beta.openai.com/account/api-keys). Once you have the key, go to **Site admin > Site configuration** (`/site-admin/configuration`) on your instance and set:
+
+```json
+{
+ // [...]
+ "cody.enabled": true,
+ "completions": {
+ "provider": "openai",
+ "chatModel": "gpt-4", // Or any other model you would like to use
+ "fastChatModel": "gpt-3.5-turbo", // Or any other model you would like to use
+ "completionModel": "gpt-3.5-turbo-instruct", // Or any other model that supports the legacy completions endpoint
+ "accessToken": ""
+ }
+}
+```
+
+[Learn more about OpenAI models.](https://platform.openai.com/docs/models)
+
+## Using your organization's public cloud infrastructure
+
+### Example: Use Amazon Bedrock
+
+You can use Anthropic Claude models on [Amazon Bedrock](https://aws.amazon.com/bedrock/).
+
+First, make sure you can access Amazon Bedrock. Then, request access to the Anthropic Claude models in Bedrock. This may take some time to provision.
+
+Next, create an IAM user with programmatic access in your AWS account. Depending on your AWS setup, different ways may be required to provide access. All completion requests are made from the `frontend` service, so this service needs to be able to access AWS.
+
+You can use instance role bindings or directly configure the IAM user credentials in the configuration. The `AWS_REGION` environment variable must also be set in the `frontend` container to scope the IAM credentials for the AWS region hosting the Bedrock endpoint.
+
+Once ready, go to **Site admin > Site configuration** (`/site-admin/configuration`) on your instance and set:
+
+```json
+{
+ // [...]
+ "cody.enabled": true,
+ "completions": {
+ "provider": "aws-bedrock",
+ "chatModel": "anthropic.claude-3-opus-20240229-v1:0",
+ "completionModel": "anthropic.claude-instant-v1",
+ "endpoint": "",
+ "accessToken": ""
+ }
+}
+```
+
+For the `chatModel` and `completionModel` fields, see [Amazon's Bedrock docs](https://docs.aws.amazon.com/bedrock/latest/userguide/model-ids.html) for an up-to-date list of supported model IDs, and cross reference against Sourcegraph's [supported LLM list](/cody/capabilities/supported-models) to verify compatibility with Cody.
+
+For `endpoint`, you can either:
+
+- For **pay-as-you-go**, set it to an AWS region code (e.g., `us-west-2`) when using a public Amazon Bedrock endpoint
+- For **provisioned throughput**, set it to the provisioned VPC endpoint for the `bedrock-runtime` API (e.g., `"https://vpce-0a10b2345cd67e89f-abc0defg.bedrock-runtime.us-west-2.vpce.amazonaws.com"`)
+
+For `accessToken`, you can either:
+
+- Leave it empty and rely on instance role bindings or other AWS configurations in the `frontend` service
+- Set it to `:` if directly configuring the credentials
+- Set it to `::` if a session token is also required
+
+
+ We only recommend configuring AWS Bedrock to use an accessToken for
+ authentication. Specifying no accessToken (e.g. to use [IAM roles for EC2 /
+ instance role
+ binding](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html))
+ is not currently recommended (there is a known performance bug with this
+ method which will prevent autocomplete from working correctly. (internal
+ issue: PRIME-662)
+
+
+### Example: Using GCP Vertex AI
+
+On [GCP Vertex](https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-claude), we only support Anthropic Claude models.
+
+- Enable the [Vertex AI API](https://console.cloud.google.com/marketplace/product/google/aiplatform.googleapis.com) in the GCP console. Once Vertex has been enabled in your project, navigate to the [Vertex Model Garden](https://console.cloud.google.com/vertex-ai/model-garden) to select and enable the Anthropic Claude model(s) that you wish to use with Cody. See [Supported LLM Models](/capabilities/supported-models) for an up-to-date list of Anthropic Claude models supported by Cody.
+
+It may take some time to enable Vertex and provision access to the models you plan to use
+
+1. **Create a Service Account**:
+ - Create a [service account](https://cloud.google.com/iam/docs/service-account-overview)
+ - Assign the `Vertex AI User` role to the service account
+ - Generate a JSON key for the service account and download it
+
+2. **Convert JSON Key to Base64** by doing:
+
+```python
+cat | base64
+```
+
+Once ready, go to **Site admin > Site configuration** (`/site-admin/configuration`) on your instance and set:
+
+```json
+{
+ // [...]
+ "cody.enabled": true,
+ "completions": {
+ "chatModel": "claude-3-opus@20240229",
+ "completionModel": "claude-3-haiku@20240307",
+ "provider": "google",
+ "endpoint": "",
+ "accessToken": ""
+ }
+}
+
+```
+
+For the `endpoint`, you can:
+
+- Go to the Claude 3 Haiku docs on the GCP Console Model garden
+- Scroll through the page to find the example that shows how to use the `cURL` command with the Claude 3 Haiku model. The example will include a sample request JSON body and the necessary endpoint URL. Copy the URL in the site-admin config
+- The endpoint URL will look something like this:
+ `https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/anthropic/models/`
+- Example URL:
+`https://us-east5-aiplatform.googleapis.com/v1/projects/sourcegraph-vertex-staging/locations/us-east5/publishers/anthropic/models`
+
+### Example: Use Azure OpenAI service
+
+Create a project in the Azure OpenAI Service portal. From the project overview, go to **Keys and Endpoint and get one of the keys** on that page and the **endpoint**.
+
+Next, under **Model deployments**, click **manage deployments** and ensure you deploy the models you want, for example, `gpt-35-turbo`. Take note of the **deployment name**.
+
+Once done, go to **Site admin > Site configuration** (`/site-admin/configuration`) on your instance and set:
+
+```json
+{
+ // [...]
+ "cody.enabled": true,
+ "completions": {
+ "provider": "azure-openai",
+ "chatModel": "",
+ "fastChatModel": "",
+ "completionModel": "", // the model must support the legacy completions endpoint such as gpt-3.5-turbo-instruct
+ "endpoint": "",
+ "accessToken": ""
+ }
+}
+```
+
+For the access token,
+
+- For Sourcegraph `v5.2.4` or more, the access token can be left empty, and it will rely on Environmental, Workload Identity, or Managed Identity credentials configured for the `frontend` and `worker` services
+- Set it to `` if directly configuring the credentials using the API key specified in the Azure portal
+
+### Use StarCoder for autocomplete
+
+When tested with other coder models for the autocomplete use case, [StarCoder](https://huggingface.co/blog/starcoder) offered significant improvements in quality and latency compared to our control groups for users on Sourcegraph.com. You can read more about the improvements in our [October 2023 release notes](https://sourcegraph.com/blog/feature-release-october-2023) and the [GA release notes](https://sourcegraph.com/blog/cody-is-generally-available).
+
+To ensure a fast and reliable experience, we are partnering with [Fireworks](https://fireworks.ai/) and have set up a dedicated hardware deployment for our Enterprise users. Sourcegraph supports StarCoder using the [Cody Gateway](/cody/core-concepts/cody-gateway).
+
+To enable StarCoder, go to **Site admin > Site configuration** (`/site-admin/configuration`) and change the `completionModel`:
+
+```json
+{
+ // [...]
+ "cody.enabled": true,
+ "completions": {
+ "provider": "sourcegraph",
+ "completionModel": "fireworks/starcoder"
+ }
+}
+```
+
+Users of the Cody extensions will automatically pick up this change when connected to your Enterprise instance.
diff --git a/docs/cody/enterprise/features.mdx b/docs/cody/enterprise/features.mdx
new file mode 100644
index 000000000..5d4d821f5
--- /dev/null
+++ b/docs/cody/enterprise/features.mdx
@@ -0,0 +1,115 @@
+# Cody Enterprise features
+
+Along with the core features, Cody Enterprise offers additional features to enhance your coding experience.
+
+## IDE token expiry
+
+Site administrators can set the duration of access tokens for users connecting Cody from their IDEs (VS Code, JetBrains, etc.). This can be configured from the **Site admin** page of the Sourcegraph Enterprise instance. Available options include **7, 14, 30, 60, and 90 days**.
+
+
+
+## Guardrails
+
+Guardrails for public code is currently in Beta and is supported with VS Code, JetBrains IDEs extensions and Sourcegraph Web app.
+
+Open source attribution guardrails for public code, commonly called copyright guardrails, reduce the exposure to copyrighted code. This involves implementing a verification mechanism within Cody to ensure that any code generated by the platform does not replicate open source code.
+
+Guardrails for public code are available to all Sourcegraph Enterprise instances and are **disabled** by default. You can enable them from the Site configuration section by setting `attribution.enabled` to `true`.
+
+Guardrails don't differentiate between license types. It matches any code snippet that is at least **ten lines** long from the **290,000** indexed open source repositories.
+
+### Guardrails `enforced` check
+
+You can `enforce` a Guardrails check to prevent any matching code from being shown to the user. To do so, site admins need to add `"attribution.mode": "enforced"` in the **Site configuration** setting. This will configure the settings for Cody IDE extensions VS Code (v1.82+) or JetBrains (v7.82+) accordingly and will enforce not to display code until attribution checks have finished.
+
+## Admin controls
+
+Admin controls are supported with VS Code and JetBrains IDE extension.
+
+Site administrators have selective control over users' access to Cody Enterprise, which is managed via the Sourcegraph role-based access control system. This provides a more intuitive user interface for assigning permission to use Cody.
+
+## Analytics
+
+Cody Analytics are supported with VS Code IDE extension and on the latest versions of JetBrains IDEs.
+
+Cody Enterprise users can view analytics for their instance. A separately managed cloud service for Cody analytics handles user auth, gets metrics data from Sourcegraph's BigQuery instance, and visualizes the metrics data.
+
+The following metrics are available for Cody Enterprise users:
+
+| **Metric Type** | **What is measured?** |
+| --------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| Active users | - Total active users - Average daily users - Average no. of days each user used Cody (of last 30 days) - Cody users by day (last 30 days) - Cody users by month (last two months) - Cody users by number of days used |
+| Completions | - Total accepted completions - Minutes saved per completion - Hours saved by completions - Cody completions by day - Completions acceptance rate - Weighted completions acceptance rate - Average completion latency - Acceptance rate by language |
+| Chat | - Total chat events - Minutes saved per chat - Hours saved by chats - Cody chats by day |
+| Commands | - Total command events - Minutes saved per command - Hours saved by commands - Cody commands by day - Most used commands |
+
+To enable Cody Analytics:
+
+- Create an account on [Sourcegraph Accounts](https://accounts.sourcegraph.com/)
+- A user already having a Sourcegraph.com account gets automatically migrated to Sourcegraph Accounts. Users can sign in to Cody Analytics using their email and password
+- Users without a Sourcegraph.com account should contact one of our team members. They can help with both the account setup and assigning instances to specific users
+- Map your user account to a Sourcegraph instance, and this gives you access to Cody analytics
+
+## Multi-repository context
+
+Cody supports multi-repository context, allowing you to search up to 10 repositories simultaneously for relevant information. Open a new chat, type `@`, and select `Remote Repositories.`
+
+Keep @-mentioning repos that you want to include in your context. This flexibility lets you get more comprehensive and accurate responses by leveraging information across multiple codebases.
+
+## @-mention context
+
+Users can `@-mention` repositories, files, symbols, and web URLs to better support Enterprise teams working with large codebases when chatting with Cody. This helps you define more specific context.
+
+To do this, type `@` in the chat, and then select the context of your choice.
+
+
+
+If you want to include recent changes that haven't been indexed in your Sourcegraph instance, you can `@-mention` specific files, lines of code, or symbols.
+
+## Prompt pre-instructions
+
+Prompt pre-instructions is supported for Sourcegraph `v5.10` and more.
+
+**Site admins** can add and configure prompt pre-instructions for Cody. These are text instructions that Cody uses with every chat query, allowing organizations to configure how Cody responds to their users.
+
+For example, if you don’t want Cody to answer questions relating to sensitive non-code matters, you can pre-instruct Cody about it. In this case, if a user asks an unrelated question, Cody responds with a pre-instructed context.
+
+To configure pre-instructions, add the following to your site admin configuration file:
+
+```json
+{ ... "modelConfiguration": { "systemPreInstruction": "If the question is not directly related to software development, respond with \"I can only answer programming-related questions\"" } }
+```
+
+We cannot guarantee that these pre-instructions or their intended use case will be fully accurate. If your pre-instructions are not working as expected, please get in touch with us.
+
+## Supported LLM models
+
+Sourcegraph Enterprise supports different LLM providers and models, such as models from Anthropic and OpenAI. You can do this by adjusting your Sourcegraph instance configuration.
+
+
+For the supported LLM models listed above, refer to the following notes:
+
+1. Microsoft Azure is planning to deprecate the APIs used in Sourcegraph version `>5.3.3` on July 1, 2024 [Source](https://learn.microsoft.com/en-us/azure/ai-services/openai/api-version-deprecation)
+2. Claude 2.1 is not recommended
+3. Sourcegraph doesn’t recommend using the GPT-4 (non-Turbo), Claude 1, or Claude 2 models anymore
+4. Only supported through legacy completions API
+5. BYOK (Bring Your Own Key) with managed services are only supported for Self-hosted Sourcegraph instances
+6. GPT-4 and GPT-4o for completions have a bug that is resulting in many failed completions
+
+{/*Temporarily removed*/}
+
+ {/* ## Supported model configuration
+
+Use the drop-down menu to make your desired selection and get a detailed breakdown of the supported model configuration for each provider on Cody Enterprise. This is an on-site configuration. Admins should pick a value from the table for `chatModel` to configure their chat model.
+
+
+
+For the supported LLM model configuration listed above, refer to the following notes:
+
+1. Microsoft Azure is planning to deprecate the APIs used in Sourcegraph version `>5.3.3` on July 1, 2024 [Source](https://learn.microsoft.com/en-us/azure/ai-services/openai/api-version-deprecation)
+2. Claude 2.1 is not recommended
+3. Sourcegraph doesn't recommend GPT-4 non-turbo, Claude 1 or 2 models
+4. Only supported through legacy completions API
+5. BYOK (Bring Your Own Key) with managed services are only supported for Self-hosted Sourcegraph instances
+
+ */}
diff --git a/docs/cody/enterprise/model-config-examples.mdx b/docs/cody/enterprise/model-config-examples.mdx
new file mode 100644
index 000000000..06c7f30a4
--- /dev/null
+++ b/docs/cody/enterprise/model-config-examples.mdx
@@ -0,0 +1,805 @@
+# Model Configuration Examples
+
+
+ This section includes examples about how to configure Cody to use
+ Sourcegraph-provided models with `modelConfiguration`. These examples will
+ use the following:
+
+
+- [Minimal configuration](/cody/enterprise/model-configuration#configure-sourcegraph-provided-models)
+- [Using model filters](/cody/enterprise/model-configuration#model-filters)
+- [Change default models](/cody/enterprise/model-configuration#default-models)
+
+## Sourcegraph-provided models and BYOK (Bring Your Own Key)
+
+By default, Sourcegraph is fully aware of several models from the following providers:
+
+- "anthropic"
+- "google"
+- "fireworks"
+- "mistral"
+- "openai"
+
+### Override configuration of a model provider
+
+Instead of Sourcegraph using its own servers to make LLM requests, it is possible to bring your own API keys for a given model provider. For example, if you wish for all Anthropic API requests to go directly to your own Anthropic account and use your own API keys instead of going via Sourcegraph's servers, you could override the `anthropic` provider's configuration:
+
+```json
+{
+"cody.enabled": true,
+"modelConfiguration": {
+ "sourcegraph": {},
+ "providerOverrides": [
+ {
+ "id": "anthropic",
+ "displayName": "Anthropic BYOK",
+ "serverSideConfig": {
+ "type": "anthropic",
+ "accessToken": "token",
+ "endpoint": "https://api.anthropic.com/v1/messages"
+ }
+ }
+ ],
+ "defaultModels": {
+ "chat": "anthropic::2024-10-22::claude-3.5-sonnet",
+ "fastChat": "anthropic::2023-06-01::claude-3-haiku",
+ "codeCompletion": "fireworks::v1::deepseek-coder-v2-lite-base"
+ }
+}
+```
+
+In the configuration above:
+
+- Enable Sourcegraph-provided models and do not set any overrides (note that `"modelConfiguration.modelOverrides"` is not specified)
+- Route requests for Anthropic models directly to the Anthropic API (via the provider override specified for "anthropic")
+- Route requests for other models (such as the Fireworks model for "autocomplete") through Cody Gateway
+
+### Partially override provider config in the namespace
+
+If you want to override the provider config for some models in the namespace and use the Sourcegraph-configured provider config for the rest, you can route requests directly to the LLM provider (bypassing the Cody Gateway) for some models while using the Sourcegraph-configured provider config for the rest.
+
+Example configuration
+
+```json
+{
+"cody.enabled": true,
+"modelConfiguration": {
+ "sourcegraph": {},
+ "providerOverrides": [
+ {
+ "id": "anthropic-byok",
+ "displayName": "Anthropic BYOK",
+ "serverSideConfig": {
+ "type": "anthropic",
+ "accessToken": "token",
+ "endpoint": "https://api.anthropic.com/v1/messages"
+ }
+ }
+ ],
+ "modelOverrides": [
+ {
+ "modelRef": "anthropic-byok::2023-06-01::claude-3.5-sonnet",
+ "displayName": "Claude 3.5 Sonnet",
+ "modelName": "claude-3-5-sonnet-latest",
+ "capabilities": ["edit", "chat"],
+ "category": "accuracy",
+ "status": "stable",
+ "contextWindow": {
+ "maxInputTokens": 45000,
+ "maxOutputTokens": 4000
+ }
+ },
+ ],
+ "defaultModels": {
+ "chat": "anthropic-byok::2023-06-01::claude-3.5-sonnet",
+ "fastChat": "anthropic::2023-06-01::claude-3-haiku",
+ "codeCompletion": "fireworks::v1::deepseek-coder-v2-lite-base"
+ }
+}
+```
+
+In the configuration above, we:
+
+- Enable Sourcegraph-supplied models (the `sourcegraph` field is not empty or `null`)
+- Define a new provider with the ID `"anthropic-byok"` and configure it to use the Anthropic API
+- Since this provider is unknown to Sourcegraph, no Sourcegraph-supplied models are available. Therefore, we add a custom model in the `"modelOverrides"` section
+- Use the custom model configured in the previous step (`"anthropic-byok::2024-10-22::claude-3.5-sonnet"`) for `"chat"`. Requests are sent directly to the Anthropic API as set in the provider override
+- For `"fastChat"` and `"autocomplete"`, we use Sourcegraph-provided models via Cody Gateway
+
+## Config examples for various LLM providers
+
+Below are configuration examples for setting up various LLM providers using BYOK. These examples are applicable whether or not you are using Sourcegraph-supported models.
+
+- In this section, all configuration examples have Sourcegraph-provided models disabled. Please refer to the previous section to use a combination of Sourcegraph-provided models and BYOK.
+- Ensure that at least one model is available for each Cody feature ("chat" and "autocomplete"), regardless of the provider and model overrides configured. To verify this, [view the configuration](/cody/enterprise/model-configuration#view-configuration) and confirm that appropriate models are listed in the `"defaultModels"` section.
+
+
+
+```json
+{
+"cody.enabled": true,
+"modelConfiguration": {
+ "sourcegraph": null,
+ "providerOverrides": [
+ {
+ "id": "anthropic",
+ "displayName": "Anthropic",
+ "serverSideConfig": {
+ "type": "anthropic",
+ "accessToken": "token",
+ "endpoint": "https://api.anthropic.com/v1/messages"
+ }
+ }
+ ],
+ "modelOverrides": [
+ {
+ "modelRef": "anthropic::2024-10-22::claude-3-7-sonnet-latest",
+ "displayName": "Claude 3.7 Sonnet",
+ "modelName": "claude-3-7-sonnet-latest",
+ "capabilities": ["chat"],
+ "category": "accuracy",
+ "status": "stable",
+ "contextWindow": {
+ "maxInputTokens": 132000,
+ "maxOutputTokens": 8192
+ },
+ },
+ {
+ "modelRef": "anthropic::2024-10-22::claude-3-7-sonnet-extended-thinking",
+ "displayName": "Claude 3.7 Sonnet Extended Thinking",
+ "modelName": "claude-3-7-sonnet-latest",
+ "capabilities": ["chat", "reasoning"],
+ "category": "accuracy",
+ "status": "stable",
+ "contextWindow": {
+ "maxInputTokens": 93000,
+ "maxOutputTokens": 64000
+ },
+ "reasoningEffort": "low"
+ },
+ {
+ "modelRef": "anthropic::2024-10-22::claude-3-5-haiku-latest",
+ "displayName": "Claude 3.5 Haiku",
+ "modelName": "claude-3-5-haiku-latest",
+ "capabilities": ["autocomplete", "edit", "chat"],
+ "category": "speed",
+ "status": "stable",
+ "contextWindow": {
+ "maxInputTokens": 132000,
+ "maxOutputTokens": 8192
+ },
+ }
+ ],
+ "defaultModels": {
+ "chat": "anthropic::2024-10-22::claude-3-7-sonnet-latest",
+ "fastChat": "anthropic::2024-10-22::claude-3-5-haiku-latest",
+ "codeCompletion": "anthropic::2024-10-22::claude-3-5-haiku-latest"
+ }
+}
+```
+
+In the configuration above,
+
+- Set up a provider override for Anthropic, routing requests for this provider directly to the specified Anthropic endpoint (bypassing Cody Gateway)
+- Add three Anthropic models:
+ - `"anthropic::2024-10-22::claude-3-7-sonnet-latest"` with chat, vision, and tools capabilities
+ - `"anthropic::2024-10-22::claude-3-7-sonnet-extended-thinking"` with chat and reasoning capabilities (note: to enable [Claude's extended thinking](https://docs.anthropic.com/en/docs/build-with-claude/extended-thinking) model override should include "reasoning" capability and have "reasoningEffort" defined)
+ - `"anthropic::2024-10-22::claude-3-5-haiku-latest"` with autocomplete, edit, chat, and tools capabilities
+- Set the configured models as default models for Cody features in the `"defaultModels"` field
+
+
+
+
+```json
+"cody.enabled": true,
+"modelConfiguration": {
+ "sourcegraph": null,
+ "providerOverrides": [
+ {
+ "id": "fireworks",
+ "displayName": "Fireworks",
+ "serverSideConfig": {
+ "type": "fireworks",
+ "accessToken": "token",
+ "endpoint": "https://api.fireworks.ai/inference/v1/completions"
+ }
+ }
+ ],
+ "modelOverrides": [
+ {
+ "modelRef": "fireworks::v1::mixtral-8x7b-instruct",
+ "displayName": "Mixtral 8x7B",
+ "modelName": "accounts/fireworks/models/mixtral-8x7b-instruct",
+ "capabilities": ["chat"],
+ "category": "other",
+ "status": "stable",
+ "contextWindow": {
+ "maxInputTokens": 7000,
+ "maxOutputTokens": 4000
+ }
+ },
+ {
+ "modelRef": "fireworks::v1::starcoder-16b",
+ "modelName": "accounts/fireworks/models/starcoder-16b",
+ "displayName": "(Fireworks) Starcoder 16B",
+ "contextWindow": {
+ "maxInputTokens": 8192,
+ "maxOutputTokens": 4096
+ },
+ "capabilities": ["autocomplete"],
+ "category": "balanced",
+ "status": "stable"
+ }
+ ],
+ "defaultModels": {
+ "chat": "fireworks::v1::mixtral-8x7b-instruct",
+ "fastChat": "fireworks::v1::mixtral-8x7b-instruct",
+ "codeCompletion": "fireworks::v1::starcoder-16b"
+ }
+}
+```
+
+In the configuration above,
+
+- Set up a provider override for Fireworks, routing requests for this provider directly to the specified Fireworks endpoint (bypassing Cody Gateway)
+- Add two Fireworks models:
+ - `"fireworks::v1::mixtral-8x7b-instruct"` with "chat" capabiity - used for "chat" and "fastChat"
+ - `"fireworks::v1::starcoder-16b"` with "autocomplete" capability - used for "autocomplete"
+
+
+
+
+
+```json
+"modelConfiguration": {
+ "sourcegraph": null,
+ "providerOverrides": [
+ {
+ "id": "openai",
+ "displayName": "OpenAI",
+ "serverSideConfig": {
+ "type": "openai",
+ "accessToken": "token",
+ "endpoint": "https://api.openai.com"
+ }
+ }
+ ],
+ "modelOverrides": [
+ {
+ "modelRef": "openai::unknown::gpt-4o",
+ "displayName": "GPT-4o",
+ "modelName": "gpt-4o",
+ "capabilities": ["chat"],
+ "category": "accuracy",
+ "status": "stable",
+ "contextWindow": {
+ "maxInputTokens": 45000,
+ "maxOutputTokens": 4000
+ }
+ },
+ {
+ "modelRef": "openai::unknown::gpt-4.1-nano",
+ "displayName": "GPT-4.1-nano",
+ "modelName": "gpt-4.1-nano",
+ "capabilities": ["edit", "chat", "autocomplete"],
+ "category": "speed",
+ "status": "stable",
+ "tier": "free",
+ "contextWindow": {
+ "maxInputTokens": 77000,
+ "maxOutputTokens": 16000
+ }
+ },
+ {
+ "modelRef": "openai::unknown::o3",
+ "displayName": "o3",
+ "modelName": "o3",
+ "capabilities": ["chat", "reasoning"],
+ "category": "accuracy",
+ "status": "stable",
+ "tier": "pro",
+ "contextWindow": {
+ "maxInputTokens": 68000,
+ "maxOutputTokens": 100000
+ },
+ "reasoningEffort": "medium"
+ }
+ ],
+ "defaultModels": {
+ "chat": "openai::unknown::gpt-4o",
+ "fastChat": "openai::unknown::gpt-4.1-nano",
+ "codeCompletion": "openai::unknown::gpt-4.1-nano"
+ }
+}
+```
+
+In the configuration above,
+
+- Set up a provider override for OpenAI, routing requests for this provider directly to the specified OpenAI endpoint (bypassing Cody Gateway)
+- Add three OpenAI models:
+ - `"openai::2024-02-01::gpt-4o"` with chat capability - used as a default model for chat
+ - `"openai::unknown::gpt-4.1-nano"` with chat, edit and autocomplete capabilities - used as a default model for fast chat and autocomplete
+ - `"openai::unknown::o3"` with chat and reasoning capabilities - o-series model that supports thinking, can be used for chat (note: to enable thinking, model override should include "reasoning" capability and have "reasoningEffort" defined).
+
+
+
+
+
+```json
+"cody.enabled": true,
+"modelConfiguration": {
+ "sourcegraph": null,
+ "providerOverrides": [
+ {
+ "id": "azure-openai",
+ "displayName": "Azure OpenAI",
+ "serverSideConfig": {
+ "type": "azureOpenAI",
+ "accessToken": "token",
+ "endpoint": "https://acme-test.openai.azure.com/",
+ "user": "",
+ "useDeprecatedCompletionsAPI": true
+ }
+ }
+ ],
+ "modelOverrides": [
+ {
+ "modelRef": "azure-openai::unknown::gpt-4o",
+ "displayName": "GPT-4o",
+ "modelName": "gpt-4o",
+ "capabilities": ["chat"],
+ "category": "accuracy",
+ "status": "stable",
+ "contextWindow": {
+ "maxInputTokens": 45000,
+ "maxOutputTokens": 4000
+ }
+ },
+ {
+ "modelRef": "azure-openai::unknown::gpt-4.1-nano",
+ "displayName": "GPT-4.1-nano",
+ "modelName": "gpt-4.1-nano",
+ "capabilities": ["edit", "chat", "autocomplete"],
+ "category": "speed",
+ "status": "stable",
+ "tier": "free",
+ "contextWindow": {
+ "maxInputTokens": 77000,
+ "maxOutputTokens": 16000
+ }
+ },
+ {
+ "modelRef": "azure-openai::unknown::o3-mini",
+ "displayName": "o3-mini",
+ "modelName": "o3-mini",
+ "capabilities": ["chat", "reasoning"],
+ "category": "accuracy",
+ "status": "stable",
+ "tier": "pro",
+ "contextWindow": {
+ "maxInputTokens": 68000,
+ "maxOutputTokens": 100000
+ },
+ "reasoningEffort": "medium"
+ },
+ {
+ "modelRef": "azure-openai::unknown::gpt-35-turbo-instruct-test",
+ "displayName": "GPT-3.5 Turbo Instruct",
+ "modelName": "gpt-35-turbo-instruct-test",
+ "capabilities": ["autocomplete"],
+ "category": "speed",
+ "status": "stable",
+ "contextWindow": {
+ "maxInputTokens": 7000,
+ "maxOutputTokens": 4000
+ }
+ }
+ ],
+ "defaultModels": {
+ "chat": "azure-openai::unknown::gpt-4o",
+ "fastChat": "azure-openai::unknown::gpt-4.1-nano",
+ "codeCompletion": "azure-openai::unknown::gpt-4.1-nano"
+ }
+}
+```
+
+In the configuration above,
+
+- Set up a provider override for Azure OpenAI, routing requests for this provider directly to the specified Azure OpenAI endpoint (bypassing Cody Gateway).
+ **Note:** For Azure OpenAI, ensure that the `modelName` matches the name defined in your Azure portal configuration for the model.
+- Add four OpenAI models:
+ - `"azure-openai::unknown::gpt-4o"` with chat capability - used as a default model for chat
+ - `"azure-openai::unknown::gpt-4.1-nano"` with chat, edit and autocomplete capabilities - used as a default model for fast chat and autocomplete
+ - `"azure-openai::unknown::o3-mini"` with chat and reasoning capabilities - o-series model that supports thinking, can be used for chat (note: to enable thinking, model override should include "reasoning" capability and have "reasoningEffort" defined)
+ - `"azure-openai::unknown::gpt-35-turbo-instruct-test"` with "autocomplete" capability - included as an alternative model
+- Since `"azure-openai::unknown::gpt-35-turbo-instruct-test"` is not supported on the newer OpenAI `"v1/chat/completions"` endpoint, we set `"useDeprecatedCompletionsAPI"` to `true` to route requests to the legacy `"v1/completions"` endpoint. This setting is unnecessary if you are using a model supported on the `"v1/chat/completions"` endpoint.
+
+
+
+
+
+```json
+"cody.enabled": true,
+"modelConfiguration": {
+ "sourcegraph": null,
+ "providerOverrides": [
+ {
+ "id": "fireworks",
+ "displayName": "Fireworks",
+ "serverSideConfig": {
+ "type": "openaicompatible",
+ "endpoints": [
+ {
+ "url": "https://api.fireworks.ai/inference/v1",
+ "accessToken": "token"
+ }
+ ]
+ }
+ },
+ {
+ "id": "huggingface-codellama",
+ "displayName": "Hugging Face",
+ "serverSideConfig": {
+ "type": "openaicompatible",
+ "endpoints": [
+ {
+ "url": "https://api-inference.huggingface.co/models/meta-llama/CodeLlama-7b-hf/v1/",
+ "accessToken": "token"
+ }
+ ]
+ }
+ },
+ ],
+ "modelOverrides": [
+ {
+ "modelRef": "fireworks::v1::llama-v3p1-70b-instruct",
+ "modelName": "llama-v3p1-70b-instruct",
+ "displayName": "(Fireworks) Llama 3.1 70B Instruct",
+ "contextWindow": {
+ "maxInputTokens": 64000,
+ "maxOutputTokens": 8192
+ },
+ "serverSideConfig": {
+ "type": "openaicompatible",
+ "apiModel": "accounts/fireworks/models/llama-v3p1-70b-instruct"
+ },
+ "clientSideConfig": {
+ "openaicompatible": {}
+ },
+ "capabilities": ["chat"],
+ "category": "balanced",
+ "status": "stable"
+ },
+ {
+ "modelRef": "huggingface-codellama::v1::CodeLlama-7b-hf",
+ "modelName": "CodeLlama-7b-hf",
+ "displayName": "(HuggingFace) CodeLlama-7b-hf",
+ "contextWindow": {
+ "maxInputTokens": 8192,
+ "maxOutputTokens": 4096
+ },
+ "serverSideConfig": {
+ "type": "openaicompatible",
+ "apiModel": "meta-llama/CodeLlama-7b-hf"
+ },
+ "clientSideConfig": {
+ "openaicompatible": {}
+ },
+ "capabilities": ["autocomplete", "chat"],
+ "category": "balanced",
+ "status": "stable"
+ }
+ ],
+ "defaultModels": {
+ "chat": "fireworks::v1::llama-v3p1-70b-instruct",
+ "fastChat": "fireworks::v1::llama-v3p1-70b-instruct",
+ "codeCompletion": "huggingface-codellama::v1::CodeLlama-7b-hf"
+ }
+}
+```
+
+In the configuration above,
+
+- Configure two OpenAI-compatible providers: `"fireworks"` and `"huggingface-codellama"`
+- Add two OpenAI-compatible models: `"fireworks::v1::llama-v3p1-70b-instruct"` and `"huggingface-codellama::v1::CodeLlama-7b-hf"`. Additionally:
+ - Set `clientSideConfig.openaicompatible` to `{}` to indicate to Cody clients that these models are OpenAI-compatible, ensuring the appropriate code paths are utilized
+ - Designate these models as the default choices for chat and autocomplete, respectively
+
+## Disabling legacy completions
+
+Available in Sourcegraph 6.4+ and 6.3.2692
+
+By default, Cody will send Autocomplete requests to the legacy OpenAI /completions endpoint (i.e. for pure-inference requests) - if your OpenAI-compatible API endpoint supports only /chat/completions, you may disable the use of the legacy completions endpoint by adding the following above your serverSideConfig endpoints list:
+
+```json
+"serverSideConfig": {
+ "type": "openaicompatible",
+ "useLegacyCompletions": false,
+ // ^ add this to disable /completions and make Cody only use /chat/completions
+ "endpoints": [
+ {
+ "url": "https://api-inference.huggingface.co/models/meta-llama/CodeLlama-7b-hf/v1/",
+ "accessToken": "token"
+ }
+ ]
+}
+```
+
+## Sending custom HTTP headers
+
+
+Available in Sourcegraph v6.4+ and v6.3.2692
+
+By default, Cody will only send an `Authorization: Bearer ` header to OpenAI-compatible endpoints. You may configure custom HTTP headers if you like under the URL of endpoints:
+
+```json
+"serverSideConfig": {
+ "type": "openaicompatible",
+ "endpoints": [
+ {
+ "url": "https://api-inference.huggingface.co/models/meta-llama/CodeLlama-7b-hf/v1/",
+ "headers": { "X-api-key": "foo", "My-Custom-Http-Header": "bar" },
+ // ^ add this to configure custom headers
+ }
+ ]
+}
+```
+
+When using custom headers, both `accessToken` and `accessTokenQuery` configuration settings are ignored.
+
+
+
+
+
+```json
+"modelConfiguration": {
+ "sourcegraph": null,
+ "providerOverrides": [
+ {
+ "id": "google",
+ "displayName": "Google Gemini",
+ "serverSideConfig": {
+ "type": "google",
+ "accessToken": "token",
+ "endpoint": "https://generativelanguage.googleapis.com/v1beta/models"
+ }
+ }
+ ],
+ "modelOverrides": [
+ {
+ "modelRef": "google::v1::gemini-1.5-pro",
+ "displayName": "Gemini 1.5 Pro",
+ "modelName": "gemini-1.5-pro",
+ "capabilities": ["chat", "autocomplete"],
+ "category": "balanced",
+ "status": "stable",
+ "contextWindow": {
+ "maxInputTokens": 45000,
+ "maxOutputTokens": 4000
+ }
+ }
+ ],
+ "defaultModels": {
+ "chat": "google::v1::gemini-1.5-pro",
+ "fastChat": "google::v1::gemini-1.5-pro",
+ "codeCompletion": "google::v1::gemini-1.5-pro"
+ }
+}
+```
+
+In the configuration above,
+
+- Set up a provider override for Google Gemini, routing requests for this provider directly to the specified endpoint (bypassing Cody Gateway)
+- Add the `"google::v1::gemini-1.5-pro"` model, which is used for all Cody features. We do not add other models for simplicity, as adding multiple models is already covered in the examples above
+
+
+
+
+
+```json
+"modelConfiguration": {
+ "sourcegraph": null,
+ "providerOverrides": [
+ {
+ "id": "google",
+ "displayName": "Google Anthropic",
+ "serverSideConfig": {
+ "type": "google",
+ "accessToken": "token",
+ "endpoint": "https://us-east5-aiplatform.googleapis.com/v1/projects/project-name/locations/us-east5/publishers/anthropic/models"
+ }
+ }
+ ],
+ "modelOverrides": [
+ {
+ "modelRef": "google::20250219::claude-3-7-sonnet",
+ "displayName": "Claude 3.7 Sonnet",
+ "modelName": "claude-3-7-sonnet@20250219",
+ "capabilities": ["chat", "vision", "tools"],
+ "category": "accuracy",
+ "status": "stable",
+ "contextWindow": {
+ "maxInputTokens": 132000,
+ "maxOutputTokens": 8192
+ }
+ },
+ {
+ "modelRef": "google::20250219::claude-3-7-sonnet-extended-thinking",
+ "displayName": "Claude 3.7 Sonnet Extended Thinking",
+ "modelName": "claude-3-7-sonnet@20250219",
+ "capabilities": ["chat", "reasoning"],
+ "category": "accuracy",
+ "status": "stable",
+ "reasoningEffort": "medium",
+ "contextWindow": {
+ "maxInputTokens": 93000,
+ "maxOutputTokens": 64000
+ }
+ },
+ {
+ "modelRef": "google::20250219::claude-3-5-haiku",
+ "displayName": "Claude 3.5 Haiku",
+ "modelName": "claude-3-5-haiku@20241022",
+ "capabilities": ["autocomplete", "edit", "chat", "tools"],
+ "category": "speed",
+ "status": "stable",
+ "contextWindow": {
+ "maxInputTokens": 132000,
+ "maxOutputTokens": 8192
+ }
+ }
+ ],
+ "defaultModels": {
+ "chat": "google::20250219::claude-3.5-sonnet",
+ "fastChat": "google::20250219::claude-3-5-haiku",
+ "codeCompletion": "google::20250219::claude-3-5-haiku"
+ }
+}
+```
+
+In the configuration above,
+
+- Set up a provider override for Google Anthropic, routing requests for this provider directly to the specified endpoint (bypassing Cody Gateway)
+- Add three Anthropic models:
+ - `"google::unknown::claude-3-7-sonnet"` with chat, vision, and tools capabilities
+ - `"google::unknown::claude-3-7-sonnet-extended-thinking"` with chat and reasoning capabilities (note: to enable [Claude's extended thinking](https://docs.anthropic.com/en/docs/build-with-claude/extended-thinking) model override should include "reasoning" capability and have "reasoningEffort" defined)
+ - `"google::unknown::claude-3-5-haiku"` with autocomplete, edit, chat, and tools capabilities
+- Set the configured models as default models for Cody features in the `"defaultModels"` field
+
+
+
+
+
+```json
+"modelConfiguration": {
+ "sourcegraph": null,
+ "providerOverrides": [
+ {
+ "id": "google",
+ "displayName": "Google Gemini",
+ "serverSideConfig": {
+ "type": "google",
+ "accessToken": "token",
+ "endpoint": "https://us-east5-aiplatform.googleapis.com/v1/projects/project-name/locations/us-east5/publishers/anthropic/models"
+ }
+ }
+ ],
+ "modelOverrides": [
+ {
+ "modelRef": "google::unknown::claude-3-5-sonnet",
+ "displayName": "Claude 3.5 Sonnet (via Google Vertex)",
+ "modelName": "claude-3-5-sonnet@20240620",
+ "contextWindow": {
+ "maxInputTokens": 45000,
+ "maxOutputTokens": 4000
+ },
+ "capabilities": ["chat"],
+ "category": "accuracy",
+ "status": "stable"
+ },
+ {
+ "modelRef": "google::unknown::claude-3-haiku",
+ "displayName": "Claude 3 Haiku",
+ "modelName": "claude-3-haiku@20240307",
+ "capabilities": ["autocomplete", "chat"],
+ "category": "speed",
+ "status": "stable",
+ "contextWindow": {
+ "maxInputTokens": 7000,
+ "maxOutputTokens": 4000
+ }
+ },
+ ],
+ "defaultModels": {
+ "chat": "google::unknown::claude-3-5-sonnet",
+ "fastChat": "google::unknown::claude-3-5-sonnet",
+ "codeCompletion": "google::unknown::claude-3-haiku"
+ }
+}
+```
+
+In the configuration above,
+
+- Set up a provider override for Google Anthropic, routing requests for this provider directly to the specified endpoint (bypassing Cody Gateway)
+- Add two Anthropic models: - `"google::unknown::claude-3-5-sonnet"` with "chat" capabiity - used for "chat" and "fastChat" - `"google::unknown::claude-3-haiku"` with "autocomplete" capability - used for "autocomplete"
+
+
+
+
+
+```json
+"cody.enabled": true,
+"modelConfiguration": {
+ "sourcegraph": null,
+ "providerOverrides": [
+ {
+ "id": "aws-bedrock",
+ "displayName": "Anthropic models through AWS Bedrock",
+ "serverSideConfig": {
+ "type": "awsBedrock",
+ "accessToken": ":",
+ "endpoint": "",
+ "region": "us-west-2"
+ }
+ }
+ ],
+ "modelOverrides": [
+ {
+ "modelRef": "aws-bedrock::2025-02-19::claude-3-7-sonnet",
+ "displayName": "Claude 3.7 Sonnet",
+ "modelName": "anthropic.claude-3-7-sonnet-20250219-v1:0",
+ "serverSideConfig": {
+ "type": "awsBedrockProvisionedThroughput",
+ "arn": "" // e.g., arn:aws:bedrock:us-west-2:537452198621:provisioned-model/57z3lgkt1cx2
+ },
+ "contextWindow": {
+ "maxInputTokens": 132000,
+ "maxOutputTokens": 8192
+ },
+ "capabilities": ["chat", "autocomplete"],
+ "category": "balanced",
+ "status": "stable"
+ },
+ ],
+ "defaultModels": {
+ "chat": "aws-bedrock::2025-02-19::claude-3-7-sonnet",
+ "codeCompletion": "aws-bedrock::2025-02-19::claude-3-7-sonnet",
+ "fastChat": "aws-bedrock::2025-02-19::claude-3-7-sonnet"
+ },
+}
+```
+
+In the configuration described above,
+
+- Set up a provider override for Amazon Bedrock, routing requests for this provider directly to the specified endpoint, bypassing Cody Gateway
+- Add the `"aws-bedrock::2024-02-29::claude-3-sonnet"` model, which is used for all Cody features. We do not add other models for simplicity, as adding multiple models is already covered in the examples above
+- Since the model in the example uses [Amazon Bedrock provisioned throughput](https://docs.aws.amazon.com/bedrock/latest/userguide/prov-throughput.html), specify the ARN in the `serverSideConfig.arn` field of the model override.
+
+Provider override `serverSideConfig` fields:
+
+| **Field** | **Description** |
+| ------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `type` | Must be `"awsBedrock"`. |
+| `accessToken` | Leave empty to rely on instance role bindings or other AWS configurations in the frontend service. Use `:` for direct credential configuration, or `::` if a session token is also required. |
+| `endpoint` | For pay-as-you-go, set it to an AWS region code (e.g., `us-west-2`) when using a public Amazon Bedrock endpoint. For provisioned throughput, set it to the provisioned VPC endpoint for the bedrock-runtime API (e.g., `https://vpce-0a10b2345cd67e89f-abc0defg.bedrock-runtime.us-west-2.vpce.amazonaws.com`). |
+| `region` | The region to use when configuring API clients. The `AWS_REGION` Environment variable must also be configured in the `sourcegraph-frontend` container to match. |
+
+Provisioned throughput for Amazon Bedrock models can be configured using the `"awsBedrockProvisionedThroughput"` server-side configuration type. Refer to the [Model Overrides](/cody/enterprise/model-configuration#model-overrides) section for more details.
+
+
+ If using [IAM roles for EC2 / instance role binding](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html),
+ you may need to increase the [HttpPutResponseHopLimit
+](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_InstanceMetadataOptionsRequest.html#:~:text=HttpPutResponseHopLimit) instance metadata option to a higher value (e.g., 2) to ensure that the metadata service can be accessed from the frontend container running in the EC2 instance. See [here](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-IMDS-existing-instances.html) for instructions.
+
+
+
+ We only recommend configuring AWS Bedrock to use an accessToken for
+ authentication. Specifying no accessToken (e.g. to use [IAM roles for EC2 /
+ instance role
+ binding](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html))
+ is not currently recommended. There is a known performance bug with this
+ method which will prevent autocomplete from working correctly (internal
+ issue: CORE-819)
+
+
+
diff --git a/docs/cody/enterprise/model-configuration.mdx b/docs/cody/enterprise/model-configuration.mdx
new file mode 100644
index 000000000..f37dfbd2a
--- /dev/null
+++ b/docs/cody/enterprise/model-configuration.mdx
@@ -0,0 +1,480 @@
+# Model Configuration
+
+
+ Learn how to configure Cody via `modelConfiguration` on a Sourcegraph
+ Enterprise instance.
+
+
+
+ `modelConfiguration` is the recommended way to configure chat and
+ autocomplete models in Sourcegraph `v5.6.0` and later.
+
+
+The `modelConfiguration` field in the **Site config** section allows you to configure Cody to use different LLM models for chat and autocomplete, enabling greater flexibility in selecting the best model for your needs.
+
+Using this configuration, you get an LLM selector in the Cody chat with an Enterprise instance that allows you to select the model you want to use.
+
+The LLM models available for a Sourcegraph Enterprise instance offer a combination of Sourcegraph-provided models and any custom models providers that you explicitly add to your Sourcegraph instance site configuration.
+
+## `modelConfiguration`
+
+The model configuration for Cody is managed through the `"modelConfiguration"` field in the **Site config** section. It includes the following fields:
+
+| **Field** | **Description** |
+| --------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| [`sourcegraph`](/cody/enterprise/model-configuration#sourcegraph-provided-models) | Configures access to Sourcegraph-provided models available through Cody Gateway. |
+| [`providerOverrides`](/cody/model-configuration#provider-overrides) | Configures access to models through your keys with most common LLM providers (BYOK) or hosted behind any openaicompatible endpoint |
+| [`modelOverrides`](/cody/enterprise/model-configuration#model-overrides) | Extends or modifies the list of models Cody recognizes and their configurations. |
+| [`selfHostedModels`](/cody/enterprise/model-configuration#self-hosted-models) | Adds models to Cody’s recognized models list with default configurations provided by Sourcegraph. Only available for certain models; general models can be configured in `modelOverrides`. |
+| [`defaultModels`](/cody/enterprise/model-configuration#default-models) | Specifies the models assigned to each Cody feature (chat, fast chat, autocomplete). |
+
+## Getting started with `modelConfiguration`
+
+The recommended and easiest way to set up model configuration is using Sourcegraph-provided models through the Cody Gateway.
+
+For a minimal configuration example, see [Configure Sourcegraph-supplied models](/cody/enterprise/model-configuration#configure-sourcegraph-provided-models).
+
+## Sourcegraph-provided models
+
+Sourcegraph-provided models, accessible through the [Cody Gateway](/cody/core-concepts/cody-gateway), are managed via your site configuration.
+
+For most administrators, relying on these models alone ensures access to high-quality models without needing to manage specific configurations.
+
+The use of these models is controlled through the `"modelConfiguration.sourcegraph"` field in the site config.
+
+### Configure Sourcegraph-provided models
+
+The minimal configuration for Sourcegraph-provided models is:
+
+```json
+"cody.enabled": true,
+"modelConfiguration": {
+ "sourcegraph": {}
+}
+```
+
+The above configuration sets up the following:
+
+- Sourcegraph-provided models are enabled (`sourcegraph` is not set to `null`)
+- Requests to LLM providers are routed through the Cody Gateway (no `providerOverrides` field specified)
+- Sourcegraph-defined default models are used for Cody features (no `defaultModels` field specified)
+
+There are three main settings for configuring Sourcegraph-provided LLM models:
+
+| **Field** | **Description** |
+| -------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- |
+| `endpoint` | (Optional) The URL for connecting to Cody Gateway. The default is set to the production instance. |
+| `accessToken` | (Optional) The access token for connecting to Cody Gateway defaults to the current license key. |
+| [`modelFilters`](/cody/enterprise/model-configuration#model-filters) | (Optional) Filters specifying which models to include from Cody Gateway. |
+
+### Disable Sourcegraph-provided models
+
+To disable all Sourcegraph-provided models and use only the models explicitly defined in your site configuration, set the `"sourcegraph"` field to `null` as shown in the example below.
+
+```json
+"cody.enabled": true,
+"modelConfiguration": {
+ "sourcegraph": null, // ignore Sourcegraph-provided models
+ "providerOverrides": {
+ // define access to the LLM providers
+ },
+ "modelOverrides": {
+ // define models available via providers defined in the providerOverrides
+ },
+ "defaultModels": {
+ // set default models per Cody feature from the list of models defined in modelOverrides
+ }
+}
+```
+
+## Default models
+
+The `"modelConfiguration"` setting includes a `"defaultModels"` field, which allows you to specify the LLM model used for each Cody feature (`"chat"`, `"fastChat"`, and `"autocomplete"`). The values for each feature should be `modelRef`s of either Sourcegraph-provided models or models configured in the `modelOverrides` section.
+
+If no default is specified or the specified model is not found, the configuration will silently fall back to a suitable alternative.
+
+### Model Filters
+
+The `"modelFilters"` section allows you to control which Cody Gateway models are available to users of your Sourcegraph Enterprise instance. The following table describes each field:
+
+| **Field** | **Description** |
+| -------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `statusFilter` | Filters models based on their release status, such as stable, beta, deprecated or experimental. By default, all models available on Cody Gateway are accessible. |
+| `allow` | An array of `modelRef`s specifying which models to include. Supports wildcards. |
+| `deny` | An array of `modelRef`s specifying which models to exclude. Supports wildcards. |
+
+The following examples demonstrate how to use each of these settings together:
+
+```json
+"cody.enabled": true,
+"modelConfiguration": {
+ "sourcegraph": {
+ "modelFilters": {
+ // Only allow "beta" and "stable" models.
+ // Not "experimental" or "deprecated".
+ "statusFilter": ["beta", "stable"],
+
+ // Allow any models provided by Anthropic, OpenAI, Google and Fireworks.
+ "allow": [
+ "anthropic::*", // Anthropic models
+ "openai::*", // OpenAI models
+ "google::*", // Google Gemini models
+ "fireworks::*", // Open-source models hosted by Sourcegraph on Fireworks.ai (typically used for autocomplete and Mistral Chat models)
+ ],
+
+ // Example: Do not include any models with the Model ID containing "turbo",
+ // or any models from a hypothetical provider "AcmeCo"
+ "deny": [
+ "*turbo*",
+ "acmeco::*"
+ ]
+ }
+ }
+}
+```
+
+## Provider Overrides
+
+A `provider` is an organizational concept for grouping LLM models. Typically, a provider refers to the company that produced the model or the specific API/service used to access it, serving as a namespace.
+
+By defining a provider override in your Sourcegraph site configuration, you can introduce a new namespace to organize models or customize the existing provider namespace supplied by Sourcegraph (e.g., for all `"anthropic"` models).
+
+Provider overrides are configured via the `"modelConfiguration.providerOverrides"` field in the site configuration.
+This field is an array of items, each containing the following fields:
+
+| **Field** | **Description** |
+| ------------------ | --------------------------------------------------------------------------------- |
+| `id` | The namespace for models accessed via the provider. |
+| `displayName` | A human-readable name for the provider. |
+| `serverSideConfig` | Defines how to access the provider. See the section below for additional details. |
+
+Example configuration:
+
+```json
+"cody.enabled": true,
+"modelConfiguration": {
+ "sourcegraph": {},
+ "providerOverrides": [
+ {
+ "id": "openai",
+ "displayName": "OpenAI (via BYOK)",
+ "serverSideConfig": {
+ "type": "openai",
+ "accessToken": "token",
+ "endpoint": "https://api.openai.com"
+ }
+ },
+ ],
+ "defaultModels": {
+ "chat": "google::v1::gemini-1.5-pro",
+ "fastChat": "anthropic::2023-06-01::claude-3-haiku",
+ "autocomplete": "fireworks::v1::deepseek-coder-v2-lite-base"
+ }
+}
+```
+
+In the example above:
+
+- Sourcegraph-provided models are enabled (`sourcegraph` is not set to `null`)
+- The `"openai"` provider configuration is overridden to be accessed using your own key, with the provider API accessed directly via the specified `endpoint` URL. In contrast, models from the `"anthropic"` provider are accessed through the Cody Gateway
+
+Refer to the [examples page](/cody/enterprise/model-config-examples) for additional examples.
+
+### Server-side config
+
+The most important part of a provider's configuration is the `"serverSideConfig"` field, which defines how the LLM models should be invoked, i.e., which external service or API will handle the LLM requests.
+
+Sourcegraph natively supports several types of LLM API providers. The current set of supported providers includes:
+
+| **Provider type** | **Description** |
+| -------------------- | ---------------------------------------------------------------------------------------------------------- |
+| `"sourcegraph"` | [Cody Gateway](/cody/core-concepts/cody-gateway), offering access to various models from multiple services |
+| `"openaicompatible"` | Any OpenAI-compatible API implementation |
+| `"awsBedrock"` | [Amazon Bedrock](https://docs.aws.amazon.com/bedrock/) |
+| `"azureOpenAI"` | [Microsoft Azure OpenAI](https://azure.microsoft.com/en-us/products/ai-services/openai-service/) |
+| `"anthropic"` | [Anthropic](https://www.anthropic.com) |
+| `"fireworks"` | [Fireworks AI](https://fireworks.ai) |
+| `"google"` | [Google Gemini](http://cloud.google.com/gemini) and [Vertex](https://cloud.google.com/vertex-ai/) |
+| `"openai"` | [OpenAI](http://platform.openai.com) |
+| `"huggingface-tgi"` | [Hugging Face Text Generation Interface](https://huggingface.co/docs/text-generation-inference/en/index) |
+
+The configuration for `serverSideConfig` varies by provider type.
+
+Refer to the [examples page](/cody/enterprise/model-config-examples) for examples.
+
+## Model Overrides
+
+With a provider defined (either a Sourcegraph-provided provider or a custom provider configured via the `providerOverrides` field), custom models can be specified for that provider by adding them to the `"modelConfiguration.modelOverrides"` section.
+
+This field is an array of items, each with the following fields:
+
+- `modelRef`: Uniquely identifies the model within the provider namespace
+ - A string in the format `${providerId}::${apiVersionId}::${modelId}`
+ - To associate a model with your provider, `${providerId}` must match the provider’s ID
+ - `${modelId}` can be any URL-safe string
+ - `${apiVersionId}` specifies the API version, which helps detect compatibility issues between models and Sourcegraph instances. For example, `"2023-06-01"` can indicate that the model uses that version of the Anthropic API. If unsure, you may set this to `"unknown"` when defining custom models
+- `displayName`: An optional, user-friendly name for the model. If not set, clients should display the `ModelID` part of the `modelRef` instead (not the `modelName`)
+- `modelName`: A unique identifier the API provider uses to specify which model is being invoked. This is the identifier that the LLM provider recognizes to determine the model you are calling
+- `capabilities`: A list of capabilities that the model supports. Supported values: `autocomplete`, `chat`, `vision`, `reasoning`, `edit`, `tools`.
+- `category`: Specifies the model's category with the following options:
+ - `"balanced"`: Typically the best default choice for most users. This category is suited for models like Sonnet 3.5 (as of October 2024)
+ - `"speed"`: Ideal for low-parameter models that may not suit general-purpose chat but are beneficial for specialized tasks, such as query rewriting
+ - `"accuracy"`: Reserved for models, like OpenAI o1, that use advanced reasoning techniques to improve response accuracy, though with slower latency
+ - `"other"`: Used for older models without distinct advantages in reasoning or speed. Select this category if you are uncertain about which category to choose
+ - `"deprecated"`: For models that are no longer supported by the provider and are filtered out on the client side (not available for use)
+- `contextWindow`: An object that defines the **number of tokens** (units of text) that can be sent to the LLM. This setting influences response time and request cost and may vary according to the limits set by each LLM model or provider. It includes two fields:
+ - `maxInputTokens`: Specifies the maximum number of tokens for the contextual data in the prompt (e.g., question, relevant snippets)
+ - `maxOutputTokens`: Specifies the maximum number of tokens allowed in the response
+- `reasoningEffort`: Specifies the effort on reasoning for reasoning models (having `reasoning` capability). Supported values: `high`, `medium`, `low`. How this value is treated depends on the specific provider.
+For example, for Anthropic models supporting thinking, `low` effort means that the minimum [`thinking.budget_tokens`](https://docs.anthropic.com/en/api/messages#body-thinking) value (1024) will be used. For other `reasoningEffort` values, the `contextWindow.maxOutputTokens / 2` value will be used.
+For OpenAI reasoning models, the `reasoningEffort` field value corresponds to the [`reasoning_effort`](https://platform.openai.com/docs/api-reference/chat/create#chat-create-reasoning_effort) request body value.
+- `serverSideConfig`: Additional configuration for the model. It can be one of the following:
+
+ - `awsBedrockProvisionedThroughput`: Specifies provisioned throughput settings for AWS Bedrock models with the following fields:
+ - `type`: Must be `"awsBedrockProvisionedThroughput"`
+ - `arn`: The ARN (Amazon Resource Name) for provisioned throughput to use when sending requests to AWS Bedrock. The ARN format for provisioned models is: `arn:${Partition}:bedrock:${Region}:${Account}:provisioned-model/${ResourceId}`.
+ - `openaicompatible`: Configuration specific to models provided by an OpenAI-compatible provider, with the following fields:
+ - `type`: Must be `"openaicompatible"`
+ - `apiModel`: The literal string value of the `model` field to be sent to the `/chat/completions` API. If set, Sourcegraph treats this as an opaque string and sends it directly to the API without inferring any additional information. By default, the configured model name is sent
+
+#### Example configuration
+
+```json
+"cody.enabled": true,
+"modelConfiguration": {
+ "sourcegraph": {},
+ "providerOverrides": [
+ {
+ "id": "huggingface-codellama",
+ "displayName": "huggingface",
+ "serverSideConfig": {
+ "type": "openaicompatible",
+ // optional: disable the use of /completions for autocomplete requests, instead using
+ // only /chat/completions. (available in Sourcegraph 6.4+ and 6.3.2692)
+ //
+ // "useLegacyCompletions": false,
+ "endpoints": [
+ {
+ "url": "https://api-inference.huggingface.co/models/meta-llama/CodeLlama-7b-hf/v1/",
+ "accessToken": "token"
+
+ // optional: send custom headers (in which case accessToken above is not used)
+ // (available in Sourcegraph 6.4+ and 6.3.2692)
+ //
+ // "headers": { "X-api-key": "foo", "My-Custom-Http-Header": "bar" },
+ }
+ ]
+ }
+ }
+ ],
+ "modelOverrides": [
+ {
+ "modelRef": "huggingface-codellama::v1::CodeLlama-7b-hf",
+ "modelName": "CodeLlama-7b-hf",
+ "displayName": "(HuggingFace) CodeLlama-7b-hf",
+ "contextWindow": {
+ "maxInputTokens": 8192,
+ "maxOutputTokens": 4096
+ },
+ "serverSideConfig": {
+ "type": "openaicompatible",
+ "apiModel": "meta-llama/CodeLlama-7b-hf"
+ },
+ "clientSideConfig": {
+ "openaicompatible": {}
+ },
+ "capabilities": ["autocomplete", "chat"],
+ "category": "balanced",
+ "status": "stable"
+ }
+ ],
+ "defaultModels": {
+ "chat": "google::v1::gemini-1.5-pro",
+ "fastChat": "anthropic::2023-06-01::claude-3-haiku",
+ "autocomplete": "huggingface-codellama::v1::CodeLlama-7b-hf"
+ }
+}
+```
+
+In the example above:
+
+- Sourcegraph-provided models are enabled (`sourcegraph` is not set to `null`)
+- An additional provider, `"huggingface-codellama"`, is configured to access Hugging Face’s OpenAI-compatible API directly
+- A custom model, `"CodeLlama-7b-hf"`, is added using the `"huggingface-codellama"` provider
+- Default models are set up as follows:
+ - Sourcegraph-provided models are used for `"chat"` and `"fastChat"` (accessed via Cody Gateway)
+ - The newly configured model, `"huggingface-codellama::v1::CodeLlama-7b-hf"`, is used for `"autocomplete"` (connecting directly to Hugging Face’s OpenAI-compatible API)
+
+#### Example configuration with Claude 3.7 Sonnet
+
+```json
+{
+ "modelRef": "anthropic::2024-10-22::claude-3-7-sonnet-latest",
+ "displayName": "Claude 3.7 Sonnet",
+ "modelName": "claude-3-7-sonnet-latest",
+ "capabilities": [
+ "chat",
+ "reasoning"
+ ],
+ "category": "accuracy",
+ "status": "stable",
+ "tier": "pro",
+ "contextWindow": {
+ "maxInputTokens": 45000,
+ "maxOutputTokens": 4000
+ },
+ "modelCost": {
+ "unit": "mtok",
+ "inputTokenPennies": 300,
+ "outputTokenPennies": 1500
+ },
+ "reasoningEffort": "high"
+},
+```
+
+In this modelOverrides config example:
+
+- The model is configured to use Claude 3.7 Sonnet with Cody Gateway
+- The model is configured to use the `"chat"` and `"reasoning"` capabilities
+- The `reasoningEffort` can be set to 3 different options in the Model Config. These options are `high`, `medium` and `low`
+- The default `reasoningEffort` is set to `low`
+- For Anthropic models supporting thinking, when the reasoning effort is `low`, 1024 tokens is used as the thinking budget. With `medium` and `high` the thinking budget is set to half of the maxOutputTokens value
+
+Refer to the [examples page](/cody/enterprise/model-config-examples) for additional examples.
+
+## View configuration
+
+To view the current model configuration, run the following command:
+
+```bash
+export INSTANCE_URL="https://sourcegraph.test:3443" # Replace with your Sourcegraph instance URL
+export ACCESS_TOKEN="your access token"
+
+curl --location "${INSTANCE_URL}/.api/modelconfig/supported-models.json" \
+--header "Authorization: token $ACCESS_TOKEN"
+```
+
+The response includes:
+
+- Configured providers and models—both Sourcegraph-provided (if enabled, with any applied filters) and any overrides
+- Default models for Cody features
+
+#### Example response
+
+```json
+"schemaVersion": "1.0",
+"revision": "0.0.0+dev",
+"providers": [
+ {
+ "id": "anthropic",
+ "displayName": "Anthropic"
+ },
+ {
+ "id": "fireworks",
+ "displayName": "Fireworks"
+ },
+ {
+ "id": "google",
+ "displayName": "Google"
+ },
+ {
+ "id": "openai",
+ "displayName": "OpenAI"
+ },
+ {
+ "id": "mistral",
+ "displayName": "Mistral"
+ }
+],
+"models": [
+ {
+ "modelRef": "anthropic::2024-10-22::claude-3-5-sonnet-latest",
+ "displayName": "Claude 3.5 Sonnet (Latest)",
+ "modelName": "claude-3-5-sonnet-latest",
+ "capabilities": ["chat"],
+ "category": "accuracy",
+ "status": "stable",
+ "contextWindow": {
+ "maxInputTokens": 45000,
+ "maxOutputTokens": 4000
+ }
+ },
+ {
+ "modelRef": "anthropic::2023-06-01::claude-3-haiku",
+ "displayName": "Claude 3 Haiku",
+ "modelName": "claude-3-haiku-20240307",
+ "capabilities": ["chat"],
+ "category": "speed",
+ "status": "stable",
+ "contextWindow": {
+ "maxInputTokens": 7000,
+ "maxOutputTokens": 4000
+ }
+ },
+ {
+ "modelRef": "fireworks::v1::starcoder",
+ "displayName": "StarCoder",
+ "modelName": "starcoder",
+ "capabilities": ["autocomplete"],
+ "category": "speed",
+ "status": "stable",
+ "contextWindow": {
+ "maxInputTokens": 2048,
+ "maxOutputTokens": 256
+ }
+ },
+ {
+ "modelRef": "fireworks::v1::deepseek-coder-v2-lite-base",
+ "displayName": "DeepSeek V2 Lite Base",
+ "modelName": "accounts/sourcegraph/models/deepseek-coder-v2-lite-base",
+ "capabilities": ["autocomplete"],
+ "category": "speed",
+ "status": "stable",
+ "contextWindow": {
+ "maxInputTokens": 2048,
+ "maxOutputTokens": 256
+ }
+ },
+ {
+ "modelRef": "google::v1::gemini-1.5-pro",
+ "displayName": "Gemini 1.5 Pro",
+ "modelName": "gemini-1.5-pro",
+ "capabilities": ["chat"],
+ "category": "balanced",
+ "status": "stable",
+ "contextWindow": {
+ "maxInputTokens": 45000,
+ "maxOutputTokens": 4000
+ }
+ },
+ {
+ "modelRef": "openai::2024-02-01::gpt-4o",
+ "displayName": "GPT-4o",
+ "modelName": "gpt-4o",
+ "capabilities": ["chat"],
+ "category": "accuracy",
+ "status": "stable",
+ "contextWindow": {
+ "maxInputTokens": 45000,
+ "maxOutputTokens": 4000
+ }
+ },
+ {
+ "modelRef": "openai::2024-02-01::cody-chat-preview-001",
+ "displayName": "OpenAI o1-preview",
+ "modelName": "cody-chat-preview-001",
+ "capabilities": ["chat"],
+ "category": "accuracy",
+ "status": "waitlist",
+ "contextWindow": {
+ "maxInputTokens": 45000,
+ "maxOutputTokens": 4000
+ }
+ },
+],
+"defaultModels": {
+ "chat": "anthropic::2024-10-22::claude-3-5-sonnet-latest",
+ "fastChat": "anthropic::2023-06-01::claude-3-haiku",
+ "codeCompletion": "fireworks::v1::deepseek-coder-v2-lite-base"
+}
+```
diff --git a/docs/cody/faq.mdx b/docs/cody/faq.mdx
index 6cf55d7be..689da159b 100644
--- a/docs/cody/faq.mdx
+++ b/docs/cody/faq.mdx
@@ -22,12 +22,11 @@ This process ensures that Cody can provide helpful answers to your questions whi
Yes, Cody is compatible with self-hosted Sourcegraph instances. However, there are a few considerations:
- Cody operates by sending code snippets (up to 28 KB per request) to a third-party cloud service. By default, this service is Anthropic but can also be OpenAI
-- For certain repositories, Cody may utilize embeddings, which involves sending repository data to another third-party service like OpenAI
- To use Cody effectively, your self-hosted Sourcegraph instance must have internet access for these interactions with external services
### Is Cody licensed for private code, and does it allow GPL-licensed code?
-There are no checks or exclusions for Cody PLG (VS Code, JetBrains, Neovim) for private and GPL-licensed code. We are subject to whatever the LLMs are trained on. However, Cody can be used with [StarCoder for autocomplete](/cody/clients/enable-cody-enterprise#use-starcoder-for-autocomplete) which is trained only on permissively licensed code.
+There are no checks or exclusions for Cody PLG (VS Code, JetBrains) for private and GPL-licensed code. We are subject to whatever the LLMs are trained on. However, Cody can be used with [StarCoder for autocomplete](/cody/clients/enable-cody-enterprise#use-starcoder-for-autocomplete) which is trained only on permissively licensed code.
### Is there a public facing Cody API?
@@ -42,58 +41,83 @@ Yes, Cody relies on Sourcegraph for two essential functions:
### What programming languages does Cody support?
-Cody supports a wide range of programming languages, including JavaScript, TypeScript, PHP, Python, Java, C/C++, C#, Ruby, Go, SQL, Swift, Objective-C, Perl, Rust, Kotlin, Scala, Groovy, R, MATLAB, Dart, Lua, Julia, COBOL, and shell scripting languages (like Bash, PowerShell).
+Cody supports a wide range of programming languages, including:
+
+- JavaScript
+- TypeScript
+- PHP
+- Python
+- Java
+- C/C++
+- C#
+- Ruby
+- Go
+- SQL
+- Swift
+- Objective-C
+- Perl
+- Rust
+- Kotlin
+- Scala
+- Groovy
+- R
+- MATLAB
+- Dart
+- Lua
+- Julia
+- COBOL
+- Shell scripting languages (like Bash, PowerShell)
Cody's response quality on a programming language depends on many factors, including the underlying LLM being used. We monitor accuracy metrics across all languages and regularly make improvements. [Let us know](https://community.sourcegraph.com/) if you're seeing poor quality on a particular programming language.
-### What happened to the Cody App?
-
-We’ve deprecated the Cody App to streamline the experience for our Cody Free and Cody Pro users. Now, anyone with a Sourcegraph.com account can generate local embeddings for their personal projects within the VS Code extension without downloading and connecting the Cody App. Local embeddings are only supported for VS Code, but we’re working on adding the same functionality to JetBrains IDEs.
+### Can Cody answer non-programming questions?
-## Embeddings
+Cody Chat is optimized for coding related use cases and can be used primarily for reviewing, analysis, testing, writing, and editing of software code. Use of Cody for any other purposes is against our [acceptable use policy](https://sourcegraph.com/terms/aup) and may result in your account being restricted.
-### What are embeddings for?
+### What happened to the Cody App?
-Embeddings help Sourcegraph retrieve relevant code to feed the Large Language Model as context. Embeddings, often associated with vector search, complement other strategies in the code retrieval process.
+We’ve deprecated the Cody App to streamline the experience for our Cody Free and Cody Pro users.The Cody App is no longer available for download.
-While embeddings excel in semantic matching — determining "what is this code about" and "what does it do" — they may not capture syntax and other specific matching details as effectively. Sourcegraph's approach involves getting the best results from various sources to deliver the most accurate and comprehensive answers possible.
+## Embeddings
### Why were embeddings removed once my instance was upgraded to v5.3?
-Cody now leverages **Sourcegraph Search** as a primary context provider, which comes with the following benefits:
+Cody leverages **Sourcegraph Search** as a primary context provider, which comes with the following benefits:
- **More secure**: No code being sent to a third-party embedding API
- **Easier to manage**: Less tech debt for embeddings setup and need for refreshes
- **More repos**: Sourcegraph Search scales to larger repos and a greater number. Users on Enterprise instances will now be able to select multiple repos as context sources from within the IDE
- **Equal, or better, quality**: Sourcegraph Search provides high-quality retrieval, as tested over the last ten years. When a customer sees degradation, we will be ready to respond quickly.
-Embeddings are just one mechanism for retrieval. We leverage multiple retrieval mechanisms to give Cody the right context and will be constantly iterating to improve Cody's quality. The most important aspect is getting the files from the codebase, not the specific algorithm used to find those files.
+We leverage multiple retrieval mechanisms to give Cody the right context and will be constantly iterating to improve Cody's quality. The most important aspect is getting the files from the codebase, not the specific algorithm used to find those files.
-### Why are embeddings no longer supported on Cody Enterprise?
+### Why are embeddings no longer supported on Cody PLG and Enterprise?
-There are two driving factors:
+Cody does not support embeddings on Cody PLG and Cody Enterprise because we have replaced them with Sourcegraph Search. There are two driving factors:
- The need for a retrieval system that can scale across repos and to repos of greater size
- A system that is secure and requires low maintenance on the part of users
-Leveraging Sourcegraph Search allowed us to deliver these enhancements. Early evidence suggests that this context fetching works as well as embeddings and is sometimes better.
+Leveraging Sourcegraph Search allowed us to deliver these enhancements.
+
+## LLM Data Sharing and Retention
-### Why are embeddings only supported for Cody Free and Cody Pro users in VS Code and not for JetBrains?
+### Is any of my data sent to DeepSeek?
-Only users on VSCode will have continued access to local embeddings and only as a backup source to our local search index. The rationale here is that we want a place to continue to test embeddings to empirically measure their value and see if there are areas where we should consider returning them. This aligns with our strategy to use PLG as a test bed for features before they come to enterprise customers.
+Our autocomplete features uses the open source DeepSeek-Coder-V2 model, which is hosted by Fireworks.ai in a secure single-tenant environment located in the USA. No customer chat or autocomplete data - such as chat messages, or context such as code snippets or configuration - is stored by Fireworks.ai.
+
+Sourcegraph does not use models hosted by DeepSeek (the company), and does not send any data to the same.
## Third party dependencies
-### What is the default `sourcegraph` provider for completions and embeddings?
+### What is the default `sourcegraph` provider for completions?
-The default provider for completions and embeddings, specified as `"provider": "sourcegraph"` refers to the [Sourcegraph Cody Gateway](/cody/core-concepts/cody-gateway). The Cody Gateway facilitates access to completions and embeddings for Sourcegraph enterprise instances by leveraging third-party services such as Anthropic and OpenAI.
+The default provider for completions, specified as `"provider": "sourcegraph"` refers to the [Sourcegraph Cody Gateway](/cody/core-concepts/cody-gateway). The Cody Gateway facilitates access to completions for Sourcegraph enterprise instances by leveraging third-party services such as Anthropic and OpenAI.
### What third-party cloud services does Cody depend on?
Cody relies on one primary third-party dependency, i.e., Anthropic's Claude API. Users can use this with the OpenAI API configuration.
-Additionally, Cody can optionally use OpenAI for generating embeddings, enhancing the quality of its context snippets, although this is not mandatory.
-
It's worth noting that these dependencies remain consistent when utilizing the [default `sourcegraph` provider, Cody Gateway](/cody/core-concepts/cody-gateway), which uses the same third-party providers.
### What is the retention policy for Anthropic and OpenAI?
@@ -102,7 +126,7 @@ Please refer to this [terms and conditions](https://about.sourcegraph.com/terms/
### Can I use my own API keys?
-Yes! you can use your own API keys (Enterprise Users Only).
+Yes, [you can use your own API keys](https://sourcegraph.com/docs/cody/clients/install-vscode#experimental-models). However, this is an experimental feature. Bring-your-own-API-key is fully supported in the Enterprise plan.
### Can I use Cody with my Cloud IDE?
@@ -110,3 +134,70 @@ Yes, Cody supports the following cloud development environments:
- vscode.dev and GitHub Codespaces (install from the VS Code extension marketplace)
- Any editor supporting the [Open VSX Registry](https://open-vsx.org/extension/sourcegraph/cody-ai), including [Gitpod](https://www.gitpod.io/blog/boosting-developer-productivity-unleashing-the-power-of-sourcegraph-cody-in-gitpod), Coder, and `code-server` (install from the [Open VSX Registry](https://open-vsx.org/extension/sourcegraph/cody-ai))
+
+### Can I use my LLM of preference to chat with Cody on CLI?
+
+Yes you can. In the CLI you can use the following command to get started. Please replace `$name_of_the_model` with the LLM model of your choice.
+
+```
+cody chat --model '$name_of_the_model' -m 'Hi Cody!'
+```
+
+For example, to use Claude 3.5 Sonnet, you'd pass the following command in your terminal, `cody chat --model 'claude-3.5-sonnet' -m 'Hi Cody!'
+
+### Sign-in dialog gets stuck with Kaspersky Antivirus
+
+**Problem:** When attempting to sign in, users may encounter a perpetual `"Signing in to Sourcegraph..."` dialog that never completes. This issue persists across different VS Code extension versions (e.g. 1.40-1.48) and browsers (Chrome, Edge, Firefox). In the browser console at `accounts.sourcegraph.com/sign-in`, you might see an error: `"Uncaught ApolloError: value.toString is not a function"`.
+
+**Solution:** This issue is typically caused by Kaspersky Antivirus interfering with the authentication process. To resolve:
+
+- Locate the Kaspersky icon in your system tray
+- Right-click on the Kaspersky icon
+- Select "Stop Protection"
+- Right-click the icon again
+- Select "Exit"
+
+
+Once you are signed in make sure to re-enable protection.
+
+
+## OpenAI o1
+
+### What are OpenAI o1 best practices?
+
+#### Context Management
+
+- Provide focused, relevant context
+- Use file references strategically
+- Keep initial requests concise
+
+#### Model Selection
+
+- **Sonnet 3.5**: Better for tasks requiring longer outputs
+
+#### Prompting Strategy
+
+- Be specific and direct
+- Include complete requirements upfront
+- Request brief responses when possible
+- Use step-by-step approach for complex tasks
+
+#### Response Time
+
+- Start with smaller contexts
+- Consider breaking complex tasks into stages
+
+#### Quality
+
+- Provide clear acceptance criteria
+- Include relevant context but avoid excess
+- Use specific examples when possible
+
+### What are the known limitations?
+
+#### Technical Constraints
+
+- 45k input token limit
+- 4k output token limit
+- No streaming responses for o1 series
+- Limited context window
diff --git a/docs/cody/index.mdx b/docs/cody/index.mdx
index 2151b1019..0177e2ec0 100644
--- a/docs/cody/index.mdx
+++ b/docs/cody/index.mdx
@@ -1,67 +1,51 @@
# Cody
-Cody is an AI coding assistant that writes, fixes, and maintains your code. It uses AI and a deep understanding of your codebase to gather context that helps you write and understand code faster.
+
+ Supported on all [Sourcegraph plans](https://about.sourcegraph.com/pricing).
+
+ Available on VS Code, JetBrains, Visual Studio, and the Web.
+
+
+
+Cody is an AI coding assistant that uses all the latest LLMs and your development context to help you understand, write, and fix code faster. It uses the powerful Sourcegraph's advanced Search API to pull context from both local and remote codebases so that you can use context about APIs, symbols, and usage patterns from across your entire codebase.
-
+
-Cody connects seamlessly with codehosts like GitHub , GitLab and IDEs like VS Code and JetBrains . Once connected, Cody acts as your personal AI coding assistant, equipped with a comprehensive understanding of the following three crucial elements:
+Cody connects seamlessly with codehosts like [GitHub](https://github.com/login?client_id=e917b2b7fa9040e1edd4), [GitLab](https://gitlab.com/users/sign_in) and IDEs like [VS Code](/cody/clients/install-vscode), [JetBrains](/cody/clients/install-jetbrains), and [Visual Studio](/cody/clients/install-visual-studio). Once connected, Cody acts as your personal AI coding assistant, equipped with the following capabilities:
-1. Your entire codebase
-2. Vast knowledge of open source code
-3. Extensive training data for code understanding and problem-solving
+1. Developer chat with the most powerful models and context
+2. Code completions, code edits, and customizable prompts
+3. Extensive context to deliver the most accurate results
## Getting started
-You can start using Cody with one of the following clients:
+You can start using Cody with one of the following options:
-
-
-
-
-
+
+
+
+
+
+
## Main features
Cody's main features include:
-{/* */}
-
-
-
-
- Feature
- Description
-
-
-
-
- Autocomplete
- Cody makes context-based code autocompletions. Cody can autocomplete single lines or whole functions in any programming language, configuration file, or documentation
-
-
- Chat
- Ask Cody questions about code in the chat view, and it will use Sourcegraph’s code graph to answer using knowledge of your codebase
-
-
- Commands
- Cody offers quick ready-to-use commands for common actions, such as adding code documentation, generating unit tests, and detecting code smells
-
-
- Debug code
- Cody can debug your code in the editor and also helps you identify code smells
-
-
- Cody Ignore
- Cody can ignore selected files or folders from chat and autocomplete results
-
-
-
-
-## What data is collected and how is it used?
+| **Feature** | **Description** |
+| -------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| **[Chat](/cody/capabilities/chat)** | Chat directly with AI to ask questions about your code, generate code, and edit code. Cody has the context of your open file and repository by default, and you can use `@` to add context on specific files, symbols, remote repositories, or other non-code artifacts. |
+| **[Autocomplete](/cody/capabilities/autocomplete)** | Cody predicts what you're trying to write before you type it. It makes single-line and multi-line suggestions as you type, using the context of the code around your cursor to make accurate suggestions. |
+| **[Prompts](/cody/capabilities/commands)** | Automate key tasks in your workflow with premade and customizable prompts. Any common query or task can be built into a prompt to save and share with your team. |
+| **[Context](/cody/core-concepts/context)** | Cody provides the best LLM models and context to power chat. It uses the powerful Sourcegraph's advanced Search API to pull context from both local and remote codebases. |
+| **[Debug code](/cody/capabilities/debug-code)** | Cody is optimized to identify and fix errors in your code. Its debugging capability and autocomplete suggestions can significantly accelerate your debugging process, increasing developer productivity. |
+| **[Context Filters](/cody/capabilities/ignore-context)** | Cody can ignore selected repositories from chat and autocomplete results, which helps you control and manage what context your codebase uses. |
+
+## What data is collected, and how is it used?
Cody collects and uses data in the following ways:
@@ -72,10 +56,10 @@ Cody collects and uses data in the following ways:
## Compatible with Sourcegraph products
-Cody is compatible to use with the other Sourcegraph products, like [Code Search](/code-search/). You can use Cody's chat to ask questions about your codebase. When you run any search query and open a repository or file, you’ll find an **Ask Cody** button that takes you to Cody’s chat interface that you can use to ask questions about the codebase.
+Cody is compatible with other Sourcegraph products, like [Code Search](/code-search/). You can use Cody's chat to ask questions about your codebase. When you run any search query and open a repository or file, you’ll find the **Cody** button that takes you to Cody’s chat interface, which you can use to ask questions about the codebase.
[Read more in the Cody FAQs to learn more about such queries →](/cody/faq)
## Join our community
-If you have any questions regarding Cody, you can always ask our community on [GitHub discussions](https://github.com/sourcegraph/cody/discussions), [Discord](https://discord.com/invite/s2qDtYGnAE), or [create a post on X](https://twitter.com/sourcegraphcody).
+If you have any questions regarding Cody, you can always [ask our community](https://community.sourcegraph.com), [Discord](https://discord.com/invite/s2qDtYGnAE), or [create a post on X](https://twitter.com/sourcegraphcody).
diff --git a/docs/cody/prompts-guide.mdx b/docs/cody/prompts-guide.mdx
new file mode 100644
index 000000000..9a5501cab
--- /dev/null
+++ b/docs/cody/prompts-guide.mdx
@@ -0,0 +1,310 @@
+# Cody Prompting Guide
+
+To get the best results from Cody, whether you're exploring a codebase, summarizing a pull request, or generating code, clear and effective prompts are key. This guide will help you write effective prompts to maximize your experience with Cody.
+
+## Why do prompts matter?
+
+Prompts are the foundation of how AI coding assistants like Cody interact with large language models (LLMs). They're not just chat inputs—they guide Cody to give precise, contextual, and actionable code suggestions.
+
+While Cody handles a lot of prompt engineering under the hood, the quality of your prompts still plays a key role in shaping the results.
+
+So, what defines a great prompt?
+
+## Anatomy of a prompt
+
+A well-crafted prompt has all the key elements to guide Cody in delivering accurate and relevant responses. You don’t need to include every element in every prompt, but understanding them can help you write more effectively.
+
+Let's split these docs into three parts:
+
+1. **Preparation**: How you'll prepare your code for Cody
+2. **Prompting**: How you will create effective prompts for Cody
+3. **Example prompts**: Examples of prompts for different use cases
+
+## 1. Preparation
+
+Before you start writing prompts, preparing your codebase for Cody is essential. Here are some key preparation steps:
+
+## Treat Cody like a new team member
+
+When using Cody, it's helpful to treat it like a new team member unfamiliar with your codebase. This approach ensures you provide Cody with the necessary context and information to generate accurate and contextually aware answers.
+
+You should focus on providing Cody with all the necessary information, such as the codebase structure, function names, and any relevant docs. The more context and details you provide, the better Cody can assist you in generating relevant and accurate code. For example,
+
+❌ Instead of a vague prompt like:
+
+```
+How can I filter products in JavaScript?
+```
+
+✅ Provide a more specific prompt with details:
+
+```
+I have an array of product objects in JavaScript, each with the following properties: id, name, category, and price. How can I write a function to filter the products by category?
+```
+
+## Define a persona or role
+
+Specify a persona or role in your prompt to provide an extra layer of context to guide Cody. For example, asking Cody to act as a **beginner Python developer** can result in simpler, more beginner-friendly code snippets.
+
+## Choose descriptive variable names
+
+Using clear and descriptive names for variables, functions, and classes is essential for making your code readable and understandable for you and Cody. Avoid abbreviations or ambiguous names that may confuse your AI assistant.
+
+✅ Good example:
+
+```php
+function calculateTotalPrice($items, $taxRate) {
+ // ...
+}
+```
+
+❌ Bad example:
+
+```php
+function calc($i, $t) {
+ // ...
+}
+```
+
+## Write clear code comments and docstrings
+
+In addition to variable names, comments, and docstrings are crucial in guiding Cody's understanding of your code. Treat them as a way to communicate with Cody, just like you would with a new engineer. Explain complex logic, algorithms, or project-specific concepts to give Cody context.
+
+✅ Good example:
+
+```javascript
+/**
+ * Calculate the shipping cost based on the order total.
+ * - For orders under $50, the shipping cost is $5.
+ * - For orders between $50 and $100, the shipping cost is $10.
+ * - For orders above $100, shipping is free.
+ *
+ * @param {number} orderTotal - The total amount of the order.
+ * @returns {number} The shipping cost, determined by the following rules:
+ */
+function calculateShippingCost(orderTotal) {
+ // Cody will autocomplete here
+}
+```
+
+A bonus here is that Cody can generate these docstrings for you, so you don't have to write them manually. You can use the **document-code** prompt to do this.
+
+## @-mention context
+
+Cody leverages the `@-mention` syntax to source context via files, symbols, web URLs, and more. By default, Cody will automatically detect context from the codebase you're working in via pre-filled context chips in the chat input field. Make sure that when you are working with any codebase, Cody picks up the default context. An empty context chip means Cody will search based on generally available context.
+
+You can learn more about context [here](/cody/core-concepts/context).
+
+### Indexing your repositories for context
+@-mention local and current repositories are only available if you have your repository indexed. Enterprise and Enterprise Starter users can request their admins to add their local project for indexing to get access to @-mention context.
+
+Repository indexing is only available to supported [Code Hosts](https://sourcegraph.com/docs/admin/code_hosts), please reach out to your admins if you require assistance with indexing.
+
+
+## Selecting the right LLM
+
+Cody offers a variety of LLMs for both chat and in-line edits by all the leading LLM providers. Each LLM has its strengths and weaknesses, so it is important to select the right one for your use case. For example, Claude 3.5 Sonnet and GPT-4o are powerful for code generation and provide accurate results. However, Gemini 2.0 Flash is a decent choice for cost-effective searches. So, you can always optimize your choice of LLM based on your use case.
+
+Learn more about all the supported LLMs [here](/cody/capabilities/supported-models).
+
+## 2. Prompting
+
+Now that your code is well-prepared, let's focus on writing effective prompts for Cody via the following best practices:
+
+## Provide specific information
+
+When using Cody chat, provide as much detail as possible. Include information about the problem, expected behavior, constraints, and project-specific requirements.
+
+Be sure to include comprehensive details about the problem, what you expect to happen, any limitations, and specific requirements related to your project.
+
+❌ Bad example:
+
+```
+How do I calculate discounts based on loyalty points in Laravel?
+```
+
+✅ Good example:
+
+```
+I need to calculate discounts based on customer loyalty points.
+
+- If the customer has loyalty points above 500, apply a 10% discount.
+- If the customer has loyalty points between 200 and 500, apply a 5% discount.
+- If the customer has loyalty points below 200, no discount is applied.
+
+Create a function that takes the total amount and loyalty points as input and returns an object with the discount percentage and discount amount.
+```
+
+## Provide specific context
+
+While preparing your codebase for Cody, you learned about the importance of context chips. In addition to this default context, you can provide additional and more specific context to help Cody better understand your codebase.
+
+You can continue to `@-mention` files, symbols, and other context sources (as supported by your Cody tier) to make your search more specific and granular. You should approach this as if explaining the situation to a new team member. You should:
+
+- Reference important files and symbols
+- Provide examples from other similar functions
+
+## Provide examples and test cases
+
+You should include examples and test cases when applicable to clarify your expectations. Demonstrate edge cases or handling of special conditions to guide Cody in generating robust code.
+
+❌ Bad example:
+
+```
+I need to validate email addresses in JavaScript
+```
+
+✅ Good example:
+
+```
+Create a function to validate email addresses in JavaScript. Return true for valid email addresses and false for invalid ones. Here are some example test cases:
+
+Valid:
+- "john@example.com"
+- "jane.doe@example.co.uk"
+
+Invalid:
+- "john@example"
+- "jane.doe@example."
+- "invalid.email"
+
+Please write the function
+```
+
+## Iterate and refine
+
+Start with a general prompt and incrementally add more details based on Cody's responses. Take advantage of the fact that you can chat with Cody. Bring the back-and-forth conversation, especially if you didn't like Cody's first response. Review the generated code or suggestions, provide feedback, and refine your prompts to get the desired results.
+
+Initial prompt:
+
+```
+I need to calculate the total price of an order. Help me write the function
+```
+
+Refined prompt:
+
+```
+Thanks. I forgot to mention:
+
+- The function should take an array of order items as input
+- We need to apply a 10% discount if the total price exceeds $100
+- Final total should be rounded to two decimal places
+
+Please update the function
+```
+
+## Leverage Cody's capabilities
+
+You can utilize many other [Cody's capabilities](/cody/capabilities) for generating boilerplate code, common patterns, and repetitive tasks. Prompt it to assist with unit tests, docs, and error handling to save time and ensure code quality.
+
+✅ Good example:
+
+```
+Help me write tests for the `calculateAverageRating` function. Here are the test cases I have in mind:
+
+- Empty ratings array should return 0
+- Array with one rating should return that rating
+- Array with multiple ratings should calculate the average correctly
+
+Make sure the tests cover any edge cases or potential issues.
+```
+
+You can also use the **generate-unit-tests** prompt to generate tests for your code.
+
+## Miscellaneous information
+
+Try adding any supplementary details regarding comments, debugging guidelines, error management, required dependencies, or coding styles. For instance, when directing Cody to implement a database query in SQL, specify the need for parameterized queries to prevent SQL injection vulnerabilities and provide suggestions for optimizing query performance.
+
+## Prompts Library
+
+To accelerate and automate your work, you can leverage Cody's Prompt Library, which helps you build customizable building blocks (prompts), share your best prompts with your teammates, and enable site administrators to promote the best prompts to the rest of the organization.
+
+The Prompt Library is a system for creating and sharing customizable prompts. It is explicitly designed for scalability, repeatability, and flexibility.
+
+Learn more about the [Prompts and the Prompt Library here](/cody/capabilities/commands).
+
+## Example Prompts
+
+Let's examine some examples of good and reusable prompts that you can create via the Prompt Library.
+
+
+
+This prompt can help if Cody needs to generate code in the correct language/framework version. For example,
+
+>Cody generates code snippets using a newer [Spring](https://spring.io/) version that's incompatible with your legacy Java application, which runs Spring 3.x. This mismatch leads to examples utilizing features from Spring Boot 2.x that your project doesn't support.
+
+The prompt to tackle this issue looks like this:
+
+```
+Please generate Java code that is compatible with the following specifications:
+
+Java version: 1.6
+Spring framework version: 3.x
+Testing framework: JUnit 4"
+
+```
+
+
+
+
+
+This prompt can help if Cody needs to follow your organization's coding standards or style guide. For example,
+
+>Your organization follows a specific Python coding style guide that mandates using snake_case for variable names and requires docstrings for all functions. However, Cody might generate code that doesn't adhere to these conventions, leading to inconsistency in your codebase.
+
+The prompt to resolve this inconsistency will be:
+
+```
+Generate Python code that adheres to our organization's style guide, which includes the following requirements:
+
+Use snake_case for all variable and function names.
+Include docstrings for all functions, describing their purpose and parameters.
+Follow PEP 8 guidelines for code formatting, including indentation and line length.
+```
+
+
+
+
+
+This prompt can help you if you want to generate unit tests for your code based on a specific format. For example,
+
+>You're working with Golang and need Cody to generate unit tests that comply with your team’s conventions. Your organization follows a specific structure for tests, including table-driven tests and `require` from the `testify` package for assertions. However, Cody might provide a simple test that does not align with your standards.
+
+While you can use the default `generate-unit-tests` prompt but to get the desired output, you can customize the prompt to include the following:
+
+```
+Please generate Golang unit tests that adhere to the following conventions:
+
+Use table-driven tests for different input cases.
+Use the require package from testify for assertions.
+Follow idiomatic Go test naming conventions and structure.
+```
+
+
+
+
+
+This prompt can help you if you want to onboard new team members by providing them with a set of instructions or guidelines to get started with a project. For example,
+
+```
+@repo tell me about this project and how to set it up.
+```
+
+
+
+
+
+To encourage detailed and comprehensive docs of your codebase, you can create a prompt instructing Cody to generate documentation based on your style guide. For example,
+
+```
+Please generate a docstring for the given Python function that adheres to our team's documentation standards. The docstring should include:
+1. A brief summary of the function's purpose.
+2. A description of each parameter, including name, type, and purpose.
+3. The return value, including its type and description.
+4. Any raised exceptions, if applicable.
+5. Example usage of the function, where relevant.
+```
+
+
+
+You can share all these prompt examples with your team members to help them get started with Cody. If you want others to make the most of these, you can also promote the best prompts.
diff --git a/docs/cody/quickstart.mdx b/docs/cody/quickstart.mdx
index 3f8687091..f8d3e2b13 100644
--- a/docs/cody/quickstart.mdx
+++ b/docs/cody/quickstart.mdx
@@ -1,148 +1,76 @@
# Cody Quickstart
- In this quickstart guide, you'll learn how to use Cody once you have installed the extension in your VS Code editor. Here you will perform the following three tasks:
+This quickstart guide shows how to use Cody in the VS Code editor. You'll learn about the following tasks:
-1. Generate unit tests for your code
-2. Identify errors and get suggested code fixes
-3. Add documentation to your code snippets
+- Chat with Cody to ask questions about your code
+- Code completions and suggestions
+- Use Cody to refactor code
+- Use Cody to debug code and ask Cody to fix bugs
-## Prerequisites
-
-- Make sure you have the [Cody extension installed](/cody/clients/install-vscode) in your VS Code editor
-- You have a Free or Pro account through Sourcegraph.com or a Sourcegraph Enterprise account
-- You have a project open in VS Code
-
-## Getting started with the Cody extension and commands
-
-After installing the extension, the side activity bar will display an icon for **Cody**. Click this icon, and Cody's panel will open. This interface is used to start a **New Chat**, run Cody **commands** or get access to relevant resources.
-
-
-
-Cody supports **Commands** with VS Code. These are quick, ready-to-use prompt actions that you can apply to any code or text-based snippet you've highlighted. You can run a command in the following ways:
-
-1. Highlight your code and select the command from the sidebar
-
-
+There are [many ways to use Cody](/cody/clients). For this guide, we'll be using the [VS Code](/cody/clients/install-vscode) extension.
-2. Open up the command palette with `Option+C` `Alt+C`
-3. Right-click on any code element and select **Cody > Choose a command** from the list
-4. Type `/` in the chat bar. Cody will then suggest a list of available commands
-
-
-
-## Working with the Cody extension
-
-Let's create a JavaScript function that converts a `given date` into a human-readable description of the time elapsed between the `given date` and the `current date`. This example uses a starter boilerplate code that helps you set up and run three tasks with the Cody VS Code extension.
-
-Here's the code for the date elapsed function:
-
-```js
-function getTimeAgoDescription(dateString) {
- const startDate = new Date(dateString);
- const currentDate = new Date();
-
- const years = currentDate.getFullYear() - startDate.getFullYear();
- const months = currentDate.getMonth() - startDate.getMonth();
- const days = currentDate.getDate() - startDate.getDate();
+## Prerequisites
- let timeAgoDescription = '';
+Before you start, you'll need the following:
- if (years > 0) {
- timeAgoDescription += `${years} ${years === 1 ? 'year' : 'years'}`;
- }
+- [Cody extension installed](/cody/clients/install-vscode) in your VS Code editor
+- Free or Pro account via Sourcegraph.com or a Sourcegraph Enterprise account
+- A project open in VS Code
- if (months > 0) {
- if (timeAgoDescription !== '') {
- timeAgoDescription += ' ';
- }
- timeAgoDescription += `${months} ${months === 1 ? 'month' : 'months'}`;
- }
+## Getting started with Cody
- if (days > 0) {
- if (timeAgoDescription !== '') {
- timeAgoDescription += ' ';
- }
- timeAgoDescription += `${days} ${days === 1 ? 'day' : 'days'}`;
- }
+After installing the extension and connecting to a Sourcegraph instance, you can leverage Cody to use the best LLM and context to understand, write, and fix code. Click the **Cody** icon from the VS Code side activity bar to open the Cody chat panel.
- if (timeAgoDescription === '') {
- timeAgoDescription = 'today';
- } else {
- timeAgoDescription += ' ago';
- }
+By default, the chat input will have the context of your entire codebase, and Claude 3.5 Sonnet (New) is selected as the default chat model. Based on your [Cody tier](https://sourcegraph.com/pricing?product=cody), you can change the LLM model and context based on your use case to optimize speed, accuracy, or cost.
- return timeAgoDescription;
-}
-```
+To help you automate your key tasks in your development workflow, you get **[Prompts](/cody/capabilities/commands)**. If you are a part of an organization on Sourcegraph.com or a self-hosted Sourcegraph instance, you can view these pre-built Prompts created by your teammates. Alternatively, you can create your own Prompts via the **Prompt Library** from your Sourcegraph instance.
-## 1. Generate a unit test
+The Cody chat interface offers a few more options and settings. [You can read more in these docs](/cody/capabilities/chat).
-To ensure code quality and early bug detection, one of the most useful commands that Cody offers is **Generate unit tests**. It quickly helps you write test code for any snippet that you have highlighted. To generate a unit test for our example function:
+
-- Open the `date.js` file in VS Code
-- Highlight a code snippet that you'd like to test
-- Inside Cody chat, type `/test` or press the command hotkey (`⌥` + `c` / `alt` + `c`)
-- Select `Generate unit tests` option and hit `Enter`
+## Chat with Cody
-Cody will help you generate the following unit test in the sidebar:
+The best way to see Cody in action is through chat. Cody allows you to chat directly with AI to ask questions about your code. You can start by asking simple questions like:
-```js
-import assert from 'assert';
-import { getTimeAgoDescription } from '../src/date.js';
+- What does this code do?
+- Explain this codebase in three to four lines
-describe('getTimeAgoDescription', () => {
- it('returns correct relative time for date 1 month ago', () => {
- const oneMonthAgo = new Date(Date.now() - 30 * 24 * 60 * 60 * 1000).toISOString().split('T')[0];
- const result = getTimeAgoDescription(oneMonthAgo);
- assert.equal(result, '1 month ago');
- });
+Or ask more complex questions like:
- it('returns correct relative time for date 2 months ago', () => {
- const twoMonthsAgo = new Date(Date.now() - 2 * 30 * 24 * 60 * 60 * 1000).toISOString().split('T')[0];
- const result = getTimeAgoDescription(twoMonthsAgo);
- assert.equal(result, '2 months ago');
- });
-});
+- Suggest ways to refactor the codebase?
+- How can I make this code more performant?
-```
+Cody will respond with a code snippet, a suggested fix, or an explanation.
-This unit test file tests the `getTimeAgoDescription()` function from the `date.js` file. These tests help you validate that the `getTimeAgoDescription()` function correctly returns the relative time descriptions for dates in the past. The tests generate specific sample input dates and confirm that the output matches the expected result.
+
-## 2. Suggest bug fixes and changes to code snippets
+## Code completions and suggestions
-Cody is very efficient at catching bugs and suggesting improvements to code snippets. To try this out, let's run our previously generated unit test and see if Cody notices any issues. Inside your VS Code terminal, run the following command to try the unit test:
+Cody helps you code faster by providing real-time single and multi-line code completions. It uses the context of the code around your cursor to make accurate suggestions and starts predicting what you're trying to write before you type it.
-```bash
-node tests/test.js
-```
+Let's try it by typing a `bubbleSort()` function in a JavaScript file.
-This results in an error, as our function does not identify the `describe` statement.
+
-
+Cody automatically predicts the function body in gray-dimmed text. Press `Tab` to accept the suggestion or `Esc` to dismiss it.
-Let's paste this error into the Cody chat and see what suggestions it provides:
+## Use Cody to refactor code
-
+You can refactor your code with inline edits. All you need to do is highlight the code, hit the edit hotkey (`Opt + K`), and describe a change. Cody will generate a diff for the change in seconds.
-Leveraging the failed test output, Cody is able to identify the potential bug and suggest a fix. It recommends installing `mocha`, importing it at the top of the `test.js` file to identify `describe`, and finally running it with `mocha`.
+Let's use the same `bubbleSort()` function from the previous section. Now, refactor the function to sort dates in descending order. Highlight the function and press `Opt + K`.
-
+
-## 3. Ask Cody to add code documentation
+Type your refactoring suggestion in the input field and press `Enter`. Cody will quickly generate a diff for the change. You can review the diff, accept the change, reject it, or retry if you are unsatisfied with the result.
-Cody can also create well-crafted code documentation and comments, significantly improving the readability experience.
-You can add it by selecting a code snippet and running the **Document** command. Cody will add a comment to the top of the code snippet.
+## Use Cody to debug code
-
-
-
+You can ask Cody to debug your code and fix bugs. Cody chat and inline edits are both quite powerful in debugging. If there is a bug, you can ask Cody to debug and fix the code. VS Code and JetBrains IDEs offer **Ask Cody to fix** option.
-## Try other commands and Cody chat
+When a mistake occurs, a red warning appears. Along with this, you get a lightbulb icon. If you click on this lightbulb icon, there is an **Ask Cody to fix** option. Click this, and Cody will try to fix the bug with a **Cody is working** notice.
-That's it for this quickstart guide! Feel free to continue chatting with Cody to learn more about its [capabilities](/cody/capabilities). Cody can run some other useful commands including:
+
-- Explain code snippets
-- Refactor code and variable names
-- Translate code to different languages
-- Answer general questions about your code
-- Write context-aware code with a general awareness of the broader codebase
+That's it for this quickstart guide! Feel free to continue chatting with Cody to learn more about its [capabilities](/cody/capabilities).
diff --git a/docs/cody/troubleshooting.mdx b/docs/cody/troubleshooting.mdx
index 5b2eaa61d..c8694e37c 100644
--- a/docs/cody/troubleshooting.mdx
+++ b/docs/cody/troubleshooting.mdx
@@ -13,15 +13,29 @@ If you're experiencing issues with Cody not responding in chat, follow these ste
- Ensure you have the latest version of the [Cody VS Code extension](https://marketplace.visualstudio.com/items?itemName=sourcegraph.cody-ai). Use the VS Code command `Extensions: Check for Extension Updates` to verify
- Check the VS Code error console for relevant error messages. To open it, run the VS Code command `Developer: Toggle Developer Tools` and then look in the `Console` for relevant messages
+### Cody responses/completions are slow
+
+If you're experiencing issues with Cody's responses or completions being too slow:
+
+- Ensure you have the latest version of the [Cody VS Code extension](https://marketplace.visualstudio.com/items?itemName=sourcegraph.cody-ai). Use the VS Code command `Extensions: Check for Extension Updates` to verify
+- Enable verbose logging, restart the extension and reproduce the issue seen again (see below `Access Cody logs` for how to do this)
+- Send information to the our Support Team at support@sourcegraph.com
+
+Some additional information that will be valuable:
+
+- Where are you located? Any proxies or firewalls in use?
+- Does this happen with multiple providers/models? Which models have you used?
+
### Access Cody logs
-VS Code logs can be accessed via the **Outputs** view. To access logs, you need to enable Cody logs in verbose mode. To do so:
+VS Code logs can be accessed via the **Outputs** view. You will need to set Cody to verbose mode to ensure important information to debug is on the logs. To do so:
-- Go to the Cody Extension Settings and enable: `Cody › Debug: Enable` and `Cody › Debug: Verbose`
+- Go to the Cody Extension Settings and enable: `Cody › Debug: Verbose`
- Restart or reload your VS Code editor
- You can now see the logs in the Outputs view
- Open the view via the menu bar: `View > Output`
- Select **Cody by Sourcegraph** from the dropdown list
+- You can export the logs by using the command palette (Cmd+Shift+P on Mac, Ctrl+Shift+P on Windows/Linux) and searching for the "Cody Debug: Export Logs" command

@@ -51,16 +65,15 @@ If you find yourself being automatically signed out of Cody every time you resta
### No context files were included by Cody
-If Cody is not responding with answers relevant to your codebase, it might be missing context files. To make sure that context files are included, follow these steps:
+If Cody's answers don't seem accurate, it may be because Cody is unable to find the right relevant files to use as context. You can see which files Cody used in the **Context** row right below your message.
+
+To troubleshoot further:
-- From your Cody chat window enable the checkbox for **[Enhanced Context](/cody/clients/install-vscode#enhanced-context-selector)** panel
-- Next, go to the **Output** log panel in VS Code and select **Cody by Sourcegraph** from the dropdown menu
-- Finally, copy the output log. We're specifically looking for log messages like these:
+1. Enable the `cody.debug.verbose` setting in your VS Code user settings.
+1. Open the **Cody by Sourcegraph** output channel in VS Code.
+1. Look for log messages such as the following:
```bash
-█ SimpleChatPanelProvider: getEnhancedContext > embeddings (start)
-█ SimpleChatPanelProvider: getEnhancedContext > searching local embeddings
-█ SimpleChatPanelProvider: getEnhancedContext > embeddings (end)
█ SimpleChatPanelProvider: getEnhancedContext > search
█ symf: using downloaded symf "/Users/beyang/Library/Application Support/Code/User/globalStorage/sourcegraph.cody-ai/symf/symf-v0.0.6-aarch64-macos"
█ SimpleChatPanelProvider: getEnhancedContext > search (end)
@@ -69,11 +82,15 @@ If Cody is not responding with answers relevant to your codebase, it might be mi
### Rate limits
-On the free plan, Cody provides **500 autocomplete suggestions** and **20 chat and command invokations** per user per month.
+Cody Free provides **unlimited autocomplete suggestions** and **200 chat invocations** per user per month.
-On the Pro and Enterprise plans, there are much higher limits that are used to keep our services operational. These limits reset within a day.
+On Cody Pro and Enterprise plans, usage limits are increased, and controlled by **Fair Usage**. This means that some users occasionally experience a limitation placed on their account. This limitation resets within 24 hours. If this issue persists, contact us through our [community forum](https://community.sourcegraph.com), Discord, or email support@sourcegraph.com.
-### Error logging in VS Code on Linux
+#### 429 errors
+
+A 429 status code means you are on a free account and hit your usage limit/quota for the day. It can also mean you were sending too many requests in a short period of time. If you have Cody Pro and you are seeing 429 errors, you can contact us at [support@sourcegraph.com](mailto:support@sourcegraph.com) to resolve this.
+
+### Error logging in VS Code on Linux and Windows
If you encounter difficulties logging in to Cody on Linux using your Sourcegraph instance URL, along with a valid access token, and notice that the sign-in process in VS Code hangs, it might be related to underlying networking rules concerning SSL certificates.
@@ -83,6 +100,45 @@ To address this, follow these steps:
- In your terminal, type and run the following command: `echo "export NODE_TLS_REJECT_UNAUTHORIZED=0">> ~/.bashrc`
- Restart VS Code and try the sign in process again
+On Windows,
+
+- Close Visual Studio Code
+- In your Command Prompt or PowerShell window, run the following command: `setx NODE_TLS_REJECT_UNAUTHORIZED 0`
+- Restart Visual Studio Code and try the sign in process again
+
+### Cloudflare Request Failed
+
+ If you encounter this error:
+
+```
+Request Failed: Request to https://sourcegraph.com/.api/completions/stream?api-version=1&client-name=vscode&client-version=1.34.3 failed with 403 Forbidden
+```
+
+It indicates that our web application firewall provider, Cloudflare, has flagged the source IP as suspicious.
+
+Consider disabling anonymizers, VPNs, or open proxies. If using a VPN is essential, you can try [1.1.1.1](https://one.one.one.one), which is recognized to be compatible with our services.
+
+### Error with Cody `contextFilters` during chat or editing code
+
+The `contextFilters` setting in Cody is used to control which files are included or excluded when Cody searches for relevant context while answering questions or providing code assistance. Sometimes, you can see the following error:
+
+```
+Edit failed to run: file is ignored (due to cody.contextFilters Enterprise configuration setting)
+```
+
+This error occurs when you're trying to work with a file that's been excluded by Cody's enterprise-level `contextFilters` configuration. At times, this can happen to files that also haven't been excluded. First, check with your organization's admin to understand which files are excluded.
+
+If the error occurs with a file that's not been excluded, the workaround is to uninstall the Cody plugin, restart your IDE and then reinstall the latest version of the extension.
+
+This should clear the error.
+
+### VS Code Pro License Issues
+
+If VS Code prompts you to upgrade to Pro despite already having a Pro license, this usually happens because you're logged into a free Cody/Sourcegraph account rather than your Pro account. To fix this:
+
+- Check which account you're currently logged into
+- If needed, log out and sign in with your PRO account credentials
+
### Error exceeding `localStorage` quota
When using Cody chat, you may come across this error:
@@ -93,7 +149,7 @@ Failed to execute 'setItem' on 'Storage': Setting the value of 'user-history:$us
This error indicates that the chat history size surpasses the capacity of your browser's local storage. Cody stores comprehensive context data with each chat message, contributing to this limitation.
-To fix this, navigate to https://sourcegraph.example.com/cody/chat and click `Clear Chat History` if your instance is on v5.2.3+. For older versions, clear your browsing data or browser history.
+To fix this, navigate to https://sourcegraph.your-domain.com/cody/chat and click `Clear Chat History` if your instance is on v5.2.3+. For older versions, clear your browsing data or browser history.
### Record performance traces for Cody
@@ -104,6 +160,7 @@ You can get performance traces from the Cody VS Code extension in production wit
```bash
/Applications/Visual\ Studio\ Code.app/Contents/MacOS/Electron --inspect-extensions=9333
```
+
Note that you may need to quit VSCode first, then run that command to re-launch it. It will open all of your windows and tabs again.
- After VS Code is started, head over to Chrome and go to `chrome://inspect`, which takes you to the following:
@@ -121,13 +178,36 @@ Note that you may need to quit VSCode first, then run that command to re-launch

+### Record a CPU profile for Cody in VSCode
+
+If you are experiencing performance issues with Cody in VSCode, recording a CPU profile can help diagnose the problem. Here’s how you can capture a CPU profile:
+
+1. **Open Developer Tools**:
+ - In VSCode, go to the Command Palette (`Ctrl+Shift+P` on Windows/Linux, `Cmd+Shift+P` on macOS).
+ - Type `Developer: show running extensions` and select it to open running extensions.
+
+2. **Record the CPU Profile**:
+ - There you should see Cody in the list. Right click on it and start a host profile.
+ - This will show you the running profile in the bottom right of the window.
+ - Reproduce the issue you are experiencing with Cody.
+ - Once you have reproduced the issue, click the message in the bottom right you stop the trace.
+
+3. **Save the CPU Profile**:
+ - After stopping the trace, you need to go back to the Developer: show running extensions view.
+ - Right click Cody and click `Save extension profile`.
+
+4. **Share the CPU Profile**:
+ - Attach the `.cpuprofile` file to your issue report on GitHub or share it with the support team for further analysis.
+
+Following these steps will help the team understand and resolve the performance issues more effectively.
+
## JetBrains IntelliJ extension
### Access Cody logs
JetBrains logs can be accessed via the **Output** panel. To access logs, you must first enable Cody logs from the Settings menu. To do so:
-- Open the Settings panel (⌘, for MacOS) (Ctrl Alt 0S for Windows)
+- Open the Settings panel (`⌘,` for macOS) (`Ctrl+Alt+S` for Windows/Linux)
- Go to `Sourcegraph & Cody`
- Click on `Cody`
- Check the box to Enable debug
@@ -135,3 +215,182 @@ JetBrains logs can be accessed via the **Output** panel. To access logs, you mus
- Click Apply
- To access the logs, go to Help - Show Log in Finder
- Open the `idea.log` file
+
+### High CPU Usage with Cody Agent
+
+If you notice the Cody agent reaching 100% CPU utilization, try the following:
+
+1. Disable the Cody plugin.
+1. Re-enable the plugin.
+This simple action of turning the plugin off and on again can often resolve the high CPU usage issue.
+
+## Android Studio extension
+
+### Cody cannot start. Stuck on spinning icon.
+
+This issue occurs because JCEF isn't supported in Android Studio and causes Cody to not start. The suggested workaround is to:
+
+1. Go to `Help` > `Find Action: Registry`.
+1. Scroll to `ide.browser.jcef.sandbox.enable`.
+1. Disable that key and close.
+1. Then go to `Help` > `Find Action: Choose Boot runtime for the IDE`.
+1. Select the last option.
+1. Restart Android Studio.
+
+## Visual Studio extension
+
+### Access Cody logs
+
+Visual Studio logs can be accessed via the **Output** panel. To access logs:
+
+- Open `View -> Output` from the main menu
+- Select `Cody` output pane
+
+
+
+### Autocomplete
+
+Cody autocomplete for Visual Studio uses the underlying VS API to display completions in the editor. It's turned on by default in VS (`Tools -> Options -> IntelliCode -> Show Inline Completions`). Without this setting enabled, autocomplete will not work, so this is the first thing to check.
+
+
+
+Also make sure that `Tools -> Options -> Cody -> Automatically trigger completions` is turned on (it is by default).
+
+
+
+Autocomplete is supported from Visual Studio 17.6+ and includes support for the following languages:
+
+1. C/C++/C#
+2. Python
+3. JavaScript/TypeScript/TSX
+4. HTML
+5. CSS
+6. JSON
+
+#### Non-trusted certificates
+
+If autocomplete still doesn't work (or the Cody Chat), you could try **turning on** the option to `accept non-trusted certificates` (requires Visual Studio restart). This should help, especially in enterprise settings if you are behind a firewall.
+
+
+
+### Detailed debugging logs
+
+The detailed logging configuration can be turned on by adding the `CODY_VS_DEV_CONFIG` environment variable containing the full path to [the configuration file](https://github.com/sourcegraph/cody-vs/blob/main/src/CodyDevConfig.json) placed somewhere in the filesystem.
+
+
+
+Two additional output panes, `Cody Agent` and `Cody Notifications`, will be created with more detailed logs. More information on how to configure them is available [here](https://github.com/sourcegraph/cody-vs/blob/main/CONTRIBUTING.md#developer-configuration-file).
+
+
+
+## Regular Expressions
+
+### Asterisks being removed
+
+If you send Cody a prompt with a query string like `$filteredResults = preg_grep('*\.' . basename($inputPath) . '\.*', $fileList);`, the asterisks may be removed because Cody interprets the content as a literal string rather than code.
+
+When sharing code with Cody, wrap your code in triple backticks (```) to ensure it's recognized as a code block rather than plain text. For example:
+
+````regex
+```
+$filteredResults = preg_grep('*\.' . basename($inputPath) . '\.*', $fileList);
+```
+````
+
+## Forked Repos As Context
+
+If you would like to add a forked repository as Cody context, you may need to add `"search.includeForks": true` to the [global settings](/admin/config/settings#editing-global-settings-for-site-admins) for your instance.
+
+{/* ## Eclipse extension
+
+### See a white screen the first time you open Cody chat
+
+This can happen if Eclipse prompts you to set up a password for secure storage and Cody timeouts while waiting. Simply close and re-open the Cody chat.
+
+### "No password provided" in the error log
+
+If you see this error in the error log, it happens because the default OS password integration has been corrupted. Go to **Preferences > General > Security > Secure Storage** and ensure your OS integration is checked.
+
+Then click **Clear Passwords** at the top, and then click **Change Password**. If you see a dialog saying **An error occurred while decrypting stored values... Do you want to cancel password change?** Click **No**.
+
+This will reset the secure storage master password for OS integration. You will be asked if you want to provide additional information for password recovery, which is optional. Click **Apply and Close** and then restart Eclipse.
+
+### General Tips
+
+You can open the Cody Log view using the same steps as above, but instead, select **Cody Log**.
+
+
+
+This will include more information about what Cody is doing, including any errors. There is a copy button at the top right of the log view that you can use to copy the log to your clipboard and send it to us. Be careful not to include any sensitive information, as the log communication is verbose and may contain tokens.
+
+Additionally, Eclipse's built-in Error Log can be used to view any uncaught exceptions and their stack traces. You can open the Error Log using the **Window > Show View > Error Log** menu. */}
+
+## OpenAI o1
+
+### Context Deadline Exceeded Error
+
+Symptoms:
+
+- "Request Failed: Request to... failed with 500 Internal Server Error: context deadline exceeded"
+- Happens even with relatively small inputs (~220 lines)
+
+Solutions:
+
+- Keep input context smaller - aim for less than 200 lines of code initially
+- Break down larger requests into smaller chunks
+- Start a new chat session if errors persist
+- Add "Keep your answer brief!" to prompts when possible
+
+Prevention:
+
+- Import only the most relevant files
+- Use file range syntax (e.g., @file:1-100) to limit context
+- Focus on specific sections rather than entire codebases
+
+### Truncated Outputs
+
+Symptoms:
+
+- Response cuts off mid-sentence
+- Unable to get complete code examples
+- "Continue" requests also result in truncation
+
+Solutions:
+
+- Break down complex requests into smaller steps
+- Consider using Sonnet 3.5 for tasks requiring longer outputs
+
+Limits:
+
+- Input tokens: 45k
+- Output tokens: 4k
+
+### Model Switching Issues
+
+Symptoms:
+
+- Model reverts to Sonnet 3.5 unexpectedly
+- "On waitlist" message appears after previously having access
+- Unable to select o1 models in command palette
+
+Solutions:
+
+- Restart IDE/VS Code
+- Sign out and sign back in
+- Check Pro subscription status
+- Contact support if issues persist
+
+### Response Format Errors
+
+Symptoms:
+
+- "Request Failed: Unexpected response format"
+- Model stops responding
+- Inconsistent output formatting
+
+Solutions:
+
+- Cancel and retry the request
+- Start a new chat session
+- Reduce context complexity
+- Use one-shot prompts with clear requirements
diff --git a/docs/cody/usage-and-pricing.mdx b/docs/cody/usage-and-pricing.mdx
index 6b4737307..8a0e05ce9 100644
--- a/docs/cody/usage-and-pricing.mdx
+++ b/docs/cody/usage-and-pricing.mdx
@@ -1,20 +1,21 @@
-# Cody Pricing
+# Cody Pricing Plans
Learn about the different plans available for Cody.
Cody provides three subscription plans: **Free**, **Pro**, and **Enterprise**. Each plan is aimed to cater to a diverse range of users, from individual projects to large-scale enterprises. Cody Free includes basic features, while the Pro and Enterprise plans offer additional advanced features and resources to meet varying user requirements.
-## Free
+
+
-The free plan is designed for individuals to get started with Cody. It comes with a set of features to enhance your coding experience. It includes **500 autocompletion suggestions** per month, covering both whole and multi-line suggestions. You also get **20 chats/commands** per month with access to creating Custom Commands.
+The free plan is designed for individuals to get started with Cody. It comes with a set of features to enhance your coding experience. It includes **unlimited autocompletion suggestions** per month, covering both whole and multi-line suggestions. You also get **200 chats/prompts** per month with access to creating custom prompts.
-The free plan provides access to local context with keyword search and embeddings on open-source code via Sourcegraph.com. You get **200 MB** of embeddings over your lifetime and can manage these from the user settings in VS Code, with JetBrains IDE support coming soon. If you embed 150 MB of code, you can only embed another 50 MB of code. If you delete that 150 MB of code embedding, the original 200 MB of code embeddings will be available again.
+The free plan provides access to local context to enhance Cody's understanding of your code and ability to provide accurate suggestions. Local context uses keyword search to search the local repository (the one currently open in your IDE).
-The free plan ensures local context utilization and allows you to seamlessly integrate Cody into your preferred client, whether it's VSCode, JetBrains, or Neovim. Finally, you'll have default support with Anthropic (Claude 3 Sonnet for Chat and Commands) and StarCoder as the officially supported LLMs.
+Cody Free uses the DeepSeek-Coder-V2 model for autocomplete. It uses the Claude 3.5 Sonnet (New) model for chat and prompts, and users have several other model options they can switch to. See [Supported LLMs](https://sourcegraph.com/docs/cody/capabilities/supported-models) for more information.
### Billing cycle
-There is no billing cycle for Cody Free, as it is free to use. If you complete your monthly autocompletions or chat/commands limit, you'll be prompted to upgrade to the Pro plan. Otherwise, you'll have to wait approximately 30 days for the limits to reset.
+There is no billing cycle for Cody Free, as it is free to use. If you complete your monthly chat/prompts limit, you'll be prompted to upgrade to the Pro plan. Otherwise, you'll have to wait approximately 30 days for the limits to reset.
The reset date is based on your sign-up date. For example, if you sign up on December 15th, your limit will reset on January 15th.
@@ -33,21 +34,21 @@ To upgrade from Cody Free to Pro:
Once your Pro subscription is confirmed, click **My subscription** to manage and view your activation details, or click **Dashboard** for the overall view.
-## Pro
+
-Cody Pro, designed for individuals or small teams at **$9 per user per month**, offers an enhanced coding experience beyond the free plan. It provides unlimited autocompletion suggestions, allowing users to streamline their coding process without restrictions. Chat and commands executions are also unlimited, allowing users to create custom workflows.
+
-The plan includes the ability to create an unlimited number of Custom Commands for personalized workflows. In addition to using the local context of your code to improve responses, you can embed up to **1 GB** of your private code for even better Cody responses that reflect a deep understanding of your code in VS Code, with JetBrains IDE support coming soon.
+Cody Pro, designed for individuals or small teams at **$9 per user per month**, offers an enhanced coding experience beyond the free plan. It provides unlimited autocompletion suggestions plus increased limits for chat and prompts. It also uses local repository context to enhance Cody's understanding and accuracy.
-Support for Cody Pro is available through our Support team via support@sourcegraph.com, ensuring prompt assistance and guidance. Finally, you'll have default support with Anthropic and StarCoder as the officially supported LLMs. Moreover, Pro accounts using VS Code IDE will get an LLM selection for chat only. These LLMs are Claude Instant 1.2, Claude 2, Claude 3, ChatGPT 3.5 Turbo, ChatGPT 4 Turbo Preview, and Mixtral.
+Cody Pro uses DeepSeek-Coder-V2 by default for autocomplete. Pro accounts also default to the Claude 3.5 Sonnet (New) model for chat and prompts, but users can switch to other LLM model choices. You can refer to the [supported LLM models](/cody/capabilities/supported-models) docs for more information.
-There will be high daily limits to catch bad actors and prevent abuse, but under most normal usage, Pro users won't experience these limits.
+Support for Cody Pro is available through our Support team via support@sourcegraph.com, ensuring prompt assistance and guidance.
### Downgrading from Pro to Free
To revert back to Cody Free from Pro:
-- Go to your Sourcegraph dashboard **Cody > Manage**
+- Go to your Sourcegraph dashboard **Cody > Dashboard**
- Next, **Manage subscription** that takes you to **Cody > Subscription**
- Clicks **Cancel** on the Pro tier to cancel your Pro subscription
- This automatically downgrades you to Cody Free once after your billing cycle ends
@@ -76,7 +77,7 @@ We currently only support payments through a credit card.
### What happens when I cannot pay or don't want to renew the Pro plan?
-If you do not want to renew Cody Pro, you can cancel your Cody Pro subscription at any time by going to the [accounts page](https://accounts.sourcegraph.com/cody/subscriptions). If you cancel the Pro plan, your Cody Pro will continue until the end of the billing cycle. Once the billing cycle ends, your plan will not renew, and your card will not be charged. This automatically downgrades your plan from Cody Pro to Cody Free.
+If you do not want to renew Cody Pro, you can cancel your Cody Pro subscription at any time by going to the [accounts page](https://accounts.sourcegraph.com/cody/subscription). If you cancel the Pro plan, your Cody Pro will continue until the end of the billing cycle. Once the billing cycle ends, your plan will not renew, and your card will not be charged. This automatically downgrades your plan from Cody Pro to Cody Free.
If you change your mind after canceling your plan please contact our Support team at support@sourcegraph.com and we can help you get re-subscribed.
@@ -84,30 +85,72 @@ If you change your mind after canceling your plan please contact our Support tea
We don't offer refunds, but if you have any queries regarding the Cody Pro plan, please write to support@sourcegraph.com, and we'll help resolve the issue.
-## Enterprise
+### How do I access previous invoices?
-Cody Enterprise is designed for enterprises prioritizing security and administrative controls. We offer either seat-based or token based pricing models, depending on what makes most sense for your organization. You get Claude 3 (Opus and Sonnet) as the default LLM models without extra cost. You also get additional capabilities like BYOLLM (Bring Your Own LLM), supporting Single-Tenant and Self Hosted setups for flexible coding environments.
+You can access your invoices via the [Cody Dashboard](https://sourcegraph.com/cody/manage) and clicking "Manage Subscription". Note that invoices are not emailed every month.
+
+## Enterprise Starter
+
+Cody Pro users can also switch to the Enterprise Starter plan for **$19 per user per month**. This plan includes all the features of Cody Pro plus a multi-tenant Sourcegraph instance with core features like a fully managed version of Sourcegraph (AI + code search + intent detection with integrated search results, with privately indexed code) through a self-serve flow.
+
+Read more about the [Enterprise Starter plan](/pricing/enterprise-starter).
+
+
+
+
+
+Cody Enterprise is designed for enterprises prioritizing security and administrative controls. We offer either seat-based or token based pricing models, depending on what makes most sense for your organization. You get Claude Haiku 3.5 and Claude Sonnet 3.5 as the default LLM models without extra cost. You also get additional capabilities like BYOLLM (Bring Your Own LLM), supporting Single-Tenant and Self Hosted setups for flexible coding environments.
Security features include SAML/SSO for enhanced authentication and guardrails to enforce coding standards. Cody Enterprise supports advanced Code Graph context and multi-code host context for a deeper understanding of codebases, especially in complex projects. With 24/5 enhanced support, Cody Enterprise ensures timely assistance.
+## Billing FAQs for Cody Enterprise
+
+### How are active users calculated for Cody?
+
+### Billable active users
+
+This only applies to Enterprise Cody users. Cody Pro users pay for a seat every month, regardless of usage.
+
+A billable active Cody user is signed in to their Enterprise Sourcegraph account and actively interacts with Cody (for example, they see suggested autocompletions, run commands, or chat with Cody, they start new discussions, clear chat history, or copy text from chats. They change Cody's settings and more).
+
+Having Cody installed and signing in is not enough to be considered a billable user.
+
+Specific categories of user actions that qualify as active Cody usage for billing include, but are not limited to:
+
+- Signing in to Cody in an editor
+- Seeing suggested autocompletions and/or accepting/rejecting them
+- Running commands or chatting with Cody
+- Starting new chats, clearing chat history, copying text from chats or otherwise interacting with the Cody chat interface in the editor or on the web
+- Adding or changing context in a Cody chat interface or changing models
+- Interacting with Cody tutorials
+- Changing Cody personal or team settings
+
+### Authenticated users
+
+An authenticated Cody user is authenticated (or signed in) to Cody in their editor within a given time period. This includes all users who interact with Cody on the web.
+
+Authenticated users are a superset of [billable users](#billable-active-users) defined above. They include users who are signed in but do not actively engage with Cody.
+
+
+
+
+
## Plans Comparison
The following table shows a high-level comparison of the three plans available on Cody.
-| **Features** | **Free** | **Pro** | **Enterprise** |
-| --------------------------------- | ---------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------- |
-| **Autocompletion suggestions** | 500 per month (whole + multi-line) | Unlimited | Unlimited |
-| **Chat/Command Executions** | 20 per month | Unlimited | Unlimited |
-| **Custom Commands** | Supported | Supported | Supported |
-| **Embeddings (public code)** | Supported | Supported | Supported |
-| **Keyword Context (local code)** | Supported | Supported | Supported |
-| **Developer Limitations** | 1 developer | Up to 50 devs | Scalable, consumption-based pricing |
-| **LLM Support** | Anthropic + StarCoder for Chat, Commands, and Autocomplete | Choice of LLMs for Chat and Commands (VS Code and JetBrains only), StarCoder and Autocomplete | Claude 3 and Bring Your Own LLM Key (experimental) |
-| **Code Editor Support** | VS Code, JetBrains IDEs, and Neovim | VS Code, JetBrains IDEs, and Neovim | VS Code, JetBrains IDEs, and Neovim |
-| **Single-Tenant and Self Hosted** | N/A | N/A | Yes |
-| **SAML/SSO** | N/A | N/A | Yes |
-| **Guardrails** | N/A | N/A | Yes |
-| **Advanced Code Graph Context** | N/A | N/A | Included |
-| **Multi-Code Host Context** | N/A | N/A | Included |
-| **Discord Support** | No | Yes | Yes |
-| **24/5 Enhanced Support** | N/A | N/A | Yes |
+| **Features** | **Free** | **Pro** | **Enterprise Starter** | **Enterprise** |
+| --------------------------------- | ---------------------------------------------------------- | ----------------------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- |
+| **Autocompletion suggestions** | Unlimited | Unlimited | Unlimited | Unlimited |
+| **Chat Executions** | 200 per month | Increased limits | Increased limits | Unlimited |
+| **Keyword Context (local code)** | Supported | Supported | Supported | Supported |
+| **Developer Limitations** | 1 developer | 1 developer | Scalable, per-seat pricing | Scalable, consumption-based pricing |
+| **LLM Support** | [View latest](/cody/capabilities/supported-models) | [View latest](/cody/capabilities/supported-models) | [View latest](/cody/capabilities/supported-models) | [View latest](/cody/capabilities/supported-models) |
+| **Code Editor Support** | VS Code, JetBrains IDEs, Visual Studio (Preview) | VS Code, JetBrains IDEs, Visual Studio (Preview) | VS Code, JetBrains IDEs, Visual Studio (Preview) | VS Code, JetBrains IDEs, Visual Studio (Preview) |
+| **Single-Tenant and Self Hosted** | N/A | N/A | N/A | Yes |
+| **SAML/SSO** | N/A | N/A | N/A | Yes |
+| **Guardrails** | N/A | N/A | N/A | Yes |
+| **Advanced Code Graph Context** | N/A | N/A | N/A | Included |
+| **Multi-Code Host Context** | N/A | N/A | GitHub only | Included |
+| **Discord Support** | Yes | Yes | Yes | Yes |
+| **24/5 Enhanced Support** | N/A | N/A | Yes | Yes |
diff --git a/docs/cody/use-cases/generate-unit-tests.mdx b/docs/cody/use-cases/generate-unit-tests.mdx
index 97284362c..12969fc9a 100644
--- a/docs/cody/use-cases/generate-unit-tests.mdx
+++ b/docs/cody/use-cases/generate-unit-tests.mdx
@@ -13,7 +13,7 @@ Before you begin, make sure you have the following:
- Access to Sourcegraph and are logged into your account
- Cody VS Code extension installed and connected to your Sourcegraph instance
-> NOTE: Cody also provides extensions for JetBrains and Neovim, which are not covered in this guide.
+> NOTE: Cody also provides extensions for JetBrains which are not covered in this guide.
## Generate unit tests with Cody
diff --git a/docs/cody/use-cases/vsc-tutorial.mdx b/docs/cody/use-cases/vsc-tutorial.mdx
new file mode 100644
index 000000000..37937617f
--- /dev/null
+++ b/docs/cody/use-cases/vsc-tutorial.mdx
@@ -0,0 +1,115 @@
+# Cody Tutorial
+
+This tutorial gives you a quick walkthrough of leveraging Cody for autocompletion, chat, explaining code, and running commands in VS Code.
+
+## Code Autocomplete
+
+
+
+Start writing code and Cody will complete the line (or the entire function) for you. Press **Tab** to accept the suggestion.
+
+**✨ Pro-tips for using Cody autocomplete**
+
+- Autocomplete uses the surrounding code and context to inform the suggestions, so if you need to guide it you can add a comment above the line you're editing.
+- You can hover over the grey suggestion to see a toolbar of alternative suggestions, as well as other options such as accepting a single word at a time.
+- You can use the "Trigger Autocomplete at Cursor" command to trigger a code suggestion at any time, using the default keyboard shortcut of `Opt+L`/`Alt+L`.
+
+## Chat
+
+
+
+Answer questions about general programming topics, or specific to your codebase, with Cody chat. You can choose between LLMs, @-mentions files and symbols, and enable enhanced repository-wide code context.
+
+You can start a chat at any time using the default keyboard shortcut of `Opt+L`/`Alt+L`.
+
+**✨ Pro-tips for using Cody chat**
+
+- Tagging specific files and symbols gives the selected LLM more context to help answer your questions more accurately.
+- If you want to chat directly with the LLM without any additional context adding, delete the @-mentions that are automatically inserted in each new Cody chat and just ask a plain question.
+
+## Cody Commands
+
+
+
+Cody has a range of commands for explaining code, generating unit tests, adding documentation, and more.
+
+To get started: select code in your editor, right click, and choose a command from the "Cody" menu.
+
+You can also use the [Cody: Commands Menu](command:cody.menu.commands) which has the default keyboard shortcut of `Opt+C`/`Alt+C`.
+
+**✨ Pro-tips for using Cody commands**
+
+- You can build your own [Custom Commands (Beta)](https://sourcegraph.com/docs/cody/custom-commands) with custom prompts, output into chat or perform code edits, and more.
+
+## Edit Code
+
+You can ask Cody to perform code edits using the Edit Code command. This will edit code according to your instructions, giving you the chance to retry the edit with a new prompt, undo, or accept the change.
+
+To get started: select code in your editor, right click, and choose "Cody → Edit Code".
+
+You can also use the default keyboard shortcut of `Opt+K`/`Alt+K`.
+
+**✨ Pro-tips for code editing with Cody**
+
+- You can open the 💡 menu, with an "Cody: Edit Code" option, by selecting any line of code and using the keyboard short `Command` `.` on macOS or `Crtl` `.` on Windows & Linux.
+- If you start an empty line and open the 💡 menu (using the keyboard short `Command` `.` on macOS or `Ctrl` `.` on Windows & Linux) you can use "Cody: Generate Code" to generate new lines of code based on instructions.
+- You define your own custom code editing commands using [Custom Commands (Beta)](https://sourcegraph.com/docs/cody/custom-commands), by setting the [`commands..mode` property](https://sourcegraph.com/docs/cody/capabilities/commands#commands-id-mode).
+
+## Explain Code
+
+
+
+
+
+Use Cody to get an in-depth explanation of any piece of code in any programming language.
+
+To get started, select code in your editor, right-click, and choose "Cody > Explain Code".
+
+You can also run this command from the [Cody: Commands Menu](command:cody.menu.commands), which has the default keyboard shortcut of `Opt+C`/`Alt+C`.
+
+**✨ Pro-tips for understanding code with Cody**
+
+- Cody can also explain errors too, with the "Ask Cody to Explain" option in the 💡 menus, or by right clicking on any items in the "Problems" tab of VS Code.
+- You can define your own custom code to explain commands to suit, such as a prompt that requests an explanation focused on potential security issues, using [Custom Commands (Beta)](/cody/capabilities/custom-commands).
+
+## Fix Code
+
+
+
+Something wrong with your code? Use Cody’s "Ask Cody to Fix" command to fix it, or explain the problem.
+
+**✨ Pro-tips for fixing code with Cody**
+
+- You can open the 💡 menu, with an "Ask Cody to Fix" option, by moving the cursor over any line of code with an error and using the keyboard short `Command` `.` on macOS or `Crtl` `.` on Windows & Linux.
+- You can also right click on any items in the "Problems" tab of VS Code and select "Ask Cody to Fix"
+
+## Keyboard Shortcuts
+
+Cody offers an extensive set of default key bindings (keyboard shortcuts) to make it easy for you to perform various actions using the keyboard. You can also update these bindings in the `Keyboard Shortcuts Editor`.
+
+### Keyboard Shortcuts Editor
+
+The `Keyboard Shortcuts Editor` allows you to easily update the default bindings (keyboard shortcuts). This is particularly useful if the default key bindings conflict with your current or preferred key bindings. By accessing the `Keyboard Shortcuts Editor` in VSCode or `Keymap Shortcuts Editor` in JetBrains, you can search for specific commands, reassign keybindings, and customize your keyboard shortcuts to suit your workflow.
+
+### Getting Started (VSCode)
+
+To get started:
+1. Click on the **Keyboard Shortcuts** icon in the Cody sidebar under `**SETTINGS AND SUPPORT**` to open the `Keyboard Shortcuts Editor`.
+2. In the `Keyboard Shortcuts Editor`, you can search for a specific command by typing in the search bar.
+3. Once you have found the command you want to reassign keybindings for, click on it to select it.
+4. Follow the instruction on screen to assign a new keybinding.
+
+### Getting Started (JetBrains)
+
+To get started:
+1. Click on the **IntelliJ IDEA** icon at the top menu bar and then click on **Keymap** from the dropdown to open the `Keymap Shortcuts Editor`.
+2. In the `Keymap Shortcuts Editor`, you can search for a specific command by typing in the search bar.
+3. Once you have found the command you want to reassign keymappings for, click on it to select it.
+4. Follow the instruction on screen to assign a new keymappings.
+
+**✨ Pro-tips for assigning keyboard shortcuts for Cody**
+
+- You can assign key bindings (keyboard shortcuts) to individual custom commands.
diff --git a/docs/dotcom/index.mdx b/docs/dotcom/index.mdx
index 328072955..5e349a6ea 100644
--- a/docs/dotcom/index.mdx
+++ b/docs/dotcom/index.mdx
@@ -6,8 +6,8 @@ To use Sourcegraph on your own (private) code, [use Sourcegraph Cloud](/cloud/)
- [Indexing open source code in Sourcegraph.com](/dotcom/indexing_open_source_code)
-> Note: Sourcegraph.com is a special instance of Sourcegraph with some different behavior compared to that on Sourcegraph Cloud and self-hosted instances. If you're curious about the differences, search our codebase for [`envvar.SourcegraphDotComMode()`](https://sourcegraph.com/search?q=context:global+repo:%5Egithub%5C.com/sourcegraph/sourcegraph%24+envvar.SourcegraphDotComMode%28%29&patternType=standard&sm=1).
+> Note: Sourcegraph.com is a special instance of Sourcegraph with some different behavior compared to that on Sourcegraph Cloud and self-hosted instances. If you're curious about the differences, search our codebase for [`envvar.SourcegraphDotComMode()`](https://sourcegraph.com/search?q=context:global+repo:%5Egithub%5C.com/sourcegraph/sourcegraph%24+envvar.SourcegraphDotComMode%28%29&patternType=keyword).
>
> For example, global searches do not search unindexed code by default on sourcegraph.com, whereas on a cloud or self-hosted instance this isn't the case.
>
-> To learn more about where dotcom handles things differently checkout use of the [SourcegraphDotcomMode](https://sourcegraph.com/search?q=context:global+repo:%5Egithub%5C.com/sourcegraph/sourcegraph%24+if+envvar.SourcegraphDotComMode%28%29&patternType=standard&sm=1) env var in our codebase!
+> To learn more about where dotcom handles things differently checkout use of the [SourcegraphDotcomMode](https://sourcegraph.com/search?q=context:global+repo:%5Egithub%5C.com/sourcegraph/sourcegraph%24+%22if+envvar.SourcegraphDotComMode%28%29%22&patternType=keyword) env var in our codebase!
diff --git a/docs/getting-started/cloud-instance.mdx b/docs/getting-started/cloud-instance.mdx
index b48613853..484dfcc4c 100644
--- a/docs/getting-started/cloud-instance.mdx
+++ b/docs/getting-started/cloud-instance.mdx
@@ -8,12 +8,12 @@ Sourcegraph is nothing without your code, so connecting your code hosts is cruci
How to connect to…
-- [GitHub](https://docs.sourcegraph.com/admin/external_service/github)
-- [GitLab](https://docs.sourcegraph.com/admin/external_service/gitlab)
-- [Bitbucket Cloud](https://docs.sourcegraph.com/admin/external_service/bitbucket_cloud)
-- [Bitbucket Server / Bitbucket Data Center](https://docs.sourcegraph.com/admin/external_service/bitbucket_server)
-- [Other Git code hosts (using a Git URL)](https://docs.sourcegraph.com/admin/external_service/other)
-- [Non git hosts](https://docs.sourcegraph.com/admin/external_service)
+- [GitHub](/admin/code_hosts/github)
+- [GitLab](/admin/code_hosts/gitlab)
+- [Bitbucket Cloud](/admin/code_hosts/bitbucket_cloud)
+- [Bitbucket Server / Bitbucket Data Center](/admin/code_hosts/bitbucket_server)
+- [Other Git code hosts (using a Git URL)](/admin/code_hosts/other)
+- [Non git hosts](/admin/code_hosts)
## Inviting users and SSO
@@ -23,7 +23,7 @@ A team is essential when using Sourcegraph. Be sure to spread the word and get e
Sourcegraph supports out-of-the-box support for different auth providers. Our documentation provides guidance on how to setup these.
-- [User authentication (SSO) - Sourcegraph docs](https://docs.sourcegraph.com/admin/auth)
+- [User authentication (SSO) - Sourcegraph docs](/admin/auth)
You may not have the right privileges or role in your team to set this up. In that case, you could invite someone with the right privileges and make them a site-admin.
@@ -37,14 +37,14 @@ Getting users into Sourcegraph is easy, you just need to navigate to:
By default the Sourcegraph instance cannot send emails. So features like password resets, email invites and email code monitors will not work.
-- [Configure email sending / SMTP server](https://docs.sourcegraph.com/admin/config/email)
+- [Configure email sending / SMTP server](/admin/config/email)
## Learn Sourcegraph
Extra resources that we think are helpful:
-- [Sourcegraph 101](https://docs.sourcegraph.com/getting-started)
-- [Search Examples](/code-search/examples)
+- [Sourcegraph 101](/getting-started)
+- [Search Examples](/code-search/queries/examples)
## Community and Support
diff --git a/docs/getting-started/github-vs-sourcegraph.mdx b/docs/getting-started/github-vs-sourcegraph.mdx
index aad569937..fa2ddbec6 100644
--- a/docs/getting-started/github-vs-sourcegraph.mdx
+++ b/docs/getting-started/github-vs-sourcegraph.mdx
@@ -33,14 +33,14 @@ For a high-level overview of how Sourcegraph compares to GitHub code search, see
GitHub code search can only be used to search across code that is stored in GitHub. Organizations with code stored in multiple code hosts cannot use GitHub code search to search across their entire codebase.
-Sourcegraph integrates with multiple code hosts to provide universal code search across all of your organization’s code, no matter where it’s stored. Sourcegraph has out-of-the-box [integrations](https://docs.sourcegraph.com/integration) with:
+Sourcegraph integrates with multiple code hosts to provide universal code search across all of your organization’s code, no matter where it’s stored. Sourcegraph has out-of-the-box [integrations](/integration) with:
* GitHub
* GitLab
* Bitbucket Cloud and Bitbucket Server / Bitbucket Data Center
* Perforce
-You can also integrate Sourcegraph with other Git-based code hosts using [these](https://docs.sourcegraph.com/admin/external_service/other) instructions or use the [Sourcegraph CLI (src)](https://docs.sourcegraph.com/admin/external_service/src_serve_git) to load local repositories without a code host into Sourcegraph. Sourcegraph is continuously adding [Tier 1](https://docs.sourcegraph.com/admin/external_service) support for additional code hosts.
+You can also integrate Sourcegraph with other Git-based code hosts using [these](/admin/code_hosts/other) instructions or use the [Sourcegraph CLI (src)](/admin/code_hosts/src_serve_git) to load local repositories without a code host into Sourcegraph. Sourcegraph is continuously adding [Tier 1](/admin/code_hosts) support for additional code hosts.
@@ -82,7 +82,7 @@ You can also integrate Sourcegraph with other Git-based code hosts using [these]
### Searching repositories, branches, and forks
-GitHub allows you to search indexed code, but not all code is indexed. GitHub’s [current limitations](https://cs.github.com/about/faq#indexed-content) on indexed code are:
+GitHub allows you to search indexed code, but not all code is indexed. GitHub’s current limitations on indexed code are:
* Files over 350 KiB and empty files are excluded
* Only UTF-8 encoded files are included
@@ -95,9 +95,9 @@ With GitHub, only the default **branch** is searchable (though GitHub is plannin
GitHub code search supports searching across issues, pull requests, and discussions. In addition to searching your private code, GitHub has indexed over 7 million public GitHub repositories which are also searchable.
-Sourcegraph allows you to search indexed and [unindexed](/code-search/types/exhaustive#non-indexed-backends) code. Sourcegraph’s [current limitations](https://docs.sourcegraph.com/admin/search) on indexed code are:
+Sourcegraph allows you to search both indexed and unindexed code. Sourcegraph’s [current limitations](/admin/search) on indexed code are:
-* Files larger than 1 MB are excluded unless you explicitly specify them in [search.largeFiles](https://docs.sourcegraph.com/admin/config/site_config#search-largeFile) to be indexed and searched regardless of size
+* Files larger than 1 MB are excluded unless you explicitly specify them in [search.largeFiles](/admin/config/site_config#search-largeFile) to be indexed and searched regardless of size
* Binary files are excluded
* Files other than UTF-8 are excluded
@@ -115,9 +115,9 @@ In addition to searching your organization’s private code, you can use Sourceg
### Search syntax
-Sourcegraph offers [structural search](/code-search/types/structural), and GitHub code search does not offer this search method. Structural search lets you match richer syntax patterns, specifically in code and structured data formats like JSON. Sourcegraph offers structural search on indexed code and uses [Comby syntax](https://comby.dev/docs/syntax-reference) for structural matching of code blocks or nested expressions. For example, the `fmt.Sprintf` function is a popular print function in Go. [Here](https://sourcegraph.com/search?q=repo:%5Egithub%5C.com/sourcegraph/sourcegraph%24+fmt.Sprintf%28...%29&patternType=structural&_ga=2.204781593.827352295.1667227568-1057140468.1661198534&_gac=1.118615675.1665776224.CjwKCAjwkaSaBhA4EiwALBgQaJCOc6GlhIDQyg6HQScgfSBQpoFTUf7T_NNqEX5JaobtCS08GUEJuRoCIlIQAvD_BwE&_gl=1*1r2u5zs*_ga*MTA1NzE0MDQ2OC4xNjYxMTk4NTM0*_ga_E82CCDYYS1*MTY2NzUwODExNC4xMTQuMS4xNjY3NTA5NjUyLjAuMC4w) is a pattern that matches all of the arguments in `fmt.Sprintf` in our code using structural search compared to the [search](https://sourcegraph.com/search?q=context:global+repo:%5Egithub%5C.com/sourcegraph/sourcegraph%24+fmt.Sprintf%28...%29&patternType=regexp) using regex.
+Sourcegraph offers [structural search](/code-search/types/structural), and GitHub code search does not offer this search method. Structural search lets you match richer syntax patterns, specifically in code and structured data formats like JSON. Sourcegraph offers structural search on indexed code and uses [Comby syntax](https://comby.dev/docs/syntax-reference) for structural matching of code blocks or nested expressions. For example, the `fmt.Sprintf` function is a popular print function in Go. [Here](https://sourcegraph.com/search?q=repo:%5Egithub%5C.com/sourcegraph/about%24+fmt.Sprintf%28...%29&patternType=structural&_ga=2.204781593.827352295.1667227568-1057140468.1661198534&_gac=1.118615675.1665776224.CjwKCAjwkaSaBhA4EiwALBgQaJCOc6GlhIDQyg6HQScgfSBQpoFTUf7T_NNqEX5JaobtCS08GUEJuRoCIlIQAvD_BwE&_gl=1*1r2u5zs*_ga*MTA1NzE0MDQ2OC4xNjYxMTk4NTM0*_ga_E82CCDYYS1*MTY2NzUwODExNC4xMTQuMS4xNjY3NTA5NjUyLjAuMC4w) is a pattern that matches all of the arguments in `fmt.Sprintf` in our code using structural search compared to the [search](https://sourcegraph.com/search?q=context:global+repo:%5Egithub%5C.com/sourcegraph/about%24+fmt.Sprintf%28...%29&patternType=regexp) using regex.
-Both GitHub code search and Sourcegraph support regular expression and literal search. [Regular expression](/code-search/queries#standard-search) helps you find code that matches a pattern (including classes of characters like letters, numbers, and whitespace) and can restrict the results to anchors like the start of a line, the end of a line, or word boundary. Literal (standard) search matches literal patterns exactly, including punctuation, like quotes.
+Both GitHub code search and Sourcegraph support regular expression and keyword search. [Regular expression](/code-search/queries#standard-search) helps you find code that matches a pattern (including classes of characters like letters, numbers, and whitespace) and can restrict the results to anchors like the start of a line, the end of a line, or word boundary. Keyword search matches on individual terms, supporting both literal searches and flexible keyword-style queries.
GitHub’s search syntax can be found [here](https://cs.github.com/about/syntax), and Sourcegraph’s search syntax can be found [here](/code-search/queries).
@@ -140,7 +140,7 @@ Sourcegraph’s [symbol search](/code_navigation/explanations/features#symbol-se
| **Features** | **GitHub** | **Sourcegraph** |
| --------------------------------------- | -------------------------------------------------------------------------------------------------- | --------------- |
| Structural search | ✗ | ✓ |
-| Literal search | ✓ | ✓ |
+| Keyword search | ✓ | ✓ |
| Regular expression search | ✓ | ✓ |
| Multi-line search support | ✗ | ✓ |
| Commit diff and commit message searches | ✗ | ✓ |
@@ -154,7 +154,7 @@ Sourcegraph’s [symbol search](/code_navigation/explanations/features#symbol-se
GitHub only returns the first 10 pages of search results. You cannot currently go past the 10th page or retrieve all search results.
-Sourcegraph can retrieve all search results. By default, Sourcegraph returns 500 search results, but this number can be increased by increasing the ‘count’ value. Sourcegraph can display a maximum of 1,500 results, but all matches can be fetched using the [src CLI](https://docs.sourcegraph.com/cli/quickstart), the [Stream API](https://docs.sourcegraph.com/api/stream_api), or [GraphQL API](https://docs.sourcegraph.com/api/graphql). You can also export the results via CSV.
+Sourcegraph can retrieve all search results. By default, Sourcegraph returns 500 search results, but this number can be increased by increasing the ‘count’ value. Sourcegraph can display a maximum of 1,500 results, but all matches can be fetched using the [src CLI](/cli/quickstart), the [Stream API](/api/stream_api), or [GraphQL API](/api/graphql). You can also export the results via CSV.
GitHub code search includes suggestions, completions, and the ability to save your searches. Sourcegraph offers suggestions through search query examples and [saved searches](/code-search/working/saved_searches#creating-saved-searches).
@@ -166,7 +166,7 @@ Both GitHub and Sourcegraph display the most relevant search results first using
GitHub analyzes how many matches are in the file, the quality of the matches, the kind of file, whether the searches match symbols, and the number of repository stars as inputs for ranking results.
-Sourcegraph uses a repository’s number of stars to [rank](https://docs.sourcegraph.com/dev/background-information/architecture/indexed-ranking) the most important repositories first. The priority of a repository can be altered by admins with this [configuration](https://sourcegraph.com/search?q=context:global+repo:%5Egithub%5C.com/sourcegraph/sourcegraph%24+repoRankFromConfig&patternType=regexp&_ga=2.18586544.827352295.1667227568-1057140468.1661198534&_gac=1.82582244.1665776224.CjwKCAjwkaSaBhA4EiwALBgQaJCOc6GlhIDQyg6HQScgfSBQpoFTUf7T_NNqEX5JaobtCS08GUEJuRoCIlIQAvD_BwE&_gl=1*5o6st*_ga*MTA1NzE0MDQ2OC4xNjYxMTk4NTM0*_ga_E82CCDYYS1*MTY2NzM0MDAzNy4xMDQuMS4xNjY3MzQxNjUyLjAuMC4w). There are several other heuristic signals that help to make sure that the most important documents are searched first, including:
+Sourcegraph uses a repository’s number of stars to [rank](https://docs-legacy.sourcegraph.com/dev/background-information/architecture/indexed-ranking) the most important repositories first There are several other heuristic signals that help to make sure that the most important documents are searched first, including:
* Up rank files with a lot of symbols
* Up rank small files
@@ -190,7 +190,7 @@ When submitting a search query, the quality of a match is scored based on langua
To help you understand and refine search results, Sourcegraph’s search results also include visual search aggregation charts. These charts help you answer unique questions about the overall results set that individual search results cannot, like how many different versions of a library or package are present in your code, which repositories in a given library are most used, and more. They can also help you quickly refine your search by seeing which files, repositories, authors, or capture group returned the most results, and then clicking a result in the chart to add a filter to your query.
-You can group your search results by location (repository or file), author, or arbitrary capture group pattern. Example search aggregations can be found [here](https://docs.sourcegraph.com/code_insights/references/search_aggregations_use_cases).
+You can group your search results by location (repository or file), author, or arbitrary capture group pattern. Example search aggregations can be found [here](/code_insights/references/search_aggregations_use_cases).
GitHub code search does not currently offer this functionality.
@@ -227,12 +227,12 @@ With Sourcegraph, a [search context](/code-search/working/search_contexts) repre
Both GitHub and Sourcegraph offer out-of-the-box, search-based code navigation. This version of code navigation uses search-based heuristics to find references and definitions across a codebase without any setup required. It is powerful and convenient, but it can sometimes present inaccurate results. For example, it can return false positive references for symbols with common names. It is limited to returning definitions and references within a single repository (it won’t track references across multiple repositories).
-GitHub’s [search-based code navigation](https://docs.github.com/en/repositories/working-with-files/using-files/navigating-code-on-github) officially supports 10 languages according to the documentation, but more languages are supported in the latest beta preview. Sourcegraph’s [search-based code navigation](https://docs.sourcegraph.com/code_navigation/explanations/search_based_code_navigation) supports 40 languages.
+GitHub’s [search-based code navigation](https://docs.github.com/en/repositories/working-with-files/using-files/navigating-code-on-github) officially supports 10 languages according to the documentation, but more languages are supported in the latest beta preview. Sourcegraph’s [search-based code navigation](/code_navigation/explanations/search_based_code_navigation) supports 40 languages.
| **Features** | **GitHub** | **Sourcegraph** |
| ------------------------ | ------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Technical implementation | Heuristic-based | Heuristic-based |
-| Language support | 10 languages (C#, CodeQL, Elixir, Go, Java, JavaScript,TypeScript, PHP, Python, Ruby) | 40 languages (The full list of supported languages can be found [here](https://docs.sourcegraph.com/code_navigation/explanations/search_based_code_navigation)) |
+| Language support | 10 languages (C#, CodeQL, Elixir, Go, Java, JavaScript,TypeScript, PHP, Python, Ruby) | 40 languages (The full list of supported languages can be found [here](/code_navigation/explanations/search_based_code_navigation)) |
| Setup | No setup required | No setup required |
| Accuracy | Moderate (some false positives) | Moderate (some false positives) |
| Cross-repository | ✗ | ✗ |
@@ -246,13 +246,13 @@ GitHub and Sourcegraph both offer precise code navigation as well. Despite havin
GitHub’s [precise code navigation](https://docs.github.com/en/repositories/working-with-files/using-files/navigating-code-on-github#precise-and-search-based-navigation) is an improved form of heuristic-based code navigation which uses syntax trees to offer higher accuracy for references and definitions and cross-repository navigation. It is more accurate than GitHub’s search-based code navigation, but it can still present inaccuracies. It is available out-of-the-box on GitHub and is automatically used over search-based code navigation when available. It is supported for 1 language, Python.
-Sourcegraph’s [precise code navigation](https://docs.sourcegraph.com/code_navigation/explanations/precise_code_navigation) is not heuristic-based. Instead, it uses [SCIP and LSIF](https://docs.sourcegraph.com/code_navigation/references/indexers) data to deliver precomputed code navigation, meaning that it is fast and compiler-accurate. It is the only 100% accurate solution for code navigation between Sourcegraph’s and GitHub’s offerings.
+Sourcegraph’s [precise code navigation](/code_navigation/explanations/precise_code_navigation) is not heuristic-based. Instead, it uses [SCIP and LSIF](/code_navigation/references/indexers) data to deliver precomputed code navigation, meaning that it is fast and compiler-accurate. It is the only 100% accurate solution for code navigation between Sourcegraph’s and GitHub’s offerings.
-Because precise code navigation uses code graph (SCIP) data, it is not susceptible to false positives or other potential errors (such as those caused by symbols with the same name). It also supports cross-repository navigation, which shows symbol usage across repositories and [transitive dependencies](https://docs.sourcegraph.com/code_navigation/explanations/features#beta-dependency-navigation). It also has a unique feature, “Find implementations,” which allows you to navigate to a symbol’s interface definition or find all the places an interface is being implemented.
+Because precise code navigation uses code graph (SCIP) data, it is not susceptible to false positives or other potential errors (such as those caused by symbols with the same name). It also supports cross-repository navigation, which shows symbol usage across repositories and [transitive dependencies](/code_navigation/explanations/features#beta-dependency-navigation). It also has a unique feature, “Find implementations,” which allows you to navigate to a symbol’s interface definition or find all the places an interface is being implemented.
-Sourcegraph’s precise code navigation is opt-in and requires you to upload code graph data ([LSIF or SCIP](https://docs.sourcegraph.com/code_navigation/references/indexers)) to Sourcegraph. This data can be automatically generated and uploaded to Sourcegraph via [auto-indexing](https://docs.sourcegraph.com/code_navigation/explanations/auto_indexing). For repositories without SCIP or LSIF data, Sourcegraph automatically falls back to search-based code navigation.
+Sourcegraph’s precise code navigation is opt-in and requires you to upload code graph data ([LSIF or SCIP](/code_navigation/references/indexers)) to Sourcegraph. This data can be automatically generated and uploaded to Sourcegraph via [auto-indexing](/code_navigation/explanations/auto_indexing). For repositories without SCIP or LSIF data, Sourcegraph automatically falls back to search-based code navigation.
-Sourcegraph’s precise code navigation [supports 11 languages](https://docs.sourcegraph.com/code_navigation/references/indexers).
+Sourcegraph’s precise code navigation [supports 11 languages](/code_navigation/references/indexers).
| **Features** | **GitHub** | **Sourcegraph** |
@@ -260,7 +260,7 @@ Sourcegraph’s precise code navigation [supports 11 languages](https://docs.sou
| Technical implementation | Heuristic-based | SCIP-based (code graph data) |
| Accuracy | High (some false positives) | Perfect (compiler-accurate) |
| Language support | 1 language (Python) | 11 languages (Go, TypeScript, JavaScript, C, C++, Java, Scala, Kotlin, Rust, Python, Ruby) |
-| Setup | No setup required | Opt-in (Must set up LSIF/SCIP indexing. [Auto-indexing](https://docs.sourcegraph.com/code_navigation/explanations/auto_indexing) available.) |
+| Setup | No setup required | Opt-in (Must set up LSIF/SCIP indexing. [Auto-indexing](/code_navigation/explanations/auto_indexing) available.) |
| Cross-repository | ✓ | ✓ |
@@ -275,14 +275,14 @@ GitHub and Sourcegraph have offerings that are called “insights,” but they d
GitHub does not offer comprehensive insights that account for the content of the code itself. Rather, GitHub’s insights are based primarily on GitHub’s product-level data. GitHub offers [dependency insights](https://docs.github.com/en/enterprise-cloud@latest/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-dependency-insights-in-your-enterprise) that show all the packages your organization’s repositories depend on, e.g. aggregated information about security advisories and licenses.
-[Sourcegraph’s Code Insights](https://docs.sourcegraph.com/code_insights) is based on codebase-level data: aggregation of lines, patterns, and other search targets in the codebase. It reveals high-level information about the entire codebase, accounting for all of your repositories and code hosts. With Code Insights, you can track anything that can be expressed with a Sourcegraph search query and turn it into customizable dashboards. Code Insights can be used to track migrations, package use, version adoption, code smells, vulnerability remediation, codebase size, and more.
+[Sourcegraph’s Code Insights](/code_insights) is based on codebase-level data: aggregation of lines, patterns, and other search targets in the codebase. It reveals high-level information about the entire codebase, accounting for all of your repositories and code hosts. With Code Insights, you can track anything that can be expressed with a Sourcegraph search query and turn it into customizable dashboards. Code Insights can be used to track migrations, package use, version adoption, code smells, vulnerability remediation, codebase size, and more.
### App activity insights
With [insights for Projects](https://docs.github.com/en/issues/planning-and-tracking-with-projects/viewing-insights-from-your-project/about-insights-for-projects) in GitHub, you can view, create, and customize charts that are built from the project’s data. [Organization activity insights](https://docs.github.com/en/enterprise-cloud@latest/organizations/collaborating-with-groups-in-organizations/viewing-insights-for-your-organization) help you understand how members of the organization are using GitHub, e.g. issue and pull request activity, top languages used, and cumulative information about where members spend their time.
-Sourcegraph offers [in-product analytics](https://docs.sourcegraph.com/admin/analytics) to help Sourcegraph administrators understand user engagement across the various Sourcegraph features, identify power users, and convey value to engineering leaders.
+Sourcegraph offers [in-product analytics](/admin/analytics) to help Sourcegraph administrators understand user engagement across the various Sourcegraph features, identify power users, and convey value to engineering leaders.
| **Features** | **GitHub** | **Sourcegraph** |
| ------------------------------------------ | -------------------------------------------------------------------------------------------------- | --------------- |
@@ -293,7 +293,7 @@ Sourcegraph offers [in-product analytics](https://docs.sourcegraph.com/admin/ana
GitHub does not offer a way to automate arbitrary large-scale code changes. For repositories where [Dependabot security updates](https://docs.github.com/en/enterprise-cloud@latest/code-security/dependabot/dependabot-security-updates/about-dependabot-security-updates) are enabled, when GitHub Enterprise Cloud detects a vulnerable dependency in the default branch, Dependabot creates a pull request to fix it.
-With Sourcegraph’s [Batch Changes](https://docs.sourcegraph.com/batch_changes/explanations/introduction_to_batch_changes), you can make any large-scale code change across many repositories and code hosts. You can create pull requests on all affected repositories and [track the progress](https://docs.sourcegraph.com/batch_changes/how-tos/tracking_existing_changesets) until they are all merged. You can also preview the changes and update them at any time. Batch Changes is often used to make the following types of changes: updating API callsites after a library upgrade, updating configuration files, changing boilerplate code, renaming symbols, patching critical security issues, and more.
+With Sourcegraph’s [Batch Changes](/batch-changes), you can make any large-scale code change across many repositories and code hosts. You can create pull requests on all affected repositories and [track the progress](/batch-changes/tracking-existing-changesets) until they are all merged. You can also preview the changes and update them at any time. Batch Changes is often used to make the following types of changes: updating API callsites after a library upgrade, updating configuration files, changing boilerplate code, renaming symbols, patching critical security issues, and more.
| **Features** | **GitHub** | **Sourcegraph** |
| ------------------------ | ------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
@@ -313,7 +313,7 @@ Sourcegraph’s [editor integrations](/integration/editor) let you search and na
### API
-GitHub has a REST API for web clients, but it is not yet documented. On the other hand, Sourcegraph offers different APIs that help you access code-related data available on a Sourcegraph instance. The [GraphQL API](https://docs.sourcegraph.com/api/graphql) accesses data stored and computed by Sourcegraph. This API can [fetch](https://docs.sourcegraph.com/api/graphql/examples) file contents without cloning a repository or search for a new API and determine all of the repositories that haven’t migrated to it yet. The [Stream API](https://docs.sourcegraph.com/api/stream_api) supports consuming search results as a stream of events and it can be used to [search](https://docs.sourcegraph.com/api/stream_api#example-curl) over all indexed repositories. Lastly, use the [interactive API explorer](https://sourcegraph.com/api/console#%7B%22query%22%3A%22%23%20Type%20queries%20here%2C%20with%20completion%2C%20validation%2C%20and%20hovers.%5Cn%23%5Cn%23%20Here's%20an%20example%20query%20to%20get%20you%20started%3A%5Cn%5Cnquery%20%7B%5Cn%20%20currentUser%20%7B%5Cn%20%20%20%20username%5Cn%20%20%7D%5Cn%20%20repositories%28first%3A%201%29%20%7B%5Cn%20%20%20%20nodes%20%7B%5Cn%20%20%20%20%20%20name%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22%7D) to build and test your API queries.
+GitHub has a REST API for web clients, but it is not yet documented. On the other hand, Sourcegraph offers different APIs that help you access code-related data available on a Sourcegraph instance. The [GraphQL API](/api/graphql) accesses data stored and computed by Sourcegraph. This API can [fetch](/api/graphql/examples) file contents without cloning a repository or search for a new API and determine all of the repositories that haven’t migrated to it yet. The [Stream API](/api/stream_api) supports consuming search results as a stream of events and it can be used to [search](/api/stream_api#example-curl) over all indexed repositories. Lastly, use the [interactive API explorer](https://sourcegraph.com/api/console#%7B%22query%22%3A%22%23%20Type%20queries%20here%2C%20with%20completion%2C%20validation%2C%20and%20hovers.%5Cn%23%5Cn%23%20Here's%20an%20example%20query%20to%20get%20you%20started%3A%5Cn%5Cnquery%20%7B%5Cn%20%20currentUser%20%7B%5Cn%20%20%20%20username%5Cn%20%20%7D%5Cn%20%20repositories%28first%3A%201%29%20%7B%5Cn%20%20%20%20nodes%20%7B%5Cn%20%20%20%20%20%20name%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22%7D) to build and test your API queries.
| **Features** | **GitHub** | **Sourcegraph** |
|---------------------------------------------|-----------------------------------------------------------|---------------------------------------------------------------|
@@ -330,14 +330,14 @@ Code scanning is applied at the repository level and can be used to alert on bot
GitHub also offers [Dependabot alerts](https://docs.github.com/en/enterprise-cloud@latest/code-security/dependabot/dependabot-alerts/about-dependabot-alerts). Dependabot detects insecure dependencies of repositories and triggers alerts when a new advisory is added to the [GitHub Advisory Database](https://docs.github.com/en/enterprise-cloud@latest/code-security/dependabot/dependabot-alerts/browsing-security-advisories-in-the-github-advisory-database) or the [dependency graph](https://docs.github.com/en/enterprise-cloud@latest/code-security/supply-chain-security/understanding-your-software-supply-chain/about-the-dependency-graph) for a repository changes. GitHub can also review and alert on dependency changes in pull requests made against the default branch of a repository. These alerts are viewable by admins in each repository, and admins can make them viewable to other users as well. These alerts can be sent to you via several channels: email, web interface, command line, and/or GitHub Mobile.
-Sourcegraph offers [code monitors](https://docs.sourcegraph.com/code_monitoring), which continuously monitor the results of a specific search query and generate alerts when new results are returned. Code monitors only look at merged code, and they can be used to trigger alerts when undesirable code is added to a codebase. This can include known vulnerabilities, bad patterns, file changes, or consumption of deprecated endpoints (anything that can be queried via Sourcegraph).
+Sourcegraph offers [code monitors](/code_monitoring), which continuously monitor the results of a specific search query and generate alerts when new results are returned. Code monitors only look at merged code, and they can be used to trigger alerts when undesirable code is added to a codebase. This can include known vulnerabilities, bad patterns, file changes, or consumption of deprecated endpoints (anything that can be queried via Sourcegraph).
Each code monitor can span any scope of your choosing, such as a single repository, multiple repositories, or multiple code hosts. They can also be scoped to specific branches of a repository. Code monitor alerts can be configured to send notifications via email, Slack message, or webhook. Most queries used for a code monitor can also be reused for a Code Insights chart or a fix with Batch Changes.
## Embedded code search and documentation
-Sourcegaph’s [Notebooks](https://docs.sourcegraph.com/notebooks) integrate code search with Markdown for knowledge sharing. Notebooks are created with blocks, and each block can be Markdown, a code search query, a live code snippet, a file, or a symbol.
+Sourcegaph’s [Notebooks](/notebooks) integrate code search with Markdown for knowledge sharing. Notebooks are created with blocks, and each block can be Markdown, a code search query, a live code snippet, a file, or a symbol.
Notebooks pull information directly from your codebase, so the information served in notebooks (via code search blocks, for example) always reflects what is live in your code at that moment in time. By referencing live code, notebooks are useful for onboarding teammates, documenting vulnerabilities, walking through complex parts of a codebase, or keeping track of useful queries.
diff --git a/docs/getting-started/index.mdx b/docs/getting-started/index.mdx
index f925b3a70..0f5cbb0fb 100644
--- a/docs/getting-started/index.mdx
+++ b/docs/getting-started/index.mdx
@@ -57,11 +57,6 @@ You can also try [Sourcegraph.com](https://sourcegraph.com/search), a public Sou
Sourcegraph Enterprise is Sourcegraph's primary offering and includes all code intelligence platform features. Sourcegraph Enterprise is the best solution for enterprises who want to use Sourcegraph with their organization's code.
-Sourcegraph extensions are also OSS licensed (Apache 2), such as:
-
-- [Sourcegraph browser extension](https://github.com/sourcegraph/sourcegraph/tree/master/client/browser)
-- [Sourcegraph Jetbrains extension](https://github.com/sourcegraph/sourcegraph/tree/main/client/jetbrains)
-
## How is Sourcegraph different from the GitHub code search?
- [See how GitHub code search compares to Sourcegraph](/getting-started/github-vs-sourcegraph)
@@ -126,7 +121,7 @@ Read the [Notebooks documentation](/notebooks/) to learn more, and check out the
Automate changes to your codebase. Reduce effort, reduce errors, and enable developers to focus on high-value work.
-Read the [batch changes documentation](/batch_changes/) to learn more, including helpful how-to guides. Want a video tutorial? Check out this [batch change tutorial](https://www.youtube.com/watch?v=eOmiyXIWTCw)
+Read the [batch changes documentation](/batch-changes/) to learn more, including helpful how-to guides. Want a video tutorial? Check out this [batch change tutorial](https://www.youtube.com/watch?v=eOmiyXIWTCw)
## Code Insights
diff --git a/docs/getting-started/personalization/badges.mdx b/docs/getting-started/personalization/badges.mdx
index d74a20a61..b1e2ecd2d 100644
--- a/docs/getting-started/personalization/badges.mdx
+++ b/docs/getting-started/personalization/badges.mdx
@@ -18,7 +18,7 @@ This renders the following badge:
## Known issues
-Please report any other issues and feature requests on the [Sourcegraph issue tracker](https://github.com/sourcegraph/sourcegraph/issues).
+Please report any other issues and feature requests [here](https://help.sourcegraph.com/hc/en-us/requests/new).
- The number may be overcounted because it is the sum of counts for all of the repository's subpackages. If another project uses multiple subpackages in this repository, the project is counted multiple times.
- Importers using custom Go import paths (i.e., anything other than import paths prefixed by the repository name, such as `github.com/foo/bar`) will not be counted.
diff --git a/docs/getting-started/tour.mdx b/docs/getting-started/tour.mdx
index 0f6fbba36..31c3b3ada 100644
--- a/docs/getting-started/tour.mdx
+++ b/docs/getting-started/tour.mdx
@@ -12,8 +12,8 @@ Using Sourcegraph makes you a more effective code reviewer because code navigati
### Requirements
-- A [Sourcegraph Cloud](/cloud/) instance, or [deploy and configure Sourcegraph](/cloud//deploy/) and add repositories
-- [Install the integration for your code host/review tool](/cloud/ration/)
+- A [Sourcegraph Cloud](/cloud/) instance, or [deploy and configure Sourcegraph](/admin/deploy/) and add repositories
+- Install the integration for your code host/review tool
### Workflow
@@ -21,7 +21,7 @@ Using Sourcegraph makes you a more effective code reviewer because code navigati
2. Hover over source code in the diff (in added, unchanged, or deleted code) to see hover tooltips with documentation and **Go to definition** and **Find references** actions.
3. Use these actions while reviewing the diff, such as to ensure that all call sites of a modified function are updated to account for any new assumptions or behavior.
-To try this on an open-source pull request, [install the browser extension](/cloud/ration/browser_extension) and visit [gorilla/websocket#342](https://github.com/gorilla/websocket/pull/342/files). Use **Find references** to see all cases in which the newly added `AllowClientContextTakeover` is used.
+To try this on an open-source pull request, install the browser extension and visit [gorilla/websocket#342](https://github.com/gorilla/websocket/pull/342/files). Use **Find references** to see all cases in which the newly added `AllowClientContextTakeover` is used.
## Example code: Learn how a particular function should be called
@@ -31,13 +31,13 @@ Viewing cross-references (internal and external) on Sourcegraph is a great way t
### Requirements
-- [Deploy and configure Sourcegraph](/cloud//deploy/) and add repositories
-- [Install the browser extension and editor plugin](/cloud/ration/) for a faster way to initiate searches (optional)
+- [Deploy and configure Sourcegraph](/admin/deploy/) and add repositories
+- Install the browser extension and editor plugin for a faster way to initiate searches (optional)
### Workflow
1. Search on Sourcegraph for the name of the function you're trying to call. If you've installed any integrations, use those to initiate the search; otherwise, use the search box on the homepage of your organization's internal Sourcegraph instance.
-1. Find and click on a search result for the function you're looking for. (If needed, narrow your search using the suggested search filters below the search box or by [adding your filters](/cloud/search/reference/queries).)
+1. Find and click on a search result for the function you're looking for. (If needed, narrow your search using the suggested search filters below the search box or by [adding your filters](/code-search/queries).)
1. Click on the function's name in the code file (if it's not already highlighted).
1. Click **Find references** to see how the function is called.
1. Click through to various function call sites and use the after-line blame's authorship and recency information to gauge the quality of the call site as an example.
@@ -52,13 +52,13 @@ Navigating your code with code navigation on Sourcegraph is a great way to under
### Requirements
-- [Deploy and configure Sourcegraph](/cloud//deploy/) and add repositories
-- [Install the browser extension and editor plugin](/cloud/ration/) for a faster way to initiate searches (optional)
+- [Deploy and configure Sourcegraph](/admin/deploy/) and add repositories
+- Install the browser extension and editor plugin for a faster way to initiate searches (optional)
### Workflow
1. Search on Sourcegraph to locate the part of the code you're interested in. If you've installed any integrations, use those to initiate the search; otherwise, use the search box on the homepage of your organization's internal Sourcegraph instance.
-1. Find and click on a relevant search result or search suggestion. (If needed, narrow your search using the suggested search filters below the search box or by [adding your filters](/cloud/search/reference/queries).)
+1. Find and click on a relevant search result or search suggestion. (If needed, narrow your search using the suggested search filters below the search box or by [adding your filters](/code-search/queries).)
1. Read through the code, click on a token, and then **Go to definition** to navigate to its definition as needed.
1. If you have unanswered questions, use the blame information to determine who wrote the code, and send them a Sourcegraph link to the relevant code along with your specific questions.
@@ -72,12 +72,12 @@ Diff search on Sourcegraph is a great starting point for your investigation into
### Requirements
-- [Deploy and configure Sourcegraph](/cloud//deploy/) and add repositories
-- [Install the browser extension and editor plugin](/cloud/ration/) for a faster way to initiate searches (optional)
+- [Deploy and configure Sourcegraph](/admin/deploy/) and add repositories
+- Install the browser extension and editor plugin for a faster way to initiate searches (optional)
### Workflow
1. Perform a diff search on Sourcegraph with the name of the function that the stack trace originates from, such as `type:diff myCrashingFunctionName`. If you've installed any integrations, use those to initiate the search; otherwise, use the search box on the homepage of your organization's internal Sourcegraph instance.
-1. Scroll through the search results, which show you all commits (and diffs) that match the function name, newest first. (If needed, narrow the diff search by [adding search filters](/cloud/search/reference/queries).)
+1. Scroll through the search results, which show you all commits (and diffs) that match the function name, newest first. (If needed, narrow the diff search by [adding search filters](/code-search/queries).)
1. Find and click on a relevant search result. On the search results page, clicking on the commit message brings you to the diff (with code navigation), and clicking on the code in the commit diff brings you to the full file at the revision before or after the commit.
1. Use **Go to definition** and **Find references** to understand the implementation changes and callers
diff --git a/docs/how-to-videos/code-search/index.mdx b/docs/how-to-videos/code-search/index.mdx
new file mode 100644
index 000000000..266dc43c9
--- /dev/null
+++ b/docs/how-to-videos/code-search/index.mdx
@@ -0,0 +1,39 @@
+# Code Search
+
+Full [search query syntax](/code-search/queries).
+
+### Introduction
+
+| Topic | Description |
+| ---------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
+| [Intro to Sourcegraph Search Types](https://www.loom.com/share/e5e97ea303ab408e99478f34052cfe1b?sid=49bd4515-d4d0-466b-be10-f40df13ce081) | Navigating the Code Search web app and the Keyword, Literal, Regex, and Structural search. |
+| [Search Results Page Overview](https://www.loom.com/share/c713baea045c40bdba9bc2f524ae4387?sid=8f6e3242-032c-40ec-9fa8-2006ad3c30f9) | Navigating the search results page. |
+| [Intro to Search Filters](https://www.loom.com/share/f48295092e7f4a9b874bfd8f81595a87?sid=dd05c740-be70-4374-b890-219a48c8d9f2) | An overview of the most commonly-used search filters such as Language, Repo, and File. |
+| [Search Types](https://www.loom.com/share/2484f5b47fec47c68369399a26a18150?sid=52b5df3f-35d4-4ea0-b009-cd64946d1d38) | Searching against Code, Repo, Path, Symbol, Commit, and Diff data. |
+| [Code Navigation](https://www.loom.com/share/a354ee1d87524239a8322d4c9c3131e9?sid=ce08dd70-4489-4cdc-b067-d470a505ce41) | Finding defintions and references, and an explanation of precise versus search-based [code navigation](/code-search/code-navigation). |
+| [Saving Searches](https://www.loom.com/share/5728c5fc9ac14a11aa9ca875c6eaa406?sid=eb6112d7-5f3e-45fb-ae89-a990355f0ab8) | [Saving](/code-search/working/saved_searches) commonly-used searches. |
+| [Search Contexts](https://www.loom.com/share/0b2ebb0a96154a87bad3c3c451f2ffcd?sid=dd211b02-6d7b-4c52-86fd-bebccc4a63d9) | Intro to [Search Contexts](/code-search/working/search_contexts.mdx) and how to manage them. |
+
+### Advanced Searches
+| Topic | Description |
+| ---------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
+| [Non-default branches, revisions, and tags](https://www.loom.com/share/2a812f39bc5548b19ff2e05e819485ec?sid=7bccac65-4354-4177-8dca-d22bff2480ff) | Intro to [Revision search](/code-search/queries/language#revision) and how to search for specific branches, revisions, and tags. |
+| [Commit messages](https://www.loom.com/share/2221265f062b4092bca6a69270fac84e?sid=b0d17c04-f01d-43dd-a690-a740b1bde4b0) | Searching `type:commit` messages. |
+| [Diffs](https://www.loom.com/share/daf8a5dcb5ea4ee0b41cddad7331f433?sid=a86b047f-f516-4c85-be1f-1dab5fd6d76d) | Searching `type:diff` . |
+| [Added or removed code](https://www.loom.com/share/ccb7ce60010749989978dd717faded8a?sid=7e610fe0-4914-4476-8596-2ef330701b10) | Combining `type:diff` with `select:commit.diff.(added OR removed)` . |
+| [By author](https://www.loom.com/share/5dfaa523713b4fa49526533abb0a9391?sid=6ca791e0-157b-486e-acb6-4584592c29c4) | Using the `author: ` filter. |
+| [Time-boxing searches](https://www.loom.com/share/104a5abfb3b74663b4b2f140d24bab3f?sid=5479b164-d6cb-4268-a959-00dbf01d8178) | Using the `before:` and `after:` filters. |
+| [Boolean operators](https://www.loom.com/share/0e762571a0334ceabf41c6bb4732642b?sid=34ecfad8-7a83-4c21-914b-3a90a0c3b9e2) | Using `AND`, `OR`, and `NOT` operators. |
+| [Functions and other symbols](https://www.loom.com/share/88755bf5490947a080e88a5fea040323?sid=9f815a7f-881f-4f0c-a55b-6e4b95699a0a) | Using `type:symbol` filter. |
+| [Advanced symbol search](https://www.loom.com/share/b8a1456c460442d3b42db1f2c783dd63?sid=a191fc76-34bf-4f71-89ee-6905235c8f47) | Combining the `select:symbol.(symbol_type)` and `type:symbol` filters. |
+| [Selecting metadata](https://www.loom.com/share/acb42f0611c14bb19dd24b28ac84ec2e?sid=2cf9ce6f-2862-4176-80b4-f66eb0e30277) | Using `select:` filter to return data other than the type of data searched against, e.g. returning all repos than contain a certain function. |
+| [Advanced repo search](https://www.loom.com/share/99e3f27c060b41d793e470a95c6f67bf?sid=8662effe-6e74-47c1-86aa-bef9e505a9a1) | Using [`repo:has.(...)`](/code-search/queries/language#built-in-repo-predicate) filters. |
+| [Excluding stale repos](https://www.loom.com/share/7c602971543546538c475a698e23871e?sid=ccd38787-eb5e-4e96-a7ac-255d699b8ed3) | Using `repo:has.commit.after(...)` filter. |
+
+### Batch Changes and Code Insights
+| Topic | Description |
+| ---------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
+| [Batch Changes](https://www.loom.com/share/475d300b96c4404ba62edc8063499a05?sid=79e1fdb4-65ca-46d9-bfe9-d80257db831c) | Intro to managing [Batch Changes](/batch-changes) and the [batch spec](/batch-changes/batch-spec-yaml-reference) file. |
+| [Code Insights](https://www.loom.com/share/7066ac1ef33a41638793ac8f468b8ab8?sid=35b001df-84f8-4221-90c4-2ba46e03b9fc) | Intro to [Code Insights](/code_insights). |
+| [Code Monitoring](https://www.loom.com/share/99b8302e832a4341bc98916219fe8418?sid=261fc431-67e7-4df2-9cfa-306bcf003911) | Intro to [Code Monitoring](/code_monitoring). |
+
diff --git a/docs/how-to-videos/cody/index.mdx b/docs/how-to-videos/cody/index.mdx
new file mode 100644
index 000000000..75db70468
--- /dev/null
+++ b/docs/how-to-videos/cody/index.mdx
@@ -0,0 +1,24 @@
+# Cody
+
+### Getting started with Cody
+
+| Topic | Description |
+| ---------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
+| [Cody Web - Overview](https://www.loom.com/share/0989de19eafc44be9208f2ece9b2d901?sid=fa5965de-b844-406d-801a-bcf86f24913c?sid=bf56d3a2-e640-40ba-8cf0-d684ef9317f4) | Intro to the Cody web feature.
+| [Cody IDE - Overview](https://www.loom.com/share/44976666510f477da4d140273bd7615a?sid=bf56d3a2-e640-40ba-8cf0-d684ef9317f4) | Intro to the Cody extension in an IDE.
+| [Cody IDE - Chat](https://www.loom.com/share/a8c9403e10144f65a7413509c5f03f9c) | Intro to Cody chat in an IDE.
+| [Cody IDE - Autocomplete](https://www.loom.com/share/d1270097c6c148148bdbaf9a2f7bfe7e) | Intro to Cody autocomplete in an IDE.
+| [Cody IDE - Commands](https://www.loom.com/share/528b7b0ac36f4fbf8adb1cdba84f40da?sid=2d4e0354-5746-4beb-8848-bda547aa0110) | Intro to Cody commands in an IDE.
+
+
+
+
+### Identifying Code AI Use Cases
+
+| Topic | Description |
+| ---------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
+| [LLM Fundamentals](https://www.loom.com/share/379a3c6f9a2140cd8c5c8569ee7908e1?sid=c144e439-45a3-49fc-8034-8935fb23758e) | LLM basics and how they impact coding assistants.
+| [Cody Context Retrieval](https://www.loom.com/share/4bf1c37ccd8f425286618eaecce5d2ba?sid=629b5a84-2e48-4036-b89b-128a8155bdb3) | Demystifying Cody context retrieval.
+| [Task Categorization](https://www.loom.com/share/ab876ae8bed14ab889640e8f938d5ac7?sid=88c864e2-7fbb-4bc8-b213-5805eda9a1e5) | Introducing a task categorization framework to help you use coding assistants effectively.
+| [Cody Use Cases in the Developer Workflow](https://www.loom.com/share/d99d64ade19a447eaf512fa158d19092?sid=929c3811-4472-41c8-9568-20d10fb0efa5) | Thinking about how to use Cody in the typical developer workflow.
+
diff --git a/docs/how-to-videos/index.mdx b/docs/how-to-videos/index.mdx
new file mode 100644
index 000000000..d446b6417
--- /dev/null
+++ b/docs/how-to-videos/index.mdx
@@ -0,0 +1,9 @@
+# How to videos
+
+Short, consumable videos to help you get started with Sourcegraph.
+## [Code Search]()
+
+
+
+
+
diff --git a/docs/how-to/aws-instance-sizing.mdx b/docs/how-to/aws-instance-sizing.mdx
new file mode 100644
index 000000000..618d7661f
--- /dev/null
+++ b/docs/how-to/aws-instance-sizing.mdx
@@ -0,0 +1,16 @@
+# AWS Instance Sizing for Sourcegraph
+
+## Instance size chart
+
+Select an instance type according to the number of users and repositories you have using this table. If you fall between two sizes, choose the larger of the two.
+
+For example, if you have 8,000 users with 80,000 repositories, your instance size would be **L**. If you have 1,000 users with 80,000 repositories, you should still go with size **M**.
+
+| | **XS** | **S** | **M** | **L** | **XL** |
+|----------------------|-----------------------|-----------------------|-----------------------|-----------------------|------------------------|
+| **Users** | ≥ 500 | ≥ 1,000 | ≥ 5,000 | ≥ 10,000 | ≥ 20,000 |
+| **Repositories** | ≥ 5,000 | ≥ 10,000 | ≥ 50,000 | ≥ 100,000 | ≥ 250,000 |
+| **Recommended Type** | m6a.2xlarge | m6a.4xlarge | m6a.8xlarge | m6a.12xlarge | m6a.24xlarge |
+| **Minimum Type** | m6a.2xlarge | m6a.2xlarge | m6a.4xlarge | m6a.8xlarge | m6a.12xlarge |
+
+While we recommend certain instance types in our sizing chart, the Sourcegraph AMI will dynamically use the resources available on the EC2 instance type it is deployed to, provided the minimum amount of resources needed is available. If you would like to resize your EC2 instance, follow the [upgrade steps](/admin/deploy/machine-images/aws-ami#upgrade) to switch to a more appropriate instance type.
\ No newline at end of file
diff --git a/docs/index.mdx b/docs/index.mdx
index 26f8da29d..eefd0d199 100644
--- a/docs/index.mdx
+++ b/docs/index.mdx
@@ -1,31 +1,52 @@
Sourcegraph is a Code Intelligence platform that deeply understands your code, no matter how large or where it’s hosted, to power modern developer experiences.
-- **AI code assistant**: Use Cody to read, write, and understand your entire codebase faster
-- **Code search:** Search through all of your repositories across all branches and all code hosts
-- **Code intelligence:** Navigate code, find references, see code owners, trace history, and more
-- **Fix & refactor:** Roll out and track large-scale changes and migrations across repos at once
+- **Cody**: Use Cody our AI code assistant to read, write, and understand your entire codebase faster
+- **Code search:** Search through all of your repositories across all branches and all code hosts
+- **Code intelligence:** Navigate code, find references, see code owners, trace history, and more
+- **Fix & refactor:** Roll out and track large-scale changes and migrations across repos at once
## Quickstart
-
-
-
-
+
+
+
+
## Main Features
Some of the main Sourcegraph features include:
-| **Feature** | **Description** |
-| -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
-| **Cody** | Cody is a free AI coding assistant that writes, fixes, and maintains your code |
-| **Code Navigation** | Jump-to-definition, find references, and other IDE-like code browsing features on any branch, commit, or PR/code review |
-| **Code Insights** | Reveal high-level information about your codebase at its current state and over time, to track migrations, version usage, vulnerability remediation, ownership, and more |
-| **Batch Changes** | Make large-scale code changes across many repositories and codehosts |
-| **Integrations** | With code hosts, code review tools, editors, web browsers, etc. |
-| **Notebooks** | Pair code and markdown to create powerful live and persistent documentation |
+| **Feature** | **Description** |
+| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| **Cody** | Cody is a free AI coding assistant that writes, fixes, and maintains your code |
+| **Code Navigation** | Jump-to-definition, find references, and other IDE-like code browsing features on any branch, commit, or PR/code review |
+| **Code Insights** | Reveal high-level information about your codebase at its current state and over time, to track migrations, version usage, vulnerability remediation, ownership, and more |
+| **Batch Changes** | Make large-scale code changes across many repositories and codehosts |
+| **Integrations** | With code hosts, code review tools, editors, web browsers, etc. |
## What's New
@@ -33,4 +54,4 @@ Stay in sync and get the latest news on Sourcegraph products, technologies, and
## Join our Community
-If you have questions about anything related to Sourcegraph, you're always welcome to ask our community on [GitHub Discussions](https://github.com/sourcegraph/sourcegraph/discussions), [Discord](https://discord.gg/s2qDtYGnAE), and [X](https://twitter.com/sourcegraph).
+If you have questions about anything related to Sourcegraph, you're always welcome to ask our in our [Sourcegraph community forum](https://community.sourcegraph.com), [Discord](https://discord.gg/s2qDtYGnAE), and [X](https://twitter.com/sourcegraph).
diff --git a/docs/integration/aws_codecommit.mdx b/docs/integration/aws_codecommit.mdx
index f51e1f1d8..a4a54e600 100644
--- a/docs/integration/aws_codecommit.mdx
+++ b/docs/integration/aws_codecommit.mdx
@@ -4,12 +4,12 @@ You can use Sourcegraph with Git repositories hosted on [AWS CodeCommit](https:/
Feature | Supported?
------- | ----------
-[Repository syncing](/admin/external_service/aws_codecommit) | ✅
+[Repository syncing](/admin/code_hosts/aws_codecommit) | ✅
[Browser extension](/integration/browser_extension) | ❌
## Repository syncing
-Site admins can [add AWS CodeCommit repositories to Sourcegraph](/admin/external_service/aws_codecommit).
+Site admins can [add AWS CodeCommit repositories to Sourcegraph](/admin/code_hosts/aws_codecommit).
## Browser extension
diff --git a/docs/integration/bitbucket_cloud.mdx b/docs/integration/bitbucket_cloud.mdx
index b98b4481e..48bf76598 100644
--- a/docs/integration/bitbucket_cloud.mdx
+++ b/docs/integration/bitbucket_cloud.mdx
@@ -4,16 +4,16 @@ You can use Sourcegraph with Git repositories hosted on [Bitbucket Cloud](https:
Feature | Supported?
------- | ----------
-[Repository syncing](/admin/external_service/bitbucket_cloud) | ✅
-[Repository permissions](/admin/external_service/bitbucket_cloud#repository-permissions) | ✅
+[Repository syncing](/admin/code_hosts/bitbucket_cloud) | ✅
+[Repository permissions](/admin/code_hosts/bitbucket_cloud#repository-permissions) | ✅
Browser extension | ✅
Native extension | ❌ Not supported on Bitbucket.org
## Repository syncing
-Site admins can [add Bitbucket Cloud repositories to Sourcegraph](/admin/external_service/bitbucket_cloud).
+Site admins can [add Bitbucket Cloud repositories to Sourcegraph](/admin/code_hosts/bitbucket_cloud).
## User authorization
Site admins can [add Bitbucket Cloud as an authentication provider to Sourcegraph](/admin/auth#bitbucket-cloud).
-This will allow users to sign into Sourcegraph using their Bitbucket Cloud accounts. Site admins can then also [enable repository permissions](/admin/external_service/bitbucket_cloud#repository-permissions) on their Bitbucket Cloud code host connections.
+This will allow users to sign into Sourcegraph using their Bitbucket Cloud accounts. Site admins can then also [enable repository permissions](/admin/code_hosts/bitbucket_cloud#repository-permissions) on their Bitbucket Cloud code host connections.
diff --git a/docs/integration/bitbucket_server.mdx b/docs/integration/bitbucket_server.mdx
index b0917b65f..99cf126f7 100644
--- a/docs/integration/bitbucket_server.mdx
+++ b/docs/integration/bitbucket_server.mdx
@@ -4,29 +4,26 @@ You can use Sourcegraph with Git repositories hosted on [Bitbucket Server](https
Feature | Supported?
------- | ----------
-[Repository syncing](/admin/external_service/bitbucket_server) | ✅
-[Webhooks](/admin/external_service/bitbucket_server#webhooks) | ✅
-[Repository permissions](/admin/external_service/bitbucket_server#repository-permissions) | ✅
+[Repository syncing](/admin/code_hosts/bitbucket_server) | ✅
+[Webhooks](/admin/code_hosts/bitbucket_server#webhooks) | ✅
+[Repository permissions](/admin/code_hosts/bitbucket_server#repository-permissions) | ✅
[Sourcegraph Bitbucket Server plugin](#sourcegraph-bitbucket-server-plugin) | ✅
[Browser extension](#browser-extension) | ✅
## Repository syncing
-Site admins can [add Bitbucket Server / Bitbucket Data Center repositories to Sourcegraph](/admin/external_service/bitbucket_server).
+Site admins can [add Bitbucket Server / Bitbucket Data Center repositories to Sourcegraph](/admin/code_hosts/bitbucket_server).
## Repository permissions
-Site admins can [configure Sourcegraph to respect Bitbucket Server / Bitbucket Data Center's repository access permissions](/admin/external_service/bitbucket_server#repository-permissions).
+Site admins can [configure Sourcegraph to respect Bitbucket Server / Bitbucket Data Center's repository access permissions](/admin/code_hosts/bitbucket_server#repository-permissions).
## Sourcegraph Bitbucket Plugin
We recommend installing the Sourcegraph Bitbucket plugin which adds the following features to your Bitbucket Server / Bitbucket Data Center instance:
-- **Native code navigation**: users don't need to install the [Sourcegraph browser extension](#browser-extension) to get hover tooltips, go-to-definition, find-references, and code search while browsing files and viewing pull requests on Bitbucket Server / Bitbucket Data Center.
- **Fast permission syncing** between Sourcegraph and Bitbucket Server / Bitbucket Data Center
-- **Webhooks with configurable scope**, which are used by and highly recommended for usage with [batch changes](/batch_changes/)
-
-
+- **Webhooks with configurable scope**, which are used by and highly recommended for usage with [batch changes](/batch-changes/)
### Installation and requirements
@@ -72,17 +69,11 @@ In order to update the plugin, follow the same steps as for installing it, which
When the Sourcegraph instance connected to the Bitbucket Server plugin is updated, so will the code that's fetched by the plugin to enable native code navigation. No manual steps required. (See the [Technical Details](#technical-details) section on how this works.)
-### Native code navigation
-
-Once the plugin is installed and the **Sourcegraph URL** is set under **Administration > Add-ons > Sourcegraph**, native code navigation is enabled when browsing code or pull requests on your Bitbucket Server / Bitbucket Data Center instance.
-
-To disable native code navigation, simply set **Sourcegraph URL** to an empty value. Note that this will also disable [Webhooks](#webhooks)!
-
### Webhooks
Once the plugin is installed, go to **Administration > Add-ons > Sourcegraph** to see a list of all configured webhooks and to create a new one.
-To configure a webhook, follow [these steps](/admin/external_service/bitbucket_server#webhooks).
+To configure a webhook, follow [these steps](/admin/code_hosts/bitbucket_server#webhooks).
Disabling the webhook is as easy as removing the `"webhooks"` property from the `"plugin"` section and deleting the webhook pointing to your Sourcegraph instance under **Administration > Add-ons > Sourcegraph**.
@@ -92,7 +83,7 @@ Disabling the webhook is as easy as removing the `"webhooks"` property from the
The plugin also supports an optional method of faster ACL permissions syncing that aims to improve the speed of fetching a user's permissions from Bitbucket (which can reduce the time a user has to wait to run a search if their permissions data has expired).
-You can enable this feature when [configuring the connection to your Bitbucket Server / Bitbucket Data Center instance on Sourcegraph](/admin/external_service/bitbucket_server#repository-permissions). For more information on when permissions are fetched, how long they're cached and how to configure that behavior, see our documentation on [Repository permissions](/admin/permissions/).
+You can enable this feature when [configuring the connection to your Bitbucket Server / Bitbucket Data Center instance on Sourcegraph](/admin/code_hosts/bitbucket_server#repository-permissions). For more information on when permissions are fetched, how long they're cached and how to configure that behavior, see our documentation on [Repository permissions](/admin/permissions/).
The speed improvements are most important on larger Bitbucket Server / Bitbucket Data Center instances with thousands of repositories. When connected to these instances, Sourcegraph would have to make many wasteful requests to fetch permission data if the plugin is not installed.
@@ -104,29 +95,13 @@ This section provides some technical insight into the Bitbucket Server plugin to
You can find the full source code for the plugin at [github.com/sourcegraph/bitbucket-server-plugin](https://github.com/sourcegraph/bitbucket-server-plugin/).
-#### Native code navigation
-
-The Bitbucket Server plugin provides **native code navigation** without users having to install the [Sourcegraph browser extension](/integration/browser_extension).
-
-It does that by fetching the required JavaScript code from the configured Sourcegraph instance and injecting it into the HTML that the Bitbucket Server / Bitbucket Data Center instance serves. See the [`sourcegraph-bitbucket.js`](https://github.com/sourcegraph/bitbucket-server-plugin/blob/master/src/main/resources/js/sourcegraph-bitbucket.js) file for how it does that.
-
-The code that's injected is the code of the [Sourcegraph browser extension](#browser-extension). It is hosted by your Sourcegraph instance in this case and adds the same code navigation functionality to all files and pull requests viewed on Bitbucket Server / Bitbucket Data Center.
-
-The code only talks to the Sourcegraph instance that's configured in the Bitbucket Server plugin configuration. It doesn't add any more load to the Bitbucker Server instance.
-
-No private code, private repository names, usernames, or any other specific data is sent somewhere else. The code will send usage information to the connected private Sourcegraph instance only, so that the site admins can see usage statistics.
-
-If it failed to load or talk to the Sourcegraph instance, messages are logged to the browser console.
-
-When the Sourcegraph instance is updated to a newer version, the embedded browser extension code that provides the native code navigation may also be updated.
-
#### Webhooks
Bitbucket Server / Bitbucket Data Center natively only [provides **per-repository** webhooks](https://confluence.atlassian.com/bitbucketserver/managing-webhooks-in-bitbucket-server-938025878.html).
Sourcegraph's Bitbucket Server / Bitbucket Data Center adds support for webhooks with a **configurable scope**. Each webhook can be configured to listen to specific events **globally**, per **project** or per **repository**.
-The motivation behind this added functionality is to more efficiently react to updates to Bitbucket Server / Bitbucket Data Center pull requests when using [batch changes](/batch_changes/) by requiring only a single webhook to receive events for hundreds or thousands of pull requests across projects and repositories.
+The motivation behind this added functionality is to more efficiently react to updates to Bitbucket Server / Bitbucket Data Center pull requests when using [batch changes](/batch-changes/) by requiring only a single webhook to receive events for hundreds or thousands of pull requests across projects and repositories.
The plugin adds a `/webhook` endpoint that accepts `GET`, `POST` and `DELETE` HTTP request to list, create and delete webhooks respectively. The full URL for this endpoint would be something like `https://your-bbs-instance.example.com/rest/sourcegraph-admin/1.0/webhook`. See the [webhooks README](https://github.com/sourcegraph/bitbucket-server-plugin/blob/master/src/main/java/com/sourcegraph/webhook/README) for detailed information on which payloads this endpoint accepts.
@@ -134,11 +109,11 @@ Once the plugin is installed it registers an asynchronous listener (see [`Webhoo
In order to persist the configured webhooks across restarts of the Bitbucket Server / Bitbucket Data Center instance the plugin uses the [Active Objects ORM](https://developer.atlassian.com/server/framework/atlassian-sdk/active-objects/) of the Atlassian SDK. It registers two Active Objects: [`WebhookEntity` and `EventEntity`](https://github.com/sourcegraph/bitbucket-server-plugin/blob/94e4be96b57286429cc543205164586af03e9b9b/src/main/resources/atlassian-plugin.xml#L10-L14).
-If Sourcegraph is configured to make use of the Bitbucket Server plugin webhooks (which is done by setting the [`"plugin.webhooks"` property in the Bitbucket Server / Bitbucket Data Center configuration](/admin/external_service/bitbucket_server#webhooks)), it sends a request to the Bitbucket Server / Bitbucket Data Center instance, every minute, to make sure that a webhook on the Bitbucket Server / Bitbucket Data Center instance exists and points to the Sourcegraph instance.
+If Sourcegraph is configured to make use of the Bitbucket Server plugin webhooks (which is done by setting the [`"plugin.webhooks"` property in the Bitbucket Server / Bitbucket Data Center configuration](/admin/code_hosts/bitbucket_server#webhooks)), it sends a request to the Bitbucket Server / Bitbucket Data Center instance, every minute, to make sure that a webhook on the Bitbucket Server / Bitbucket Data Center instance exists and points to the Sourcegraph instance.
#### Fast permission syncing
-When Sourcegraph is configured to use [Bitbucket Server / Bitbucket Data Center's repository permissions](/admin/external_service/bitbucket_server#repository-permissions) to control access to repositories on Sourcegraph, it needs to fetch permissions for each user.
+When Sourcegraph is configured to use [Bitbucket Server / Bitbucket Data Center's repository permissions](/admin/code_hosts/bitbucket_server#repository-permissions) to control access to repositories on Sourcegraph, it needs to fetch permissions for each user.
The Bitbucket Server / Bitbucket Data Center REST API only provides **paginated** endpoints to fetch either the list of repositories a given user has access to, or the list of users that have access to a given repository. Both endpoints return the **full representation of the entities**.
diff --git a/docs/integration/browser_extension/how-tos/troubleshooting.mdx b/docs/integration/browser_extension/how-tos/troubleshooting.mdx
index bd4c75c2d..15811e7fd 100644
--- a/docs/integration/browser_extension/how-tos/troubleshooting.mdx
+++ b/docs/integration/browser_extension/how-tos/troubleshooting.mdx
@@ -40,7 +40,7 @@ In Safari:
2. In Develop select Web Extension Background Pages > Sourcegraph
3. Select the Network tab
-If that still doesn't help, take a screenshot of the console and network activity and attach it [to a new issue](https://github.com/sourcegraph/sourcegraph/issues/new?assignees=&labels=&template=bug_report&title=Browser%20extension%20-%20) so we can investigate further.
+If that still doesn't help, take a screenshot of the console and network activity and [report here](https://help.sourcegraph.com/hc/en-us/requests/new) so we can investigate further.
## Unable to connect to `http://...` Ensure the URL is correct and you are logged in
diff --git a/docs/integration/browser_extension/index.mdx b/docs/integration/browser_extension/index.mdx
index 12e9a03e5..0df68d6fe 100644
--- a/docs/integration/browser_extension/index.mdx
+++ b/docs/integration/browser_extension/index.mdx
@@ -3,16 +3,14 @@
Bring the power of Sourcegraph to your code host
-
+
-The open-source Sourcegraph
-browser extension adds code navigation to files and diffs on GitHub, GitHub
-Enterprise, GitLab, Phabricator, Bitbucket Server and Bitbucket Data Center.
+The Sourcegraph browser extension allows you to open repos, compare revisions and search code directly from Chrome's Omnibox for faster development on GitHub and GitHub Enterprise Server with support coming to GitLab, Phabricator, Bitbucket Server and Bitbucket Data Center in the future.
-- Install Sourcegraph for Chrome
-- Install Sourcegraph for Safari
-- Install Sourcegraph for Firefox
+- [Install Sourcegraph for Chrome](https://chrome.google.com/webstore/detail/sourcegraph/dgjhfomjieaadpoljlnidmbgkdffpack)
+- [Install Sourcegraph for Safari](https://apps.apple.com/us/app/sourcegraph-for-safari/id1543262193)
+- [Install Sourcegraph for Firefox](https://addons.mozilla.org/en-US/firefox/addon/sourcegraph-for-firefox)
diff --git a/docs/integration/browser_extension/quickstart.mdx b/docs/integration/browser_extension/quickstart.mdx
index e949f20e9..9f0f023d0 100644
--- a/docs/integration/browser_extension/quickstart.mdx
+++ b/docs/integration/browser_extension/quickstart.mdx
@@ -6,9 +6,9 @@ Get started with our Browser Extension in 5 minutes or less
Use one of the following links to install the Sourcegraph Browser Extension for your favourite browser.
-- Install Sourcegraph for Chrome
-- Install Sourcegraph for Safari
-- Install Sourcegraph for Firefox
+- [Install Sourcegraph for Chrome](https://chrome.google.com/webstore/detail/sourcegraph/dgjhfomjieaadpoljlnidmbgkdffpack)
+- [Install Sourcegraph for Safari](https://apps.apple.com/us/app/sourcegraph-for-safari/id1543262193)
+- [Install Sourcegraph for Firefox](https://addons.mozilla.org/en-US/firefox/addon/sourcegraph-for-firefox)
>NOTE: If you were using our self-hosted version of Firefox Extension and are looking to upgrade, please check our [migration guide](/integration/migrating_firefox_extension).
@@ -25,7 +25,7 @@ To use the browser extension with your private repositories, you need to set up
Follow these instructions:
-1. [Install Sourcegraph](https://docs.sourcegraph.com/admin/install). Skip this step if you already have a private Sourcegraph instance.
+1. [Install Sourcegraph](/admin/install). Skip this step if you already have a private Sourcegraph instance.
2. Click the Sourcegraph extension icon in the browser toolbar on the browser tab for your private Sourcegraph instance then open the settings page.
3. Enter the URL (including the protocol) of your Sourcegraph instance (such as `https://sourcegraph.example.com`)
4. Make sure the connection status shows "Looks good!"
diff --git a/docs/integration/editor.mdx b/docs/integration/editor.mdx
index bbeb9db5f..1893c3f5b 100644
--- a/docs/integration/editor.mdx
+++ b/docs/integration/editor.mdx
@@ -6,7 +6,7 @@ Get up to speed quickly, learn best practices and, find code to re-use all while
We currently have integrations with these editors:
-- [Visual Studio Code](https://marketplace.visualstudio.com/items?itemName=sourcegraph.sourcegraph) (note that the VS Code plugin is not supported for recent versions of Sourcegraph v5.3+)
+- [Visual Studio Code](https://marketplace.visualstudio.com/items?itemName=sourcegraph.sourcegraph)
- [JetBrains IDEs (IntelliJ, PyCharm, GoLand, etc.)](https://plugins.jetbrains.com/plugin/9682-sourcegraph)
- [Gitpod](https://open-vsx.org/extension/sourcegraph/sourcegraph)
diff --git a/docs/integration/github.mdx b/docs/integration/github.mdx
index f0d2f17d2..f67615f2c 100644
--- a/docs/integration/github.mdx
+++ b/docs/integration/github.mdx
@@ -4,22 +4,22 @@ You can use Sourcegraph with [GitHub.com](https://github.com) and [GitHub Enterp
Feature | Supported?
------- | ----------
-[Repository syncing](/admin/external_service/github#selecting-repositories-to-sync) | ✅
-[Repository permissions](/admin/external_service/github#repository-permissions) | ✅
-[User authentication](/admin/external_service/github#user-authentication) | ✅
+[Repository syncing](/admin/code_hosts/github#selecting-repositories-to-sync) | ✅
+[Repository permissions](/admin/code_hosts/github#repository-permissions) | ✅
+[User authentication](/admin/code_hosts/github#user-authentication) | ✅
[Browser extension](#browser-extension) | ✅
## Repository syncing
-Site admins can [add GitHub repositories to Sourcegraph](/admin/external_service/github#selecting-repositories-to-sync).
+Site admins can [add GitHub repositories to Sourcegraph](/admin/code_hosts/github#selecting-repositories-to-sync).
## Repository permissions
-Site admins can [configure Sourcegraph to respect GitHub repository access permissions](/admin/external_service/github#repository-permissions).
+Site admins can [configure Sourcegraph to respect GitHub repository access permissions](/admin/code_hosts/github#repository-permissions).
## User authentication
-Site admins can [configure Sourcegraph to allow users to sign in via GitHub](/admin/external_service/github#user-authentication).
+Site admins can [configure Sourcegraph to allow users to sign in via GitHub](/admin/code_hosts/github#user-authentication).
## Browser extension
diff --git a/docs/integration/gitlab.mdx b/docs/integration/gitlab.mdx
index 9aad606e3..e254e66db 100644
--- a/docs/integration/gitlab.mdx
+++ b/docs/integration/gitlab.mdx
@@ -4,27 +4,27 @@ You can use Sourcegraph with [GitLab.com](https://gitlab.com) and GitLab CE/EE.
Feature | Supported?
------- | ----------
-[Repository syncing](/admin/external_service/gitlab#repository-syncing) | ✅
-[Repository permissions](/admin/external_service/gitlab#repository-permissions) | ✅
-[User authentication](/admin/external_service/gitlab#user-authentication) | ✅
+[Repository syncing](/admin/code_hosts/gitlab#repository-syncing) | ✅
+[Repository permissions](/admin/code_hosts/gitlab#repository-permissions) | ✅
+[User authentication](/admin/code_hosts/gitlab#user-authentication) | ✅
[GitLab UI native integration](#gitlab-ui-native-integration) | ✅
[Browser extension](#browser-extension) | ✅
## Repository syncing
-Site admins can [add GitLab repositories to Sourcegraph](/admin/external_service/gitlab#repository-syncing).
+Site admins can [add GitLab repositories to Sourcegraph](/admin/code_hosts/gitlab#repository-syncing).
## Repository permissions
-Site admins can [configure Sourcegraph to respect GitLab repository access permissions](/admin/external_service/gitlab#repository-permissions).
+Site admins can [configure Sourcegraph to respect GitLab repository access permissions](/admin/code_hosts/gitlab#repository-permissions).
## User authentication
-Site admins can [configure Sourcegraph to allow users to sign in via GitLab](/admin/external_service/gitlab#user-authentication).
+Site admins can [configure Sourcegraph to allow users to sign in via GitLab](/admin/code_hosts/gitlab#user-authentication).
## GitLab UI native integration
-GitLab instances can be configured to show Sourcegraph code navigation natively. See the [GitLab integration docs](/admin/external_service/gitlab#native-integration) for how to enable this on your GitLab instance.
+GitLab instances can be configured to show Sourcegraph code navigation natively. See the [GitLab integration docs](/admin/code_hosts/gitlab#native-integration) for how to enable this on your GitLab instance.

diff --git a/docs/integration/gitolite.mdx b/docs/integration/gitolite.mdx
index bbf07f23e..54657f6d9 100644
--- a/docs/integration/gitolite.mdx
+++ b/docs/integration/gitolite.mdx
@@ -4,12 +4,12 @@ You can use Sourcegraph with [Gitolite](http://gitolite.com/).
Feature | Supported?
------- | ----------
-[Repository syncing](/admin/external_service/gitolite#repository-syncing) | ✅
+[Repository syncing](/admin/code_hosts/gitolite#repository-syncing) | ✅
[Browser extension](#browser-extension) | ❌
## Repository syncing
-Site admins can [sync Gitolite repositories to Sourcegraph](/admin/external_service/gitolite#repository-syncing).
+Site admins can [sync Gitolite repositories to Sourcegraph](/admin/code_hosts/gitolite#repository-syncing).
## Browser extension
diff --git a/docs/integration/go.mdx b/docs/integration/go.mdx
index c364f3c02..1d54674fe 100644
--- a/docs/integration/go.mdx
+++ b/docs/integration/go.mdx
@@ -12,11 +12,11 @@ Feature | Supported?
## Setup
-See the "[Go dependencies](/admin/external_service/go)" documentation.
+See the "[Go dependencies](/admin/code_hosts/go)" documentation.
## Repository syncing
-Site admins can [add Go packages to Sourcegraph](/admin/external_service/go#repository-syncing).
+Site admins can [add Go packages to Sourcegraph](/admin/code_hosts/go#repository-syncing).
## Repository permissions
@@ -25,5 +25,3 @@ Site admins can [add Go packages to Sourcegraph](/admin/external_service/go#repo
## Multiple Go dependencies code hosts
⚠️ It's only possible to create one Ruby dependency code host for each Sourcegraph instance.
-
-See the issue [sourcegraph#32461](https://github.com/sourcegraph/sourcegraph/issues/32461) for more details about this limitation.
diff --git a/docs/integration/index.mdx b/docs/integration/index.mdx
index 26722b7c5..415ec722f 100644
--- a/docs/integration/index.mdx
+++ b/docs/integration/index.mdx
@@ -9,14 +9,7 @@ Sourcegraph integrates with your other tools to help you search, navigate, and r
- [GitLab](/integration/gitlab)
- [Bitbucket Cloud](/integration/bitbucket_cloud)
- [Bitbucket Server / Bitbucket Data Center](/integration/bitbucket_server)
- - [Package repository hosts](/admin/external_service/package-repos)
- - [JVM dependencies](/integration/jvm)
- - [npm dependencies](/integration/npm)
- - [Python dependencies](/integration/python)
- - [Go dependencies](/integration/go)
- - [Ruby dependencies](/integration/ruby)
- - [Rust dependencies](/integration/rust)
- - [Other Git repository hosts](/admin/external_service/other)
+ - [Other Git repository hosts](/admin/code_hosts/other)
- [Editor plugins](/integration/editor): jump to Sourcegraph from your editor
- [Open in Editor](/integration/open_in_editor): jump to your editor from Sourcegraph
- [Search shortcuts](/integration/browser_extension/how-tos/browser_search_engine): quickly search from your browser
diff --git a/docs/integration/jvm.mdx b/docs/integration/jvm.mdx
deleted file mode 100644
index e6720aead..000000000
--- a/docs/integration/jvm.mdx
+++ /dev/null
@@ -1,29 +0,0 @@
-# JVM dependencies integration with Sourcegraph
-
-You can use Sourcegraph with JVM dependencies from any Maven repository, including Maven Central, Sonatype, or Artifactory.
-
-This integration makes it possible to search and navigate through the source code of the JDK (Java standard library) or published Java, Scala, and Kotlin libraries (for example, [`com.google.guava:guava:27.0-jre`](https://sourcegraph.com/maven/com.google.guava/guava@v27.0-jre/-/blob/com/google/common/util/concurrent/Futures.java?L35)).
-
-Feature | Supported?
-------- | ----------
-[Repository syncing](#repository-syncing) | ✅
-[Repository permissions](#repository-syncing) | ❌
-[Multiple JVM dependencies code hosts](#multiple-jvm-dependencies-code-hosts) | ❌
-
-## Setup
-
-See the "[JVM dependencies](/admin/external_service/jvm)" documentation.
-
-## Repository syncing
-
-Site admins can [add JVM packages to Sourcegraph](/admin/external_service/jvm#repository-syncing).
-
-## Repository permissions
-
-⚠️ JVM dependency repositories are visible by all users of the Sourcegraph instance.
-
-## Multiple JVM dependencies code hosts
-
-⚠️ It's only possible to create one JVM dependency code host for each Sourcegraph instance.
-
-See the issue [sourcegraph#32461](https://github.com/sourcegraph/sourcegraph/issues/32461) for more details about this limitation. In most situations, it's possible to work around this limitation by configurating multiple Maven repositories to the same JVM dependency code host.
diff --git a/docs/integration/npm.mdx b/docs/integration/npm.mdx
deleted file mode 100644
index 47108829b..000000000
--- a/docs/integration/npm.mdx
+++ /dev/null
@@ -1,27 +0,0 @@
-# npm dependencies integration with Sourcegraph
-
-You can use Sourcegraph with npm packages from any npm registry, including open source code from npmjs.com or a private registry such as Verdaccio.
-This integration makes it possible to search and navigate through the source code of published JavaScript or TypeScript packages (for example, [`@types/gzip-js@0.3.3`](https://sourcegraph.com/npm/types/gzip-js@v0.3.3/-/blob/index.d.ts)).
-
-Feature | Supported?
-------- | ----------
-[Repository syncing](#repository-syncing) | ✅
-[Repository permissions](#repository-syncing) | ❌
-[Multiple npm dependencies code hosts](#multiple-npm-dependencies-code-hosts) | ❌
-
-## Setup
-
-See the "[npm dependencies](/admin/external_service/npm)" documentation.
-
-## Repository syncing
-
-Site admins can [add npm packages to Sourcegraph](/admin/external_service/npm#repository-syncing).
-
-## Repository permissions
-
-⚠️ npm dependency repositories are visible by all users of the Sourcegraph instance.
-
-## Multiple npm dependencies code hosts
-
-⚠️ It's only possible to create one npm dependency code host for each Sourcegraph instance.
-See the issue [sourcegraph#32499](https://github.com/sourcegraph/sourcegraph/issues/32499) for more details about this limitation. In most situations, it's possible to work around this limitation by configurating a single private npm registry to proxy multiple underlying registries.
diff --git a/docs/integration/open_in_editor.mdx b/docs/integration/open_in_editor.mdx
index b46f251aa..8e9785bf9 100644
--- a/docs/integration/open_in_editor.mdx
+++ b/docs/integration/open_in_editor.mdx
@@ -50,7 +50,7 @@ To open repository files in your Documents directory:
```json
{
"openInEditor": {
- "editorId": "idea",
+ "editorIds": ["idea"],
"projectPaths.default": "/Users/USERNAME/Documents"
}
}
@@ -84,7 +84,7 @@ To open repository files in your Documents directory:
```json
{
"openInEditor": {
- "editorId": "vscode",
+ "editorIds": ["vscode"],
"projectPaths.default": "/Users/USERNAME/Documents"
}
}
@@ -97,7 +97,7 @@ To open repository files in your Documents directory:
```json
{
"openInEditor": {
- "editorId": "vscode",
+ "editorIds": ["vscode"],
"projectPaths.default": "C:\Users\USERNAME\Documents"
}
}
@@ -110,7 +110,7 @@ To open repository files in your Home directory:
```json
{
"openInEditor": {
- "editorId": "vscode",
+ "editorIds": ["vscode"],
"projectPaths.default": "//wsl$/Ubuntu-18.04/home"
}
}
@@ -134,7 +134,7 @@ Uses the assigned path for the detected Operating System when available:
```json
{
"openInEditor": {
- "editorId": "vscode",
+ "editorIds": ["vscode"],
// basePath is required as the default path when no Operating System is detected
"projectPaths.default": "/Users/USERNAME/Documents/",
"projectPaths.windows": "/C:/Users/USERNAME/folder/",
@@ -153,7 +153,7 @@ To open directory where the repository files reside in a remote server:
```json
{
"openInEditor": {
- "editorId": "custom",
+ "editorIds": ["custom"],
"projectPaths.default": "/Users/USERNAME/Documents/",
// Replaces USER@HOSTNAME as appropriate.
"custom.urlPattern": "vscode://vscode-remote/ssh-remote+USER@HOSTNAME%file",
@@ -170,7 +170,7 @@ Adds `sourcegraph-` in front of the string that matches the `(?<=Documents\/)(.*
```json
{
"openInEditor": {
- "editorId": "vscode",
+ "editorIds": ["vscode"],
"projectPaths.default": "/Users/USERNAME/Documents/",
"replacements": { "(?<=Documents\/)(.*[\\\/])": "sourcegraph-$1" }
// vscode://file//Users/USERNAME/Documents/REPO-NAME/package.json => vscode://file//Users/USERNAME/Documents/sourcegraph-REPO-NAME/package.json
@@ -185,7 +185,7 @@ Removes `sourcegraph-` from the final URL.
```json
{
"openInEditor": {
- "editorId": "vscode",
+ "editorIds": ["vscode"],
"projectPaths.default": "/Users/USERNAME/Documents/",
"replacements": { "sourcegraph-": "" }
// vscode://file//Users/USERNAME/Documents/sourcegraph-REST-OF_REPO-NAME/package.json => vscode://file//Users/USERNAME/Documents/REST-OF_REPO-NAME/package.json
diff --git a/docs/integration/phabricator.mdx b/docs/integration/phabricator.mdx
index 1e750d75e..c2af8b6af 100644
--- a/docs/integration/phabricator.mdx
+++ b/docs/integration/phabricator.mdx
@@ -2,20 +2,20 @@
> ⚠️ NOTE: Sourcegraph support of Phabricator is limited, and not expected to evolve due to the [announced](https://admin.phacility.com/phame/post/view/11/phacility_is_winding_down_operations/) cease of support for Phabricator.
-This Phabricator integration does not support listing and mirroring Phabricator repositories (as it does for repositories on other code hosts). It is intended for use when your repositories are hosted somewhere else (such as GitHub), and Phabricator mirrors repositories from that code host. If your repositories are hosted on Phabricator, you must follow the steps in "[Other Git repository hosts](/admin/external_service/other)" to add the repositories so that they are mirrored to Sourcegraph in addition to the steps outlined here to power the integration. Sourcegraph does not currently support using the repository permissions you've set in Phabricator for repositories hosted on Phabricator.
+This Phabricator integration does not support listing and mirroring Phabricator repositories (as it does for repositories on other code hosts). It is intended for use when your repositories are hosted somewhere else (such as GitHub), and Phabricator mirrors repositories from that code host. If your repositories are hosted on Phabricator, you must follow the steps in "[Other Git repository hosts](/admin/code_hosts/other)" to add the repositories so that they are mirrored to Sourcegraph in addition to the steps outlined here to power the integration. Sourcegraph does not currently support using the repository permissions you've set in Phabricator for repositories hosted on Phabricator.
Feature | Supported?
------- | ----------
-[Repository syncing and mirroring](/admin/external_service/phabricator#repository-linking-and-syncing) | ❌
-[Repository association](/admin/external_service/phabricator#repository-linking-and-syncing) | ✅
+[Repository syncing and mirroring](/admin/code_hosts/phabricator#repository-linking-and-syncing) | ❌
+[Repository association](/admin/code_hosts/phabricator#repository-linking-and-syncing) | ✅
[Repository permission syncing](/admin/permissions/syncing) | ❌
[User authentication](/admin/auth/) | ❌
[Browser extension](#browser-extension) | ✅
-[Native extension](/admin/external_service/phabricator#native-extension) | ✅
+[Native extension](/admin/code_hosts/phabricator#native-extension) | ✅
## Repository association
-Site admins can [associate Phabricator repositories with Sourcegraph](/admin/external_service/phabricator#repository-syncing-and-linking).
+Site admins can [associate Phabricator repositories with Sourcegraph](/admin/code_hosts/phabricator#repository-syncing-and-linking).
## Browser extension
@@ -30,4 +30,4 @@ The [Sourcegraph browser extension](/integration/browser_extension) supports Pha
- Click "Allow" in the permissions request popup.
1. Visit any file or diff on Phabricator. Hover over code or click the "View file" and "View repository" buttons.
-> NOTE: Site admins can also install the [native Phabricator extension](/admin/external_service/phabricator#native-extension) to avoid needing each user to install the browser extension.
+> NOTE: Site admins can also install the [native Phabricator extension](/admin/code_hosts/phabricator#native-extension) to avoid needing each user to install the browser extension.
diff --git a/docs/integration/python.mdx b/docs/integration/python.mdx
deleted file mode 100644
index 501a302cd..000000000
--- a/docs/integration/python.mdx
+++ /dev/null
@@ -1,29 +0,0 @@
-# Python dependencies integration with Sourcegraph
-
-You can use Sourcegraph with Python packages from any Python package mirror, including open source code from pypi.org or a private mirror such as [Nexus](https://www.sonatype.com/products/nexus-repository).
-
-This integration makes it possible to search and navigate through the source code of published Python packages (for example, [`numpy@v1.19.5`](https://sourcegraph.com/python/numpy@v1.19.5)).
-
-Feature | Supported?
-------- | ----------
-[Repository syncing](#repository-syncing) | ✅
-[Repository permissions](#repository-permissions) | ❌
-[Multiple Python repositories code hosts](#multiple-python-dependencies-code-hosts) | ❌
-
-## Setup
-
-See the "[Python dependencies](/admin/external_service/python)" documentation.
-
-## Repository syncing
-
-Site admins can [add Python packages to Sourcegraph](/admin/external_service/python#repository-syncing).
-
-## Repository permissions
-
-⚠️ Python dependency repositories are visible by all users of the Sourcegraph instance.
-
-## Multiple Python dependencies code hosts
-
-⚠️ It's only possible to create one Python dependency code host for each Sourcegraph instance.
-
-See the issue [sourcegraph#32461](https://github.com/sourcegraph/sourcegraph/issues/32461) for more details about this limitation.
diff --git a/docs/integration/ruby.mdx b/docs/integration/ruby.mdx
deleted file mode 100644
index 76e3feea0..000000000
--- a/docs/integration/ruby.mdx
+++ /dev/null
@@ -1,29 +0,0 @@
-# Ruby dependencies integration with Sourcegraph
-
-You can use Sourcegraph with Ruby dependencies from any RubyGems repository, including rubygems.org or an internal Artifactory.
-
-This integration makes it possible to search and navigate through the source code of published Ruby library (for example, [`shopify_api@12.0.0`](https://sourcegraph.com/rubygems/shopify_api@v12.0.0)).
-
-Feature | Supported?
-------- | ----------
-[Repository syncing](#repository-syncing) | ✅
-[Repository permissions](#repository-syncing) | ❌
-[Multiple RubyGems repositories code hosts](#multiple-ruby-dependencies-code-hosts) | ❌
-
-## Setup
-
-See the "[Ruby dependencies](/admin/external_service/ruby)" documentation.
-
-## Repository syncing
-
-Site admins can [add Ruby dependencies to Sourcegraph](/admin/external_service/ruby#repository-syncing).
-
-## Repository permissions
-
-⚠ Ruby dependencies are visible by all users of the Sourcegraph instance.
-
-## Multiple Ruby dependencies code hosts
-
-⚠️ It's only possible to create one Ruby dependency code host for each Sourcegraph instance.
-
-See the issue [sourcegraph#32461](https://github.com/sourcegraph/sourcegraph/issues/32461) for more details about this limitation.
diff --git a/docs/integration/rust.mdx b/docs/integration/rust.mdx
deleted file mode 100644
index 951f63c7d..000000000
--- a/docs/integration/rust.mdx
+++ /dev/null
@@ -1,29 +0,0 @@
-# Rust dependencies integration with Sourcegraph
-
-You can use Sourcegraph with Rust dependencies from any Cargo repository, including crates.io or an internal Artifactory.
-
-This integration makes it possible to search and navigate through the source code of published Rust crates (for example, [`serde@1.0.158`](https://sourcegraph.com/crates/serde@v1.0.158)).
-
-Feature | Supported?
-------- | ----------
-[Repository syncing](#repository-syncing) | ✅
-[Repository permissions](#repository-syncing) | ❌
-[Multiple Cargo repositories code hosts](#multiple-rust-dependencies-code-hosts) | ❌
-
-## Setup
-
-See the "[Rust dependencies](/admin/external_service/rust)" documentation.
-
-## Repository syncing
-
-Site admins can [add Rust dependencies to Sourcegraph](/admin/external_service/rust#repository-syncing).
-
-## Repository permissions
-
-⚠ Rust dependencies are visible by all users of the Sourcegraph instance.
-
-## Multiple Rust dependencies code hosts
-
-⚠️ It's only possible to create one Rust dependency code host for each Sourcegraph instance.
-
-See the issue [sourcegraph#32461](https://github.com/sourcegraph/sourcegraph/issues/32461) for more details about this limitation.
diff --git a/docs/integration/vscode/index.mdx b/docs/integration/vscode/index.mdx
index 7afbbaf13..b99217790 100644
--- a/docs/integration/vscode/index.mdx
+++ b/docs/integration/vscode/index.mdx
@@ -1,4 +1,4 @@
# VS Code extension
-- See user docs at [cody/vscode/README](https://sourcegraph.com/github.com/sourcegraph/cody/-/tree/vscode/README)
-- See dev docs at [cody/vscode/CONTRIBUTING](https://sourcegraph.com/github.com/sourcegraph/cody/-/tree/vscode/CONTRIBUTING)
+- [See user docs](/cody/clients/install-vscode)
+
diff --git a/docs/legacy.mdx b/docs/legacy.mdx
index a9e0021e5..0bbfeaea8 100644
--- a/docs/legacy.mdx
+++ b/docs/legacy.mdx
@@ -1,41 +1,65 @@
# Legacy Versions
-This page displays the documentation for legacy Sourcegraph versions.
-
-## Sourcegraph 5.x
-
-- [5.1](https://docs.sourcegraph.com/@5.1/)
-- [5.0](https://docs.sourcegraph.com/@5.0/)
-
-## Sourcegraph 4.x
-
-- [4.5](https://docs.sourcegraph.com/@4.5/)
-- [4.4](https://docs.sourcegraph.com/@4.4/)
-- [4.3](https://docs.sourcegraph.com/@4.3/)
-- [4.2](https://docs.sourcegraph.com/@4.2/)
-- [4.1](https://docs.sourcegraph.com/@4.1/)
-- [4.0](https://docs.sourcegraph.com/@4.0/)
-
-## Sourcegraph 3.x
-
-- [3.43](https://docs.sourcegraph.com/@3.43/)
-- [3.41](https://docs.sourcegraph.com/@3.41/)
-- [3.40](https://docs.sourcegraph.com/@3.40/)
-- [3.39](https://docs.sourcegraph.com/@3.39/)
-- [3.38](https://docs.sourcegraph.com/@3.38/)
-- [3.37](https://docs.sourcegraph.com/@3.37/)
-- [3.36](https://docs.sourcegraph.com/@3.36/)
-- [3.35](https://docs.sourcegraph.com/@3.35/)
-- [3.34](https://docs.sourcegraph.com/@3.34/)
-- [3.32](https://docs.sourcegraph.com/@3.32/)
-- [3.31](https://docs.sourcegraph.com/@3.31/)
-- [3.30](https://docs.sourcegraph.com/@3.30/)
-- [3.29](https://docs.sourcegraph.com/@3.29/)
-- [3.28](https://docs.sourcegraph.com/@3.28/)
-- [3.27](https://docs.sourcegraph.com/@3.27/)
-- [3.26](https://docs.sourcegraph.com/@3.26/)
-- [3.25](https://docs.sourcegraph.com/@3.25/)
-- [3.24](https://docs.sourcegraph.com/@3.24/)
-- [3.23](https://docs.sourcegraph.com/@3.23/)
-- [3.22](https://docs.sourcegraph.com/@3.22/)
-- [3.21](https://docs.sourcegraph.com/@3.21/)
+This page displays the docs for legacy Sourcegraph versions less than 5.1
+
+
+
+ - [6.2](https://6.2.sourcegraph.com)
+ - [6.1](https://6.1.sourcegraph.com)
+ - [6.0](https://6.0.sourcegraph.com)
+
+
+
+
+
+ - [5.11](https://5.11.sourcegraph.com/)
+ - [5.10](https://5.10.sourcegraph.com/)
+ - [5.9](https://5.9.sourcegraph.com/)
+ - [5.8](https://5.8.sourcegraph.com/)
+ - [5.7](https://5.7.sourcegraph.com/)
+ - [5.6](https://5.6.sourcegraph.com/)
+ - [5.5](https://5.5.sourcegraph.com/)
+ - [5.4](https://5.4.sourcegraph.com)
+ - [5.3](https://5.3.sourcegraph.com/)
+ - [5.2](https://5.2.sourcegraph.com/)
+ - [5.1](https://docs.sourcegraph.com/@5.1/)
+ - [5.0](https://docs.sourcegraph.com/@5.0/)
+
+
+
+
+
+ - [4.5](https://docs.sourcegraph.com/@4.5/)
+ - [4.4](https://docs.sourcegraph.com/@4.4/)
+ - [4.3](https://docs.sourcegraph.com/@4.3/)
+ - [4.2](https://docs.sourcegraph.com/@4.2/)
+ - [4.1](https://docs.sourcegraph.com/@4.1/)
+ - [4.0](https://docs.sourcegraph.com/@4.0/)
+
+
+
+
+
+ - [3.43](https://docs.sourcegraph.com/@3.43/)
+ - [3.41](https://docs.sourcegraph.com/@3.41/)
+ - [3.40](https://docs.sourcegraph.com/@3.40/)
+ - [3.39](https://docs.sourcegraph.com/@3.39/)
+ - [3.38](https://docs.sourcegraph.com/@3.38/)
+ - [3.37](https://docs.sourcegraph.com/@3.37/)
+ - [3.36](https://docs.sourcegraph.com/@3.36/)
+ - [3.35](https://docs.sourcegraph.com/@3.35/)
+ - [3.34](https://docs.sourcegraph.com/@3.34/)
+ - [3.32](https://docs.sourcegraph.com/@3.32/)
+ - [3.31](https://docs.sourcegraph.com/@3.31/)
+ - [3.30](https://docs.sourcegraph.com/@3.30/)
+ - [3.29](https://docs.sourcegraph.com/@3.29/)
+ - [3.28](https://docs.sourcegraph.com/@3.28/)
+ - [3.27](https://docs.sourcegraph.com/@3.27/)
+ - [3.26](https://docs.sourcegraph.com/@3.26/)
+ - [3.25](https://docs.sourcegraph.com/@3.25/)
+ - [3.24](https://docs.sourcegraph.com/@3.24/)
+ - [3.23](https://docs.sourcegraph.com/@3.23/)
+ - [3.22](https://docs.sourcegraph.com/@3.22/)
+ - [3.21](https://docs.sourcegraph.com/@3.21/)
+
+
diff --git a/docs/notebooks/index.mdx b/docs/notebooks/index.mdx
index b6ee2e4d3..292f43a95 100644
--- a/docs/notebooks/index.mdx
+++ b/docs/notebooks/index.mdx
@@ -1,7 +1,7 @@
# Notebooks
-Notebooks enable powerful live–and persistent–documentation, shareable with your organization or the world. As of release 3.39, Notebooks are Generally Available (GA). If you're a Sourcegraph enterprise user and are on version 3.39 or later, you'll find Notebooks in the header navigation, or by going to `https:///notebooks`. You can also explore [public notebooks on Sourcegraph.com](https://sourcegraph.com/notebooks).
+Notebooks enable powerful live–and persistent–documentation, shareable with your organization or the world. As of release 3.39, Notebooks are Generally Available (GA). If you're a Sourcegraph enterprise user and are on version 3.39 or later, you'll find Notebooks in the header navigation, or by going to `https:///notebooks`.
-Inspired by Jupyter Notebooks and powered by Markdown and Sourcegraph's code search, Notebooks let you and your team create living documentation that interacts directly with your code. You can leverage Notebooks to onboard a new teammate, document [known vulnerabilities](https://sourcegraph.com/notebooks/Tm90ZWJvb2s6MQ==), a [common pattern](https://sourcegraph.com/notebooks/Tm90ZWJvb2s6OTI=) in your codebase, or [useful Sourcegraph queries](https://sourcegraph.com/notebooks/Tm90ZWJvb2s6MTU=).
+Inspired by Jupyter Notebooks and powered by Markdown and Sourcegraph's code search, Notebooks let you and your team create living documentation that interacts directly with your code. You can leverage Notebooks to onboard a new teammate, document known vulnerabilities, a common pattern in your codebase, or useful Sourcegraph queries.

@@ -62,7 +62,7 @@ In versions older than 3.39 (beginning in 3.36) Notebooks are behind an experime
```
-
+
## Explanations
diff --git a/docs/notebooks/notebook-sharing.mdx b/docs/notebooks/notebook-sharing.mdx
index c81a72283..decb3e07b 100644
--- a/docs/notebooks/notebook-sharing.mdx
+++ b/docs/notebooks/notebook-sharing.mdx
@@ -8,10 +8,6 @@ Notebooks support the following sharing scheme.
This is the default permissions level for all new notebook. Only the creator can view and edit the notebook.
-### Public Notebooks
-
-Notebooks can be shared with everyone (public notebooks on [Sourcegraph.com](https://sourcegraph.com) are viewable by anyone and don't require a Sourcegraph account), or with your entire Sourcegraph instance.
-
## Sourcegraph organization namespace
Find out more about Sourcegraph organizations and how to create and configure them on the [organizations docs page](/admin/organizations).
diff --git a/docs/notebooks/quickstart.mdx b/docs/notebooks/quickstart.mdx
index f323004cd..16d7b9d99 100644
--- a/docs/notebooks/quickstart.mdx
+++ b/docs/notebooks/quickstart.mdx
@@ -69,7 +69,3 @@ repo:^github\.com/sourcegraph/sourcegraph$ lang:TypeScript extends React type:di
- Your Notebook should now look like [this](https://sourcegraph.com/notebooks/Tm90ZWJvb2s6MTE4).
- **Optional:** share you notebook by clicking "Private" at the top right of the screen and select "Public" to share your Notebook with the community!
-
-## Next steps
-
-Congratulations on creating your first Notebook! Next, get some inspiration from the Notebooks created by Sourcegraph team members and the wider community by [exploring public Notebooks](https://sourcegraph.com/notebooks?tab=explore).
diff --git a/docs/own/index.mdx b/docs/own/index.mdx
index d98b5ef18..83b956dde 100644
--- a/docs/own/index.mdx
+++ b/docs/own/index.mdx
@@ -49,7 +49,7 @@ When displaying a source file, there is a bar above the file contents.

-After clicking on the code ownsership bar, a bottom panel appears listing all the owners.
+After clicking on the code ownership bar, a bottom panel appears listing all the owners.

diff --git a/docs/pricing/faqs.mdx b/docs/pricing/faqs.mdx
new file mode 100644
index 000000000..e4e282792
--- /dev/null
+++ b/docs/pricing/faqs.mdx
@@ -0,0 +1,122 @@
+# FAQs
+
+Learn about some of the most commonly asked questions about Sourcegraph.
+
+## What's the difference between Free, Enterprise Starter, and Enterprise plans?
+
+Free is best for individuals working on hobby projects.
+
+Enterprise Starter is for growing organizations who want Sourcegraph's AI & search experience hosted on our cloud.
+
+Enterprise is for organizations that want AI and search across the SDLC with enterprise-level security, scalability, and flexible deployment.
+
+## How are autocompletions counted for the Cody Free plan?
+
+Cody autocompletions are counted based on the number of suggestions served to the user in their IDE as ghost text. This includes all suggestions on whether or not the user accepts them.
+
+## How does Sourcegraph's context and personalization work?
+
+Cody can retrieve codebase context to personalize responses in several ways. For Free and Pro users, context is retrieved from their local repositories.
+
+The Enterprise Starter and Enterprise plans use Sourcegraph's search backend to retrieve context. This method pulls context from a team's full codebase at any scale.
+
+## What forms of support are available for paid plans?
+
+Email and web portal support is available to both Enterprise Starter and Enterprise customers, and you can [read more about our SLAs](/sla). Premium support with enhanced SLAs is also available as an add-on for Enterprise customers.
+
+## Can I upgrade or downgrade my plan?
+
+Users can upgrade or downgrade between Free and Pro within their account settings anytime. For Pro users, upgrading to Enterprise Starter is also possible, but doing so currently does not cancel your subscription, and you must cancel it yourself.
+
+To upgrade to Enterprise, please [contact our Sales team](https://sourcegraph.com/contact/request-info).
+
+## What's the difference between "flexible LLM options" and "bring your own LLM key"?
+
+Flexible LLM options: Users can select from multiple options to use for chat.
+
+Bring your own LLM key: Enterprise customers can optionally provide their own LLM API key for supported LLMs (including for LLM services such as Azure OpenAI and Amazon Bedrock). In this scenario, customers pay for their own LLM consumption, and we will provide a pricing discount with your plan.
+
+## Does Sourcegraph use my code to improve the models used by other people?
+
+For Enterprise and Enterprise Starter customers, Sourcegraph will not train on your company's data unless your instance admin enables fine-tuning, which would customize an existing model exclusively for your use.
+
+For Free and Pro users, Sourcegraph may use your data to fine-tune the model you are accessing unless you disable this feature.
+
+## Can Sourcegraph be run fully self-hosted?
+
+Sourcegraph requires cloud-based services to power its AI features. For customers looking for a fully self-hosted or air-gapped solution, please [contact us](https://sourcegraph.com/contact/request-info).
+
+## Is an annual contract required for any of the plans?
+
+Pro and Enterprise Starter plans are billed monthly and can be paid with a credit card.
+
+## How are active users counted and billed for Cody?
+
+This only applies to Cody Enterprise contracts. Cody Pro and Enterprise Starter users pay for a seat every month, regardless of usage.
+
+A billable user is one who is signed in to their Enterprise account and actively interacts with the product (e.g., they see suggested autocompletions, run commands or chat with Cody, start new discussions, clear chat history, or copy text from chats, change settings, and more). Simply having Cody installed is not enough to be considered a billable user.
+
+## How are active users calculated for Sourcegraph Code Search and Code Intelligence Platform?
+
+A billable active Code Search or Code Intelligence Platform user is signed into and accesses Sourcegraph. This includes but is not limited to:
+
+- Visiting the Sourcegraph web application or using a browser extension, editor extension, or other client while signed in
+- Conducting a search in the Sourcegraph UI or extension
+- Hovering and navigating code in the Sourcegraph UI or extension
+- Viewing a file or repository in Sourcegraph
+- Creating, viewing, or receiving a code monitor
+- Creating, viewing, modifying, or applying a batch change
+- Creating, viewing, or modifying a code insight
+- Creating, viewing, or modifying a search notebook
+
+## How is this measured in the product?
+
+A user who has accessed a Sourcegraph product is counted as active once they complete an action that represents usage reflected above.
+
+User counts and usage metrics are in [Sourcegraph Analytics](../analytics).
+
+## Is my data secure when connected to Code Search?
+
+Sourcegraph has security and reliability controls built for the most demanding enterprises. To learn more, see our [Security page](https://sourcegraph.netlify.app/security).
+
+## What if I want AI or Code Search Enterprise only?
+
+You can purchase Enterprise plans for AI or Code Search only. [Contact us](https://sourcegraph.com/contact/request-info) to learn more.
+
+## Which code hosts is the Enterprise Starter plan compatible with?
+
+The Enterprise Starter plan is currently compatible with GitHub. Its limit for indexing is 100 repositories for search and context.
+
+## What are the limits of the Enterprise starter plan?
+
+The Enterprise Starter plan supports up to 50 developers and, alongside a limit of 100 repositories for search and context, also includes 5Gb of storage. Adding additional seats gives you 1GB of additional storage per seat, for a maximum total of 10GB.
+
+## Billing FAQs for Enterprise Starter
+
+## How do I cancel subscription renewal?
+
+In the **Workspace settings > Billing** page, you can cancel the subscription and continue having access to your workspace until the end of your current billing period (that is indicated in the UI).
+
+## How do I cancel subscription and delete my workspace immediately?
+
+On the **Workspace settings > General settings** page, you can delete your workspace. This will immediately remove access and cancel your subscription.
+
+## How is the subscription renewal dates determined?
+
+Your subscription renewals are scheduled to happen on the same day of the month. On shorter months (e.g., day 31 on April, which only has 30 days), the last day of the month will be the subscription renewal day instead.
+
+## How do I access my invoices?
+
+You can access your invoices via the **Workspace settings > Billing** page by clicking the **View invoices** button, which takes you to the Stripe Customer Portal. Note that invoices are not emailed every month.
+
+## How do I pay my invoice if my subscription is past due?
+
+After updating or resolving your payment method issue that occurred during the automatic subscription renewal, you may do one of the following to pay the invoice for your past-due subscription:
+
+1. Wait for our system to re-attempt the charge for the invoice. It usually takes up to 24 hours. If it does not happen after 24 hours, please contact [Support](support@sourcegraph.com) to resolve the issue.
+1. In the **Workspace settings > Billing** page, click the **View invoices** button, which takes you to the Stripe Customer Portal. Then, pay the invoice there. Our system will reconcile your payment within 24 hours. If it does not reconcile after 24 hours, please contact [Support](support@sourcegraph.com) to resolve the issue.
+1. Contact [Support](support@sourcegraph.com) to request re-attempt the charge for the invoice using the payment method on file.
+
+## Are there any refunds for the subscription?
+
+We don't offer refunds, but if you have any queries regarding the Enterprise Starter, please write to support@sourcegraph.com, and we'll help resolve the issue.
diff --git a/docs/pricing/plan-comparison.mdx b/docs/pricing/plan-comparison.mdx
new file mode 100644
index 000000000..a074b65bc
--- /dev/null
+++ b/docs/pricing/plan-comparison.mdx
@@ -0,0 +1,42 @@
+# Sourcegraph Pricing Plan Comparison
+
+This page lists a detailed comparison of the features available in each plan.
+
+| **Features** | **Free** | **Enterprise Starter** | **Enterprise** |
+| -------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- |
+| **AI** | | | |
+| Autocomplete | Unlimited | Unlimited | Unlimited |
+| Chat messages and prompts | 200/month | Increased limits | Unlimited |
+| Code context and personalization | Local codebase | Remote codebase (GitHub only) | Remote, enterprise-scale codebases |
+| Integrated search results | - | ✓ | ✓ |
+| Prompt Library | ✓ | ✓ | ✓ |
+| Bring your own LLM Key | - | - | Self-Hosted only |
+| Auto-edit | - | Beta | Beta |
+| Aentic chat experience | - | Experimental | Experimental |
+| **Code Search** | | | |
+| Code Search | - | ✓ | ✓ |
+| Code Navigation | - | ✓ | ✓ |
+| Code Insights | - | - | ✓ |
+| Code Monitoring | - | - | ✓ |
+| Batch Changes | - | - | ✓ |
+| **Deployment** | | | |
+| Cloud deployment | Multi-tenant | Multi-tenant | Single tenant |
+| Self hosted option | - | - | ✓ |
+| Private workspace | - | ✓ | ✓ |
+| **Admin and Security** | | | |
+| SSO/SAML | Basic (GH/GL/Google) | Basic (GH/GL/Google) | ✓ |
+| Role-based access control | - | - | ✓ |
+| Analytics | - | Basic | ✓ |
+| Audit logs | - | - | ✓ |
+| Guardrails | - | - | Beta |
+| Indexed code | - | Private | Private |
+| Context Filters | - | - | ✓ |
+| **Compatibility** | | | |
+| Code hosts | Local codebase | GitHub | All major codehosts |
+| IDEs | VS Code, JetBrains IDEs, Visual Studio (Experimental) | VS Code, JetBrains IDEs, Visual Studio (Experimental) | VS Code, JetBrains IDEs, Visual Studio (Experimental) |
+| Human languages | Many human languages, dependent on the LLM used | Many human languages, dependent on the LLM used | Many human languages, dependent on the LLM used |
+| Programming languages | All popular programming languages | All popular programming languages | All popular programming languages |
+| **Support** | | | |
+| Support level | Community support | Community support | Enterprise support |
+| Dedicated TA support | - | - | Add-on |
+| Premium support | - | - | Add-on |
diff --git a/docs/pricing/plans/enterprise-starter.mdx b/docs/pricing/plans/enterprise-starter.mdx
new file mode 100644
index 000000000..e7918823d
--- /dev/null
+++ b/docs/pricing/plans/enterprise-starter.mdx
@@ -0,0 +1,89 @@
+# Enterprise Starter
+
+Learn about the Enterprise Starter plan tailored for individuals and teams wanting private code indexing and search to leverage the Sourcegraph platform better.
+
+The Enterprise Starter plan offers a multi-tenant Sourcegraph instance designed for individuals and teams. It provides the core features of a traditional Sourcegraph instance but with a simplified management experience. This plan provides a fully managed version of Sourcegraph (AI + code search with integrated search results, with privately indexed code) through a self-serve flow.
+
+## Team seats
+
+The Enterprise Starter plan is priced at **$19 per month per seat**. You can add or remove team members at any time. Existing Cody Pro users can also sign up for the Enterprise Starter by paying $19 per seat. However, their Cody Pro subscription will neither be upgraded nor canceled. Instead, they will have two live subscriptions.
+
+## Enterprise Starter team roles
+
+The Enterprise Starter plan includes the following team-level roles:
+
+- **Admin**: Has full access to the workspace, including the ability to manage repos, users, billing, and settings
+- **Member**: Can access repositories in the workspace and use the supported features
+
+## Billing
+
+Workspaces on the Enterprise Starter plan are billed monthly based on the number of team seats purchased. In case of overdue or failing payment, there is a grace period during which the workspace admins will receive a daily notification to complete the transaction.
+
+If you fail to make the payment after the grace period, your workspace will be deleted, and you will not be able to recover your data.
+
+Please also see [FAQs](faqs.mdx) for more FAQs, including how to downgrade Enterprise Starter.
+
+## Features supported
+
+The Enterprise Starter plan supports a variety of AI and search-based features like:
+
+| **AI features** | **Code Search** | **Management** | **Support** |
+| -------------------------------------- | ------------------------------ | --------------------------------------------------------- | ------------------------- |
+| Code autocompletions and chat messages | Indexed Code Search | Simplified admin experience with UI-based repo-management | Support with limited SLAs |
+| Powerful LLM models for chat | Indexed Symbol Search | User management | - |
+| Integrated search results | Searched based code-navigation | GitHub code host integration | - |
+| Cody integration | - | - | - |
+
+## Limits
+
+Sourcegraph Enterprise Starter offers the following limits:
+
+- Max 50 users per workspace
+- Max 100 repos per workspace
+- Starts with 5 GB of storage
+- 1 GB storage per seat added
+- 10 GB max total storage
+
+## Workspace settings
+
+After creating a new workspace, you can switch views between your personal and workspace accounts. You can configure different **Workspace settings**. These include options for:
+
+- **General Settings**: Helps you configure how your workspace is described or accessed with options like workspace name, URL, and deleting the workspace
+- **Users**: Manage permissions, assign seats, or invite new users
+- **Billing**: Manage your monthly billing cycle for all your purchased seats
+- **Repository Management**: Add, remove, and view the status of your connected repositories
+- **User settings**: Navigates you to your personal account's settings
+
+
+
+## Getting started with workspace
+
+A workspace admin can invite new members to their workspace using their team member's email address. Once the team member accepts the invitation, they will be added to the workspace and assigned the member role. Next, the member is asked to connect and authorize the code host (GitHub) to access the private repositories indexed in your Sourcegraph account.
+
+If you skip this step, the member won't be able to access any of the private repositories they have access to. However, they can still use the public search via the Sourcegraph code search bar.
+
+
+
+## Repository Management
+
+From the Repository Management settings, workspace admins can configure various settings for connecting code hosts and indexing repositories in their workspace. You can index up to 100 repos per workspace.
+
+
+
+From here, you can:
+
+- Use the public code search to add and index open source repos in your workspace
+- Add multiple organizations to index private repos
+
+When you add a new organization, you must authorize access and permission for all repositories or selected ones. To index a repository from your organization,
+
+- Click and select it from the repository list
+- Next, from the search bar, type the repo name you are looking for
+- Click it to add the repository to your workspace
+- The status of the repos will change to **TO BE ADDED** in the right sidebar with a **Save Changes** button
+- Next, the repo gets a **QUEUED** status, and it takes some time to process
+- Finally, it gets indexed with a **CLONED** status
+
+As you add more repos, you get logs for the number of repos added, storage used, and their status. To remove any repo from your workspace, click the repo name that changes the repo status **TO BE REMOVED**. Click the **Save Changes** button to confirm it.
+
+
diff --git a/docs/pricing/plans/enterprise.mdx b/docs/pricing/plans/enterprise.mdx
new file mode 100644
index 000000000..9c6c5cf88
--- /dev/null
+++ b/docs/pricing/plans/enterprise.mdx
@@ -0,0 +1,19 @@
+# Enterprise
+
+Learn about the Sourcegraph's Enterprise plan and the features included.
+
+Sourcegraph offers multiple Enterprise plan options, including Enterprise Dedicated Cloud (default) and Enterprise Self Hosted (on-request) for organizations and enterprises that need AI and search with enterprise-level security, scalability, and flexibility.
+
+## Features breakdown
+
+Here's a detailed breakdown of features included in the different Enterprise plan options.
+
+| **Feature** | **Enterprise Dedicated Cloud** | **Enterprise Self Hosted** |
+| ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| **Description** | - AI and search with enterprise-level security, scalability, and flexibility | - AI and search with enterprise-level security, scalability, and flexibility |
+| **Price** | - $59/user/month - 25+ devs | - $59/user/month - Contact Sales |
+| **AI features** | - Everything in Enterprise Starter | - Everything in Enterprise Starter - Bring your own LLM key |
+| **Code Search features** | - Everything in Enterprise Starter, plus: - Batch Changes - Code Insights - Code Navigation | - Everything in Enterprise Starter, plus: - Batch Changes - Code Insights - Code Navigation |
+| **Deployment types** | - Single-tenant Coud | - Self- Hosted |
+| **Compatibility** | - Everything in Enterprise Starter, plus: - Enterprise admin and security features - All major code hosts - Guardrails - Context Filters | - Everything in Enterprise Starter, plus: - Enterprise admin and security features - All major code hosts - Guardrails - Context Filters |
+| **Support** | - 24x5 support with options like: - TA support - Premium Support Offerings - Forward Deployed Engineer (FDE) | - Enterprise support with options like: - Dedicated TA support - Premium Support Offerings - Forward Deployed Engineer (FDE) |
diff --git a/docs/pricing/plans/free.mdx b/docs/pricing/plans/free.mdx
new file mode 100644
index 000000000..35186d398
--- /dev/null
+++ b/docs/pricing/plans/free.mdx
@@ -0,0 +1,39 @@
+# Free
+
+Learn about the Sourcegraph's Free plan and the features included.
+
+Sourcegraph's Free plan is designed for hobbyists, and light usage is aimed at users with personal projects and small-scale applications. It offers an AI editor assistant with a generous set of features for individual users, like autocompletion and multiple LLM choices for chat.
+
+## Features
+
+The Free plan includes the following features:
+
+| **AI features** | **Compatibility** | **Deployment** | **Admin/Security** | **Support** |
+| ----------------------------------------------------------------------------- | --------------------------------------------------- | ------------------ | ------------------------------------------ | ---------------------- |
+| Reasonable use autocomplete limits | VS Code, JetBrains IDEs, and Visual Studio | Multi-tenant Cloud | SSO/SAML with basic GitHub, GitLab, Google | Community support only |
+| Reasonable use chat messages and prompts per month | All popular coding languages | - | - | - |
+| Multiple LLM selection (Claude 3.5 Sonnet, Gemini 1.5 Pro and Flash) | Natural language search | - | - | - |
+
+## Pricing and billing cycle
+
+There is no billing cycle, as it's free to use and supports one user per account. If you exceed your daily limits, you will have to wait until the end of the month to use the feature again. You can upgrade to our Enterprise Starter plan for more advanced features and usage limits.
+
+## Free vs. Enterprise Starter comparison
+
+The Enterprise Starter plan provides extended usage limits and advanced features compared to the Free plan. Here's a side-by-side comparison of the two:
+
+| **Feature** | **Free** | **Enterprise Starter** |
+| ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| **Description** | - AI editor assistant for hobbyists or light usage | - AI and search for growing organizations hosted on our cloud |
+| **Price** | - $0/month - 1 user | - $19/user/month - Up to 50 devs |
+| **AI features** | - Autocompletions - 200 chat messages and prompts per month - Multiple LLM choices for chat | - Code autocomplete and chat - More powerful LLMs for chat (GPT-4o, Claude 3 Opus) - Integrated search results |
+| **Code Search features** | N/A | - Code Search - Symbol Search |
+| **Deployment types** | - Multi-tenant Coud | - Multi-tenant Cloud - Private Workspace - Privately indexed code (100 repos) |
+| **Compatibility** | - VS Code, JetBrains IDEs, and Visual Studio - All popular coding languages Natural language search - All major code hosts | - VS Code, JetBrains IDEs, and Visual Studio - All popular coding languages Natural language search - Code hosted on GitHub |
+| **Support** | - Community support only | - 9x5 Support |
+
+## Moving to Enterprise Starter plan
+
+From your Sourcegraph dashboard, you can upgrade to the Enterprise Starter by clicking the **Create workspace for my team** button. Enter your workspace name and URL, and choose the number of seats. You can start with a single seat and add more later from the **Users** settings section.
+
+Click the **Create workspace** button to navigate to the payment page. Here, you can view your subscription details and enter your payment details for a successful transaction.
diff --git a/docs/pricing/plans/index.mdx b/docs/pricing/plans/index.mdx
new file mode 100644
index 000000000..896661032
--- /dev/null
+++ b/docs/pricing/plans/index.mdx
@@ -0,0 +1,9 @@
+# Sourcegraph Pricing Plans
+
+Sourcegraph offers three different pricing plans based on your needs.
+
+
+
+
+
+
diff --git a/docs/releases.mdx b/docs/releases.mdx
new file mode 100644
index 000000000..fbff554bf
--- /dev/null
+++ b/docs/releases.mdx
@@ -0,0 +1,85 @@
+# Sourcegraph Releases
+
+This page displays the release plan of all Sourcegraph versions, including deprecation schedules, links to relevant release notes, and installation links.
+
+Sourcegraph releases new features and bug fixes via feature and patch releases regularly. We support the two most recent major releases of Sourcegraph ([more details here](https://www.notion.so/Sourcegraph-Releases-eee2a5384b0a4555adb51b439ddde35f?pvs=21)).
+
+See the link to the corresponding release notes for more information on each release. For more information about the release process, please see our [Sourcegraph releases process documentation](https://www.notion.so/Sourcegraph-Releases-eee2a5384b0a4555adb51b439ddde35f?pvs=21).
+
+## Supported Releases
+
+Currently supported versions of Sourcegraph:
+
+| **Release** | **General Availability Date** | **Supported** | **Release Notes** | **Install** |
+|--------------|-------------------------------|---------------|--------------------------------------------------------------------|------------------------------------------------------|
+| 6.3 Patch 2 | May 2025 | ✅ | [Notes](https://sourcegraph.com/docs/technical-changelog#v634167) | [Install](https://sourcegraph.com/docs/admin/deploy) |
+| 6.3 Patch 1 | May 2025 | ✅ | [Notes](https://sourcegraph.com/docs/technical-changelog#v632692) | [Install](https://sourcegraph.com/docs/admin/deploy) |
+| 6.3 Patch 0 | April 2025 | ✅ | [Notes](https://sourcegraph.com/docs/technical-changelog#v630) | [Install](https://sourcegraph.com/docs/admin/deploy) |
+| 6.2 Patch 3 | April 2025 | ✅ | [Notes](https://sourcegraph.com/docs/technical-changelog#v623841) | [Install](https://sourcegraph.com/docs/admin/deploy) |
+| 6.2 Patch 2 | April 2025 | ✅ | [Notes](https://sourcegraph.com/docs/technical-changelog#v622553) | [Install](https://sourcegraph.com/docs/admin/deploy) |
+| 6.2 Patch 1 | April 2025 | ✅ | [Notes](https://sourcegraph.com/docs/technical-changelog#v621106) | [Install](https://sourcegraph.com/docs/admin/deploy) |
+| 6.2 Patch 0 | April 2025 | ✅ | [Notes](https://sourcegraph.com/docs/technical-changelog#v620) | [Install](https://sourcegraph.com/docs/admin/deploy) |
+| 6.1 Patch 5 | March 2025 | ✅ | [Notes](https://sourcegraph.com/docs/technical-changelog#v615633) | [Install](https://sourcegraph.com/docs/admin/deploy) |
+| 6.1 Patch 4 | March 2025 | ✅ | [Notes](https://sourcegraph.com/docs/technical-changelog#v614020) | [Install](https://sourcegraph.com/docs/admin/deploy) |
+| 6.1 Patch 3 | March 2025 | ✅ | [Notes](https://sourcegraph.com/docs/technical-changelog#v612889) | [Install](https://sourcegraph.com/docs/admin/deploy) |
+| 6.1 Patch 2 | February 2025 | ✅ | [Notes](https://sourcegraph.com/docs/technical-changelog#v611295) | [Install](https://sourcegraph.com/docs/admin/deploy) |
+| 6.1 Patch 1 | February 2025 | ✅ | [Notes](https://sourcegraph.com/docs/technical-changelog#v61376) | [Install](https://sourcegraph.com/docs/admin/deploy) |
+| 6.1 Patch 0 | February 2025 | ✅ | [Notes](https://sourcegraph.com/docs/technical-changelog#v610) | [Install](https://sourcegraph.com/docs/admin/deploy) |
+| 6.0 Patch 2 | April 2025 | ✅ | [Notes](https://sourcegraph.com/docs/technical-changelog#v6012741) | [Install](https://sourcegraph.com/docs/admin/deploy) |
+| 6.0 Patch 1 | February 2025 | ✅ | [Notes](https://sourcegraph.com/docs/technical-changelog#v602687) | [Install](https://sourcegraph.com/docs/admin/deploy) |
+| 6.0 Patch 0 | January 2025 | ✅ | [Notes](https://sourcegraph.com/docs/technical-changelog#v600) | [Install](https://sourcegraph.com/docs/admin/deploy) |
+| 5.11 Patch 5 | January 2025 | ✅ | [Notes](https://sourcegraph.com/docs/technical-changelog#v5116271) | [Install](https://sourcegraph.com/docs/admin/deploy) |
+| 5.11 Patch 4 | January 2025 | ✅ | [Notes](https://sourcegraph.com/docs/technical-changelog#v5114013) | [Install](https://sourcegraph.com/docs/admin/deploy) |
+| 5.11 Patch 3 | January 2025 | ✅ | [Notes](https://sourcegraph.com/docs/technical-changelog#v5114013) | [Install](https://sourcegraph.com/docs/admin/deploy) |
+| 5.11 Patch 2 | January 2025 | ✅ | [Notes](https://sourcegraph.com/docs/technical-changelog#v5113601) | [Install](https://sourcegraph.com/docs/admin/deploy) |
+| 5.11 Patch 1 | January 2025 | ✅ | [Notes](https://sourcegraph.com/docs/technical-changelog#v5112732) | [Install](https://sourcegraph.com/docs/admin/deploy) |
+| 5.11 Patch 0 | December 2024 | ✅ | [Notes](https://sourcegraph.com/docs/technical-changelog#v5110) | [Install](https://sourcegraph.com/docs/admin/deploy) |
+| 5.10 Patch 3 | December 2024 | ✅ | [Notes](https://sourcegraph.com/docs/technical-changelog#v5103940) | [Install](https://sourcegraph.com/docs/admin/deploy) |
+| 5.10 Patch 2 | December 2024 | ✅ | [Notes](https://sourcegraph.com/docs/technical-changelog#v5102832) | [Install](https://sourcegraph.com/docs/admin/deploy) |
+| 5.10 Patch 1 | December 2024 | ✅ | [Notes](https://sourcegraph.com/docs/technical-changelog#v5101164) | [Install](https://sourcegraph.com/docs/admin/deploy) |
+| 5.10 Patch 0 | November 2024 | ✅ | [Notes](https://sourcegraph.com/docs/technical-changelog#v5100) | [Install](https://sourcegraph.com/docs/admin/deploy) |
+| 5.9 Patch 3 | November 2024 | ✅ | [Notes](https://sourcegraph.com/docs/technical-changelog#v591590) | [Install](https://sourcegraph.com/docs/admin/deploy) |
+| 5.9 Patch 2 | November 2024 | ✅ | [Notes](https://sourcegraph.com/docs/technical-changelog#v59347) | [Install](https://sourcegraph.com/docs/admin/deploy) |
+| 5.9 Patch 1 | November 2024 | ✅ | [Notes](https://sourcegraph.com/docs/technical-changelog#v5945) | [Install](https://sourcegraph.com/docs/admin/deploy) |
+| 5.9 Patch 0 | October 2024 | ✅ | [Notes](https://sourcegraph.com/docs/technical-changelog#v590) | [Install](https://sourcegraph.com/docs/admin/deploy) |
+| 5.8 Patch 1 | October 2024 | ✅ | [Notes](https://sourcegraph.com/docs/technical-changelog#v581579) | [Install](https://sourcegraph.com/docs/admin/deploy) |
+| 5.8 Patch 0 | October 2024 | ✅ | [Notes](https://sourcegraph.com/docs/technical-changelog#v580) | [Install](https://sourcegraph.com/docs/admin/deploy) |
+| 5.7 Patch 1 | September 2024 | ✅ | [Notes](https://sourcegraph.com/docs/technical-changelog#v572474) | [Install](https://sourcegraph.com/docs/admin/deploy) |
+| 5.7 Patch 0 | September 2024 | ✅ | [Notes](https://sourcegraph.com/docs/technical-changelog#v570) | [Install](https://sourcegraph.com/docs/admin/deploy) |
+| 5.6 Patch 2 | August 2024 | ✅ | [Notes](https://sourcegraph.com/docs/technical-changelog#v562535) | [Install](https://sourcegraph.com/docs/admin/deploy) |
+| 5.6 Patch 1 | August 2024 | ✅ | [Notes](https://sourcegraph.com/docs/technical-changelog#v56185) | [Install](https://sourcegraph.com/docs/admin/deploy) |
+| 5.6 | August 2024 | ✅ | [Notes](https://sourcegraph.com/docs/technical-changelog#v560) | [Install](https://sourcegraph.com/docs/admin/deploy) |
+| 5.5 | July 2024 | ✅ | [Notes](https://sourcegraph.com/docs/technical-changelog#v553956) | [Install](https://sourcegraph.com/docs/admin/deploy) |
+| 5.4 | May 2024 | ✅ | [Notes](https://sourcegraph.com/docs/technical-changelog#v547765) | [Install](https://sourcegraph.com/docs/admin/deploy) |
+| 5.3 | February 2024 | ✅ | [Notes](https://sourcegraph.com/docs/technical-changelog#v5312303) | [Install](https://sourcegraph.com/docs/admin/deploy) |
+| 5.2 | October 2023 | ✅ | [Notes](https://sourcegraph.com/docs/technical-changelog#v527) | [Install](https://sourcegraph.com/docs/admin/deploy) |
+| 5.1 | June 2023 | ✅ | [Notes](https://sourcegraph.com/docs/technical-changelog#v519) | [Install](https://sourcegraph.com/docs/admin/deploy) |
+| 5.0 | March 2023 | ✅ | [Notes](https://sourcegraph.com/docs/technical-changelog#v506) | [Install](https://sourcegraph.com/docs/admin/deploy) |
+
+## Deprecated Releases
+
+These versions fall outside the release lifecycle and are not supported anymore:
+
+| **Release** | **General Availability Date** | **Supported** | **Release Notes** |
+|-------------|-------------------------------|---------------|-------------------------------------------------------------------------------------------------|
+| 4.5 | February 2023 | ❌ | [Notes](https://sourcegraph.com/docs/technical-changelog#v451) |
+| 4.4 | January 2023 | ❌ | [Notes](https://sourcegraph.com/docs/technical-changelog#v442) |
+| 4.3 | December 2022 | ❌ | [Notes](https://sourcegraph.com/docs/technical-changelog#v431) |
+| 4.2 | November 2022 | ❌ | [Notes](https://sourcegraph.com/docs/technical-changelog#v421) |
+| 4.1 | October 2022 | ❌ | [Notes](https://sourcegraph.com/docs/technical-changelog#v413) |
+| 4.0 | September 2022 | ❌ | [Notes](https://sourcegraph.com/docs/technical-changelog#v401) |
+| 3.43 | August 2022 | ❌ | [Notes](https://github.com/sourcegraph/sourcegraph-public-snapshot/blob/main/CHANGELOG.md#3432) |
+| 3.42 | July 2022 | ❌ | [Notes](https://github.com/sourcegraph/sourcegraph-public-snapshot/blob/main/CHANGELOG.md#3422) |
+| 3.41 | June 2022 | ❌ | [Notes](https://github.com/sourcegraph/sourcegraph-public-snapshot/blob/main/CHANGELOG.md#3422) |
+| 3.40 | May 2022 | ❌ | [Notes](https://github.com/sourcegraph/sourcegraph-public-snapshot/blob/main/CHANGELOG.md#3402) |
+| 3.39 | April 2022 | ❌ | [Notes](https://github.com/sourcegraph/sourcegraph-public-snapshot/blob/main/CHANGELOG.md#3391) |
+| 3.38 | March 2022 | ❌ | [Notes](https://github.com/sourcegraph/sourcegraph-public-snapshot/blob/main/CHANGELOG.md#3391) |
+| 3.37 | February 2022 | ❌ | [Notes](https://github.com/sourcegraph/sourcegraph-public-snapshot/blob/main/CHANGELOG.md#3391) |
+| 3.36 | January 2022 | ❌ | [Notes](https://github.com/sourcegraph/sourcegraph-public-snapshot/blob/main/CHANGELOG.md#3363) |
+| 3.35 | December 2021 | ❌ | [Notes](https://github.com/sourcegraph/sourcegraph-public-snapshot/blob/main/CHANGELOG.md#3352) |
+| 3.34 | November 2021 | ❌ | [Notes](https://github.com/sourcegraph/sourcegraph-public-snapshot/blob/main/CHANGELOG.md#3352) |
+| 3.33 | October 2021 | ❌ | [Notes](https://github.com/sourcegraph/sourcegraph-public-snapshot/blob/main/CHANGELOG.md#3332) |
+| 3.32 | September 2021 | ❌ | [Notes](https://github.com/sourcegraph/sourcegraph-public-snapshot/blob/main/CHANGELOG.md#3321) |
+| 3.31 | August 2021 | ❌ | [Notes](https://github.com/sourcegraph/sourcegraph-public-snapshot/blob/main/CHANGELOG.md#3321) |
+| 3.30 | July 2021 | ❌ | [Notes](https://github.com/sourcegraph/sourcegraph-public-snapshot/blob/main/CHANGELOG.md#3321) |
+| 3.29 | June 2021 | ❌ | [Notes](https://github.com/sourcegraph/sourcegraph-public-snapshot/blob/main/CHANGELOG.md#3321) |
diff --git a/docs/sla/index.mdx b/docs/sla/index.mdx
index 1366ba389..60499f942 100644
--- a/docs/sla/index.mdx
+++ b/docs/sla/index.mdx
@@ -22,7 +22,7 @@ The following policy applies to both our cloud-based (managed instance) and on-p
>NOTE: Premium support with enhanced SLAs can be added to your Enterprise plans as an add-on. Our business hours, defined as Sunday 2 PM PST to Friday 5 PM PST, align with our 24x5 support coverage.
-### For Cody Pro plans
+### For Enterprise Starter & Cody Pro plans
| **Severity level** | **Description** | **Response time** | **Support availability** |
| -------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------- | -------------------- |
@@ -33,8 +33,6 @@ The following policy applies to both our cloud-based (managed instance) and on-p
Cody Free users are not eligible for email Support but can get assistance through our Community Discord.
->NOTE: Slack Account Management Package not offered on new contracts after January 10, 2023
-
### Minimum Supported Version for Self-Hosted Instances
We support the current major version of the Software and the immediately preceding major version (N minus 1).
@@ -115,18 +113,16 @@ Premium Support SLAs give customers access to our Support team 24x7 for Severity
First response times remain the same according to our SLAs. However, Emergency and Severe Impact issues are supported 24x7 with Premium Support (versus 24x5 without Premium Support).
-This service is provided for all GA products Sourcegraph offers, not for any Experimental or Beta features (see here for more details).
+This service is provided for all GA products Sourcegraph offers, not for any [Experimental or Beta features](/admin/beta_and_experimental_features).
->NOTE: This package includes access to Slack Support & Slack Account Management
+>NOTE: This package includes access to Slack Support
### Dedicated Support
Access to named senior support engineers who will have knowledge of your infrastructure and can help reduce the time needed to triage, diagnose, and resolve an issue in your instance.
->NOTE: This package includes access to Slack Support & Slack Account Management
+>NOTE: This package includes access to Slack Support
-### Slack Support & Slack Account Management
+### Slack Support
Slack Support provides access to creating tickets directly from Slack, allowing customers to resolve tickets directly from a familiar interface and allowing for greater collaboration between Support and customers.
-
-Slack Account Management allows customers direct access to their Account team, including their Technical Advisor (if applicable). It can help resolve any non-technical issues or questions that come up.
diff --git a/docs/sourcegraph-accounts/index.mdx b/docs/sourcegraph-accounts/index.mdx
index 8e9c47984..aa3270d10 100644
--- a/docs/sourcegraph-accounts/index.mdx
+++ b/docs/sourcegraph-accounts/index.mdx
@@ -26,7 +26,7 @@ Users who had attempted to create an account but never verified their primary em
### How to delete accounts or unlink social sign-ins?
-Please contact [Sourcegraph Support](support@sourcegraph.com) using your primary email (shown in the https://accounts.sourcegraph.com when signed in).
+Please contact Sourcegraph Support via emailing at `support@sourcegraph.com` using your primary email (shown in the https://accounts.sourcegraph.com when signed in).
### How to learn more about the technical details?
diff --git a/docs/technical-changelog.mdx b/docs/technical-changelog.mdx
new file mode 100644
index 000000000..5ce90f129
--- /dev/null
+++ b/docs/technical-changelog.mdx
@@ -0,0 +1,9557 @@
+# Technical Changelog
+
+This page documents all notable changes to Sourcegraph. For more detailed changelog posts, please [read here](https://sourcegraph.com/changelog/).
+
+{/* CHANGELOG_START */}
+
+# 6.3 Patch 2
+
+## v6.3.4167
+
+- [sourcegraph](https://github.com/sourcegraph/sourcegraph/releases/tag/v6.3.4167)
+
+- [docker-compose](https://github.com/sourcegraph/deploy-sourcegraph-docker/releases/tag/v6.3.4167)
+
+- [helm](https://github.com/sourcegraph/deploy-sourcegraph-helm/releases/tag/v6.3.4167)
+
+- [kustomize](https://github.com/sourcegraph/deploy-sourcegraph-k8s/releases/tag/v6.3.4167)
+
+### Reverts
+
+ There were no reverts for this release
+
+### Uncategorized
+
+#### Others
+
+- Claude 4 Available
+- [Backport 6.3.x] cody-gateway-config: allow Enterprise tier, rename misleading method `(PR #5541)`
+
+{/* RSS={"version":"v6.3.4167", "releasedAt": "2025-05-23"} */}
+
+
+# 6.3 Patch 1
+
+## v6.3.2692
+
+- [sourcegraph](https://github.com/sourcegraph/sourcegraph/releases/tag/v6.3.2692)
+
+- [docker-compose](https://github.com/sourcegraph/deploy-sourcegraph-docker/releases/tag/v6.3.2692)
+
+- [helm](https://github.com/sourcegraph/deploy-sourcegraph-helm/releases/tag/v6.3.2692)
+
+- [kustomize](https://github.com/sourcegraph/deploy-sourcegraph-k8s/releases/tag/v6.3.2692)
+
+### Features
+
+#### Code Intelligence
+
+- Add env var to disable precise code intel `(PR #5357)`
+
+#### Tenant/Reconciler
+
+- Ignore deleted workspaces when reporting instance status `(PR #5161)`
+
+### Reverts
+
+ There were no reverts for this release
+
+### Uncategorized
+
+#### Others
+
+- [Backport 6.3.x] authz: Reduce updates on pending perms tables `(PR #5365)`
+- [Backport 6.3.x] openaicompatible: support custom headers && pure inference through /chat/completions `(PR #5361)`
+- [Backport 6.3.x] workspaces: clarify that deletion does not affect Sourcegraph Account `(PR #5273)`
+
+{/* RSS={"version":"v6.3.2692", "releasedAt": "2025-05-14"} */}
+
+
+# 6.3 Patch 0
+
+## v6.3.0
+
+- [sourcegraph](https://github.com/sourcegraph/sourcegraph/releases/tag/v6.3.0)
+
+- [docker-compose](https://github.com/sourcegraph/deploy-sourcegraph-docker/releases/tag/v6.3.0)
+
+- [helm](https://github.com/sourcegraph/deploy-sourcegraph-helm/releases/tag/v6.3.0)
+
+- [kustomize](https://github.com/sourcegraph/deploy-sourcegraph-k8s/releases/tag/v6.3.0)
+
+### Features
+
+#### Agents
+
+- Add true positive and impact filters `(PR #4911)`
+- Improve task page, abstract out changeset header, add rerun buttons `(PR #4834)`
+- Implement agentic chat on top of conversation API `(PR #4809)`
+- New agent action menu added `(PR #4761)`
+- Allow grader to rewrite or relocate diagnostics [AGENT-302] `(PR #4728)`
+ - The grader service can now fix broken diagnostics that come out of a review, hopefully improving quality.
+- Add additional graphs and metrics to agent overview `(PR #4709)`
+- Reformat overview stats, add user list and CSS tidy ups `(PR #4668)`
+- Add feedback page `(PR #4656)`
+- Add filters for reviews and diagnostic pages `(PR #4564)`
+- Improved agents page `(PR #4557)`
+- Add review statuses everywhere `(PR #4520)`
+- Generic query param parser `(PR #4434)`
+- Add default rules `(PR #4418)`
+ - New default for the review setting `rules: ['builtin-rules', 'repo-rules']`. Builtin rules allow you to start using the review agent without creating any `*.rule.md` files.
+- Add a dropdown to access sibling reviews from the changeset `(PR #4375)`
+- Grade diagnostics before posting [AGENT-196] `(PR #4205)`
+ - Adds reflection to the review process to filter out bad diagnostics before posting.
+
+#### Auto-Edit
+
+- Add auto-edit long suggestion model `(PR #4965)`
+- Use user's sourcegraph instance endpoint for authentication `(PR #4759)`
+- Create a new fireworks backend for fine-tunes-proxy `(PR #4661)`
+- Implement websocket upgrade logic for the fine-tuned proxy proxy `(PR #4582)`
+- Create a new fireworks proxy service for Cody auto-edit `(PR #4538)`
+
+#### Batch Changes
+
+- Add search for batch changes template library `(PR #4280)`
+
+#### Code Intelligence
+
+- Dont upload empty syntactic indexes `(PR #4738)`
+
+#### Cody
+
+- Add OpenAI o3 and o4-mini models `(PR #4958)`
+- Add OpenAI 4.1 models support `(PR #4926)`
+- Add gemini 2.5 preview support `(PR #4802)`
+- Add entitlements UI to site admin `(PR #4742)`
+- Support tool results for anthropic and gemini `(PR #4493)`
+- Update context limits (CODY-5022) `(PR #4321)`
+
+#### Cody-Gateway
+
+- Add gemini 2.5 flash preview support `(PR #4970)`
+
+#### Codygateway
+
+- Block Enterprise usage of Google models `(PR #4534)`
+
+#### Completions
+
+- Enable system prompts for all newer Claude models `(PR #4989)`
+
+#### Gitserver
+
+- Add heuristic and eager strategies from Gitaly `(PR #4588)`
+
+#### Graph
+
+- Syntactic for C# `(PR #4236)`
+
+#### Msp
+
+- Allow configurable Cloud SQL version `(PR #4959)`
+
+#### Multi Tenant
+
+- Add coupon sale percentage UI `(PR #4699)`
+
+#### Release
+
+- Add a sg release steps command `(PR #4206)`
+ - New internal release command `sg release steps` to be used in pipeline gen
+
+#### Search
+
+- Diff comparison page UI enhancements `(PR #5097)`
+ - Users can now filter diffs on the diff comparison page
+ Backport a2725da3281de64d2d2e41438222d0f38700e441 from #4398
+- Expose ENVs for search jobs config `(PR #4975)`
+ -
+- Add tool selection and stats to deep search `(PR #4744)`
+- Add support for chaining multiple filePaths in URL `(PR #4333)`
+ - Add support for chaining multiple filePaths together in URL
+
+#### Searchplatform
+
+- Deep Search Client Side plumbing `(PR #4531)`
+
+#### Source
+
+- Gitserver: add env var for forcing all janitor optimizations to use eager strategy for debug purposes `(PR #4949)`
+- Support sub-repo perms for all repo types `(PR #4935)`
+- Gitserver: add new chaos testing for git maintenance commands `(PR #4929)`
+- Add prometheus dashboards and logs for new janitor `(PR #4861)`
+- Adapt Gitaly's stats package and adapt test suite to run in our codebase `(PR #4365)`
+ - N/A
+
+#### Telemetry
+
+- Add `billingMetadata` to batch change events `(PR #3732)`
+
+#### Workspaces
+
+- Show admin analytics menulink `(PR #5027)`
+ - Backport 0b9ee7390bca046462737172c39d8ad2e13b99fb from #4652
+
+#### Others
+
+- Syntactic indexing support for C++ `(PR #4606)`
+ - Adds support for syntactic indexing for C++
+- Unsigned commits warning `(PR #4525)`
+ - It is possible for users to have `rejectUnverifiedCommits` site configuration enabled, and also apply changesets without having the necessary configurations for commit signing. This change provides a warning banner during the batch set preview stage in such a case.With commit signing fully configuredWarning showing because no GitHub commit signing configuredimageimage
+- Expose relationships through GraphQL API `(PR #4330)`
+- Add metrics for periodic goroutines `(PR #4317)`
+
+### Fix
+
+#### Agents
+
+- Delete agents codebase `(PR #4982)`
+- Agent intro banner css tweaks `(PR #4912)`
+- Fix chunker calculation bug `(PR #4904)`
+- Switch to non-thinking agent for diagnostic grader `(PR #4903)`
+- Use empty snippets when old revision cannot be found `(PR #4902)`
+- Enable new chat pages for old UI `(PR #4896)`
+- Update review and task page headers to more clearly show states `(PR #4891)`
+- Fixes commit sha badge on review item `(PR #4866)`
+- Show correct line range for diagnostics on `diagnostics` page `(PR #4860)`
+- Change changeset ordering by default `(PR #4840)`
+- Basic tidy ups for conversations page `(PR #4829)`
+- Improve changesets page `(PR #4828)`
+- Improve styling of repo page `(PR #4827)`
+- Minor CSS updates to `rule` page `(PR #4826)`
+- Improve `rules` page UX `(PR #4822)`
+- Post process diagnostics based on rule filters (AGENT-15) `(PR #4808)`
+- Tweaks to agents page `(PR #4757)`
+- CSS tweaks to the diagnostic page `(PR #4754)`
+- Handle empty impact string `(PR #4741)`
+- Improve page layout, agent navigation and breadcrumbs `(PR #4727)`
+- Minor spacing issues with layout `(PR #4712)`
+- Minor visual improvements to reviews page `(PR #4711)`
+- Rename fix rate to true positives `(PR #4706)`
+- Link to reviews when available `(PR #4698)`
+- Only show review tasks in latest runs `(PR #4686)`
+- Limit CSS height on authors filter `(PR #4673)`
+- Don't fail fast on missing revisions `(PR #4672)`
+- Skip diagnostics for hallucinated file paths `(PR #4608)`
+- Improved GitHub app creation step `(PR #4586)`
+- Improve review cards `(PR #4580)`
+- Rename agent "run" to agent "task" `(PR #4567)`
+- Updates run/review card linking `(PR #4560)`
+- Don't fail fast on invalid rule tag `(PR #4555)`
+- Make report diagnostic tool skippable `(PR #4542)`
+- Allow models to have "tools" capability in site-config `(PR #4529)`
+- Improve run animation `(PR #4523)`
+- Improve visually the review cards list `(PR #4505)`
+- Filter out diagnostics outside the diff (AGENT-6) `(PR #4283)`
+
+#### Auto-Edit
+
+- Fix invalid JSON string `(PR #4864)`
+- Fix incorrect naming of environment variables `(PR #4670)`
+
+#### Billing
+
+- Prevent applying coupons that expire before subscription period ends `(PR #4244)`
+
+#### Ci
+
+- Fix syntax in node heap size override `(PR #4595)`
+- Remove error logging to avoid OOMs in CI for react integration tests `(PR #4424)`
+
+#### Code Nav
+
+- Add client side caching for file content `(PR #5073)`
+
+#### Completions
+
+- Track context token usage in completions client `(PR #4208)`
+
+#### Dev
+
+- Fix running storybook `(PR #5013)`
+- Fix 'pnpm build' command in web-sveltekit `(PR #4851)`
+
+#### Entitlements
+
+- Fix interval handling, rename to window `(PR #4495)`
+
+#### Github
+
+- Synchronize at least 100 GitHub issue/PR comments, not 30 `(PR #4410)`
+ - When syncing conversations from GitHub, we now fetch 100 comments by default instead of the default 30 comments
+
+#### Modelconfig
+
+- Fix gemini-1.5-flash cost `(PR #4441)`
+
+#### Multi Tenant
+
+- Don't show no seats left tooltip always `(PR #4688)`
+- Do not show upsell banner when we have user space `(PR #4413)`
+- Do not show error in loading state in coupon field `(PR #4370)`
+
+#### Release
+
+- Set development branch name by default `(PR #4357)`
+ - NA
+
+#### Search
+
+- Fix global navigation grow/shrink functionality `(PR #5062)`
+- Improve global navigation overflowing `(PR #4804)`
+- Limit client range highlights `(PR #4354)`
+
+#### Source
+
+- Bump retry timeout on gqlutil tests to lessen flakiness `(PR #4952)`
+- Fix error that happens when adding an existing GitHub App `(PR #4558)`
+ - Fixed an error where Sourcegraph would display an error when an existing GitHub App was added in Site Admin, even though the adding succeeded.
+- Bump default user permission back-off time `(PR #4297)`
+
+#### Style
+
+- Fix a gomft issue that made it to main `(PR #4535)`
+
+#### Others
+
+- Create wrapper to reduce risk of `NewGaugeFunc` causing deadlocks `(PR #4960)`
+- Do not hard-fail when calculating file stats for large files `(PR #4950)`
+- Do not use store methods, which can deadlock because they make observation `(PR #4944)`
+- [SRCH-1387] workspace refresh caching using incorrect key `(PR #4859)`
+ - Fixes issue [https://linear.app/sourcegraph/issue/SRCH-1387/chime-workspaces-not-updating](https://linear.app/sourcegraph/issue/SRCH-1387/chime-workspaces-not-updating)The workspace preview components rely on the apollo client cache to coordinate the state. Queries are made in two places;
+- /client/web/src/enterprise/batches/batch-spec/edit/workspaces-preview/useWorkspacesPreview.ts
+- /client/web/src/enterprise/batches/batch-spec/edit/workspaces-preview/useWorkspaces.tsThe desired effect is that both queries are cached under the same cache-key by apollo, and so when a query finds new results it triggers a component refresh with the new data.The problem is that there is a subtle difference in the variables passed to the query - One has `after: null` and on does not provide the `after` field. This means that they are treated as different queries and the cache entries for the queries are separate.
+- Update auto-updating script to use correct scip-typescript Docker tag `(PR #4722)`
+ - Switch to Debian-based auto-indexing Docker image for scip-typescript, and official Node builds. The new image is compatible with recent Node versions (verified: 23.11.0).
+- Add docs link for github apps `(PR #4563)`
+
+### Chore
+
+#### Agents
+
+- Limit tool calls in grader `(PR #4813)`
+ - Added `ToolCallLimit` to `InternalCompletionParams` for limiting the number of allowed LLM tool calls in a loop.
+- Always trace and show traceID in run logs `(PR #4685)`
+- Enable string-enums in go-typespec code generation `(PR #4599)`
+- Bazel build hygiene `(PR #4556)`
+- Minor changes for localhost development `(PR #4554)`
+- Adds more information into de-duplicate error `(PR #4385)`
+
+#### Ci
+
+- Add test github action for partially published changesets flow `(PR #4807)`
+- Refactor web-sveltekit build process `(PR #4382)`
+- Bump typescript in bazel to 5.4.2 `(PR #4367)`
+- Update prechecks to handle bzl mod tidy and go mod tidy `(PR #4288)`
+
+#### Database/Entitlements
+
+- Test entitlements grants deletion `(PR #4838)`
+
+#### Dev
+
+- Cleanup client/vscode dependencies `(PR #4781)`
+- Cleanup client/ui dependencies `(PR #4769)`
+- Cleanup client/testing dependencies `(PR #4768)`
+- Cleanup client/template-parser dependencies `(PR #4714)`
+- Cleanup client/shared dependencies `(PR #4696)`
+- Cleanup client/observability-server dependencies `(PR #4695)`
+- Cleanup client/observability-client dependencies `(PR #4694)`
+- Cleanup client/jetbrains dependencies `(PR #4693)`
+- Cleanup client/http-client dependencies `(PR #4692)`
+- Cleanup client/common dependencies `(PR #4666)`
+- Cleanup client/codeintellify dependencies `(PR #4665)`
+- Cleanup client/client-api dependencies `(PR #4664)`
+- Cleanup client/build-config depdendencies `(PR #4663)`
+- Cleanup client/browser dependencies `(PR #4561)`
+- Cleanup client/branded dependencies `(PR #4552)`
+- Cleanup unused dependencies `(PR #4516)`
+
+#### Entitlements
+
+- Hide site admin navbar item behind feature flag `(PR #5058)`
+
+#### Gateway
+
+- Use Authorization: Bearer as header for reranker `(PR #4513)`
+- Change URL for reranker model `(PR #4511)`
+
+#### Local
+
+- Use docsite 1.9.6 `(PR #3823)`
+
+#### Release
+
+- Improve upgrade error message for out of policy upgrade attempts `(PR #4943)`
+ - Improve migrator error for invalid upgrade ranges
+
+#### Search
+
+- Batch Changes PAT dialog - Fix wording `(PR #4660)`
+- Migrate filter UI to svelte 5 `(PR #4479)`
+
+#### Searchplatform
+
+- Add deep search route to backend `(PR #4581)`
+
+#### Security
+
+- Update to s3proxy 2.6.0 `(PR #4515)`
+
+#### Telemetrygateway
+
+- Remove old proto symlink `(PR #4584)`
+
+#### Workspaces
+
+- Inject GoogleTagManagerContainer when serving index.html `(PR #4956)`
+
+#### Others
+
+- Update third-party licenses `(PR #4967)`
+- Remove unused pipeline job implementation `(PR #4951)`
+- Remove unused dbworker option `(PR #4920)`
+- Update third-party licenses `(PR #4919)`
+- Fix batch change codehost links `(PR #4707)`
+ - Fix some broken links to documentation
+- Update third-party licenses `(PR #4671)`
+- Remove non-nil pre-condition for pagination function `(PR #4473)`
+- Document nil propagation for PaginationArgs `(PR #4468)`
+- Summarize linked Slack thread in code `(PR #4460)`
+- Update third-party licenses `(PR #4448)`
+- Release anish from changelog duties `(PR #4435)`
+- Change default to match documented default `(PR #4429)`
+- Remove search from gitserver `(PR #4420)`
+- Bump up page size for repo cleanup scheduling `(PR #4419)`
+- Mark TotalCount method as unreachable `(PR #4254)`
+- Remove large.String -> replace back with []byte `(PR #4146)`
+
+### Refactor
+
+#### Others
+
+- Remove deprecated batchChangePreview component `(PR #4384)`
+ - Refactor to remove old duplicated component
+
+### Reverts
+
+- Revert pnpm upgrade (back to v9) `(PR #-1)`
+- Revert "Revert "fix(cody-gateway): migrate Google client from from Gemini to Vertex API"" `(PR #4705)`
+
+### Uncategorized
+
+#### Others
+
+- [Backport 6.3.x] Add ability for admins to set the default context for all users within an instance `(PR #5052)`
+- Authz: Don't error when external account isn't usable for sync `(PR #5011)`
+- Perforce: Remove top-level maxChanges setting `(PR #5010)`
+- Gitserver: Observe vcs syncer from other shard `(PR #5009)`
+- Gitserver: Rename variable and remove experimental disclaimer for v2 janitor `(PR #5008)`
+- Add KUBERNETES_IMAGE_PULL_POLICY environment variable for the Executor service to allow setting the image pull policy `(PR #4995)`
+ - Acepted values for KUBERNETES_IMAGE_PULL_POLICY:
+ - Always - Kubelet always attempts to pull the latest image. Container will fail If the pull fails.
+ - Never - Kubelet never pulls an image, but only uses a local image. Container will fail if the image isn't present.
+ - IfNotPresent - Kubelet pulls if the image isn't present on disk. Container will fail if the image isn't present and the pull fails.
+- Bump zoekt `(PR #4991)`
+- Gitserver: Add option to disable janitor `(PR #4980)`
+- Perforce: Don't drop rules for proxy catchalls `(PR #4978)`
+- Perforce: Make changelist mapper recover automatically `(PR #4954)`
+ - Fixed an issue where perforce changelist mapping could fall into an unrecoverable state after recloning.
+- Batches: Don't use stateful periodic goroutine `(PR #4946)`
+- Refactor cross domain login service to allow re-use in other services `(PR #4942)`
+ - Moved userauth and xdomain login service from workspaces to managed services, to allow import from other services
+ - Refactored userauth and xdomain login service to not be workspaces-specific, removing all workspaces references and allowing to specify the path for cross-domain login.## Test plan
+ Tetsted changes locally from workspaces service
+- Workerutil: Streamline heartbeat and stalled intervals `(PR #4934)`
+- Workerutil: Streamline maximum resets `(PR #4932)`
+- Fix(agents) use .at(0) instead of [0] for safe array access `(PR #4918)`
+- Mail-gatekeeper: increment abuse score for Google abusers `(PR #4916)`
+- Janitor: Don't schedule jobs too far into the future `(PR #4906)`
+- Workerutil: Unify settings for resetter interval `(PR #4870)`
+- Workerutil: Simplify resetter metrics `(PR #4865)`
+- Contributors: Fix updating last_processed `(PR #4841)`
+- Gitserver: Fix error parsing empty author/committer times `(PR #4832)`
+- Contributors: Add missing resetter job `(PR #4831)`
+- Tenant: Add deletion routine for searcher cache `(PR #4821)`
+- Replace python with explicit python3 for pre-commit hook `(PR #4803)`
+- Feat/Deep search: Show reasoning steps during execution `(PR #4795)`
+- Database: Add missing indexes for repo hard deletions `(PR #4789)`
+- Bug(agents): fixed spend page formatting `(PR #4763)`
+- Repoupdater: Initialize subrepoperms `(PR #4756)`
+- Bug(agents): fixed repo id bug `(PR #4755)`
+- Analytics(telemetry): trim whitespace in comma separated list `(PR #4750)`
+- Increase the max tokens to sample `(PR #4749)`
+- Adds github only badge to plans page (and style tweaks) `(PR #4747)`
+- Change the smart apply deployment to arizona region `(PR #4702)`
+- Dotcom: Some cleanups after migration `(PR #4683)`
+- Gitserver: Fix panic in ListRepositories error handling `(PR #4682)`
+- Telemetry: Add DB index to optimize sorting in memory `(PR #4667)`
+- Gitserver: Update error filter for backend metrics `(PR #4629)`
+- Mail-gatekeeper: gRPC client and DNS improvements `(PR #4628)`
+- Gitserver: Always disable gc.auto and maintenance.auto `(PR #4613)`
+- Perforce: Fixup changelist ID parsing `(PR #4597)`
+- Gitserver: Add gRPC method and basic UI for repo stats `(PR #4544)`
+- Gitserver: Add OptimizationStrategy interface and runner for it `(PR #4540)`
+- Gitserver: Add CleanStaleData function for new janitor `(PR #4532)`
+- Gitserver: Address a few compiler warnings `(PR #4458)`
+- Gitserver: Improve configuration for fetch `(PR #4439)`
+- Gitserver: Implement maintenance methods in Git backend `(PR #4438)`
+- Gitserver: Fix bad observable owner `(PR #4437)`
+- Gitserver: Cleanup leftovers of coursier `(PR #4436)`
+- Add no results page tutorial info `(PR #4432)`
+- Add telemetry `(PR #4274)`
+- Update subscription page `(PR #4241)`
+- Database: Add primary keys to all tables `(PR #4144)`
+- Gitserver: Implement scheduler for janitorial tasks `(PR #2519)`
+
+### Untracked
+
+The following PRs were merged onto the previous release branch but could not be automatically mapped to a corresponding commit in this release:
+
+- [backport 6.2] perforce: Don't drop rules for proxy catchalls (#4978) `(PR #4993)`
+- [backport 6.2.x] repoupdater: Initialize subrepoperms (#4756) `(PR #4760)`
+- [6.2.x] Auto-update all packages in Sourcegraph container images `(PR #4723)`
+- [6.2.x] Auto-update all packages in Sourcegraph container images `(PR #4601)`
+Revert "Revert "[Backport 6.2.x] fix(agents): filter out empty diagnostic paths"" `(PR #4427)`
+Revert "Revert "[Backport 6.2.x] fix(agents): make reviews and diagnostics pages order by -created_at"" `(PR #4428)`
+- [6.2.x] Auto-update all packages in Sourcegraph container images `(PR #4466)`
+- Add support for chaining multiple filePaths in URL (#4333) `(PR #4433)`
+Revert "[Backport 6.2.x] fix(agents): make reviews and diagnostics pages order by -created_at" `(PR #4403)`
+Revert "[Backport 6.2.x] fix(agents): filter out empty diagnostic paths" `(PR #4409)`
+- Update context limits (CODY-5022) (#4321) `(PR #4426)`
+- Add release as branch code owners `(PR #4421)`
+ - N/A - Not customer facing
+
+{/* RSS={"version":"v6.3.0", "releasedAt": "2025-04-30"} */}
+
+
+# 6.2 Patch 3
+
+## v6.2.3841
+
+- [sourcegraph](https://github.com/sourcegraph/sourcegraph/releases/tag/v6.2.3841)
+
+- [docker-compose](https://github.com/sourcegraph/deploy-sourcegraph-docker/releases/tag/v6.2.3841)
+
+- [helm](https://github.com/sourcegraph/deploy-sourcegraph-helm/releases/tag/v6.2.3841)
+
+- [kustomize](https://github.com/sourcegraph/deploy-sourcegraph-k8s/releases/tag/v6.2.3841)
+
+### Features
+
+#### Source
+
+- Graphql: add databaseID field to repository graphql field `(PR #4999)`
+ - The `repository` graphql API now supports fetchinig the `databaseID` field. Backport cac91705f82f1221766f1576cdadd0b5c2c7502a from #4953
+
+### Reverts
+
+ There were no reverts for this release
+
+#### Others
+
+- [backport 6.2] perforce: Don't drop rules for proxy catchalls (#4978) `(PR #4993)`
+
+{/* RSS={"version":"v6.2.3841", "releasedAt": "2025-04-23"} */}
+
+
+# 6.2 Patch 2
+
+## v6.2.2553
+
+- [sourcegraph](https://github.com/sourcegraph/sourcegraph/releases/tag/v6.2.2553)
+
+- [docker-compose](https://github.com/sourcegraph/deploy-sourcegraph-docker/releases/tag/v6.2.2553)
+
+- [helm](https://github.com/sourcegraph/deploy-sourcegraph-helm/releases/tag/v6.2.2553)
+
+- [kustomize](https://github.com/sourcegraph/deploy-sourcegraph-k8s/releases/tag/v6.2.2553)
+
+### Features
+
+#### Source
+
+- Create different proxy interpretation modes for sub repo ip perms matching `(PR #4745)`
+ - Authz: Add Perforce IP rule interpretation modes (`unified` (default), `directOnly`, `proxyOnly`) in site configuration via `rulesInterpretationMode` field to provide more predictable sub-repo permissions behavior
+ Backport 774ac0c653371b0acbae62e233764dc6729fddf3 from #4713
+
+### Fix
+
+#### Cody
+
+- Add new bedrock fields to legacy completions config `(PR #4940)`
+ - Backport 0d9f70dd54a4c20621fe7404d3c7598e60264f59 from #4771
+
+### Chore
+
+#### Security
+
+- [6.2.x] Auto-update all packages in Sourcegraph container images `(PR #4723)`
+
+### Reverts
+
+ There were no reverts for this release
+
+### Uncategorized
+
+#### Others
+
+- [Backport 6.2.x] completions/azureopenai: reasoning and API version configuration `(PR #4936)`
+- [backport 6.2.x] repoupdater: Initialize subrepoperms (#4756) `(PR #4760)`
+
+{/* RSS={"version":"v6.2.2553", "releasedAt": "2025-04-16"} */}
+
+
+# 6.2 Patch 1
+
+## v6.2.1106
+
+- [sourcegraph](https://github.com/sourcegraph/sourcegraph/releases/tag/v6.2.1106)
+
+- [docker-compose](https://github.com/sourcegraph/deploy-sourcegraph-docker/releases/tag/v6.2.1106)
+
+- [helm](https://github.com/sourcegraph/deploy-sourcegraph-helm/releases/tag/v6.2.1106)
+
+- [kustomize](https://github.com/sourcegraph/deploy-sourcegraph-k8s/releases/tag/v6.2.1106)
+
+### Features
+
+#### Source
+
+- Create graphql endpoint for viewing sub repo perms for a repository `(PR #4572)`
+ - Backport 34dd46a20d9d9d3a52abaaeaa845b968bf781435 from #4528
+
+### Fix
+
+#### Others
+
+- Use internal actor for symbols archive fetching and downgrade error `(PR #4539)`
+- Fetch user by username for Bitbucket Server `(PR #4514)`
+ - Fixes an issue where we OAuth would fail for Bitbucket Server users with special characters in their usernames
+ Backport 28317328924ae0139edacc3711d169b37179c31f from #4490
+
+### Chore
+
+#### Release
+
+- [backport 6.2.x] Update jaeger-all-in-one `(PR #4611)`
+ - Update jaeger-all-in-one to 1.67.0
+
+#### Security
+
+- [6.2.x] Auto-update all packages in Sourcegraph container images `(PR #4601)`
+
+#### Others
+
+- Log output of p4 protects commands `(PR #4549)`
+
+### Reverts
+
+- Revert "Revert "[Backport 6.2.x] fix(agents): filter out empty diagnostic paths"" `(PR #4427)`
+- Revert "Revert "[Backport 6.2.x] fix(agents): make reviews and diagnostics pages order by -created_at"" `(PR #4428)`
+
+### Uncategorized
+
+#### Others
+
+- [backport 6.2.x] ci: Improve runtime of integration test suite (#4632) `(PR #4715)`
+ - (see original PR [https://github.com/sourcegraph/sourcegraph/pull/4632](https://github.com/sourcegraph/sourcegraph/pull/4632))
+- [Backport 6.2.x] Prevent invalid Basic Auth header in webhook alert notifiers `(PR #4708)`
+ - Fix(rel): prevent invalid authorization headers in webhook alert configurations when no credentials are provided Backport eefbf38fc2ba6024d028ba968dedf397235714d3 from #4635
+- [Backport 6.2.x] perforce: Implement mode for subrepo that doesn't hide commits `(PR #4591)`
+- [Backport 6.2.x] perforce: Add test to cover nested subdirs `(PR #4569)`
+
+{/* RSS={"version":"v6.2.1106", "releasedAt": "2025-04-08"} */}
+
+
+# 6.2 Patch 0
+
+## v6.2.0
+
+- [sourcegraph](https://github.com/sourcegraph/sourcegraph/releases/tag/v6.2.0)
+
+- [docker-compose](https://github.com/sourcegraph/deploy-sourcegraph-docker/releases/tag/v6.2.0)
+
+- [helm](https://github.com/sourcegraph/deploy-sourcegraph-helm/releases/tag/v6.2.0)
+
+- [kustomize](https://github.com/sourcegraph/deploy-sourcegraph-k8s/releases/tag/v6.2.0)
+
+### Features
+
+#### Agents
+
+- First draft of new review page `(PR #4324)`
+- Add rule stats to the `./api/rules` API `(PR #4320)`
+ - Added rule stats to the `.api/agents/{agent_id}/rules` REST endpoint when the query string `?include=revision.stats` is present
+- Wire data into Agent overview page `(PR #4302)`
+- Add support to create rules from the web UI `(PR #4229)`
+- Cool orb animation `(PR #4199)`
+- New overview page `(PR #4172)`
+- Always run merge base when computing base OID (AGENT-203) `(PR #4163)`
+- Make review API return changeset and file diff `(PR #4159)`
+- Add connected indicator next to agent title `(PR #4132)`
+- Updated card design for changesets `(PR #4110)`
+- Agent overview updates `(PR #4034)`
+- Improved create new agent page `(PR #4023)`
+- Add multiple table view UIs `(PR #4016)`
+ - New UIs to view an agent repos, conversations, PRs, reviews, and diagnostics
+- Auto-generate feedback from changeset conversations `(PR #3996)`
+ - When a pull request is merged, diagnostic feedback is auto-generated via LLM judge from the comments and reactions
+- Visual update to agents page `(PR #3963)`
+- Mirror pull requests in our database `(PR #3880)`
+ - It's now possible to `POST /.api/agents/{agent_id}/runs` to trigger a background review of a pull request
+ - It's now possible to list pull requests for an agent with `GET /.api/agents/{agent_id}/changesets`
+ - It's now possible to list repositories for an agent with `GET /.api/agents/{agent_id}/repos`
+ - It's now possible to trigger a background sync of pull requests via `POST /.api/agents/{agent_id}/runs`.
+- Link to original rule URL in GitHub review comments `(PR #3816)`
+ - Review comments on GitHub now link to the original rule. Previously, it only displayed the rule slug (short ID like `logic`) and it was difficult to find the source of the rule. Now, it's easy to find both the rule instructions or identify the rule author (via git blame).
+- Rules Table [AGENT-145][AGENT-169] `(PR #3797)`
+- Add $-based cost estimates in agent overview `(PR #3632)`
+ - There is now a new "Spend" tab in the agent overview that gives insights into how expensive it is to run an operate an agent, which is helpful among other reasons when making a decision about what LLM model to use.
+ - The LLM API `/.api/completions/stream` now returns the used "modelref" (Sourcegraph canonical representation) alongside the used "model" (LLM provider canonical representation).
+- Rule builder with testing on a specific PR `(PR #3614)`
+- Sync PR conversations on merge or error [CODY-5010] `(PR #3569)`
+- Rename all-inferred to repo-rules `(PR #3476)`
+ - Use the setting `rules: ["repo-rules"]` instead of `rules: ["all-inferred"]` to pick up `*.rule.md` files in the repository based on the changed files in the diff.
+
+#### Autocomplete
+
+- Redict starcoder traffic to Deepseek from CG `(PR #4310)`
+
+#### Batch Changes
+
+- Add sorting to changesets `(PR #4085)`
+- New api for batch spec examples `(PR #4050)`
+ - Feat(batches): new batch spec examples library api
+- Add title-search capabilities to batch changes `(PR #3837)`
+
+#### Batch Changes
+
+- Enable ssh key commit signing for site admins `(PR #4013)`
+- Add fine-grained access tokens to credential modal `(PR #4007)`
+ - Feat(batches): Batch Changes now supports fine-grained access tokens as user and site-admin credentials
+- Update commit signing to display public key `(PR #3968)`
+- Commit signing with ssh keys `(PR #3817)`
+ - Feature is behind `batches-commit-signing` feature flag.Adds the UI form elements needed for submitting a private SSH key and passphrase for git commit signing.note: only UI elements and graphql changes in this PR, backend changes are still required.imageimage
+- Implement changeset rebasing `(PR #3600)`
+
+#### Cloudapi
+
+- Database configuration `(PR #3779)`
+
+#### Code Intelligence
+
+- Syntactic indexing for Scala `(PR #2393)`
+
+#### Code Nav
+
+- Add metadata and topics to repo home `(PR #3984)`
+
+#### Cody
+
+- Update context limits (CODY-5022) (#4321) `(PR #4426)`
+- Add entitlements CRUD endpoints `(PR #4402)`
+- Add a site config for "enforced" Guardrails and transmit it to Cody clients `(PR #4286)`
+ - Adds a site config setting, `"attribution.mode": "enforced"`, which configures Cody IDE extensions after v1.82 (VSCode) or v7.82 (JetBrains) to not display code until attribution checks have finished.
+- Add support for logging to Search using Cody credentials `(PR #3585)`
+
+#### Cody-Gateway
+
+- MSP based version of cody gateway exposes sync sources endpoint `(PR #4261)`
+- Return consumption in standardised trailer headers `(PR #3680)`
+- Deprecate legacy /anthropic endpoint `(PR #3677)`
+
+#### Codygateway
+
+- Allow lookup failures to check Enterprise Portal again `(PR #3936)`
+
+#### Completioncredits
+
+- Disable request-count-based limiting when enforcement is enabled `(PR #4222)`
+- Generate flattened usage view `(PR #3971)`
+
+#### Completions
+
+- Add token usage to traces `(PR #4180)`
+- Credit consumption tracking `(PR #3917)`
+- Apply cost estimate from Cody Gateway as source `(PR #3681)`
+- Refactor cost estimation to 'credits' from 'pennies' `(PR #3667)`
+
+#### Database/Completioncredits
+
+- Improved List, add Count `(PR #4323)`
+- Track raw token counts `(PR #4322)`
+
+#### Dev
+
+- Enable SvelteKit dev server in sourcegraph command set by default `(PR #3084)`
+
+#### Dotcom
+
+- Bring workspaces hype to Cody Pro upsell page `(PR #3768)`
+
+#### Entitlements
+
+- Init tables `(PR #3944)`
+
+#### Gitserver
+
+- Commit signing with ssh keys `(PR #3592)`
+
+#### Graphqlbackend
+
+- Add prototype completionCreditsUsage query `(PR #4346)`
+
+#### Graphqlbackend/Completioncredits
+
+- Prototype entitlement usage query `(PR #4483)`
+
+#### Llmapitelemetry
+
+- Allow consumers to GetTokenUsages `(PR #4181)`
+
+#### Multi Tenant
+
+- Bring onboarding UI a bit closer to original design `(PR #4217)`
+- Add disabled tooltip to invite users button `(PR #3981)`
+- Update public repositories picker tab `(PR #3923)`
+- Add exit survey and delete re-typing confirmation UX `(PR #3859)`
+
+#### Release
+
+- Add timeout to migrator test `(PR #4237)`
+
+#### Sams
+
+- Extend workspaces session cookie to 30 days `(PR #4213)`
+- Bump IntrospectTokenCacheSize for multi-tenant services `(PR #3850)`
+
+#### Search
+
+- Add support for chaining multiple filePaths in URL (#4333) `(PR #4433)`
+- Rename scope refinement options for (hopefull) better clarity `(PR #4341)`
+- Enable personalized ranking by default `(PR #4148)`
+ - We've enabled personalized ranking for search results in the new web app—marking the first step in integrating user-specific ranking signals into our search pipeline. As a result, queries spanning multiple repositories will prioritize results from repositories the user has frequently contributed to.User can disable the feature by setting `boostRelevantRepositories` to false in the settings
+
+```json
+{
+ "experimentalFeatures": {
+ "boostRelevantRepositories": false,
+ },
+}
+```
+
+- (new web ui) Add support for capture group aggregation `(PR #4122)`
+- Add repo metadata editing `(PR #4086)`
+- Add simple form validation/handling library `(PR #4084)`
+- Code Monitors - Change the display order of the tabs in the page `(PR #3959)`
+- Load 100 batch changes at a time instead of 15 `(PR #3739)`
+- Use `patterntype=nls` for Cody context `(PR #3709)`
+ - The `GetCodyContext` endpoint is now deprecated. Instead, clients should use the search API with `patterntype=nls`. Here's an example of how Cody calls the search API: ([https://github.com/sourcegraph/cody/blob/62d73f78c432036d1f99bc9631ed534cc2ed846b/lib/shared/src/sourcegraph-api/graphql/client.ts#L1386-L1404](https://github.com/sourcegraph/cody/blob/62d73f78c432036d1f99bc9631ed534cc2ed846b/lib/shared/src/sourcegraph-api/graphql/client.ts#L1386-L1404)).
+- Add BlamePopover for blame view in new webapp `(PR #3659)`
+- Improve cody web warmstart performance `(PR #3333)`
+
+#### Smart-Apply
+
+- Allow smart apply models on dotcom `(PR #4104)`
+- Add instant apply model for smart apply `(PR #3857)`
+ - Feat(smart-apply): Add instant apply models
+
+#### Source
+
+- Add projectQuery option to Gerrit code host connections `(PR #3807)`
+ - Gerrit code host connections now support a `projectQuery` option that allows for any arbitrary query parameters supported by the Gerrit API.
+- Allow adding details of an already existing GitHub App `(PR #3370)`
+ - Site admins can now add their own pre-existing GitHub Apps to Sourcegraph. This also allows site admins to supply the App details of Enterprise GitHub Apps.
+
+#### Workspaces
+
+- Implement workspace membership filter `(PR #4038)`
+- Add Google Tag Manager via WORKSPACES_GOOGLE_TAG_MANAGER_ID `(PR #3611)`
+- Add plans-viewed event `(PR #3503)`
+- Check Enterprise Portal for potential overlap `(PR #3500)`
+
+#### Workspaces/Internal
+
+- Add button to find by workspace ID `(PR #3607)`
+- Add link to Looker for workspace `(PR #3588)`
+- Add search workspaces UI `(PR #3566)`
+
+#### Others
+
+- Configurable runtime for codemonitor jobs `(PR #4289)`
+ - Feat: configurable runtime for codemonitor jobs
+- Show an info message that commit signing is set up `(PR #4216)`
+- Hide commit signing integration when no github code host is available `(PR #4022)`
+- Create new package /lib/releases `(PR #3835)`
+- Implement commit search on searcher `(PR #3541)`
+ - Added a feature flag to run commit search on searcher, goal being to improve stability and resource usage of gitserver
+- New GraphQL query evaluateFeatureFlags `(PR #3513)`
+ - Feat: new GraphQL query evaluateFeatureFlags
+- Add C++ support for ctags `(PR #3301)`
+
+### Fix
+
+#### Agents
+
+- Render context lines against head (AGENT-195) `(PR #4430)`
+- Add missing sg enable to +page.svelte files `(PR #4399)`
+- Simplify onboarding `(PR #4386)`
+- Fix broken changeset titles `(PR #4372)`
+- Use MarshalCursor.idField as an override if "Id" is explictly listed `(PR #4352)`
+- Add minor touches to review page `(PR #4347)`
+- Make agent overview page load again `(PR #4338)`
+- Generate meaningful name for newly created agents `(PR #4334)`
+- Make agent page load with empty connections `(PR #4331)`
+- Make `/.api/reviews?include=changesets` actually work `(PR #4328)`
+- Fix explicit changeset revision ID and improve logging `(PR #4304)`
+- UI improvements to reviews list `(PR #4294)`
+- Improve overview review cards `(PR #4293)`
+- Updated review list design `(PR #4271)`
+- Fix detection of generated files (AGENT-202) `(PR #4238)`
+- Agent orb z-index removed `(PR #4235)`
+- Links the "View review" button in review list `(PR #4234)`
+- Handle diffs with deleted files `(PR #4221)`
+- Remove review rule `(PR #4214)`
+- Fix overview page bugs `(PR #4193)`
+- Fix prompt rendering issues `(PR #4186)`
+- Updated spend page for new schema `(PR #4166)`
+- Settings moved to top-level nav `(PR #4135)`
+- Link buttons and links on connection card `(PR #4129)`
+- Moves sidebar items into context menu `(PR #4126)`
+- CSS and changeset logic fixes `(PR #4113)`
+- Added whitelisted prefix to system prompts `(PR #4090)`
+- Import create images properly `(PR #4073)`
+- Agents Intro Hero visual update `(PR #4070)`
+- Visual update agent hero section `(PR #3990)`
+- Conversations have Upsert semantics `(PR #3915)`
+- Display stable number of agent runs `(PR #3822)`
+- Skip draft PRs with the `feature_flag_enabled` trigger `(PR #3820)`
+ - The review agent no longer automatically reviews draft PRs with the `feature_flag_enabled` trigger. Instead, users must explicitly request reviews on draft PRs through a comment (`comment_starts_with`) or a label (`label_exists`)
+- Track spend even when not posting GitHub review `(PR #3819)`
+- Automatically add feature-flag trigger `(PR #3815)`
+ - When creating a new agent program, it now automatically includes a feature flag trigger for the feature flag named `agents-auto-review`. You must create this feature flag to have the trigger activate.
+- Run items condensed `(PR #3813)`
+- Run status indicators changed to circles `(PR #3811)`
+- Get review agent working again `(PR #3766)`
+- 404 link `(PR #3763)`
+- Added another migration to fix edited agent_conversation migration `(PR #3686)`
+- Add migration to fix edited migration [AGENT-157] `(PR #3641)`
+- Use non-cancelable context for telemetry reporting `(PR #3630)`
+- Correctly chunk diffs wrt generated files `(PR #3628)`
+ - Fix a bug where the review agent would error if a generated file had more than 100k tokens.
+ - Updated docs to describe the algorithm to detect and ignore generated files
+- Mark run as "errored" on panic `(PR #3627)`
+ - Fixed a bug where an agent run would be stuck in "running" mode forever. Now, these runs get correctly marked as "errored"
+- Improve wording of a log entry `(PR #3626)`
+- Remove outdated suggestion `(PR #3625)`
+- Fix flaky test failure `(PR #3578)`
+- Several small fixes for agents `(PR #3571)`
+ - The review agent now posts a comment reply when it's triggered by a comment trigger (example: `@sourcegraph review`). This is makes the agent behave more like a colleague would.
+ - The agent run page now links back to the pull request at the top of the page
+ - "Duration: 0s" is no longer shown on the agent run page while it's running.
+ - The links to the "applied_rules" in the agent run page now work correctly. Previously, the links were a 404 because they were one long `", "` joined string. We plan to further improve the design of how rules are displayed in this page, so this is not a final solution, just a quick fix for the most immediate bug.
+- Fix bug where `POST /reviews` always failed `(PR #3520)`
+
+#### Analytics
+
+- Deprecate admin analytics `(PR #3930)`
+ - Deprecate the admin analytics pages (/site-admin/analytics) and redirect users to Sourcegraph Analytics (analytics.sourcegraph.com).
+
+#### Batch Changes
+
+- Don't show ssh keys if they're not applicable `(PR #4009)`
+- Make batch changes restriction more visible `(PR #3860)`
+
+#### Ci
+
+- Fix pnpm patch file paths `(PR #3519)`
+
+#### Search
+
+- Fix bug that wasn't setting a default tab selection `(PR #4107)`
+ - Fixes a bug where default selections were not being set.
+
+#### Code Intelligence
+
+- Allows explicitly specifying scala for scip-syntax `(PR #3875)`
+- Allow failed and errored uploads to expire in accordance with retention policy `(PR #3393)`
+
+#### Code Nav
+
+- Enable code intel for graphql and protobuf `(PR #4264)`
+- Change file tree alignment `(PR #4246)`
+- Fix inline diff view `(PR #4232)`
+
+#### Cody
+
+- Allow "edit" model capability in site config `(PR #4377)`
+- Endpoint and token definition in requests to Cody Gateway `(PR #3980)`
+- Cody Gateway client config `(PR #3978)`
+- Cody Gateway enabled definition `(PR #3977)`
+- Cody Gateway endpoint and token resolution on Sourcegraph instance `(PR #3950)`
+- Update auditlog API to have cursor-based pagination `(PR #3942)`
+ - Improve usability of auditlog API
+- Remove Cody quota usage check worker `(PR #3922)`
+- Prevent panic in chat completions API by checking error first `(PR #3918)`
+ - The API `POST /.api/llm/chat/completions` now does not panic anymore when sending a bad request (HTTP 400), which was possible to trigger if you used tool with an incorrect schema.
+
+#### Cody-Gateway
+
+- Added missing call of InitCodyGatewayModelConfig to MSP version of Cody Gateway `(PR #4266)`
+
+#### Cody-Gateway/Dotcomuser
+
+- Shorter TTL for failure case `(PR #3847)`
+
+#### Codygateway
+
+- Fix Enterprise actor cache fail-open `(PR #3559)`
+
+#### Completioncredits
+
+- Fix aggregation generating >1 row per user `(PR #4178)`
+
+#### Completions
+
+- Soft-fail aggregated token usage recorder `(PR #4284)`
+
+#### Completions/Client
+
+- Check for resp nil-ness before deref `(PR #4218)`
+
+#### Completions/Entitlements
+
+- Do not hard-fail on missing usage data `(PR #4446)`
+- Ignore code completions `(PR #4185)`
+- Fix fallback calculation `(PR #4115)`
+
+#### Dev
+
+- Fix pnpm test:preview command `(PR #4314)`
+- Fix `pnpm dev` `(PR #4219)`
+
+#### Enterpriseportal
+
+- Remove bad log scopes `(PR #3536)`
+
+#### Entitlements
+
+- Use bigint limits `(PR #4176)`
+
+#### Modelconfig
+
+- Correct modelcost calculation `(PR #4179)`
+- Remove invalid modelcost, add enforcement `(PR #4100)`
+
+#### Multi Tenant
+
+- Fix add repositories error layout, workspace redirection, added repositories search `(PR #4167)`
+- Fix variable preservation for add repositories picker pagination query `(PR #4030)`
+
+#### Perf
+
+- Remove quadratic behavior in rune counting `(PR #3665)`
+ - (perf) Fixed quadratic behavior in commit and diff search
+
+#### Prompts
+
+- Do not allow to create prompts if you're not a site admin `(PR #4011)`
+
+#### Search
+
+- Make form input directions more clear `(PR #4093)`
+- Remove unscoped css `(PR #4080)`
+- Disallow rev filters with repo predicates `(PR #4035)`
+ - Fixes a search bug where queries like `repo:has.file(...) rev:1.0` would completely ignore the `rev` filter. Now, these types of searches are explicitly disallowed.
+- Ensure we ignore context canceled errors in searcher client `(PR #3992)`
+ - Fix a rare bug in `repo:has.file` queries where some searches could return no results.
+- Truncate all Rockskip tables `(PR #3976)`
+ - With this change we delete all Rockskip indexes. In Sourcegraph v5.5.0 we shipped a bug in Rockskip which causes some unindexed symbol searches to return no results. The bug has been fixed in 6.2 and was backported to 6.1. However indexes that have been created prior to the fix are corrupted. Hence, we have to reindex all Rockskip repositories. A new index job will automatically be triggered. This requires no further action. However, during the reindex, symbol search at older revisions of very large repos will likely time out, so we encourage all customers to communicate this to their users ahead of the rollout of the new version.
+- Code monitors tab logic `(PR #3961)`
+- Fix 'case:' and 'patterntype:' parsing bug `(PR #3927)`
+- Server returns new app for /agents/* Routes `(PR #3762)`
+- Improve error for clashing revisions `(PR #3714)`
+- Make repo readme fill available space `(PR #3707)`
+- Fix streaming search in vscode and jetbrains extension `(PR #3510)`
+- Workaround settingscasacde error checks `(PR #3364)`
+
+#### Smart-Apply
+
+- Change the deployment id for the custom model `(PR #3921)`
+ - Fix(smart-apply): Change deployment id
+
+#### Workspaces
+
+- Only check eTLD+1 if domain might have a subdomain `(PR #3561)`
+
+#### Workspaces/Web
+
+- Fix tag manager ID interpolation `(PR #3664)`
+
+#### Others
+
+- Escape LIKE queries for users `(PR #4311)`
+- Add ssh-keygen to gitserver to enable commit signing `(PR #4300)`
+- Clean up indexes for user_relevant_repos `(PR #4281)`
+- Skip check for github app commit signing if configured by SSH `(PR #4169)`
+- Init subrepo perms before enterprise init hooks `(PR #4064)`
+- Only show commit signing for gitlab and github `(PR #4027)`
+- Use pathspec literal to avoid colons `(PR #3928)`
+ - Fixed a bug where paths that start with colons may be reported as not found.
+- (Agents) Modify agent submenu styling `(PR #3810)`
+- (Agents) Remove description field in agent creation step `(PR #3808)`
+- Enforce file size limits for highlighting `(PR #3697)`
+ - Enforces limits of 1.5 MiB and 50K lines for highlighting code files.
+- Remove vertical scrollbar from pre block `(PR #3678)`
+ - (minor bugfix) Fixed an issue where we would show scrollbars on unscrollable items in the dynamic search filters sidebar
+- Fetch modified files for `DiffModifiesFile` `(PR #3654)`
+- Clean up cmd leak `(PR #3642)`
+- A few bugfixes for the experimental commit search on searcher `(PR #3639)`
+- Close diff reader `(PR #3636)`
+- A few small fixes for commit search on searcher experiment `(PR #3620)`
+- Change developer dialog back to cache first `(PR #3548)`
+
+### Chore
+
+#### Agents
+
+- Add support for 'sg test agents' `(PR #4336)`
+- Add extra debugging statement `(PR #4326)`
+- T.Equal argument order `(PR #4290)`
+- Replace openapi-generator with custom typespec emitter `(PR #4249)`
+- Optimize Go coding style rule `(PR #3848)`
+- Minor fixes for spend page `(PR #3757)`
+ - API documentation for `GET /.api/reviews` now correctly shows the supported query parameters
+ - The agent spend overview now correctly displays the oldest date in the title (not newest date)
+ - The agent spend overview page now no longer has a 404 in the page title
+- Move internal dev docs to Notion `(PR #3675)`
+- Conversation Reactions [AGENT-17] `(PR #3618)`
+- Remove less useful rules `(PR #3598)`
+- Add rules related to emitting telemetry events `(PR #3582)`
+
+#### Batch Changes
+
+- Commit signing polish `(PR #4287)`
+
+#### Ci
+
+- Migrate hermetic cc toolchain to bzlmod + ubuntu 24.04 (v2) `(PR #3979)`
+- Remove linter_deps `(PR #3778)`
+- Handle pushing of images with tag `internal-image` `(PR #3701)`
+- Move hermetic_cc_toolchain to bzlmod `(PR #1665)`
+
+#### Code Intelligence
+
+- Remove stray comment `(PR #3616)`
+- Reduce frequency of auto-indexing summary builder `(PR #3615)`
+- Add test for Int4 overflow fix `(PR #3597)`
+- Delete dependency syncing code `(PR #2947)`
+
+#### Code Nav
+
+- Fetch file content from raw endpoint in React app `(PR #4299)`
+- (new web ui) Use raw endpoint to fetch file content `(PR #4136)`
+
+#### Cody
+
+- Roll Cody Web to 0.32.4 `(PR #4404)`
+ - Cody Web is updated to 0.32.4
+ Backport 70119119b25a883d94571770aafe7846c161a79d from #4401
+- Fix max tokens default values for dev env `(PR #4125)`
+- Make Cody Gateway accept incoming trace as a direct parent `(PR #4003)`
+- Remove teams mention from pro plan description `(PR #3749)`
+- Remove "New" from Claude 3.5 Sonnet name (SRCH-1627) `(PR #3530)`
+ - No-changelog
+
+#### Cody-Gateway
+
+- 10x all blocking/flagging limits `(PR #4184)`
+
+#### Codygateway
+
+- QA fixups `(PR #4099)`
+
+#### Completioncredits
+
+- Increase aggregation interval to 5s `(PR #4251)`
+
+#### Deps
+
+- Bump vulnerable dependencies `(PR #4329)`
+
+#### Dev
+
+- Extracted constant time string comparison into a utility function `(PR #4278)`
+- Upgrade playwright `(PR #4272)`
+- Clean up web-sveltekit and ui package.json files `(PR #4269)`
+- Improve stability of top level navigation test `(PR #4259)`
+- Improve playwright test stablility `(PR #4162)`
+- Remove sourcegraph.yaml code path in auto-indexing `(PR #2957)`
+- Delete most package repo code `(PR #2955)`
+ - Removes experimental support for creating, configuring and using package code hosts such as NPM dependencies, JVM dependencies, Go modules etc.
+
+#### Docs
+
+- Add link to telemetry naming best practices guide `(PR #4012)`
+
+#### Dotcom
+
+- Remove deprecated events pubsub client `(PR #3662)`
+
+#### Enterpriseportal
+
+- Wrap error instead of using safedetails `(PR #3937)`
+- Include error in lookup error log `(PR #3935)`
+- Log subscription-not-found GetCodyGatewayAccess requests `(PR #3734)`
+
+#### Gitserver
+
+- Clarify correctness of code in CommitsIter `(PR #3547)`
+
+#### Graph
+
+- Upgrade auto-indexer images (Adds support for .NET 9.0) `(PR #4057)`
+
+#### Graphql
+
+- Split specific functionality of `GitTreeResolver` and `GitBlobResolver` out of shared `GitTreeEntryResolver` `(PR #3744)`
+
+#### Local
+
+- On MacOS use `login` keychain `(PR #3975)`
+- Add analytics sentinel value to events `(PR #3853)`
+- Remove GOWORK from sg.config `(PR #3851)`
+
+#### Modelconfig
+
+- Update Gemini 2.0 Flash-Lite model info `(PR #3887)`
+
+#### Monitoring
+
+- Add completions latency dashboards `(PR #3741)`
+
+#### Perf
+
+- Stream commits `(PR #3661)`
+ - (internal, perf) Modified commits endpoint on gitserver to stream end-to-end, increasing raw listing throughput by ~20x.
+
+#### Refactor
+
+- Extract subrepo permissions checking into a Client wrapper `(PR #3634)`
+
+#### Release
+
+- Add release as branch code owners `(PR #4421)`
+ - N/A - Not customer facing
+
+#### Release
+
+- Move operations package out of internal `(PR #4164)`
+ - Move buildkite and operations packages into public package from internal
+- Remove duplication of SBOM generation in internal releases `(PR #4061)`
+ - Remove SBOM from internal release
+- Publish basic initcontainer to use in deployments `(PR #3974)`
+
+#### Search
+
+- Convert toReadable to toLoadable `(PR #4121)`
+- Standardize on valibot for runtime data validation `(PR #4082)`
+- Blame popover polish `(PR #3908)`
+- Update cody web to v0.32.2 `(PR #3904)`
+- Remove fuzzy finder access for unauthorized users `(PR #3776)`
+- Change os.Setenv to t.Setenv and move the env closer to the tests `(PR #3557)`
+- Add tests for KUBERNETES_GIT_CA_CERT `(PR #3539)`
+
+#### Security
+
+- Backport: Update to src-cli 6.1.1 `(PR #4477)`
+ - Update src-cli version to 6.1.1
+- [6.2.x] Auto-update all packages in Sourcegraph container images `(PR #4466)`
+- Pin GH actions `(PR #4134)`
+- Remove database dependency from security event logs `(PR #3907)`
+ - Removed ability to write audit logs to database.
+ - Audit logs can no longer be disabled, and will always stream to stderr.
+- Auto-update all packages in Sourcegraph base images `(PR #3483)`
+- Auto-update all packages in Sourcegraph base images `(PR #3274)`
+
+#### Source
+
+- Move subrepo filtering to gitserver client for `StreamRawDiffs` `(PR #3799)`
+
+#### Telemetry
+
+- Update `NonActiveUserEvents` to include `cody.auth.connected` `(PR #4517)`
+- Cody.api and requestclient cleanups `(PR #3769)`
+
+#### Workspaces
+
+- Remove redundant custom utm_source `(PR #3531)`
+
+#### Workspaces/Blocklists
+
+- Make fuzzy-match more lenient `(PR #3770)`
+
+#### Others
+
+- Activate commit signing by default `(PR #4373)`
+ - Backport 5f9519cec1e7edea1880dd44af25161f9d4fc88b from #4343
+- Update styling for batch changes search `(PR #4291)`
+- Simplify logic for occurrence resolvers `(PR #4253)`
+- Update third-party licenses `(PR #4250)`
+- Try again to fix test flake `(PR #4231)`
+- Fix racy test `(PR #4227)`
+- Remove packages from GraphQL & site config `(PR #4220)`
+- Disable flaky test in CI `(PR #4212)`
+- Clarify + add more o11y for HandleRawUpload `(PR #4177)`
+- Add ability to fetch repo by database ID `(PR #4161)`
+- Fix commit search test `(PR #4143)`
+- Remove last log15 from repo-updater `(PR #4140)`
+- Cleanup code that was not implemented `(PR #4127)`
+- Update third-party licenses `(PR #4097)`
+- Remove unused gitserver_repos_statistics table `(PR #4087)`
+- Enable diff-search-on-searcher by default `(PR #4052)`
+ - Internal: moved commit and diff search from gitserver to searcher to help stabilize gitserver memory usage
+- Add ability to migrate in parallel `(PR #4017)`
+- Fixup copy for bitbucket.org `(PR #3993)`
+- Update third-party licenses `(PR #3967)`
+- Remove intent detection model call in frontend, always return chat `(PR #3938)`
+ - The ChatIntent endpoint is now deprecated and will always return chat as the chosen intent.
+- Include context for inference logic (o11y) `(PR #3899)`
+- Add historical context for Rand parameter `(PR #3896)`
+- Remove fmt.Printf in test code `(PR #3895)`
+- Base language detection limit on measurements `(PR #3893)`
+ - Language icons for files with ambiguous extensions (such as `.h` files, which is used for both C and C++) are more likely to be accurate.
+- Add tool for language detection measurements `(PR #3873)`
+- Add constant for language detection limit `(PR #3854)`
+- Add Go style guide to rules `(PR #3845)`
+- Update third-party licenses `(PR #3840)`
+- Remove unused WebBuilderDevServer field `(PR #3812)`
+- Update teams.yml for product platform changes `(PR #3748)`
+- Refactor content fetching `(PR #3742)`
+- Add `rawURL` `(PR #3740)`
+ - (feat) Added `rawURL` to git blob GraphQL resolver to encourage fetching file contents from in a more performant manner.
+- Reduce vite logging to warn `(PR #3727)`
+- Serialize commit search `(PR #3715)`
+- Remove evaluated feature flags from event logging for performance `(PR #3700)`
+- Erase errors returned from *FileChecker types `(PR #3693)`
+- Add LargeString type to avoid string copies `(PR #3692)`
+- Change constants casing `(PR #3691)`
+- Add printing functions for units.Size `(PR #3690)`
+- Update third-party licenses `(PR #3688)`
+- Ignore debug binaries produced by delve `(PR #3679)`
+- Bump auto-indexing image SHAs `(PR #3676)`
+ - Updates default auto-indexing images for scip-go (to v0.1.23), scip-ruby (to v0.4.6) and scip-dotnet (to v0.2.10).
+- Remove client-side code for packages `(PR #3671)`
+ - Removes UI settings for experimental package repos feature.
+- Add test for patch.go `(PR #3655)`
+- Remove tree-sitter-based semantic chunker `(PR #3645)`
+- Update Emi's mentions to 'emidoots' `(PR #3624)`
+- Notify Varun on changes to codeintel dashboard `(PR #3623)`
+- Update Entitle Link for documentation `(PR #3613)`
+- Update third-party licenses `(PR #3572)`
+- Migrate react hook useFeatureFlag to use batch query `(PR #3550)`
+- Migrate developer dialog to evaluateFeatureFlags `(PR #3546)`
+- Rename Search to CommitSearch `(PR #3464)`
+
+### Refactor
+
+#### Search
+
+- Rename boost: query params to repo:boost `(PR #4332)`
+ - `boost:repo()` and `boost:relevant.repos()` query params have been renamed to `repo:boost()` and `repo:boost.relevant()`.
+
+#### Security
+
+- Remove security event patterns from audit logging `(PR #4154)`
+ - Security events have been removed in favor of improved audit logging
+
+#### Others
+
+- Batch settings requests `(PR #4315)`
+ - Perf: reduced DB roundtrips when fetching settings, lowering floor latency for API requests
+- Move after commit logic into server source implementations `(PR #4224)`
+ - The executor shouldn't know about code host specific logic. This change moves github specific logic - Duplicating commits when signing with a GH app - Out of the executor and into the Github ChangeSetSource.This is behind a generic AfterCommit interface method of ChangeSetSource interface, for which other code host implementations are simply no-ops.
+
+### Reverts
+
+- Revert "chore: add Zoekt indexserver GRPC client" `(PR #4024)`
+
+### Uncategorized
+
+#### Others
+
+- [Backport 6.2.x] bitbucketserver: Properly refresh OAuth credentials in API calls `(PR #4522)`
+ - Fixed an issue where Bitbucket Data Center/Server OAuth2.0 credentials were sometimes not refreshed correctly, causing errors when syncing repository permissions. Backport fb4e51d25cc2ac0713e9af3d7ed39fc6e9d01500 from #4521
+- [Backport 6.2.x] modelconfig: refresh model costs `(PR #4400)`
+- [Backport 6.2.x] Update deployment types to show accurate types in telemetry `(PR #4361)`
+ - Backport a09017f5ef6e75ec083fc0c9444baa64b0354989 from #4319
+- Cody-gateway: Fixed (Read/Write)Timeout in MSP version of cody gateway; those were misaligned compared to legacy version `(PR #4296)`
+- Database: Add support for CloudSQL connector in monolith `(PR #4282)`
+- Uploadpack: Fixup metrics reporting `(PR #4279)`
+- Session: Store loaded user on actor `(PR #4276)`
+- Increase request duration `(PR #4275)`
+- Api: Fix panic in randomizeUserPassword mutation `(PR #4265)`
+- Upgrade rules_rust 0.59.2 and remove rules_rust patch `(PR #4260)`
+- Monitoring: tweak entitlements docs `(PR #4252)`
+- Migration: Fixup performance of packages migration `(PR #4228)`
+- Gitserver: Update on-disk format again `(PR #4203)`
+- Monitoring: add entitlements panels `(PR #4201)`
+- Repoupdater: RecloneRepo removes repo from all shards `(PR #4187)`
+- Extract user setting link to a separate nav item `(PR #4182)`
+- Gitserver: Change janitor default interval to 2h `(PR #4175)`
+- Dev: add debug image `(PR #4174)`
+- Tenant: Fix missing tenant errors in updates to repo_statistics `(PR #4165)`
+- Internal/database: add initial entitlements store `(PR #4153)`
+- Fix some linter warnings `(PR #4147)`
+- CORE-814: soureces.Worker is used in MSP cody-gateway not only in non-MSP version `(PR #4133)`
+- Chore(cloud ephemeral): allow extend lease for expired/incomplete ins… `(PR #4128)`
+- CORE-814: MSP version of Cody Gateway exposes all endpoints exposed by the non-MSP version `(PR #4123)`
+- Gitserver: Recalculate size only after fetches `(PR #4116)`
+- Update Cody Web to 0.32.3 `(PR #4105)`
+- Add support for tool_results `(PR #4101)`
+- Gitserver: Simplify refspecoverrides `(PR #4096)`
+- Frontend: Unexport packages not used outside of frontend `(PR #4095)`
+- Gitserver: Implement upload-pack in gitcli package `(PR #4094)`
+- Workspaces: Deprecate code.repositoryInfo:succeeded event `(PR #4089)`
+- Gitserver: Don't persist shard_id in database anymore `(PR #4088)`
+- Tenant: Add deletion routine for the database `(PR #4071)`
+- Initialise subrepo permissions checker in syntactic worker `(PR #4069)`
+- Feat(cody gateway): Update default chat model to Claude 3.7 Sonnet without Thinking enabled `(PR #4063)`
+- Cleanup: fail if subrepo perms is not initialized `(PR #4056)`
+ - (Infra) Searcher now requires a database connection, so must be able to reach Postgres,
+- Mark Scala import packages as namespaces `(PR #4046)`
+- Repo-updater: Fix bad log field `(PR #4041)`
+- CORE-814: MSP version of Cody Gateway exposes basic HTTP API `(PR #4036)`
+- Gitserver: Fix goroutine leak `(PR #4033)`
+- Fix bug where penny-based model configurations would result in site config validation errors `(PR #4021)`
+- Symbols: Fix column reference in rockskip repo deletion `(PR #4020)`
+- Added EventLogger to the Cody Gateway supporting BigQuery configuration created by MSP `(PR #4004)`
+ - Added EventLogger to the Cody Gateway supporting BigQuery configuration created by MSP
+- Fix merge order conflict `(PR #3997)`
+- Stream: Fix unintentional buffering in streaming APIs `(PR #3994)`
+- Fix(cody gateway): disable chat vision by default `(PR #3988)`
+- Add trace events for external requests `(PR #3987)`
+ - Internal: added trace logs for HTTP lifecycle events
+- Feat(cody gateway): unblock vision models requests `(PR #3986)`
+- Reapply "fix: batch workspaces to reduce memory pressure (#3657)" (#3965) `(PR #3982)`
+- Symbols: enabled ad-hoc file parsing by default `(PR #3970)`
+ - We have enabled a new performance improvement for unindexed symbol search. Requests asking for all symbols of a file will now be handled by ad-hoc file parsing instead of by Rockskip or sqlite-based symbol search. This solves an issue many customers have reported for larger repositories, where the symbol sidebar in the blob view would often show errors related to timeouts. The feature can be disabled by setting `DISABLE_FILE_SYMBOLS_PARSING=true` as ENV for the symbols service.
+- P4fusion: Use the latest version in localdev `(PR #3955)`
+- P4fusion: Remove old p4-fusion wolfi package `(PR #3954)`
+- Ci: Skip perforce IP tests as well in backend integration tests `(PR #3953)`
+- Search: add tracing for revision resolution `(PR #3934)`
+- Bug(agent): Set display_name when fetching rules `(PR #3931)`
+- Gitserver: Run p4-fusion operations in quarantined repo directory `(PR #3929)`
+- Gomod: bump Zoekt for test scoring change `(PR #3926)`
+- Fix(mi2 cloud eph): support older Sourcegraph versions `(PR #3920)`
+- CORE-759: Added MSP skeleton to Cody Gateway `(PR #3902)`
+ - Added feature flag for MSP and added skeleton of MSP app into Cody Gateway
+- Fix incorrect enqueuing of syntactic indexing jobs `(PR #3877)`
+ - Fix incorrect enqueuing of syntactic indexing jobs `(PR #3877)`
+- Tenant: Add deletion routine for blobstore `(PR #3876)`
+- Gitserver: Fix testbed setup in git 2.48 `(PR #3867)`
+- Index C++ concepts using scip-ctags `(PR #3843)`
+ - Use scip 0.5.2 to identify C++ concepts
+- Map "c++" -> "cpp" for scip-ctags parsing `(PR #3842)`
+ - Maps `c++` to `cpp` when selecting `scip-ctags` parser, instead of falling back to `universal-ctags`.
+- Update to src-cli 6.1.0 `(PR #3818)`
+ - Update src-cli version to 6.1.0
+- Gitserver: Support fetching repo from other gitserver after resharding `(PR #3800)`
+- Tenant: Add deletion routine for zoekt `(PR #3782)`
+- Changing Gemini Flash Lite model from Preview to GA `(PR #3752)`
+- Tenant: Forbid changing the primary email `(PR #3747)`
+- Tenant: Add deletion routine for gitserver `(PR #3745)`
+- Bug(agents): db.Conversations().Create also has update semantics [AGT-172] `(PR #3743)`
+- Tenant: Add small framework and first task for tenant deletion reconciler `(PR #3735)`
+- Vsce: minor release v2.4.0 `(PR #3718)`
+- Feat(cody gateway): change the reasoning effort for Claude 3.7 Sonnet model to low `(PR #3710)`
+- Feat(cody gateway): add Claude 3.7 Sonnet model `(PR #3705)`
+- Tenant: Fix local dev not starting up `(PR #3684)`
+- Fix: Mark releases as development in the releaseregistry `(PR #3682)`
+ - NA
+- Monitoring: add new CPU/ memory group for all services `(PR #3666)`
+- Cody: Change some unlimited wording to increased `(PR #3640)`
+- Searcher: Add missing logger `(PR #3617)`
+- Updated marketing to reflect Pro chat limits are not unlimited `(PR #3586)`
+- Add 'clear search' feature to search input bar. `(PR #3583)`
+- Monitors: Fix logo URL and use new branding in notification email `(PR #3570)`
+- Gateway: Increase ES LLM limits to match Pro `(PR #3564)`
+ - Increased ES LLM limits to match Pro
+- Gitserver: Adopt zoekt charts for IO and memory pressure `(PR #3533)`
+- Search: actually enable scip-ctags for C `(PR #3532)`
+- Remove Waitlist for O1 Models `(PR #3509)`
+ - OPTIONAL; info at [https://www.notion.so/sourcegraph/Writing-a-changelog-entry-dd997f411d524caabf0d8d38a24a878c](https://www.notion.so/sourcegraph/Writing-a-changelog-entry-dd997f411d524caabf0d8d38a24a878c)
+- Telemetry: allowlist key "chatAgent" in feature:"cody.chat-question" `(PR #3484)`
+- Update svelte/react storybook `(PR #3472)`
+- Don't let users see event logs page on dotcom (we don't store v2 tele… `(PR #3430)`
+- Search: expose bestLineMatch via GraphQL `(PR #3291)`
+- Authz: Clean up requirement to validate authz providers when creating code host connection `(PR #2863)`
+- Searcher: Remove RepoName field from requests `(PR #2520)`
+- Gitserver: Don't reclone repos after random GC failures `(PR #2517)`
+- Gitserver: Drop Git attributes janitor task `(PR #2516)`
+- Repoupdater: Slightly simplify repo loading and clean up RepoNames in gRPC `(PR #2515)`
+- Repoupdater: Move internal actor impersonation to caller `(PR #2514)`
+- Gitserver: Consolidate purge worker and state syncer `(PR #2513)`
+- Gitserver: Switch to IDs for all requests `(PR #2493)`
+
+### Untracked
+
+The following PRs were merged onto the previous release branch but could not be automatically mapped to a corresponding commit in this release:
+
+- Feat(cody gateway): Update default chat model to Claude 3.7 Sonnet wi… `(PR #4207)`
+ - See [https://github.com/sourcegraph/sourcegraph/pull/4063](https://github.com/sourcegraph/sourcegraph/pull/4063)
+- Update Caddy `(PR #3906)`
+- Fix bug where POST /reviews always failed `(PR #3522)`
+- Auto-update all packages in Sourcegraph base images `(PR #3482)`
+
+{/* RSS={"version":"v6.2.0", "releasedAt": "2025-04-02"} */}
+
+
+# 6.1 Patch 5
+
+## v6.1.5633
+
+- [sourcegraph](https://github.com/sourcegraph/sourcegraph/releases/tag/v6.1.5633)
+
+- [docker-compose](https://github.com/sourcegraph/deploy-sourcegraph-docker/releases/tag/v6.1.5633)
+
+- [helm](https://github.com/sourcegraph/deploy-sourcegraph-helm/releases/tag/v6.1.5633)
+
+- [kustomize](https://github.com/sourcegraph/deploy-sourcegraph-k8s/releases/tag/v6.1.5633)
+
+### Features
+
+#### Cody
+
+- Allow non-aws bedrock endpoints with Bedrock provider `(PR #4196)`
+ - Add AWS Bedrock client support for non-AWS Bedrock-compatible endpoints
+ Backport 9054d7c14db0ecf96200c2985c5b550b6dd2ded0 from #4145
+
+### Reverts
+
+ There were no reverts for this release
+
+### Uncategorized
+
+#### Others
+
+- Feat(cody gateway): Update default chat model to Claude 3.7 Sonnet wi… `(PR #4207)`
+ - See [https://github.com/sourcegraph/sourcegraph/pull/4063](https://github.com/sourcegraph/sourcegraph/pull/4063)
+- [Backport 6.1.x] Add thinking/chain-of-thought support for Anthropic models via Vertex AI `(PR #4202)`
+- [Backport 6.1.x] bitbucket: Add support for subpath in cloneurl resolution `(PR #4195)`
+
+{/* RSS={"version":"v6.1.5633", "releasedAt": "2025-03-21"} */}
+
+
+# 6.1 Patch 4
+
+## v6.1.4020
+
+- [sourcegraph](https://github.com/sourcegraph/sourcegraph/releases/tag/v6.1.4020)
+
+- [docker-compose](https://github.com/sourcegraph/deploy-sourcegraph-docker/releases/tag/v6.1.4020)
+
+- [helm](https://github.com/sourcegraph/deploy-sourcegraph-helm/releases/tag/v6.1.4020)
+
+- [kustomize](https://github.com/sourcegraph/deploy-sourcegraph-k8s/releases/tag/v6.1.4020)
+
+### Features
+
+#### Source
+
+- Sub-repo-perms: add limited support for IPv4 wildcard semantics `(PR #4018)`
+ - Backport 04606e20fbc8f13ad473533820b8f5df71e20ad7 from #3989
+
+### Reverts
+
+ There were no reverts for this release
+
+{/* RSS={"version":"v6.1.4020", "releasedAt": "2025-03-12"} */}
+
+
+# 6.1 Patch 3
+
+## v6.1.2889
+
+- [sourcegraph](https://github.com/sourcegraph/sourcegraph/releases/tag/v6.1.2889)
+
+- [docker-compose](https://github.com/sourcegraph/deploy-sourcegraph-docker/releases/tag/v6.1.2889)
+
+- [helm](https://github.com/sourcegraph/deploy-sourcegraph-helm/releases/tag/v6.1.2889)
+
+- [kustomize](https://github.com/sourcegraph/deploy-sourcegraph-k8s/releases/tag/v6.1.2889)
+
+### Features
+
+#### Search
+
+- Adds `Team` support in SvelteKit ownership panel `(PR #3830)`
+ - Implement ownership information for the Sveltekit rewrite. Backport 30f3ea6a6c115c633291c388ff599ff107d7f38b from #3738
+- Add ownership panel MVP to sveltekit app `(PR #3829)`
+ - Adds read-only ownership panel to Sveltekit frontend
+ - Gated behind 'svelte-ownership' feature flag
+ Backport 469f2ea37a214f3c0eb1cbde012625bdbef84b6f from #3558
+
+### Fix
+
+#### Batch Changes
+
+- TransformChanges.group.directory should not interpret file names as directories `(PR #3726)`
+ - Fix(batches): transformChanges.group.directory should not interpret file names as directories Backport 6ffff463be1743b89ab865018e46a34ff4e549f5 from #3721
+
+#### Cody-Gateway
+
+- Removes ModelCapabilityEdit from Claude 3.7 Sonnet `(PR #3737)`
+
+#### Search
+
+- Missing symbol changes from merge commits in Rockskip `(PR #3844)`
+ - This fixes a bug in Rockskip (symbol search) where we would miss symbol changes introduced by merge commits. This bug manifested in incorrect search results and errors of symbols service similar to "pathspec (...) did not match any files". Backport d8426a9aec4930ce71922562fdebdcfd0d657cb4 from #3699
+
+#### Source
+
+- Fix bug where the token always has to be entered when editing certain code host connections `(PR #3751)`
+ - Fixed issue where the code host connection editor would always ask for the token to be re-entered. Backport 428c1eef19d68b38037bd35457632a007a78494d from #3719
+
+#### Workspaces
+
+- Apply jitter to global reconciler `(PR #3772)`
+
+#### Others
+
+- Update cody web to 0.31.1 to fix issue with pasting linebreaks (#3696) `(PR #3729)`
+ - Fix: prompt templates should not fail when pasting linebreaks
+
+### Chore
+
+#### Security
+
+- Update Caddy `(PR #3906)`
+
+### Refactor
+
+#### Search
+
+- Normalize `displayName` across `Person` and `Team` types `(PR #3825)`
+
+### Reverts
+
+ There were no reverts for this release
+
+{/* RSS={"version":"v6.1.2889", "releasedAt": "2025-03-05"} */}
+
+
+# 6.1 Patch 2
+
+## v6.1.1295
+
+- [sourcegraph](https://github.com/sourcegraph/sourcegraph/releases/tag/v6.1.1295)
+
+- [docker-compose](https://github.com/sourcegraph/deploy-sourcegraph-docker/releases/tag/v6.1.1295)
+
+- [helm](https://github.com/sourcegraph/deploy-sourcegraph-helm/releases/tag/v6.1.1295)
+
+- [kustomize](https://github.com/sourcegraph/deploy-sourcegraph-k8s/releases/tag/v6.1.1295)
+
+### Features
+
+#### Cody-Gateway
+
+- Add thinking/reasoning support to Anthropic models `(PR #3708)`
+ - Added support for chain-of-thought reasoning in Anthropic models, allowing users to see the model's thinking process for complex tasks. Backport 389bf9a4f2cf8ed7762cf8876b0efe4064e2b234 from #3507
+
+### Reverts
+
+ There were no reverts for this release
+
+{/* RSS={"version":"v6.1.1295", "releasedAt": "2025-02-25"} */}
+
+
+# 6.1 Patch 1
+
+## v6.1.376
+
+- [sourcegraph](https://github.com/sourcegraph/sourcegraph/releases/tag/v6.1.376)
+
+- [docker-compose](https://github.com/sourcegraph/deploy-sourcegraph-docker/releases/tag/v6.1.376)
+
+- [helm](https://github.com/sourcegraph/deploy-sourcegraph-helm/releases/tag/v6.1.376)
+
+- [kustomize](https://github.com/sourcegraph/deploy-sourcegraph-k8s/releases/tag/v6.1.376)
+
+### Features
+
+#### Agents
+
+- Add support for globally enabled rules (#3480) `(PR #3502)`
+- Simplify agent admin onboarding experience `(PR #3501)`
+ - You can now create a GitHub App with all the right permissions/events for code review agents. Previously, you had to manually customize the apps. Backport 87e8d77f464912cbd4356a8c3c39fba1d099e3b6 from #3473
+
+#### Cody
+
+- Add "autocomplete" capability to Claude Haiku models `(PR #3638)`
+
+#### Tenant
+
+- Telemetry for adding code `(PR #3560)`
+
+### Fix
+
+#### Agents
+
+- Fix bug when using global rules in default revision `(PR #3524)`
+- Fix bug where POST /reviews always failed `(PR #3522)`
+- Improve error reporting in `POST /reviews` `(PR #3518)`
+- Render errors as strings in agent run logs `(PR #3516)`
+ - Errors are now rendered as strings in agent run logs. Previously, they rendered as `Source: {}`, which wasn't helpful.
+ Backport d1f18d280fc9d3a985a284c31e819412d2add606 from #3514
+- Hide listing of rules to fix unconditional error `(PR #3498)`
+
+#### Code Intelligence
+
+- Correctly handle document counts exceeding MaxInt32 `(PR #3596)`
+ - Fixes a bug in SCIP index processing for instances with a long history
+of processing large uploads. Backport 48e7b47898ee7710f12270c6861c335a2ef75f48 from #3595
+
+#### Release
+
+- Check for and remove timescaledb extension `(PR #3584)`
+ - Fix(rel): remove TimescaleDB from existing database if found during upgrade to Postgres 16 on the codeinsights database.
+ Backport 71b4af3d6faef054803db0151b2cc7b151bb1c0e from #3556
+
+#### Security
+
+- Allow the admin's HTTP auth provider headers in CORS preflight requests `(PR #3540)`
+ - HTTP header auth username and email headers, if configured, are no longer blocked by CORS. Backport 782b98a780dac335576b8f43affb4b1a10123882 from #3512
+
+#### Others
+
+- TransformChanges.group.directory should ignore file names `(PR #3594)`
+ - Fix: transformChanges.group.directory now ignores file names
+ Backport 3b76fe4ab146565b0e736231353b1e24f1468241 from #3576
+- Fix missing JSON schema on serve-git connection page `(PR #3567)`
+- Do not close stream when tab is unfocused `(PR #3529)`
+ - Fixes an (unreleased) issue that could cause duplicate search results when switching between tabs.
+ Backport 746a29a25d6e54dfe7ab38f70855a9f58a652426 from #3528
+
+### Chore
+
+#### Agents
+
+- Allow non-site-admins to read agent endpoints [CODY-4962] `(PR #3511)`
+ - GET access to `/.api/agent/*` endpoints for non-site admins Backport 321543c38aab312c7d3924e19617f9f247c3a5fa from #3504
+
+### Reverts
+
+ There were no reverts for this release
+
+### Uncategorized
+
+#### Others
+
+- Backport 3542 to 6.1.x `(PR #3612)`
+- [Backport 6.1.x] tenant: Report newRepositoryTotalSizeBytes for setSelectedRepos `(PR #3568)`
+
+{/* RSS={"version":"v6.1.376", "releasedAt": "2025-02-19"} */}
+
+
+# 6.1 Patch 0
+
+## v6.1.0
+
+- [sourcegraph](https://github.com/sourcegraph/sourcegraph/releases/tag/v6.1.0)
+
+- [docker-compose](https://github.com/sourcegraph/deploy-sourcegraph-docker/releases/tag/v6.1.0)
+
+- [helm](https://github.com/sourcegraph/deploy-sourcegraph-helm/releases/tag/v6.1.0)
+
+- [kustomize](https://github.com/sourcegraph/deploy-sourcegraph-k8s/releases/tag/v6.1.0)
+
+### Features
+
+#### Agents
+
+- Allow code review agent to auto-run based on feature flags `(PR #3477)`
+ - Code review agents can now automatically run on GitHub Pull Requests (actions: `opened` and `synchronize`) based on a feature flag. Both boolean (true/false) and rollout (percentage-based ) feature flags are supported. For example, this means you can enable automatic reviews on 10% of all opened PRs.
+- Review Diagnostic Feedback [CODY-4951] `(PR #3456)`
+ - Adds a feedback UI for diagnostics within the Agents app.
+- Report progress with GitHub Commit Status API `(PR #3445)`
+ - The Code Review Agent now reports live status with the GitHub Commit Status API making it possible to open Agent logs directly from GitHub.
+- Make Review Agent leverage PR title and description (CODY-4749) `(PR #3431)`
+- Make review triggers configurable `(PR #3368)`
+ - You can now request review from the Review Agent by posting a pull request comment with a configurable substring
+- Code reviews deduplicate diagnostics from historical review [CODY-4743] `(PR #3355)`
+ - Code reviews deduplicate diagnostics from historical reviews
+- Add basic review rules to repo `(PR #3335)`
+- Rules-related API improvements `(PR #3305)`
+- Read the cody repo for rules as well `(PR #3212)`
+- Show rules that apply to a file in the code view `(PR #3200)`
+- More agents UI updates `(PR #3177)`
+- Add Run API, view live progress on agent runs `(PR #3171)`
+ - Add `GET /.api/agents/runs` to list runs of an agent, and other related endpoints including the ability to view logs
+- Make Review agent handle large diffs `(PR #3136)`
+ - The Review agent can now review larger diffs.
+- Expose rules API endpoints and use rule URIs instead of IDs `(PR #3056)`
+- Adds Conversation HTTP handlers and generated DB columns [CODY-4751] `(PR #3021)`
+ - Adds HTTP handlers for `/.api/conversations` for creating and filtering conversations as well as a DB method for querying conversations.
+- Agents UI and requisite new APIs `(PR #2818)`
+
+#### Code Intelligence
+
+- Syntactic indexing job resetter `(PR #3336)`
+- Periodically delete old audit logs from syntactic jobs `(PR #3278)`
+
+#### Cody
+
+- Add Prompt Caching to Code Context (CODY-4807) `(PR #3198)`
+
+#### Cody-Gateway
+
+- Add actor-auth-status metric `(PR #3460)`
+- Add cache related token usage data to telemetry(CODY-4808) `(PR #3396)`
+ - OPTIONAL; info at [https://www.notion.so/sourcegraph/Writing-a-changelog-entry-dd997f411d524caabf0d8d38a24a878c](https://www.notion.so/sourcegraph/Writing-a-changelog-entry-dd997f411d524caabf0d8d38a24a878c)
+- Roll out new Gemini Models `(PR #3357)`
+ - Move Gemini 2.0 Flash from Experimental to GA, add Gemini 2.0 Flash-Lite Preview Experimental and Gemini 2.0 Pro Experimental
+
+#### Enterpriseportal
+
+- Add tracking for verified domains `(PR #3447)`
+
+#### Lib/Msp
+
+- Add OTEL instrumentation to gRPC clients by default `(PR #3428)`
+
+#### Local
+
+- Install mise as part of `sg setup` and deprecate asdf `(PR #2877)`
+
+#### Model-Config
+
+- Implement reasoning parameters for OpenAI models `(PR #3489)`
+
+#### Msp/Auditlog
+
+- Add trace ID to response headers `(PR #3248)`
+
+#### Release
+
+- Add init subsection to release.yaml `(PR #3223)`
+ - Feat: add init cmd subsection to release.yaml parser
+ - Feat: add init section to release.yaml
+
+#### Release
+
+- `sg upgradetest` `(PR #3388)`
+ - Allow the upgradetest to be run locally without knowing the bazel invocation required to stamp the build etc
+ - Unlock local minor and major branch upgradetests
+
+#### Search
+
+- Add enterprise starter cta to dotcom search home `(PR #3090)`
+
+#### Telemetry
+
+- Add events for repo page views `(PR #3265)`
+- Add billing metadata to toggles `(PR #3264)`
+
+#### Tenant
+
+- Fix workspace management UI quirks `(PR #3227)`
+
+#### Web
+
+- Update cloning status to new designs `(PR #2760)`
+
+#### Workspace
+
+- Workspace creation error UX `(PR #3383)`
+
+#### Workspaces
+
+- Attach cf ray id to otel traces `(PR #3387)`
+- Add WORKSPACES_ROUTER_DISABLE_RECONCILERS `(PR #3382)`
+- Upsert/delete route on manual reconcile `(PR #3378)`
+- Contact support to claim a name `(PR #3340)`
+- Record clientside payment errors `(PR #3319)`
+- Remove profanity blocks `(PR #3317)`
+- Add cancellation/churn notifications in Slack `(PR #3314)`
+- Add 'code search and code navigation' to plan page `(PR #3267)`
+- Allow creation form to be pre-filled with a coupon `(PR #3228)`
+- Seat-purchase notifications for Slack `(PR #3225)`
+- Allow Stripe promo codes only, enforce short-lived promo codes `(PR #3222)`
+- Enforce SAMS client per instance, add instance debug UI `(PR #3138)`
+- Metric for Cloudflare interactions, include status from Stripe `(PR #3117)`
+- Internal admin trigger to reconcile workspace `(PR #3070)`
+- Add instance class option for employees `(PR #3067)`
+- Write snapshot of workspace details into BigQuery on creation `(PR #3049)`
+- Plans page refresh `(PR #2983)`
+
+#### Workspaces/Billing
+
+- Add workspace name/displayname to Slack notifications `(PR #3262)`
+- Include total seats in slack notification `(PR #3260)`
+
+#### Workspaces/Slack
+
+- Make coupons links, refactor slack formatting `(PR #3332)`
+
+#### Workspaces/Telemetry
+
+- Add marketingtracking and anonymous UID `(PR #3343)`
+
+#### Others
+
+- Prompt templates editor supports @ current mentions `(PR #3397)`
+ - Feat: prompt templates editor supports dynamic @ mentions
+- Add event for codeintel highlights `(PR #3261)`
+- Add support for VoyageAI reranker `(PR #3155)`
+
+### Fix
+
+#### Agents
+
+- Redirect to settings page after creating agents `(PR #3471)`
+ - Creating a new agent now redirects to the settings page for further setup
+- Correct typo in system prompt `(PR #3421)`
+- Disable Agents unless feature flag is enabled `(PR #3420)`
+- Show diagnostics on review page `(PR #3358)`
+- Fix bug where review agent posted comments on wrong lines `(PR #3347)`
+- Add fallback when rules list is empty (CODY-4834) `(PR #3285)`
+- Use globs instead of regexp for include/exclude filters `(PR #3277)`
+ - Rule include/exclude patterns are now interpreted as globs (`*.go`) instead of regexp (`.*\.go`). Negative include patterns like `!*.go` will be interpreted as exclude patterns, and vice versa.
+- Remove agents from the navbar on dotcom `(PR #3166)`
+
+#### Auth
+
+- Add missing allowSignup option to HTTP header auth provider `(PR #3232)`
+ - Fix/auth: "http-header" auth provider can "allowSignup": false to disable automatic account creation
+
+#### Ci
+
+- Disable puppeteer browser tests `(PR #3298)`
+- Disable client checks `(PR #3290)`
+- Update licenses script and rerun it `(PR #3053)`
+
+#### Code Intelligence
+
+- Optimize GetSymbolUsages core query `(PR #3035)`
+- Decorrelate subquery for hover docs `(PR #3031)`
+- Bound number of docs read for GetHover `(PR #3000)`
+
+#### Cody
+
+- Include token usage in OpenAI streaming requests `(PR #3441)`
+- Check that completion exists `(PR #3410)`
+- Include token usage in OpenAI streaming requests `(PR #3376)`
+- Use max_completion_tokens field for OpenAI `(PR #3362)`
+- Pull correct client-name param `(PR #3167)`
+- Show actual chat quota usage for free-tier users `(PR #2970)`
+- Filter allowed models by capability for PLG users `(PR #2506)`
+
+#### Cody-Gateway
+
+- V1/limits handler `(PR #2908)`
+
+#### Dev
+
+- Internal/memcmd: add support for using mise in tests `(PR #3256)`
+
+#### Local
+
+- Set GOWORK=off for frontend in sg `(PR #3111)`
+
+#### Models
+
+- Update OpenAI o3-mini model pricing `(PR #3303)`
+
+#### Msp/Iam
+
+- Grant Cloud Deploy executor access to images `(PR #3175)`
+
+#### Msp/Runtime
+
+- Fix pgx pool stats metric `(PR #3126)`
+
+#### Multi Tenant
+
+- Bring back description text to the github add account setup step `(PR #3325)`
+- Improve workspace validation states `(PR #3093)`
+
+#### Multitenant/Mt-Router
+
+- Fix up routes and redirect `(PR #3195)`
+
+#### Release
+
+- Fix migrator update check `(PR #3173)`
+ - Fix(rel): fix migrator upgrade check
+
+#### Search
+
+- Change chevrons in in-file search panel `(PR #3367)`
+- Web app broken if settings contains 'message' key `(PR #3363)`
+- Bust cache for new logo (favicon) `(PR #3350)`
+- Use separate light and dark SG logo variants `(PR #3280)`
+- Link to correct dashboard page in extensions CTA `(PR #3182)`
+- Fix search aggregation chart popover `(PR #3046)`
+- Chat tips modal covered by file sidebar `(PR #3016)`
+
+#### Source
+
+- Fix Gerrit clone URL resolution `(PR #3446)`
+- Fix inability to update Gerrit code host config URL `(PR #3361)`
+ - Fix bug where the URL of a Gerrit code host connection could not be updated.
+- Web: ensure list of external accounts has unique entry for each key `(PR #3323)`
+ - A bug on the user's account security page that could result in duplicated / buggy entries has been fixed.
+- RepoSource.BitbucketServer.CloneURLToRepoName(): support more URL shapes `(PR #3224)`
+ - The logic that translates Bitbucket clone URLs to repository names has been fixed to support:
+ - URLs that have no scheme (like `"bitbucket.sgdev.org/sourcegraph/sourcegraph"`)
+ - SSH clone urls that don't have a `ssh://` scheme prefix (like `git@bitbucket.sgdev.org:sourcegraph/sourcegraph.git`)
+- Gitserver: merge base: add explicit test to ensure ordering of RevisionNotFoundErrors `(PR #2779)`
+
+#### Tenant/Repositories
+
+- Do not show search text if empty `(PR #3321)`
+
+#### Ui
+
+- Display Revision not found instead of Empty repo `(PR #3235)`
+
+#### Web
+
+- Add missing separator under organizations `(PR #3253)`
+
+#### Workspaces
+
+- Correctly apply management retries `(PR #3384)`
+- Spread out routerreconciler workload more `(PR #3377)`
+- Reduce frequency of custom input telemetry event `(PR #3342)`
+- Apply coupon when estimating price on existing subscription `(PR #3331)`
+- Tweak plan page copy again `(PR #3328)`
+- Use display name on join page `(PR #3326)`
+- Drill coupon from homepage, make sure coupon is applied immediately `(PR #3312)`
+- More sentence-casing fixes `(PR #3255)`
+- Fix capitalization in creation form `(PR #3218)`
+- Hide open-invites toggle when email domain is not allowed `(PR #3213)`
+- Price is monthly `(PR #3197)`
+- Fix name validation `(PR #3165)`
+- Include class in unseen instance counts, remove unseen instances from normal counts `(PR #3134)`
+- Log check-name errors as unexpected errors `(PR #3075)`
+- Test that post-normalization bad words are caught `(PR #3047)`
+
+#### Workspaces/At-Capacity
+
+- Capitalize error message `(PR #3381)`
+
+#### Workspaces/Metrics
+
+- Report all workspace/instance states `(PR #3297)`
+
+#### Others
+
+- Color removed from filter sidebar in search `(PR #3399)`
+- Change workspace icon in profile menu `(PR #3241)`
+- Fix yaml file `(PR #3183)`
+- Index matches safely `(PR #3168)`
+- Server checks reindex at 5.10 now `(PR #2881)`
+ - Single docker server checks for 5.10-reindex.completed instead of 5.1-reindex.completed
+
+### Chore
+
+#### Agents
+
+- Basic Telemetry for Code Review [CODY-4903] `(PR #3389)`
+- [CODY-4830] Update Conversation and Review store patterns `(PR #3259)`
+- Remove typebox for runtime type validation `(PR #3214)`
+
+#### Ci
+
+- Migrate rules_oci to MODULE.bazel `(PR #3352)`
+- Fixes gazelle issues `(PR #3296)`
+- Migrate rules_go and gazelle to bazel mod `(PR #1716)`
+
+#### Cloud
+
+- Update cloud-mi2 wolfi base image `(PR #3199)`
+
+#### Code Intelligence
+
+- Make scip-syntax parallelism configurable `(PR #3206)`
+- Use clearer names & error propagation in SCIW initialization `(PR #2997)`
+
+#### Deps
+
+- Upgrade sourcegraph-accounts-sdk-go `(PR #3142)`
+
+#### Dev
+
+- Upgrade to pnpm v9.15.4 `(PR #3266)`
+- Delete go.mod for monitoring/ directory `(PR #2951)`
+
+#### Modelconfig
+
+- Remove spammy logs `(PR #3452)`
+
+#### Msp/Cloudsql
+
+- Remove pgx.Acquire span `(PR #3141)`
+
+#### Release
+
+- Update src-cli dependencies for 6.0.0 release `(PR #3186)`
+ - Release src-cli 6.0.0
+
+#### Search
+
+- Permanently enable the new web app on dotcom `(PR #3448)`
+- Remove new branding branching logic `(PR #3270)`
+
+#### Security
+
+- Auto-update all packages in Sourcegraph base images `(PR #3482)`
+- Auto-update all packages in Sourcegraph base images `(PR #3239)`
+
+#### Workspaces
+
+- Remove cody upsell in workspace creation `(PR #3391)`
+ - OPTIONAL; info at [https://www.notion.so/sourcegraph/Writing-a-changelog-entry-dd997f411d524caabf0d8d38a24a878c](https://www.notion.so/sourcegraph/Writing-a-changelog-entry-dd997f411d524caabf0d8d38a24a878c)
+- Update ES Cody limits to 2x Enterprise `(PR #3069)`
+- Make user metadata available on userauth.UserInfo `(PR #3051)`
+
+#### Workspaces/Blocklists
+
+- Add 'unconfigured' to blocked names `(PR #3043)`
+
+#### Workspaces/Web
+
+- Rename 'quickJoin' vars to 'openInvite' `(PR #2974)`
+
+#### Others
+
+- Update list of allowed headers for untrusted clients `(PR #3486)`
+- Add events for hoverables `(PR #3433)`
+- Update third-party licenses `(PR #3414)`
+- Output formatting updates based on feedback `(PR #3349)`
+- Entitle URL updates `(PR #3345)`
+- Add more doc comments for file checker types `(PR #3307)`
+- Update third-party licenses `(PR #3273)`
+- Fix integration tests `(PR #3263)`
+- Update teams.yml for product platform changes `(PR #3252)`
+- Remove orphaned modules / import to non-exisiting module `(PR #3219)`
+- Drop hubspot logging from non-dotcom auth methods `(PR #3132)`
+- Update third-party licenses `(PR #3095)`
+- Remove gorilla/context `(PR #3089)`
+- Layout finetuning of Creating Workspaces and Tenant Onboarding `(PR #3065)`
+ - OPTIONAL; info at [https://www.notion.so/sourcegraph/Writing-a-changelog-entry-dd997f411d524caabf0d8d38a24a878c](https://www.notion.so/sourcegraph/Writing-a-changelog-entry-dd997f411d524caabf0d8d38a24a878c)
+
+### Reverts
+
+- Revert: use max_completion_tokens field for OpenAI and the inclusion of token usage in OpenAI streaming requests `(PR #-1)`
+- Revert "Omnibox: route likely code generation commands to Chat (#2969)" `(PR #2969)`
+
+### Uncategorized
+
+#### Others
+
+- Update Cody Web v0.31.0 `(PR #3474)`
+ - OPTIONAL; info at [https://www.notion.so/sourcegraph/Writing-a-changelog-entry-dd997f411d524caabf0d8d38a24a878c](https://www.notion.so/sourcegraph/Writing-a-changelog-entry-dd997f411d524caabf0d8d38a24a878c)
+- Gateway: Bump limits for ES `(PR #3409)`
+- Gomod: update Zoekt for file language fix `(PR #3408)`
+- Msp: use TFC robot email for IAP `(PR #3400)`
+- Alexjean baptiste cody 4813 azure gpt model enum update or override `(PR #3380)`
+- Web: Make CTA for workspaces correctly reload page for marketing content `(PR #3341)`
+- Fix path to pt to updated `useObservables` family of hooks `(PR #3322)`
+- Removing DeepSeek V3 model `(PR #3309)`
+ - OPTIONAL; info at [https://www.notion.so/sourcegraph/Writing-a-changelog-entry-dd997f411d524caabf0d8d38a24a878c](https://www.notion.so/sourcegraph/Writing-a-changelog-entry-dd997f411d524caabf0d8d38a24a878c)
+- Workspaces: Never show wallet payments `(PR #3304)`
+- Sg: Extend the mise check to early-exit if env var is set `(PR #3302)`
+- Refactor(cody-gateway) Remove support for OpenAI o1-mini model (CODY-4839) `(PR #3295)`
+ - Remove support for OpenAI o1-mini model.
+- Refactor(cody-gateway) Deprecate Gemini 1.5 Flash, Claude 3 Opus, Claude 3 Haiku, and Mixtral 8x7B (CODY-4839) `(PR #3293)`
+ - Deprecate Gemini 1.5 Flash, Claude 3 Opus, Claude 3 Haiku, and Mixtral 8x7B
+- Gomod: bump Zoekt after package restructuring `(PR #3271)`
+- Adding O3 mini model to OpenAI `(PR #3254)`
+ - Adding O3 mini model to OpenAI `(PR #3254)`
+- Telemetry: add ClientFeature for more granular reporting of search events `(PR #3229)`
+- Search: enable scip-ctags for C `(PR #3215)`
+- Cleanup: simplify search observables and switch to fetch-event-source `(PR #3196)`
+- Completions: improve prometheus metrics for code/chat completions `(PR #3181)`
+- Partially fix erroneous `svelte-check` errors in local dev `(PR #3180)`
+- Adding DeepSeek V3 support through fireworks `(PR #3170)`
+ - OPTIONAL; info at [https://www.notion.so/sourcegraph/Writing-a-changelog-entry-dd997f411d524caabf0d8d38a24a878c](https://www.notion.so/sourcegraph/Writing-a-changelog-entry-dd997f411d524caabf0d8d38a24a878c)
+- Lib/marketingtracking: publish module for SAMS to consume `(PR #3169)`
+- Web: Some more user menu polish `(PR #3140)`
+- Remove builtin rules from code review agent `(PR #3086)`
+- Workaround for `sg start minimal-sveltekit` and other "minimal" entrypoints `(PR #3085)`
+- Doc/workspaces: fix link to chargeback playbook `(PR #3076)`
+- Generate TypeScript types and runtime type validators for Agent API `(PR #3055)`
+- Update sg setup for employees `(PR #2990)`
+- Chore(Workspaces) Fix repo size increment from 500mb to 1 gig `(PR #2977)`
+- Feat(agents) Conversations API DB Tables [CODY-4683] `(PR #2964)`
+ - Adds `agent_conversations` and `agent_conversation_messages` tables as well as `ConversationStore`
+- Replace o1 preview model with o1 `(PR #2924)`
+ - OPTIONAL; info at [https://www.notion.so/sourcegraph/Writing-a-changelog-entry-dd997f411d524caabf0d8d38a24a878c](https://www.notion.so/sourcegraph/Writing-a-changelog-entry-dd997f411d524caabf0d8d38a24a878c)
+- Feature(codeintel): add syntax highlighting for Svelte `(PR #2690)`
+ - Added syntax highlighting for `.svelte` files
+- Mt-router: allow passthrough for instance health check endpoint `(PR #2689)`
+
+### Untracked
+
+The following PRs were merged onto the previous release branch but could not be automatically mapped to a corresponding commit in this release:
+
+- Fix Gerrit clone URL resolution (#3446) `(PR #3449)`
+- Fix inability to update Gerrit code host config URL (#3361) `(PR #3439)`
+ - Fix bug where the URL of a Gerrit code host connection could not be updated.(cherry picked from commit e6da1ceb9586bf109339f06220c1fdbbf570a6d9)
+- Prompt templates editor supports @ current mentions (#3397) `(PR #3436)`
+ - Feat: prompt templates editor supports dynamic @ mentionsPR description tips: [https://www.notion.so/sourcegraph/Write-a-good-pull-request-description-610a7fd3e613496eb76f450db5a49b6e](https://www.notion.so/sourcegraph/Write-a-good-pull-request-description-610a7fd3e613496eb76f450db5a49b6e)
+- Roll out new Gemini Models (#3357) `(PR #3412)`
+ - Move Gemini 2.0 Flash from Experimental to GA, add Gemini 2.0 Flash-Lite Preview Experimental and Gemini 2.0 Pro ExperimentalCo-authored-by: arafatkatze [arafat.da.khan@gmail.com](mailto:arafat.da.khan@gmail.com)
+(cherry picked from commit 4aa5aa41cc0f5e2be80c77e8e8709e198ff54b94)PR description tips: [https://www.notion.so/sourcegraph/Write-a-good-pull-request-description-610a7fd3e613496eb76f450db5a49b6e](https://www.notion.so/sourcegraph/Write-a-good-pull-request-description-610a7fd3e613496eb76f450db5a49b6e)
+- Backport 3254 to 6.0.x `(PR #3300)`
+- [backport] fix/web: add missing separator under organizations (#3253) `(PR #3282)`
+- Auto-update all packages in Sourcegraph base images `(PR #3237)`
+- [backport] feat/tenant: fix workspace management UI quirks (#3227) `(PR #3230)`
+- [backport] feat/web: Update cloning status to new designs (#2760) `(PR #3158)`
+- Layout finetuning of Creating Workspaces and Tenant Onboarding (#3065) `(PR #3139)`
+Revert "Fix: Buildkite Pipeline generates images with specific cloud tags for S2 deployments" `(PR #2985)`
+Revert "fix: set the tag in the push_all.sh script" `(PR #2989)`
+- Fix: Buildkite Pipeline generates images with specific cloud tags for S2 deployments `(PR #2985)`
+ - NA - No customer facing changes
+
+{/* RSS={"version":"v6.1.0", "releasedAt": "2025-02-17"} */}
+
+# 6.0 Patch 2
+
+> Attention - This patch contains security fixes for a know issue in previous 6.0 releases. This issue does not affect
+> 6.1 and later Sourcegraph releases. Customers on previous 6.0 releases are advised to upgrade to the latest version of Sourcegraph.
+> If you are required to continue on 6.0 release series, please upgrade to 6.0 Patch 2.
+
+## v6.0.12741
+
+- [sourcegraph](https://github.com/sourcegraph/sourcegraph/releases/tag/v6.0.12741)
+
+- [docker-compose](https://github.com/sourcegraph/deploy-sourcegraph-docker/releases/tag/v6.0.12741)
+
+- [helm](https://github.com/sourcegraph/deploy-sourcegraph-helm/releases/tag/v6.0.12741)
+
+- [kustomize](https://github.com/sourcegraph/deploy-sourcegraph-k8s/releases/tag/v6.0.12741)
+
+### Features
+
+#### Dev
+
+- Enable gcloud beta `(PR #3490)`
+
+#### Release
+
+- Fix post-release version selection `(PR #4659)`
+
+#### Others
+
+- Update cody web to 0.31.1 to fix issue with pasting linebreaks (#3696) `(PR #3728)`
+- Fix: prompt templates should not fail when pasting linebreaks
+
+
+### Uncategorized
+
+#### Others
+
+- [Backport 6.0.x] security/fix: don't print access tokens `(PR #4801)`
+
+{/* RSS={"version":"v6.0.12741", "releasedAt": "2025-04-09"} */}
+
+# 6.0 Patch 1
+
+> Attention - This patch contains a known security issue. This issue does not affect 6.1 and later Sourcegraph releases.
+> Customers on previous this release are advised to upgrade to the latest version of Sourcegraph.
+> If you are required to continue on 6.0 release series, please upgrade to 6.0 Patch 2.
+
+## v6.0.2687
+
+- [sourcegraph](https://github.com/sourcegraph/sourcegraph/releases/tag/v6.0.2687)
+
+- [docker-compose](https://github.com/sourcegraph/deploy-sourcegraph-docker/releases/tag/v6.0.2687)
+
+- [helm](https://github.com/sourcegraph/deploy-sourcegraph-helm/releases/tag/v6.0.2687)
+
+- [kustomize](https://github.com/sourcegraph/deploy-sourcegraph-k8s/releases/tag/v6.0.2687)
+
+### Features
+
+#### Cody-Gateway
+
+- Roll out new Gemini Models (#3357) `(PR #3412)`
+ - Move Gemini 2.0 Flash from Experimental to GA, add Gemini 2.0 Flash-Lite Preview Experimental and Gemini 2.0 Pro ExperimentalCo-authored-by: arafatkatze [arafat.da.khan@gmail.com](mailto:arafat.da.khan@gmail.com)
+(cherry picked from commit 4aa5aa41cc0f5e2be80c77e8e8709e198ff54b94)PR description tips: [https://www.notion.so/sourcegraph/Write-a-good-pull-request-description-610a7fd3e613496eb76f450db5a49b6e](https://www.notion.so/sourcegraph/Write-a-good-pull-request-description-610a7fd3e613496eb76f450db5a49b6e)
+
+#### Multitenant
+
+- Add support for alternate default tenant hostname `(PR #3176)`
+
+#### Security
+
+- Create Binary Authorization attestations when promoting images to public `(PR #3478)`
+
+#### Others
+
+- Prompt templates editor supports @ current mentions (#3397) `(PR #3436)`
+ - Feat: prompt templates editor supports dynamic @ mentionsPR description tips: [https://www.notion.so/sourcegraph/Write-a-good-pull-request-description-610a7fd3e613496eb76f450db5a49b6e](https://www.notion.so/sourcegraph/Write-a-good-pull-request-description-610a7fd3e613496eb76f450db5a49b6e)
+
+### Fix
+
+#### Multi Tenant
+
+- Fixing paper cuts for mt marketing launch (#3242) `(PR #3281)`
+- Misc wording fixes in workspaces onboarding `(PR #3207)`
+- Fixes welcome message alert `(PR #3174)`
+
+#### Source
+
+- Fix Gerrit clone URL resolution (#3446) `(PR #3449)`
+- Fix inability to update Gerrit code host config URL (#3361) `(PR #3439)`
+ - Fix bug where the URL of a Gerrit code host connection could not be updated.(cherry picked from commit e6da1ceb9586bf109339f06220c1fdbbf570a6d9)
+- Normalize code host URLs during code host config unmarsha… `(PR #3438)`
+- Gitserver: Unambiguously identify commit boundaries in git log `(PR #3411)`
+ - Commit listing should work correctly for repos which contain arbitrary characters in commit messages. This also affects downstream functionality such as commit graph updates needed for precise code navigation.Backport 2eae8e1 from #3359
+
+### Chore
+
+#### Security
+
+- Auto-update all packages in Sourcegraph base images `(PR #3237)`
+
+### Reverts
+
+ There were no reverts for this release
+
+### Uncategorized
+
+#### Others
+
+- [Backport 6.0.x] gitserver: Fix API endpoint for installation token creation `(PR #3432)`
+- [backport] chore/source: Update src-cli to 6.0.1 (#3365) `(PR #3416)`
+ - Update src-cli version to 6.0.1
+- [backport] fix/tenant: fix invitation expiry, user management UX improvements (#3353) `(PR #3356)`
+- [Backport 6.0.x] tenant: Also allow to add fork repos `(PR #3348)`
+- Backport 3254 to 6.0.x `(PR #3300)`
+- [backport] feat/prompts: support public prompts/saved-searches in workspaces using RBAC (#3257) `(PR #3294)`
+- [backport] fix/web: add missing separator under organizations (#3253) `(PR #3282)`
+- [backport] feat/tenant: fix workspace management UI quirks (#3227) `(PR #3230)`
+
+{/* RSS={"version":"v6.0.2687", "releasedAt": "2025-02-12"} */}
+
+
+# 6.0 Patch 0
+
+> Attention - This patch contains a known security issue. This issue does not affect 6.1 and later Sourcegraph releases.
+> Customers on previous this release are advised to upgrade to the latest version of Sourcegraph.
+> If you are required to continue on 6.0 release series, please upgrade to 6.0 Patch 2.
+
+> Attention - Postgres 12 is no longer supported! If upgrading from Sourcegraph version 5.9 or earlier, this release will update our included database container images from Postgres 12 to Postgres 16.
+> Customers are advised to have a database backup before upgrading. See our [postgres 12 end of life](https://sourcegraph.com/docs/admin/postgres12_end_of_life_notice#postgres-12-end-of-life) notice for more information.
+>
+> Also be sure to check your deployment type's [upgrade notes](http://sourcegraph.com/docs/admin/updates#instance-specific-procedures)!
+
+## v6.0.0
+
+- [sourcegraph](https://github.com/sourcegraph/sourcegraph/releases/tag/v6.0.0)
+
+- [docker-compose](https://github.com/sourcegraph/deploy-sourcegraph-docker/releases/tag/v6.0.0)
+
+- [helm](https://github.com/sourcegraph/deploy-sourcegraph-helm/releases/tag/v6.0.0)
+
+- [kustomize](https://github.com/sourcegraph/deploy-sourcegraph-k8s/releases/tag/v6.0.0)
+
+### Features
+
+#### Agents
+
+- Make review agent configurable via program files `(PR #2962)`
+ - The Review agent now requires the program file `.sourcegraph/review-agent.json` with at least the content `"{}"` to enable posting Pull Requests review through the GitHub App. The JSON file may contain additional configuration options to override defaults of the `ReviewRequestConfiguration` object (see OpenAPI spec)
+
+#### Ci
+
+- Publish images with branch tag on release branch `(PR #3039)`
+- Tag release branch images with branch image tag `(PR #3032)`
+
+#### Cloud
+
+- Add support to collect web vitals metrics to web-svelte `(PR #2735)`
+
+#### Code Intelligence
+
+- Add audit logs for changes to syntactic jobs `(PR #2893)`
+- Highlights json files with tree-sitter `(PR #2469)`
+ - Improved highlighting for JSON files
+
+#### Cody
+
+- Improve rendering of diagnostics as GitHub comments `(PR #2954)`
+ - The Review Agent now includes the rule ID when posting comments on pull requests. By default, the minimum review severity is errors (previously it was warning). When the minimum severity is overridden to be warnings, then the review comments will also include the severity.
+- Make Review Agent rule detection configurable `(PR #2913)`
+ - Configure custom review rules for the Review Agent by adding `*.rule.md` files nested under `.sourcegraph/` directories in any ancestor director of files in the diff.
+- Sourcegraph Agents `(PR #2739)`
+ - New `/.api/agents/**` endpoints to manage the creation of Sourcegraph Agents (EAP feature).
+ - New support to automatically review GitHub Pull Requests with a Review Agent via GitHub Apps (EAP feature).
+- First stab at a Code Review Agent API `(PR #2568)`
+ - New `GET /.api/tools` endpoint to list tool definitions for Sourcegraph API endpoints to use with the LLM /chat/completions endpoint for function calling.
+ - New `POST /.api/review/diff` endpoint to get a list of code review comments given a git diff (including GitHub pull requests and Gitlab merge requests).
+
+#### Dev
+
+- Add support to export otel metrics to prom in local dev `(PR #2781)`
+
+#### Dotcom
+
+- Support Svelte workspace switcher in dotcom `(PR #2675)`
+- Enable workspaces-prod proxy `(PR #2664)`
+- Add feature flag to enable React switcher in dotcom POC `(PR #2659)`
+
+#### Msp
+
+- Add client details to MSP audit logs `(PR #2887)`
+- Enable CloudSQL Enterprise Plus with postgresql.highAvailability `(PR #2682)`
+- Upgrade CloudSQL to POSTGRES_16 `(PR #2667)`
+- Support BigQuery table partitioning `(PR #2597)`
+
+#### Multi Tenant
+
+- Enable extension setup step for everyone `(PR #3137)`
+- Add org wasn't added modal UI `(PR #3072)`
+- Add cancel subscription UI `(PR #3044)`
+- Polish join workspace and status pages `(PR #2900)`
+- Support 3ds and redirection-based payment flow for workspace creation `(PR #2865)`
+- Enable the new Sourcegraph branding by default `(PR #2801)`
+- Polish workspace creation flow `(PR #2787)`
+- Prepare common svelte UI for workspaces app `(PR #2734)`
+- Connect repositories management page to API `(PR #2688)`
+- Improve switch tenant UI `(PR #2656)`
+- Add workspace billing settings page `(PR #2600)`
+- Add workspace settings users page `(PR #2504)`
+- Add workspace settings general page `(PR #2503)`
+- Add workspace settings main layout `(PR #2502)`
+
+#### Multi-Tenant/Mt-Router
+
+- Add prod deployment `(PR #2622)`
+
+#### Multitenant
+
+- Add UseRandomExternalAccount code host connection option and use it in MT `(PR #2821)`
+- Disable web app toggle by default on workspaces `(PR #2771)`
+- No pings, no telemetry redaction `(PR #2491)`
+
+#### Rbac
+
+- Add USER_EXTERNAL_ACCOUNTS#READ_ALL_USERS for workspace admin `(PR #2512)`
+
+#### Release
+
+- Address pg12 -> pg16 drift with normalization `(PR #2950)`
+ - Normalize drift detection to handle for postgres 12 to 16 upgrade
+
+#### Search
+
+- Code search is homepage for workspaces `(PR #3127)`
+- Add upsell menu items `(PR #3122)`
+- Update production favicon `(PR #2909)`
+- Add omnibox routes `(PR #2797)`
+- Add new main navigation (feature flagged) `(PR #2768)`
+- Use new brand logo to web apps (feature flagged) `(PR #2767)`
+- (new web app) Add download option to file page `(PR #2461)`
+- (new web app) Add padding and messages to end of search results `(PR #2455)`
+
+#### Source
+
+- Multitenant: add "edit" state when editing workspace repositories `(PR #2849)`
+
+#### Telemetry
+
+- Allowlist model metadata on `privateMetadata` `(PR #2832)`
+
+#### Tenant/Billing
+
+- Use EstimateWorkspaceSubscriptionSubtotal in UpdateSeatsModal `(PR #2930)`
+
+#### Tenants/Telemetry
+
+- Report external URL for workspace identifier `(PR #2602)`
+
+#### Web/Tenant
+
+- Update selected repos and repo size with pending state `(PR #2925)`
+
+#### Workspace
+
+- Open up instance url inside of vs code `(PR #2782)`
+- Add billing link to request-to-join template params `(PR #2596)`
+
+#### Workspaces
+
+- Add background goroutine job that emits telemetry about repo count and size `(PR #3130)`
+- Metrics for subscription renewals and debt collection `(PR #2886)`
+- Prevent workspace ID prefix from being used in names `(PR #2841)`
+- Import suspiciousnames to blocklist `(PR #2803)`
+- Add AdministrationService, /internal UI for suspending workspaces `(PR #2786)`
+- Add some plans telemetry `(PR #2783)`
+- Restrict display name length `(PR #2776)`
+- Add suspension states `(PR #2751)`
+- Bypass some workspace name checks with SAMS user metadata `(PR #2733)`
+- Allow configurable sender address `(PR #2729)`
+- Add seat count events `(PR #2665)`
+- State transition log `(PR #2661)`
+- Required email domains `(PR #2614)`
+- Improve wording of name-check errors, add telemetry `(PR #2593)`
+- Initial web and service telemetry `(PR #2522)`
+- Global creation control `(PR #2498)`
+- Status pages for workspace not found and suspended `(PR #2438)`
+- Handle SAMS user deletion `(PR #2384)`
+
+#### Workspaces/Billing
+
+- Counter for stripe API usage `(PR #2855)`
+
+#### Workspaces/Internal
+
+- Support ID lookup `(PR #2839)`
+
+#### Workspaces/Routerreconciler
+
+- Make upsert reconcile incremental `(PR #2848)`
+
+#### Workspaces/Settings
+
+- Add workspace ID to sidebar `(PR #2728)`
+
+#### Workspaces/Web
+
+- Add telemetry events for workspace plans `(PR #2840)`
+- Set title to Sourcegraph Workspaces `(PR #2834)`
+
+#### Others
+
+- Add CTA for agents API `(PR #2799)`
+- Prompt templates now support specific @ mentions `(PR #2793)`
+ - Feat: prompt templates now support specific @ mentions
+- Propagate bestScoringLine and use that to center chunks in the search UI `(PR #2683)`
+ - For broad matches, we now center the best-scoring line in search results
+- Add tools support to LLM API (aka. function calling) `(PR #2537)`
+ - The `/.api/llm/chat/completions` endpoint now support function calling via the `tools` property. This feature works when using the LLM providers: OpenAI, Anthropic, Fireworks, AWS Bedrock, and Gemini.
+- Add ability to boost user-relevant repos for `patterntype:nls` `(PR #2489)`
+
+### Fix
+
+#### Actor
+
+- Better preserve anonymous user ID for telemetry `(PR #2546)`
+
+#### Agents
+
+- Remove leftover printf statement `(PR #3079)`
+ - Backport 9639850855bb169f7dee4fbcff869c77c17f9328 from #3007
+- Fix bug in AgentStore.ListByWebhookID and LLMChatClient `(PR #3054)`
+ - Fixed bug in Review Agent where it didn't post review comments even
+for small diffs
+Backport 4710b59 from #3019
+
+#### Auth
+
+- Improve session expiration behavior `(PR #2765)`
+ - We are changing the behavior of session expiration to be a hard-cap instead of a rolling window.
+`auth.sessionExpiry` will now set a hard-limit on the sessions lifetime, and users will have to re-authenticate after this period.
+To preserve the previous behavior where sessions would be invalidated after they haven't been used for a while, a new configuration option named `auth.maxSessionIdleDuration` has been introduced that controls session expiration based on inactivity.
+- Don't expire sessions based on OAuth token validity `(PR #2761)`
+ - Fixed an issue where Sourcegraph user sessions initiated via OAuth integrations did not respect the `auth.sessionExpiry` configuration and expired much earlier.
+
+#### Ci
+
+- Include push version tag to private registry `(PR #3074)`
+- Add handling for unbound variable in push_all.sh `(PR #3036)`
+
+#### Cloud
+
+- Add explicit bucket to lcp metrics `(PR #2846)`
+- Typo in metric attrs name `(PR #2804)`
+
+#### Code Intelligence
+
+- Better cleanup in syntactic indexing worker `(PR #3156)`
+- Don't create unscoped Logger `(PR #2945)`
+- Overwrite old->new commit for syntactic indexing jobs `(PR #2764)`
+- Handle missing committer date in policy code `(PR #2696)`
+- Add DB constraints for syntactic jobs+policies `(PR #2566)`
+ - In the site admin configuration for code graph policies, restricts the creation of policies for syntactic indexing to HEAD-only. This restriction may be lifted in the future. Policies for precise auto-indexing are not affected.
+- Enforce auth conditions in repo scheduling `(PR #2549)`
+
+#### Cody
+
+- Add billing metadata to prompt library events `(PR #3116)`
+- Make public OpenAPI docs work again `(PR #3081)`
+ - Backport dc8deea005067145855b03a3344675386bc75be7 from #3078
+- Minor fixes `(PR #2916)`
+
+#### Cody-Gateway
+
+- Fail-open Enterprise subscription sync `(PR #2775)`
+
+#### Dev
+
+- Fix transitive use of global counters in tests `(PR #2905)`
+
+#### Dev/Svelte
+
+- Send all 'default.' requests to server `(PR #2923)`
+
+#### Dotcom
+
+- Tweaks for dotcom-mode workspace switcher `(PR #2684)`
+
+#### Gitserver
+
+- Return error on no merge base `(PR #2790)`
+
+#### Goroutine
+
+- Do not redact stacktrace `(PR #2571)`
+
+#### Intent
+
+- Remove heuristic for marking one-term queries as searches `(PR #2580)`
+
+#### Multi Tenant
+
+- Fixes welcome message alert `(PR #3174)`
+- Fix flashes and incorrect free up seat mutation in user management `(PR #3058)`
+- Add support for workspace vscode sign up flow `(PR #2942)`
+- Force to keep only one dropdown menu visible `(PR #2903)`
+- Fix small paper cuts in workspace-creation flow `(PR #2809)`
+- Fix Safari 16.6 billing layout (sub-grids rows) `(PR #2721)`
+- Add a better error handling for workspace settings pages `(PR #2707)`
+- Fix post workspace delete redirection `(PR #2698)`
+- Fix user management reduce seats case `(PR #2647)`
+- Fixes update seats modal max count validation `(PR #2616)`
+- Fixes general setting page re-submitting problem `(PR #2548)`
+
+#### Multitenant
+
+- Public repositories should no longer be duplicatable `(PR #2828)`
+- Only evaluate newly added repositories `(PR #2701)`
+- Add telemetry for when repositories are added or removed `(PR #2346)`
+ - N/A
+- Add telemetry event for when onboarding repository checks fail `(PR #2337)`
+ - N/A
+
+#### Navbar
+
+- Add divider after orgs `(PR #2921)`
+
+#### Observability
+
+- Align Cody completions metrics queries with chart names in Grafana `(PR #2476)`
+
+#### Release
+
+- Add handling of cp failure for postgres conf `(PR #3113)`
+ - Fix(rel): add handling for permissions errors when handling custom Postgres configurations in database containers.Backport 67bddb2 from #3041
+
+#### Search
+
+- Fix brand logo and colors `(PR #3120)`
+- Do not show code search menu item when code search is disabled `(PR #3118)`
+- (new web ui) Add search upsell page `(PR #2979)`
+- Update breadcrumbs integration test `(PR #2960)`
+- Cody marketing page redirect on dotcom `(PR #2952)`
+- Update response dashboards to use streaming search `(PR #2932)`
+- Insights: fix mouse click cursor behavior when creating new insight `(PR #2851)`
+- Accept escaped characters in `content` filters `(PR #2807)`
+- Fix repo-rev (button-group) ui `(PR #2806)`
+- Add response telemetry for streaming search `(PR #2784)`
+- VSCode Search extension - Auth panel not loading when filesystem is case sensitive `(PR #2713)`
+ - Fixes `404 errors when trying to load "authSidebar.js"` when the Code Search VS Code extension is used with the VSCode Remote SSH extension
+- Remove alert suggesting structural search `(PR #2615)`
+- (new web ui) Open files in new tab when clicked on with ctrl/cmd `(PR #2557)`
+- Add missing return in SearchQuery.RepositoryRevSpecs `(PR #2521)`
+- (new web app) Redirect /cody to /cody/chat `(PR #2475)`
+- (new web app) Set correct fuzzy finder request headers `(PR #2449)`
+- (new web app) Respect notices settings `(PR #2417)`
+
+#### Source
+
+- Check if user can access installations for public repositories `(PR #2963)`
+- Change ListSelectedRepositories to filter for the random external account connection `(PR #2911)`
+- Fix UseRandomExternalAccount connection check `(PR #2904)`
+- Multitenant: fix nil panic in ListSelectedRepositories multitenant endpoint `(PR #2844)`
+- Do not create a connection with no repositories `(PR #2395)`
+
+#### Telemetry
+
+- Uniformly apply marketingtracking, clean up deprecated values `(PR #2601)`
+
+#### Telemetry/Teestore
+
+- Do not write to store concurrently in tx `(PR #2888)`
+
+#### Telemetrygatewayexporter
+
+- Support export target without a port `(PR #2745)`
+
+#### Tenant
+
+- Disable workspaces for SOAP users `(PR #2490)`
+
+#### Tenant/Reconciler
+
+- Use nil-safe field getter when applying feature flags `(PR #2408)`
+
+#### Tenant/Settings
+
+- Fix workspace display name update `(PR #2705)`
+
+#### Tenant/Users
+
+- Only spin on specific action `(PR #2971)`
+
+#### Tenants/Web
+
+- Magic redirect to sign-out -> sign-in if Workspaces requests return Code.Unauthenticated `(PR #2421)`
+
+#### Ui
+
+- Update error page when GitHub account is not yet connected `(PR #3059)`
+- Disable adding more MT repositories while repositories are being saved `(PR #3010)`
+- Set sideEffects path in client/ui to correct `init.ts` path `(PR #2773)`
+
+#### Workspaces
+
+- Dynamic logout link `(PR #2854)`
+- Catch panics in connectrpc handlers `(PR #2837)`
+- Remove trace ID from block result `(PR #2831)`
+- Include all workspaces in name availability check `(PR #2794)`
+- Check for user metadata if 'sourcegraph.com' is a required email domain `(PR #2654)`
+- Ignore missing subscription when pruning invitations, rename ReconcileConsumedSeats `(PR #2650)`
+- Improve UX when email domain is not allowed `(PR #2618)`
+- Error indicates name must be lowercase `(PR #2599)`
+- Rename URL fields to URI per AIP `(PR #2595)`
+- Prevent panic in billing renewer `(PR #2570)`
+- Address seat count problems `(PR #2482)`
+
+#### Workspaces/Billing
+
+- No-op SubscriptionUpdater returns ErrNoSubscriptionUpdateRequired `(PR #2572)`
+
+#### Workspaces/Blocklists
+
+- Relax restrictions around generic terms `(PR #2712)`
+
+#### Workspaces/Dev
+
+- Do not use wrangler with concurrency `(PR #2730)`
+
+#### Workspaces/Settings
+
+- Remove workspace ID on collapse `(PR #2742)`
+
+#### Others
+
+- Respect errors from sql row iterations `(PR #2948)`
+- Std upgradetest with pv set doesn't go beyond targetVersion `(PR #2928)`
+ - NA
+- Add missing error assignment `(PR #2864)`
+- Tweak relevant repos heuristic `(PR #2655)`
+- Extract runner config into env vars `(PR #2637)`
+- Don't show current prompt in suggested area `(PR #2582)`
+ - Fix: don't show current prompt in suggestions
+- Always saturate the limit when boosting `(PR #2479)`
+- Add context to intent call `(PR #2432)`
+
+### Chore
+
+#### Ci
+
+- Add new search team members to teams.yml `(PR #2724)`
+
+#### Code Intelligence
+
+- Log connection stats on cancellation for precise queries `(PR #3003)`
+- Remove duplicate IndexEnqueuer interfaces `(PR #2944)`
+- Remove spurious "=" in site admin UI for editing policies `(PR #2902)`
+- Syntactic policies UI restrict to HEAD `(PR #2774)`
+- Introduce experimental olly package with helper functions `(PR #2753)`
+- Fix flaky test in syntactic indexing store_test `(PR #2722)`
+- Document quirks in various pattern syntaxes `(PR #2687)`
+- Use collections.SliceMultiMap in policies API `(PR #2565)`
+- Enqueue syntactic jobs in a single query `(PR #2555)`
+- Remove reposcheduler.Store interface `(PR #2551)`
+- Move unwrap function to check package `(PR #2540)`
+- Add test for precise usagesForSymbol `(PR #2535)`
+- Add doc comment about precondition `(PR #2534)`
+- Add fast path for commit checking `(PR #2532)`
+- Bump scip dependency `(PR #2531)`
+- Fix wrong napkin math in comment `(PR #2528)`
+- Avoid panic on missing committer date `(PR #2527)`
+- Avoid panic on nil metadata `(PR #2526)`
+- Rename & move codenav.PinnedIndexCommits -> codegraph.PinnedUploadKey `(PR #2454)`
+
+#### Cody
+
+- Use same buckets for completions latency metrics `(PR #2746)`
+- Remove codypcw's buf.gen.yaml `(PR #2673)`
+- Create proper interface for CompletionsHandler [CODY-4619] `(PR #2623)`
+- Measure completions overhead by feature `(PR #2533)`
+- Measure sg instance to cody gw network latency `(PR #2501)`
+- Refactor completions handler latency metrics `(PR #2496)`
+- Measure completions handler overhead `(PR #2478)`
+- Add upstream request tracing for completions `(PR #2429)`
+- Remove test domain `(PR #2400)`
+
+#### Dev
+
+- Cap number of connections more explicitly `(PR #3001)`
+- Document purpose of onconflict linter `(PR #2882)`
+- Avoid horizontal scaling for syntactic enqueuer `(PR #2813)`
+- Clarify docs for redispool.Store & NewPeriodicGoroutine `(PR #2812)`
+- Fix flaky ordering in test `(PR #2811)`
+- Add env var to disable assertions `(PR #2810)`
+- Add columns to track which policy created an auto-indexing job `(PR #2788)`
+- Introduce String() method on api.CommitID `(PR #2757)`
+- Replace Id -> ID in internal/codeintel `(PR #2755)`
+- Fix typo in function name `(PR #2693)`
+- Add helper function for printing error trees `(PR #2692)`
+- Improve doc comment for REDMetrics `(PR #2635)`
+- Remove unused field in REDMetrics `(PR #2634)`
+- Use clearer names & comments in Rockskip `(PR #2624)`
+- Rename db -> codeIntelDB in Rockskip for clarity `(PR #2606)`
+- Refactor Rockskip service config to dedicated type `(PR #2605)`
+- Move codeintel/core.Option to lib/core `(PR #2578)`
+- Add collections.SliceMultiMap type `(PR #2564)`
+- Add collections.SetMultiMap type `(PR #2556)`
+- Migrate other directories from require.NoError to check.MustNoError `(PR #2554)`
+- Migrate internal/ from require.NoError to check.MustNoError `(PR #2553)`
+- Migrate cmd/ from require.NoError to check.MustNoError `(PR #2552)`
+- Filter out archived and forked repos in reposcheduler `(PR #2550)`
+ - Auto-indexing is disabled for forks and archived repositories. This is currently not configurable.
+- Migrate cmd/ from require.Equal to check.MustEqual `(PR #2541)`
+- Minor enhancements to check package `(PR #2530)`
+- Introduce generic collections.Stack type `(PR #2511)`
+- Move iterext package to lib/ `(PR #2510)`
+- Move collections package to lib/ `(PR #2509)`
+- Move rapidext package to lib/ `(PR #2508)`
+- Introduce types for limiting reads `(PR #2470)`
+- Replace ioutil -> io due to deprecation `(PR #2465)`
+- Generalize bytesize package to handle more units `(PR #2464)`
+- Update prettier ignore file for Svelte app `(PR #2416)`
+
+#### Msp
+
+- Upgrade ConnectRPC `(PR #2710)`
+- Upgrade MSP cloud.google.com/go dependencies `(PR #2709)`
+- Upgrade TF providers, remove nobl9 `(PR #2681)`
+
+#### Search
+
+- Migrate Button component to Svelte 5 `(PR #2868)`
+- Upgrade to SvelteKit v2.16.0 and Svelte v5.19.0 `(PR #2867)`
+- (new web ui) Run `pnpm format` `(PR #2850)`
+- Vsce: patch release v2.2.20 `(PR #2748)`
+- Add changelog entry for PR 2713 `(PR #2747)`
+- (new web ui) Update to Svelte 5.16.2 `(PR #2590)`
+- (new web app) Update svelte and kit to latest versions `(PR #2567)`
+
+#### Security
+
+- Auto-update all packages in Sourcegraph base images `(PR #2500)`
+- Auto-update all packages in Sourcegraph base images `(PR #2360)`
+
+#### Workspaces
+
+- Fix url/text for user menu workspace link `(PR #2843)`
+- Style fixes on Workspace Settings, General Settings and User settings `(PR #2798)`
+- Refactor name-checking to helper `(PR #2726)`
+- Add some improved API docstrings `(PR #2708)`
+- Enable MSP rollouts `(PR #2619)`
+- Rename 'loginservice' to 'xdomainloginservice' `(PR #2544)`
+- Move SPA handler to 'spaservice' subpackage `(PR #2543)`
+- Update workspace repo size limit `(PR #2480)`
+
+#### Others
+
+- Layout finetuning of Creating Workspaces and Tenant Onboarding (#3065) `(PR #3139)`
+- Polish buy seats modal `(PR #2917)`
+- Remove intent heuristic `(PR #2791)`
+- Delete unused DeleteOrg code `(PR #2585)`
+- Replace NewBuffer([]byte("str")) -> NewBufferString("str") `(PR #2466)`
+- Make error message actionable for invalid date format `(PR #2401)`
+
+### Test
+
+#### Tenant/Reconciler
+
+- E2E QA sanity checks on reconciler `(PR #2460)`
+
+### Refactor
+
+#### Dev
+
+- Cleanup and fix new web app build process `(PR #2474)`
+
+### Reverts
+
+- Revert sentry, opsgenie, fix deprecation notice `(PR #-1)`
+- Revert "fix/batch: use latest ubuntu LTS in hello world template (#28… `(PR #28)`
+- Revert "fix: set the tag in the push_all.sh script" `(PR #2989)`
+
+### Uncategorized
+
+#### Others
+
+- [Backport 6.0.x] Update Cody Web v0.29.0 `(PR #3162)`
+- [backport] feat/web: Update cloning status to new designs (#2760) `(PR #3158)`
+- [Backport 6.0.x] onboarding: add input field to selected repo List `(PR #3154)`
+- Backport 3148 to 6.0.x `(PR #3151)`
+- [Backport 6.0.x] repoupdater: Don't grow backoff bigger than int32 `(PR #3135)`
+- [Backport 6.0.x] workspace settings: mention query in info message `(PR #3112)`
+- [Backport 6.0.x] fix(agents): use plural naming convention for API endpoints `(PR #3080)`
+ - Renamed REST API endpoints to consistently use plural names in `/.api/review**` and `/.api/tool`. For example, `GET /.api/reviews/diagnostics/ID` instead of `GET /.api/review/diagnostic`. See OpenAPI spec for updated paths. Backport 864c824e184a7dc84df694797c5603883d72ccf1 from #3028
+- BACKPORT - Revert "feat: add CTA for agents API (#2799)" `(PR #3048)`
+- [Backport 6.0.x] Changes naming "Open" to "Unused" seats `(PR #3029)`
+- Omnibox: route likely code generation commands to Chat `(PR #2969)`
+- Update Cody Web v0.27.0 `(PR #2968)`
+- Update Cody Web v0.26.0 `(PR #2966)`
+- Update Cody Web v0.25.0 `(PR #2959)`
+- Auth: Fixup check for canSignOut `(PR #2958)`
+- Omnibox: hard boost current repo and relevant repos `(PR #2943)`
+- Allowlist `language` on `cody-autoedit` `(PR #2941)`
+- Tenant(web): Don't advertise upcoming code host support `(PR #2940)`
+- Web: Fix page header for create workspace page `(PR #2939)`
+- Web: Fix currency localization `(PR #2938)`
+- Tenant: Only set feature flags required for the launch `(PR #2937)`
+- Tenant: Add structured log message about missing tenant to alert on `(PR #2935)`
+- Omnibox: disable intent detection when CG is unavailable `(PR #2934)`
+- Update Cody Web to 0.24.0 `(PR #2920)`
+ - Update Cody to 0.24.0
+- Bug: Adds a link to stripe portal on the Last Payment Failed warning `(PR #2919)`
+- Sg: make `.tool-versions` parsing better and silence mise `(PR #2918)`
+- Tenant: Set cody gateway rate limits `(PR #2915)`
+- Adds style to pending invited users `(PR #2898)`
+ - Adds style to pending invited users `(PR #2898)`
+- Tenant: Add back without cancel for dormancy check `(PR #2883)`
+- Tenant(repos): Expose mirrorInfo for repos for all repos to admins `(PR #2876)`
+- Web: Prevent access to workspace setup and settings for non-admins `(PR #2874)`
+- Accessrequest: Don't allow access requests for authenticated users `(PR #2873)`
+- Auth: Don't repeat code for mocked providers `(PR #2872)`
+- Auth: Code cleanup `(PR #2862)`
+- Web: Fix click target for delete workspace button `(PR #2861)`
+- Session: Remove sign-out cookie `(PR #2860)`
+- Session: Don't invalidate every active user session on sign out `(PR #2859)`
+- Tenant: Don't special case user account in onboarding `(PR #2847)`
+- Tenant: Enable agentic feature flags `(PR #2830)`
+- Web: Use new logo in more places `(PR #2823)`
+- Workspaces: Update favicon `(PR #2819)`
+- [CODY-4627] Agent Review Tables take 3 `(PR #2815)`
+ - Adds implementations for `GET .api/agents/review/{review_id}`, `GET .api/agents/review/diagnostic/{diagnostic_id}/`, and `POST .api/agents/review/diagnostic/{diagnostic_id}/feedback`
+- Web: Temporarily restore logo but break Safari dark mode logo `(PR #2808)`
+- Gomod: bump Zoekt for BM25 line scoring `(PR #2780)`
+- Disable streaming in LLM API if not explicitly enabled `(PR #2778)`
+ - `./api/llm/chat/completions` only streams response if `"stream": true` is passed in the request body
+- Workspaces: Apply correct repo size limit `(PR #2772)`
+- Added more clarity around workspace deletion `(PR #2769)`
+- Workspaces: Add back org namespace to list of selected repos `(PR #2737)`
+- Security/fix: always return absolute URLs `(PR #2727)`
+- Order by NULLS LAST when sorting repositories in GQL API `(PR #2725)`
+- Tenant: Set dormancy threshold to 1 week `(PR #2723)`
+- Remove clustering dev script `(PR #2720)`
+- Web: Port new user menu to react `(PR #2718)`
+- Globalstate: Simplify store and reduce writes `(PR #2717)`
+- Only `UPDATE global_state` to set initialized if not initialized `(PR #2716)`
+- Globalstate: Don't update row on every call `(PR #2715)`
+- Skip pre-exit hook on aspect-default queue `(PR #2694)`
+- Web: More alignment of nav dropdown with designs `(PR #2691)`
+- Tenant: Small improvements to MT app `(PR #2680)`
+- Update Cody Web v0.22.0 `(PR #2678)`
+- NLS: support quoted phrases `(PR #2677)`
+- Workspaces: Consolidate web config and add web URL `(PR #2670)`
+- Auth: Fixup some auth redirections `(PR #2668)`
+- NLS: simplify query parsing logic `(PR #2662)`
+- Cmd/cloud-ops-interview: init service `(PR #2658)`
+- Gomod: bump Zoekt for 'best line match' feature `(PR #2653)`
+- Auth: Don't allow CreatePassword when builtin auth is off `(PR #2644)`
+- Tenant(githubapp): Expose Sourcegraph repo on resolver list `(PR #2641)`
+- Change model to beta `(PR #2639)`
+- Gating: Allow cloud init for workspaces instance `(PR #2638)`
+- NLS: disable stemming `(PR #2620)`
+- Tenant: Enable autoedits in every tenant on creation `(PR #2607)`
+- NLS: always rank literal matches first `(PR #2598)`
+- Repo: Allow to get totalCount for repositories as non-admin `(PR #2591)`
+- Auth: Make sign out more explicit and clean up normalization `(PR #2589)`
+- Auth: Clarify integration points and middlewares `(PR #2588)`
+- Auth: Consolidate auth provider redirects `(PR #2587)`
+- Httpapi Cleanup handler creation `(PR #2586)`
+- Auth: Slightly clean up auth code `(PR #2584)`
+- Conf: Use sourcegraph controlled default domain `(PR #2583)`
+- Restrict auto-edits model to only pro users `(PR #2579)`
+- NLS: avoid tokenizing filenames `(PR #2576)`
+- NLS: simplify find symbol heuristic `(PR #2561)`
+- Respect `count:` for nls search `(PR #2560)`
+- Logging: Fix incorrect use of logger `(PR #2525)`
+- Change the deployment id for autoedits model `(PR #2507)`
+- Sg: add support to retrieve a sams idp client `(PR #2497)`
+- Frontend: Reduce amount of dependencies passed around `(PR #2450)`
+- Tenant: Mark tenant as seen even if request is cancelled `(PR #2441)`
+- Tenant: Add intent detection FF for new hosts `(PR #2437)`
+- Ci: Execute backcompat tests as PG16 `(PR #2427)`
+- Tenant: Allow to add 100 repos to the GitHub App `(PR #2426)`
+- Tenant: Allow to add more than 30 repos to the GitHub App `(PR #2425)`
+- Bitbucketcloud: Fix repo perms syncing for inherited permissions and groups `(PR #2398)`
+ - Fixed an issue with Bitbucket Cloud permission syncing where inherited permissions and group permissions were not correctly reflected.
+- Dotcom, workspaces: propagate 'plg' namespace metadata as feature flags `(PR #2382)`
+- Gating: Consolidate License and Subscription resolvers `(PR #2359)`
+- Gating: Move repo size and count constraints into provider `(PR #2356)`
+- Gating: Implement more parts of workspaces gating `(PR #2355)`
+- Gating: Enable workspaces gating provider `(PR #2307)`
+- Gating: Add GrantDisplayName to Provider `(PR #2306)`
+- Gating: Add provider specific background routines `(PR #2305)`
+- Gating: Move TelemetryExportMode and AccessTokenInstanceIdentifier into Provider `(PR #2304)`
+- Gating: Reduce number of references to global gating provider `(PR #2301)`
+- Gating: Remove license mocks `(PR #2300)`
+- Gating: Move license expiration checks fully into CheckGrant `(PR #2299)`
+- Gating: Remove unused fields from ProductLicenseInfo `(PR #2297)`
+- Gating: Remove unused redundant licenseinfo resolver `(PR #2296)`
+- Gating: Unexport Plan and check for all license keys `(PR #2295)`
+- Gating: Add MaximumUserCount to provider interface `(PR #2294)`
+- Gating: Implement TrueUp feature `(PR #2293)`
+- Gating: Remove IsFreePlan `(PR #2210)`
+- Redis: Clarify store requirements and improve test setup `(PR #2020)`
+- Repo: Expose repository settings page as read-only to non-admins `(PR #1897)`
+- Authz: Craft authz provider factory and pass around explicitly `(PR #1893)`
+- Repoupdater: Remove in memory scheduler `(PR #1473)`
+- Tenant: Mark all views as security_invoker `(PR #744)`
+
+### Untracked
+
+The following PRs were merged onto the previous release branch but could not be automatically mapped to a corresponding commit in this release:
+
+- Log connection stats on cancellation for precise queries `(PR #3002)`
+- Cap number of connections more explicitly `(PR #2999)`
+- Auto-update all packages in Sourcegraph base images (5.11.x) `(PR #2494)`
+- [Backport 5.11.x] bitbucketcloud: Fix repo perms syncing for inherited permissions and groups `(PR #2399)`
+ - Fixed an issue with Bitbucket Cloud permission syncing where inherited permissions and group permissions were not correctly reflected.
+
+{/* RSS={"version":"v6.0.0", "releasedAt": "2025-01-29"} */}
+
+
+# 5.11 Patch 5
+
+> Attention - If upgrading from Sourcegraph version 5.9 or earlier, this release will update our included database container images from Postgres 12 to Postgres 16.
+> Customers are advised to have a database backup before upgrading. See our [postgres 12 end of life](https://sourcegraph.com/docs/admin/postgres12_end_of_life_notice#postgres-12-end-of-life) notice for more information.
+>
+> Also be sure to check your deployment type's [upgrade notes](http://sourcegraph.com/docs/admin/updates#instance-specific-procedures)!
+
+## v5.11.6271
+
+- [sourcegraph](https://github.com/sourcegraph/sourcegraph/releases/tag/v5.11.6271)
+
+- [docker-compose](https://github.com/sourcegraph/deploy-sourcegraph-docker/releases/tag/v5.11.6271)
+
+- [helm](https://github.com/sourcegraph/deploy-sourcegraph-helm/releases/tag/v5.11.6271)
+
+- [kustomize](https://github.com/sourcegraph/deploy-sourcegraph-k8s/releases/tag/v5.11.6271)
+
+### Chore
+
+#### Code Intelligence
+
+- Log connection stats on cancellation for precise queries `(PR #3002)`
+
+#### Dev
+
+- Cap number of connections more explicitly `(PR #2999)`
+
+### Reverts
+
+ There were no reverts for this release
+
+{/* RSS={"version":"v5.11.6271", "releasedAt": "2025-01-23"} */}
+
+
+# 5.11 Patch 4
+
+> Attention - If upgrading from Sourcegraph version 5.9 or earlier, this release will update our included database container images from Postgres 12 to Postgres 16.
+> Customers are advised to have a database backup before upgrading. See our [postgres 12 end of life](https://sourcegraph.com/docs/admin/postgres12_end_of_life_notice#postgres-12-end-of-life) notice for more information.
+>
+> Also be sure to check your deployment type's [upgrade notes](http://sourcegraph.com/docs/admin/updates#instance-specific-procedures)!
+
+## v5.11.5234
+
+- [sourcegraph](https://github.com/sourcegraph/sourcegraph/releases/tag/v5.11.5234)
+
+- [docker-compose](https://github.com/sourcegraph/deploy-sourcegraph-docker/releases/tag/v5.11.5234)
+
+- [helm](https://github.com/sourcegraph/deploy-sourcegraph-helm/releases/tag/v5.11.5234)
+
+- [kustomize](https://github.com/sourcegraph/deploy-sourcegraph-k8s/releases/tag/v5.11.5234)
+
+### Features
+
+#### Perforce
+
+- Use depot name for label cache `(PR #2805)`
+
+### Fix
+
+#### Source
+
+- Possible Perforce changelists are now converted to their respective git commit during ResolveRevision `(PR #2825)`
+
+### Reverts
+
+ There were no reverts for this release
+
+### Uncategorized
+
+#### Others
+
+- [Manual Backport]: update shellcheck to 0.10.0 `(PR #2838)`
+ - NA
+
+{/* RSS={"version":"v5.11.5234", "releasedAt": "2025-01-17"} */}
+
+
+# 5.11 Patch 3
+
+> Attention - If upgrading from Sourcegraph version 5.9 or earlier, this release will update our included database container images from Postgres 12 to Postgres 16.
+> Customers are advised to have a database backup before upgrading. See our [postgres 12 end of life](https://sourcegraph.com/docs/admin/postgres12_end_of_life_notice#postgres-12-end-of-life) notice for more information.
+>
+> Also be sure to check your deployment type's [upgrade notes](http://sourcegraph.com/docs/admin/updates#instance-specific-procedures)!
+
+## v5.11.4013
+
+- [sourcegraph](https://github.com/sourcegraph/sourcegraph/releases/tag/v5.11.4013)
+
+- [docker-compose](https://github.com/sourcegraph/deploy-sourcegraph-docker/releases/tag/v5.11.4013)
+
+- [helm](https://github.com/sourcegraph/deploy-sourcegraph-helm/releases/tag/v5.11.4013)
+
+- [kustomize](https://github.com/sourcegraph/deploy-sourcegraph-k8s/releases/tag/v5.11.4013)
+
+### Features
+
+#### Security
+
+- Sign release images `(PR #2703)`
+ - Publish signatures for release containers. Backport c11764be4adb377521e4067c4852953d7c434e24 from #2697
+
+#### Others
+
+- Allow single container server to run postgresql-16 `(PR #2714)`
+ - Server: runs postgresql from /var/run/postgresql instead of /run/postgresql
+ Backport 36c78cdf596e1b22079512931fa526346c2ec821 from #2711
+
+### Fix
+
+#### Release
+
+- Recover from unclean database shutdowns in pgsql entrypoint `(PR #2706)`
+ - Fix(rel): fix issue with Postgres docker container failing upgrades after an unclean database shutdown.
+ Backport ca5185ce2528b67e1ce6bcb5170f96d3699e11e0 from #2660
+
+### Reverts
+
+ There were no reverts for this release
+
+### Uncategorized
+
+#### Others
+
+- [Backport 5.11.x] fix(Bitbucket Cloud): Fix pagination logic for bitbucket cloud permissions `(PR #2700)`
+ - Fixed an issue where Bitbucket Cloud permission syncs could produce incomplete results, resulting in lacking permissions. Backport 389661481f0f0a2385ef4f78f4113ab6ba14f4d5 from #2699
+
+{/* RSS={"version":"v5.11.4013", "releasedAt": "2025-01-11"} */}
+
+
+# 5.11 Patch 2
+
+> Attention - If upgrading from Sourcegraph version 5.9 or earlier, this release will update our included database container images from Postgres 12 to Postgres 16.
+> Customers are advised to have a database backup before upgrading. See our [postgres 12 end of life](https://sourcegraph.com/docs/admin/postgres12_end_of_life_notice#postgres-12-end-of-life) notice for more information.
+>
+> Also be sure to check your deployment type's [upgrade notes](http://sourcegraph.com/docs/admin/updates#instance-specific-procedures)!
+
+## v5.11.3601
+
+- [sourcegraph](https://github.com/sourcegraph/sourcegraph/releases/tag/v5.11.3601)
+
+- [docker-compose](https://github.com/sourcegraph/deploy-sourcegraph-docker/releases/tag/v5.11.3601)
+
+- [helm](https://github.com/sourcegraph/deploy-sourcegraph-helm/releases/tag/v5.11.3601)
+
+- [kustomize](https://github.com/sourcegraph/deploy-sourcegraph-k8s/releases/tag/v5.11.3601)
+
+### Features
+
+#### Code Intelligence
+
+- Make syntactic indexing write partial index to disk already GZIP compressed `(PR #2646)`
+
+### Reverts
+
+ There were no reverts for this release
+
+{/* RSS={"version":"v5.11.3601", "releasedAt": "2025-01-08"} */}
+
+
+# 5.11 Patch 1
+
+> Attention - If upgrading from Sourcegraph version 5.9 or earlier, this release will update our included database container images from Postgres 12 to Postgres 16.
+> Customers are advised to have a database backup before upgrading. See our [postgres 12 end of life](https://sourcegraph.com/docs/admin/postgres12_end_of_life_notice#postgres-12-end-of-life) notice for more information.
+>
+> Also be sure to check your deployment type's [upgrade notes](http://sourcegraph.com/docs/admin/updates#instance-specific-procedures)!
+
+## v5.11.2732
+
+- [sourcegraph](https://github.com/sourcegraph/sourcegraph/releases/tag/v5.11.2732)
+
+- [docker-compose](https://github.com/sourcegraph/deploy-sourcegraph-docker/releases/tag/v5.11.2732)
+
+- [helm](https://github.com/sourcegraph/deploy-sourcegraph-helm/releases/tag/v5.11.2732)
+
+- [kustomize](https://github.com/sourcegraph/deploy-sourcegraph-k8s/releases/tag/v5.11.2732)
+
+### Fix
+
+#### Search
+
+- Propagate disk space to NewFirecrackerWorkspace `(PR #2574)`
+ - Addresses errors similar to: `failed to prepare workspace: failed to create ext4 filesystem in backing file: "mke2fs 1.45.5 (07-Jan-2020)\nThe file losetup: /var/lib/firecracker/loop-devices/workspace-loop-47749-3763347387: Warning: file is smaller than 512 bytes; the loop device may be useless or invisible for system tools.\n/dev/loop13 does not exist and no size was specified.\n": exit status 1`
+ - Affects reading and using the environment variable `EXECUTOR_FIRECRACKER_DISK_SPACE` Backport 22db2a97a0393cdd233a92da7ade96cd59bb99ef from #2562
+
+### Chore
+
+#### Security
+
+- Auto-update all packages in Sourcegraph base images (5.11.x) `(PR #2494)`
+
+### Reverts
+
+ There were no reverts for this release
+
+{/* RSS={"version":"v5.11.2732", "releasedAt": "2025-01-03"} */}
+
+
+# 5.11 Patch 0
+
+> Attention - If upgrading from Sourcegraph version 5.9 or earlier, this release will update our included database container images from Postgres 12 to Postgres 16.
+> Customers are advised to have a database backup before upgrading. See our [postgres 12 end of life](https://sourcegraph.com/docs/admin/postgres12_end_of_life_notice#postgres-12-end-of-life) notice for more information.
+>
+> Also be sure to check your deployment type's [upgrade notes](http://sourcegraph.com/docs/admin/updates#instance-specific-procedures)!
+
+## v5.11.0
+
+- [sourcegraph](https://github.com/sourcegraph/sourcegraph/releases/tag/v5.11.0)
+
+- [docker-compose](https://github.com/sourcegraph/deploy-sourcegraph-docker/releases/tag/v5.11.0)
+
+- [helm](https://github.com/sourcegraph/deploy-sourcegraph-helm/releases/tag/v5.11.0)
+
+- [kustomize](https://github.com/sourcegraph/deploy-sourcegraph-k8s/releases/tag/v5.11.0)
+
+### Features
+
+#### Ci
+
+- Add bazel mod tidy to ci steps [#1661](https://github.com/sourcegraph/sourcegraph/pull/1661)
+
+#### Cloud
+
+- Add tag field to mt config [#2035](https://github.com/sourcegraph/sourcegraph/pull/2035)
+
+#### Code Intelligence
+
+- Pass limits to scip-syntax and collect summary from it [#2058](https://github.com/sourcegraph/sourcegraph/pull/2058)
+- Configurable time and size limits for scip-syntax [#1947](https://github.com/sourcegraph/sourcegraph/pull/1947)
+ - Adds configurable limits for file size and parsing time for syntactic indexing
+
+#### Cody
+
+- Update cody web to 0.20.0 [#2396](https://github.com/sourcegraph/sourcegraph/pull/2396)
+- Update cody-web to 0.18.0 [#2365](https://github.com/sourcegraph/sourcegraph/pull/2365)
+- Add autoedits models to models.json [#1873](https://github.com/sourcegraph/sourcegraph/pull/1873)
+- Add `UserShouldUseEnterprise` to `/.api/client-config` (PRIME-596) [#1872](https://github.com/sourcegraph/sourcegraph/pull/1872)
+
+#### Cody-Gateway
+
+- Add Gemini 2.0 Flash experimental model [#2309](https://github.com/sourcegraph/sourcegraph/pull/2309)
+
+#### Codygateway
+
+- Expand flagging to workspaces actors [#2290](https://github.com/sourcegraph/sourcegraph/pull/2290)
+- Off-by-default workspaces actor source [#1941](https://github.com/sourcegraph/sourcegraph/pull/1941)
+
+#### Database
+
+- Support drift detection of policies [#2000](https://github.com/sourcegraph/sourcegraph/pull/2000)
+ - Drift detection now detects missing table policies.
+- Include policies in schema md and json [#1999](https://github.com/sourcegraph/sourcegraph/pull/1999)
+ - Schema.md and schema.json now include table policies.
+
+#### Dev
+
+- Adding wait option to sg access command [#1930](https://github.com/sourcegraph/sourcegraph/pull/1930)
+
+#### Gateway
+
+- Add v2 endpoint stubs [#1526](https://github.com/sourcegraph/sourcegraph/pull/1526)
+
+#### Gating
+
+- Extract license validity checks to gating.Provider.CheckGrant [#2018](https://github.com/sourcegraph/sourcegraph/pull/2018)
+- Replace licensing.Check with gating.GetGlobalProvider().Check [#2009](https://github.com/sourcegraph/sourcegraph/pull/2009)
+- Allow gating.Provider to be global [#2008](https://github.com/sourcegraph/sourcegraph/pull/2008)
+- Extract into standalone package, stub out CodyGatewayAuthenticator [#2007](https://github.com/sourcegraph/sourcegraph/pull/2007)
+
+#### Graphql
+
+- Multitenant: add repository restriction validation when adding repos [#2017](https://github.com/sourcegraph/sourcegraph/pull/2017)
+
+#### Local
+
+- Use mac/linux keystores to store secrets instead of plain text file on disk [#2001](https://github.com/sourcegraph/sourcegraph/pull/2001)
+- Store entitle token in sg secrets [#1856](https://github.com/sourcegraph/sourcegraph/pull/1856)
+
+#### Memcache
+
+- Add tenancy-friendly LRU memory cache [#1934](https://github.com/sourcegraph/sourcegraph/pull/1934)
+
+#### Msp
+
+- Introduce simple telemetry recorder for managed services [#2146](https://github.com/sourcegraph/sourcegraph/pull/2146)
+
+#### Multi-Tenant
+
+- Add "add repositories" setup flow step [#2112](https://github.com/sourcegraph/sourcegraph/pull/2112)
+- Add first UI implementation of GitHub connect setup page [#1966](https://github.com/sourcegraph/sourcegraph/pull/1966)
+
+#### Multi-Tenant/Workspaces
+
+- Add support to query ws by name in integrations svc [#2321](https://github.com/sourcegraph/sourcegraph/pull/2321)
+
+#### Multitenant
+
+- Set maximum repos size to 500mb [#2027](https://github.com/sourcegraph/sourcegraph/pull/2027)
+
+#### Rbac
+
+- Add separate permission for viewing exported telemetry [#1989](https://github.com/sourcegraph/sourcegraph/pull/1989)
+
+#### Release
+
+- Run `sg cut` in buildkite to automate nightly pipeline test [#2116](https://github.com/sourcegraph/sourcegraph/pull/2116)
+ - Release: nightly release pipeline is working
+- Backcompat test use release registry [#1202](https://github.com/sourcegraph/sourcegraph/pull/1202)
+
+#### Search
+
+- Correctly lower repo name regexes [#2209](https://github.com/sourcegraph/sourcegraph/pull/2209)
+ - Special uppercase regex tokens are no longer inverted for repository name search. eg `repo:foo\B` correctly interprets `\B` as `not at ASCII word boundary`. Previously it would transform the expression into `repo:foo\b`.
+- Use pattern optimizations for repo ExcludePattern [#2186](https://github.com/sourcegraph/sourcegraph/pull/2186)
+ - Searches which exclude repositories are faster on larger instances. We now use the same performance optimizations as repo inclusion.
+
+#### Security
+
+- Add access token ID to audit events [#2034](https://github.com/sourcegraph/sourcegraph/pull/2034)
+
+#### Sg
+
+- Add 'sg user metadata' commands [#2261](https://github.com/sourcegraph/sourcegraph/pull/2261)
+
+#### Source
+
+- MT GitHub App connections now use generic App connection [#2338](https://github.com/sourcegraph/sourcegraph/pull/2338)
+- Add App-level GitHub App code host connections [#2127](https://github.com/sourcegraph/sourcegraph/pull/2127)
+ - Sourcegraph now supports App-level GitHub App connections that aren't tied to a specific Installation ID.
+- Add maxDeletions option to code host connections [#2003](https://github.com/sourcegraph/sourcegraph/pull/2003)
+
+#### Telemetry
+
+- Include SAMS user ID if monolithsams is configured [#1936](https://github.com/sourcegraph/sourcegraph/pull/1936)
+- Propagate x-requested-with headers to request client… [#1775](https://github.com/sourcegraph/sourcegraph/pull/1775)
+
+#### Workspaces
+
+- Add metric to count number of unseen instances [#2303](https://github.com/sourcegraph/sourcegraph/pull/2303)
+- Report instances and workspaces status [#2262](https://github.com/sourcegraph/sourcegraph/pull/2262)
+- Add features to workspace results [#2171](https://github.com/sourcegraph/sourcegraph/pull/2171)
+
+#### Others
+
+- Extend prompt tags with pagination and increased limit [#2344](https://github.com/sourcegraph/sourcegraph/pull/2344)
+ - Feat: extend prompt tags with pagination and increased limit
+- Editing tags on prompts [#2278](https://github.com/sourcegraph/sourcegraph/pull/2278)
+ - Feat: editing tags on prompts
+- (multi-tenant): add invite users and final setup step [#2211](https://github.com/sourcegraph/sourcegraph/pull/2211)
+- Management page prompt categories [#2178](https://github.com/sourcegraph/sourcegraph/pull/2178)
+ - Feat: management page prompt categories
+- Prompt categories nav for web [#2177](https://github.com/sourcegraph/sourcegraph/pull/2177)
+ - Feat: add tags as filter to prompts and their navigation
+- Add prompt labels to the GraphQL API [#2131](https://github.com/sourcegraph/sourcegraph/pull/2131)
+ - Feat: add prompt labels to the GraphQL API
+- Call new intent detection model via Gateway [#2113](https://github.com/sourcegraph/sourcegraph/pull/2113)
+- Add CommitsIter to `GitserverClient` [#2080](https://github.com/sourcegraph/sourcegraph/pull/2080)
+- New intent detection API on Gateway [#2016](https://github.com/sourcegraph/sourcegraph/pull/2016)
+- More telemetry for batch changes [#2014](https://github.com/sourcegraph/sourcegraph/pull/2014)
+ - Feat(batches): more telemetry events
+- Add support to `patterntype:nls` for `type:code` and `type:text` [#1961](https://github.com/sourcegraph/sourcegraph/pull/1961)
+- Add OR support for text search pattern types [#1915](https://github.com/sourcegraph/sourcegraph/pull/1915)
+- Collect contributor data [#1765](https://github.com/sourcegraph/sourcegraph/pull/1765)
+ - Feat: calculate contributor stats
+
+### Fix
+
+#### Code Intelligence
+
+- Reports symbols for TypeScript type aliases [#2339](https://github.com/sourcegraph/sourcegraph/pull/2339)
+ - Properly report symbols for TypeScript type aliases
+
+#### Cody
+
+- Update cody web to 0.19.0 [#2376](https://github.com/sourcegraph/sourcegraph/pull/2376)
+- Add cody.notices to json schema [#2373](https://github.com/sourcegraph/sourcegraph/pull/2373)
+- Fix prompt library UI layouts [#2288](https://github.com/sourcegraph/sourcegraph/pull/2288)
+- Fix prompt avatar for generated initials avatar [#2239](https://github.com/sourcegraph/sourcegraph/pull/2239)
+- Switch to Snowball stopwords [#2223](https://github.com/sourcegraph/sourcegraph/pull/2223)
+ - Narrowed down the stopwords list used in Cody context, to fix an issue where we could miss highly relevant files.
+- Disable reranking for airgapped instances [#2168](https://github.com/sourcegraph/sourcegraph/pull/2168)
+ - Fixes a bug in Cody context where airgapped instances would attempt to use the reranker model, which increased the context retrieval latency.
+- Fix prompt creation telemetry [#2057](https://github.com/sourcegraph/sourcegraph/pull/2057)
+
+#### Codyauditlog
+
+- Inline audit log entry for consistency [#2072](https://github.com/sourcegraph/sourcegraph/pull/2072)
+
+#### Codygateway
+
+- Configurable workspace user ban state cache, lower default [#2357](https://github.com/sourcegraph/sourcegraph/pull/2357)
+- Fix listing flagged prompts from workspaces users [#2354](https://github.com/sourcegraph/sourcegraph/pull/2354)
+
+#### Dev
+
+- Fix window context extraction logic for multitenant [#1998](https://github.com/sourcegraph/sourcegraph/pull/1998)
+
+#### Dev/Codygateway
+
+- Partially fix Cody Gateway QA suite [#2005](https://github.com/sourcegraph/sourcegraph/pull/2005)
+
+#### Dev/Msp
+
+- Remove actual interval from error message to fix flakey months [#2031](https://github.com/sourcegraph/sourcegraph/pull/2031)
+
+#### Gateway
+
+- Benchmark: various fixes [#2119](https://github.com/sourcegraph/sourcegraph/pull/2119)
+
+#### Msp
+
+- Fix error message for image tag resolution [#2283](https://github.com/sourcegraph/sourcegraph/pull/2283)
+
+#### Msp/Operationdocs
+
+- Update Entitle request links [#2281](https://github.com/sourcegraph/sourcegraph/pull/2281)
+
+#### Mulitenant
+
+- Add rote tests for repositoryChecker implementations [#2258](https://github.com/sourcegraph/sourcegraph/pull/2258)
+ - N/A
+- Add rote test for workspaceGitHubAppAccountResolver [#2257](https://github.com/sourcegraph/sourcegraph/pull/2257)
+ - N/A
+- Add test suite for (s *serviceImpl) listRepositoriesSearch [#2255](https://github.com/sourcegraph/sourcegraph/pull/2255)
+- Add test suite for (r *workspaceGitHubAppResolver) ListUserGitHubRepositories [#2199](https://github.com/sourcegraph/sourcegraph/pull/2199)
+
+#### Multitenant
+
+- Enable workspace specific routes only for workspace instance [#2287](https://github.com/sourcegraph/sourcegraph/pull/2287)
+- Add rote tests for workspaceGitHubAppRepositoryResolver [#2259](https://github.com/sourcegraph/sourcegraph/pull/2259)
+ - N/A
+- Add test suite for (r *workspaceGitHubAppResolver) ListPublicGitHubRepositories [#2198](https://github.com/sourcegraph/sourcegraph/pull/2198)
+ - N/A
+- Graphql: add installation repos test suite [#2174](https://github.com/sourcegraph/sourcegraph/pull/2174)
+
+#### Release
+
+- Fix regressions from 5.10 release process [#2405](https://github.com/sourcegraph/sourcegraph/pull/2405)
+ - Refactor and fix bugs in release test<details>
+
+#### Sams
+
+- Fix notification handlers [#1990](https://github.com/sourcegraph/sourcegraph/pull/1990)
+
+#### Search
+
+- Fix small svelte UI paper cuts [#2317](https://github.com/sourcegraph/sourcegraph/pull/2317)
+- Executors: set the user/group on the job spec only if configured. [#2203](https://github.com/sourcegraph/sourcegraph/pull/2203)
+ - Also validates `KUBERNETES_RUN_AS_USER` and `KUBERNETES_RUN_AS_GROUP`.
+ - Must be integers in the range [0, 2147483647].
+- Fix fuzzy finder layout in Safari 18.1 [#2061](https://github.com/sourcegraph/sourcegraph/pull/2061)
+
+#### Source
+
+- Use GitHub GraphQL client to do repo searches [#2340](https://github.com/sourcegraph/sourcegraph/pull/2340)
+- Decode installationRepos' args.After correctly [#2126](https://github.com/sourcegraph/sourcegraph/pull/2126)
+- Fix layout on repo admin search box [#1960](https://github.com/sourcegraph/sourcegraph/pull/1960)
+
+#### Telemetry
+
+- Include anonymous user ID in externalAuthSignup events [#2074](https://github.com/sourcegraph/sourcegraph/pull/2074)
+
+#### Telemetrygateway
+
+- Update generated bindings [#1939](https://github.com/sourcegraph/sourcegraph/pull/1939)
+
+#### Worker/Sams
+
+- Fix userRolesStrings [#1992](https://github.com/sourcegraph/sourcegraph/pull/1992)
+
+#### Workspaces
+
+- Handle missing class name in instances [#2286](https://github.com/sourcegraph/sourcegraph/pull/2286)
+- Create: improve cancellation handling [#2167](https://github.com/sourcegraph/sourcegraph/pull/2167)
+- CodeUnauthenticated for missing session ID, dont include trace ID in log message [#2032](https://github.com/sourcegraph/sourcegraph/pull/2032)
+
+#### Workspaces/Integrations
+
+- Do not list billing subscriptions if no workspaces [#2233](https://github.com/sourcegraph/sourcegraph/pull/2233)
+
+#### Others
+
+- Set high match limit for NLS [#2352](https://github.com/sourcegraph/sourcegraph/pull/2352)
+- Remove surplus typename [#2265](https://github.com/sourcegraph/sourcegraph/pull/2265)
+ - Fix: remove surplus typename
+- Use byte columns for contributors to support non-utf8 characters [#2122](https://github.com/sourcegraph/sourcegraph/pull/2122)
+- Skip revision if not found instead of throwing error [#2121](https://github.com/sourcegraph/sourcegraph/pull/2121)
+- Slow down contributor jobs [#2120](https://github.com/sourcegraph/sourcegraph/pull/2120)
+- Add internal actor to contributor job [#2101](https://github.com/sourcegraph/sourcegraph/pull/2101)
+- Correctly handle overlapping paths in Perforce protection rules [#1745](https://github.com/sourcegraph/sourcegraph/pull/1745)
+
+### Chore
+
+#### Ci
+
+- Enable svelte-check in CI for multi-tenant [#2242](https://github.com/sourcegraph/sourcegraph/pull/2242)
+- Skip license-check workflow on draft prs [#2087](https://github.com/sourcegraph/sourcegraph/pull/2087)
+- Add -x flag to the script [#2029](https://github.com/sourcegraph/sourcegraph/pull/2029)
+- Bazel - Pull static psql as tool dep [#1970](https://github.com/sourcegraph/sourcegraph/pull/1970)
+- Pg-utils - Upload static psql [#1969](https://github.com/sourcegraph/sourcegraph/pull/1969)
+
+#### Cloud
+
+- Switch ephemerals to dev enterprise portal [#2090](https://github.com/sourcegraph/sourcegraph/pull/2090)
+
+#### Code Intelligence
+
+- Remove EMPTY_STATS_JSON object [#2363](https://github.com/sourcegraph/sourcegraph/pull/2363)
+- Fix incorrect error handling [#2316](https://github.com/sourcegraph/sourcegraph/pull/2316)
+- Move cursor last for consistency [#2311](https://github.com/sourcegraph/sourcegraph/pull/2311)
+- Refactor uploadhandler logic for clarity [#2086](https://github.com/sourcegraph/sourcegraph/pull/2086)
+- Update scip version and use faster parsing API [#2085](https://github.com/sourcegraph/sourcegraph/pull/2085)
+- Simplify code to avoid single-implementation interfaces [#2046](https://github.com/sourcegraph/sourcegraph/pull/2046)
+- Fix incorrect test inputs [#2043](https://github.com/sourcegraph/sourcegraph/pull/2043)
+- Simplify SyntacticIndexingJobStore [#2042](https://github.com/sourcegraph/sourcegraph/pull/2042)
+- Remove RepositorySchedulingService [#2041](https://github.com/sourcegraph/sourcegraph/pull/2041)
+- Remove IndexEnqueuer interface with a single implementation [#2040](https://github.com/sourcegraph/sourcegraph/pull/2040)
+
+#### Cody
+
+- Add QA's test domain to the enterprise domain list [#2392](https://github.com/sourcegraph/sourcegraph/pull/2392)
+- Monitor completions latency by feature [#2345](https://github.com/sourcegraph/sourcegraph/pull/2345)
+- Remove retired claude models [#2047](https://github.com/sourcegraph/sourcegraph/pull/2047)
+- Fix typos and minor warnings around Cody Gateway [#2025](https://github.com/sourcegraph/sourcegraph/pull/2025)
+- Migrate code completion model resolution to use models.json [#1980](https://github.com/sourcegraph/sourcegraph/pull/1980)
+- Make LegacyModelRedirects public [#1951](https://github.com/sourcegraph/sourcegraph/pull/1951)
+
+#### Cody-Gateway
+
+- Log model capability mismatch [#2181](https://github.com/sourcegraph/sourcegraph/pull/2181)
+
+#### Dev
+
+- Replace cmp.Diff -> check.(Must)?NoDiff (part 3) [#2154](https://github.com/sourcegraph/sourcegraph/pull/2154)
+- Replace cmp.Diff -> check.(Must)?NoDiff (part 2) [#2151](https://github.com/sourcegraph/sourcegraph/pull/2151)
+- Replace cmp.Diff -> check.(Must)?NoDiff (part 1) [#2150](https://github.com/sourcegraph/sourcegraph/pull/2150)
+- Introduce more type safe testing package [#2049](https://github.com/sourcegraph/sourcegraph/pull/2049)
+
+#### Dotcom
+
+- UI copy, list by instance domain, correctly return invalid argument on update [#1916](https://github.com/sourcegraph/sourcegraph/pull/1916)
+
+#### Gateway
+
+- Fix logged model name format in "not allowed" errors [#2056](https://github.com/sourcegraph/sourcegraph/pull/2056)
+- Don't ignore API version when comparing modelRefs for RateLimit filtering [#2024](https://github.com/sourcegraph/sourcegraph/pull/2024)
+- Use `models.json` in Cody Gateway (PRIME-600, PRIME-612) [#1759](https://github.com/sourcegraph/sourcegraph/pull/1759)
+
+#### Graphqlbackend
+
+- Remove deprecated monitoring queries [#2075](https://github.com/sourcegraph/sourcegraph/pull/2075)
+
+#### Local
+
+- Pg_version_check - Force db to be postgres [#1979](https://github.com/sourcegraph/sourcegraph/pull/1979)
+
+#### Monolithsams
+
+- Migrate to official SAMS SDK [#1987](https://github.com/sourcegraph/sourcegraph/pull/1987)
+
+#### Plg
+
+- Add Cody Pro upgrade script [#1903](https://github.com/sourcegraph/sourcegraph/pull/1903)
+
+#### Sams
+
+- Enable SDK caching for authentication middleware clients [#1988](https://github.com/sourcegraph/sourcegraph/pull/1988)
+
+#### Search
+
+- Upgrade prettier for web-sveltekit [#2221](https://github.com/sourcegraph/sourcegraph/pull/2221)
+- Add private metadata for language on code nav events [#2190](https://github.com/sourcegraph/sourcegraph/pull/2190)
+- (new web ui) Upgrade to Svelte 5 [#2183](https://github.com/sourcegraph/sourcegraph/pull/2183)
+- Update client side code intel telemetry to include provenance and tab [#2142](https://github.com/sourcegraph/sourcegraph/pull/2142)
+
+#### Security
+
+- Pin otel-collector package version [#2452](https://github.com/sourcegraph/sourcegraph/pull/2452)
+- Update src-cli to version 5.11.1 [#2447](https://github.com/sourcegraph/sourcegraph/pull/2447)
+ - Update src-cli version to 5.11.1 Backport 2721fd9106eb033afe4cca96164f7ecc5e0b6f88 from #2444
+- Update src-cli to version 5.11.0 [#2366](https://github.com/sourcegraph/sourcegraph/pull/2366)
+ - Update src-cli version to 5.11.0
+- Auto-update package lockfiles for Sourcegraph base images [#2302](https://github.com/sourcegraph/sourcegraph/pull/2302)
+
+#### Source
+
+- Use sghttp CloneURL to make a copy of a URL [#2315](https://github.com/sourcegraph/sourcegraph/pull/2315)
+- Simplify oauth middleware [#1946](https://github.com/sourcegraph/sourcegraph/pull/1946)
+
+#### Telemetry
+
+- Remove example values, deprecate SafeAction [#2107](https://github.com/sourcegraph/sourcegraph/pull/2107)
+
+#### Workspace
+
+- Update picker with small changes for current link [#2227](https://github.com/sourcegraph/sourcegraph/pull/2227)
+
+#### Workspaces
+
+- Add seats metadata by listing subscriptions in bulk [#2189](https://github.com/sourcegraph/sourcegraph/pull/2189)
+- Make openfga cancelled errors easier to detect [#2117](https://github.com/sourcegraph/sourcegraph/pull/2117)
+- ListWorkspaces: concurrently fetch membership [#2104](https://github.com/sourcegraph/sourcegraph/pull/2104)
+- Set workspace ID on create span [#2084](https://github.com/sourcegraph/sourcegraph/pull/2084)
+- UX Updates for Workspaces service [#2078](https://github.com/sourcegraph/sourcegraph/pull/2078)
+- Mark emails as transactional [#1984](https://github.com/sourcegraph/sourcegraph/pull/1984)
+- Add tracing on Cloudflare KV ops, improve retry policies [#1957](https://github.com/sourcegraph/sourcegraph/pull/1957)
+
+#### Workspaces/Billing
+
+- Add rehttp on stripe 429 [#2079](https://github.com/sourcegraph/sourcegraph/pull/2079)
+- Add traced HTTP client to Stripe SDK [#1962](https://github.com/sourcegraph/sourcegraph/pull/1962)
+
+#### Others
+
+- Update Calendar Release Notifications [#2230](https://github.com/sourcegraph/sourcegraph/pull/2230)
+ - N/A
+- Add CODENOTIFY files for Cody Prime team [#2185](https://github.com/sourcegraph/sourcegraph/pull/2185)
+- Avoid materializing set values just for iteration [#2045](https://github.com/sourcegraph/sourcegraph/pull/2045)
+- Enable exhaustruct on syntactic_indexing folder [#2044](https://github.com/sourcegraph/sourcegraph/pull/2044)
+- Cleanup stale branches [#1977](https://github.com/sourcegraph/sourcegraph/pull/1977)
+- Remove unreferenced scripts [#1942](https://github.com/sourcegraph/sourcegraph/pull/1942)
+- Update repo not found for dotcom [#1940](https://github.com/sourcegraph/sourcegraph/pull/1940)
+- Cleanup some local dev things [#1906](https://github.com/sourcegraph/sourcegraph/pull/1906)
+- Address Gazelle deprecation warnings [#1789](https://github.com/sourcegraph/sourcegraph/pull/1789)
+- Use enum for executor runtime instead of boolean flags [#1788](https://github.com/sourcegraph/sourcegraph/pull/1788)
+- Rename executor Config fields & simplify code [#1787](https://github.com/sourcegraph/sourcegraph/pull/1787)
+- Use collections.Set for marking allowed RepoID values. [#1743](https://github.com/sourcegraph/sourcegraph/pull/1743)
+- Move license check types to handler [#1697](https://github.com/sourcegraph/sourcegraph/pull/1697)
+
+### Refactor
+
+#### Ci
+
+- Add DefaultQueue for the default queue to use [#2096](https://github.com/sourcegraph/sourcegraph/pull/2096)
+
+### Reverts
+
+- Revert "feat(cody-gateway): add Gemini 2.0 Flash experimental model [#-1](https://github.com/sourcegraph/sourcegraph/pull/2326)
+- Revert "completions: Use authenticator interface for access token" [#1694](https://github.com/sourcegraph/sourcegraph/pull/2169)
+- Revert "chore(ci): temporary exclude diff tests (#1923)" [#1923](https://github.com/sourcegraph/sourcegraph/pull/1926)
+
+### Uncategorized
+
+#### Others
+
+- [Backport 5.11.x] bitbucketcloud: Fix repo perms syncing for inherited permissions and groups [#2399](https://github.com/sourcegraph/sourcegraph/pull/2399)
+ - Fixed an issue with Bitbucket Cloud permission syncing where inherited permissions and group permissions were not correctly reflected.
+- Worker: Disable routines for codeintel inside routines logic [#2386](https://github.com/sourcegraph/sourcegraph/pull/2386)
+- Tenant: Prevent in-app deadlock while initializing globalstate [#2383](https://github.com/sourcegraph/sourcegraph/pull/2383)
+- Tenant: Mark tenant as last seen async [#2381](https://github.com/sourcegraph/sourcegraph/pull/2381)
+- Nls: add ability to boost results from a repo [#2375](https://github.com/sourcegraph/sourcegraph/pull/2375)
+- Intent detection: add heuristics [#2364](https://github.com/sourcegraph/sourcegraph/pull/2364)
+- Autoedits: remove rewrite speculation field for the chat endpoint [#2361](https://github.com/sourcegraph/sourcegraph/pull/2361)
+- Hitesh/change direct route method [#2351](https://github.com/sourcegraph/sourcegraph/pull/2351)
+- Change deepseek model for autoedits [#2350](https://github.com/sourcegraph/sourcegraph/pull/2350)
+- Reapply "feat(cody-gateway): add Gemini 2.0 Flash experimental model" [#2348](https://github.com/sourcegraph/sourcegraph/pull/2348)
+- Auth: Simplify middlewares [#2336](https://github.com/sourcegraph/sourcegraph/pull/2336)
+- Http: Refactor HTTP_TRACE to use Sourcegraph logger [#2335](https://github.com/sourcegraph/sourcegraph/pull/2335)
+- Http: Drop Blackhole middleware [#2334](https://github.com/sourcegraph/sourcegraph/pull/2334)
+- Editor: Add missing Gerrit remoteURL resolution [#2332](https://github.com/sourcegraph/sourcegraph/pull/2332)
+- Gitserver: Fix input parsing issue in diff searches [#2331](https://github.com/sourcegraph/sourcegraph/pull/2331)
+- Tenant: Mention repos that were not found [#2328](https://github.com/sourcegraph/sourcegraph/pull/2328)
+- Tenant: Use SiteID for workspace management API interaction [#2327](https://github.com/sourcegraph/sourcegraph/pull/2327)
+- NLS: use reranker in batch search too [#2325](https://github.com/sourcegraph/sourcegraph/pull/2325)
+- NLS: only rerank keyword matches [#2324](https://github.com/sourcegraph/sourcegraph/pull/2324)
+- NLS: fix bug where we could skip reranking [#2320](https://github.com/sourcegraph/sourcegraph/pull/2320)
+- Bugfix: anchor include patterns for symbol tree [#2319](https://github.com/sourcegraph/sourcegraph/pull/2319)
+ - Fixed a web app bug that could cause symbols to be shown in the symbol tree for files that share a name with the viewed file
+- NLS: initial reranker integration [#2298](https://github.com/sourcegraph/sourcegraph/pull/2298)
+- Redis: remove unused rcache methods [#2292](https://github.com/sourcegraph/sourcegraph/pull/2292)
+- Chore(workspaces) Ensure an api error populating list of workspaces do… [#2291](https://github.com/sourcegraph/sourcegraph/pull/2291)
+- Gomod: bump Zoekt for BM25 improvement [#2282](https://github.com/sourcegraph/sourcegraph/pull/2282)
+- Tenant: Indicate to webapp that workspaces UIs should be shown [#2279](https://github.com/sourcegraph/sourcegraph/pull/2279)
+- Repoupdater: Fix panic when traversing public repos [#2273](https://github.com/sourcegraph/sourcegraph/pull/2273)
+- Dev/workspaces: get local o11y working again [#2263](https://github.com/sourcegraph/sourcegraph/pull/2263)
+- Tenant: Use workspace ID as site id [#2256](https://github.com/sourcegraph/sourcegraph/pull/2256)
+- Tenant: Fix missing tenant context in conf validation [#2247](https://github.com/sourcegraph/sourcegraph/pull/2247)
+- Ranking: revert changes to concurrency limits [#2236](https://github.com/sourcegraph/sourcegraph/pull/2236)
+- NLS: initial support for type:path [#2234](https://github.com/sourcegraph/sourcegraph/pull/2234)
+- Enable predicted outputs for S2 instance for fireworks models [#2226](https://github.com/sourcegraph/sourcegraph/pull/2226)
+- Dev(search): (new web ui) Upgrade svelte-check [#2220](https://github.com/sourcegraph/sourcegraph/pull/2220)
+- Add deepseek completions model for autoedits [#2219](https://github.com/sourcegraph/sourcegraph/pull/2219)
+- Workspaces/billing: implement payment charge for purchase extra seats [#2217](https://github.com/sourcegraph/sourcegraph/pull/2217)
+- Reranker: make sure to record telemetry [#2188](https://github.com/sourcegraph/sourcegraph/pull/2188)
+- Tenant/worker: Add tenant to context for worker in ST mode [#2184](https://github.com/sourcegraph/sourcegraph/pull/2184)
+- Tenant: Implement dynamic limits for GitHub App [#2172](https://github.com/sourcegraph/sourcegraph/pull/2172)
+- Repo: Drop next_sync_at prioritization [#2160](https://github.com/sourcegraph/sourcegraph/pull/2160)
+- Gateway: benchmark: fix http-then-websocket initial request failures [#2159](https://github.com/sourcegraph/sourcegraph/pull/2159)
+- Repoupdater: Fix interval out of range [#2155](https://github.com/sourcegraph/sourcegraph/pull/2155)
+- Pings: Remove hubspot integration [#2144](https://github.com/sourcegraph/sourcegraph/pull/2144)
+- Workspace-reconciler: update tenant name and display name [#2141](https://github.com/sourcegraph/sourcegraph/pull/2141)
+- Repoupdater: Make backoff after failure to fetch/clone more exponential [#2140](https://github.com/sourcegraph/sourcegraph/pull/2140)
+- Gitserver: Record LastError, LastOutput when hitting a timeout [#2139](https://github.com/sourcegraph/sourcegraph/pull/2139)
+- Gitserver: Simpify repo state syncer [#2138](https://github.com/sourcegraph/sourcegraph/pull/2138)
+- Tenant: Add context to OIDC verifier [#2137](https://github.com/sourcegraph/sourcegraph/pull/2137)
+- Tenant: Fix missing tenant in oauth requests [#2136](https://github.com/sourcegraph/sourcegraph/pull/2136)
+- Tenant: Expose configured limits in GQL API [#2123](https://github.com/sourcegraph/sourcegraph/pull/2123)
+- Add colorful icons for gitlab and bitbucket [#2114](https://github.com/sourcegraph/sourcegraph/pull/2114)
+- Chore(workspaces) Remove an extra quote [#2111](https://github.com/sourcegraph/sourcegraph/pull/2111)
+- Tenant: Temporarily bump limit to 10GB again [#2110](https://github.com/sourcegraph/sourcegraph/pull/2110)
+- Tenant: Fix multitenant repo selection update [#2109](https://github.com/sourcegraph/sourcegraph/pull/2109)
+- NLS: boost literal matches [#2108](https://github.com/sourcegraph/sourcegraph/pull/2108)
+- Bug(multitenant): Fix GraphQL resolvers for repo search [#2098](https://github.com/sourcegraph/sourcegraph/pull/2098)
+- Batches: Fix trigger function with tenancy [#2092](https://github.com/sourcegraph/sourcegraph/pull/2092)
+- Deprecate unused pings, reducing load on local PG instances [#2082](https://github.com/sourcegraph/sourcegraph/pull/2082)
+- NLS: perform single search for code and text results [#2081](https://github.com/sourcegraph/sourcegraph/pull/2081)
+- Fix cookie name [#2077](https://github.com/sourcegraph/sourcegraph/pull/2077)
+- NLS: created dedicated search job [#2076](https://github.com/sourcegraph/sourcegraph/pull/2076)
+- Appliance: Remove from UserNav [#2069](https://github.com/sourcegraph/sourcegraph/pull/2069)
+- Repo: Fix race condition in code host syncer [#2060](https://github.com/sourcegraph/sourcegraph/pull/2060)
+- Authz: Adjust default settings for perms syncing [#2052](https://github.com/sourcegraph/sourcegraph/pull/2052)
+ - The default values for repo permission syncing have been adjusted. If you specified overrides, this means no change on your instance.Adjusted defaults:`permissions.syncScheduleInterval` is now 60s instead of 15s, in favor of scheduling more jobs at once (see below).`permissions.syncOldestUsers` and `permissions.syncOldestRepos` have been adjusted to `100` from `10` to schedule pending permission sync jobs faster.`permissions.syncJobCleanupInterval` has been bumped from every minute to every hour. Cleaning completed jobs is purely to prevent unbounded growth and every minute was more aggressive than necessary.The default concurrency for repo- And user-centric sync jobs has been bumped from 1 to 5 to account for larger instances. Historically, GitHub prevented concurrent API access in secondary rate limiting but this has been lifted to be much more lenient long ago. `permissions.syncReposMaxConcurrency` has also been introduced to compliment `permissions.syncUsersMaxConcurrency`.
+- Tenant: Fix concurrent creation in DB [#2039](https://github.com/sourcegraph/sourcegraph/pull/2039)
+- Tenant: Do not fail on startup [#2038](https://github.com/sourcegraph/sourcegraph/pull/2038)
+- Add code_completion feature flag for autoedit model [#2037](https://github.com/sourcegraph/sourcegraph/pull/2037)
+- Pings: Move handler code into cmd/pings [#2021](https://github.com/sourcegraph/sourcegraph/pull/2021)
+- Authz: Remove unused iteration over authProviders [#2019](https://github.com/sourcegraph/sourcegraph/pull/2019)
+- Cody: Fix incorrect language in Cody auth dialog [#2013](https://github.com/sourcegraph/sourcegraph/pull/2013)
+- Auth: Bring auth.Providers reads further up [#2011](https://github.com/sourcegraph/sourcegraph/pull/2011)
+- Tenant: Restructure multitenant GitHub app implementation [#2010](https://github.com/sourcegraph/sourcegraph/pull/2010)
+- Deps: upgrade SAMS SDK [#2006](https://github.com/sourcegraph/sourcegraph/pull/2006)
+- Repo: NeedsRepositoryConfiguration is independent of permissions [#1981](https://github.com/sourcegraph/sourcegraph/pull/1981)
+- Repoupdater: Enable dbbacked scheduler by default [#1975](https://github.com/sourcegraph/sourcegraph/pull/1975)
+- Repoupdater: Split dbworker for clones and fetches [#1974](https://github.com/sourcegraph/sourcegraph/pull/1974)
+- Repoupdater: Introduce higher priority for clones [#1972](https://github.com/sourcegraph/sourcegraph/pull/1972)
+- Gitserver: Increase duration buckets [#1971](https://github.com/sourcegraph/sourcegraph/pull/1971)
+- Added option to create search job from action menu in the results page [#1968](https://github.com/sourcegraph/sourcegraph/pull/1968)
+- Tenant: Return multitenantGitHubApp for all users [#1967](https://github.com/sourcegraph/sourcegraph/pull/1967)
+- Workspaces: use `time.Now` as the modtime for "index.html" [#1956](https://github.com/sourcegraph/sourcegraph/pull/1956)
+- Workspaces: add a quick log to show the modtime of index.html [#1953](https://github.com/sourcegraph/sourcegraph/pull/1953)
+- Redis: add warning about using KEYS command [#1913](https://github.com/sourcegraph/sourcegraph/pull/1913)
+- Remove debugging code [#1909](https://github.com/sourcegraph/sourcegraph/pull/1909)
+- Auth: Craft GatingProvider interface and use in AuthProviders [#1892](https://github.com/sourcegraph/sourcegraph/pull/1892)
+- Auth: Small code cleanup [#1891](https://github.com/sourcegraph/sourcegraph/pull/1891)
+- Events: Deprecate hashedLicenseKey in events from client [#1887](https://github.com/sourcegraph/sourcegraph/pull/1887)
+- Llms: Fixup and streamline cody rate limits [#1700](https://github.com/sourcegraph/sourcegraph/pull/1700)
+- Licensing: Implement NonAdmins feature [#1699](https://github.com/sourcegraph/sourcegraph/pull/1699)
+- Licensing: Simplify free tier logic a bit [#1695](https://github.com/sourcegraph/sourcegraph/pull/1695)
+- Enterprise-portal: add RegisterRoleResources background routine [#1687](https://github.com/sourcegraph/sourcegraph/pull/1687)
+- Enterprise-portal: add SAMS notification handler for UserRolesUpdated [#1686](https://github.com/sourcegraph/sourcegraph/pull/1686)
+- Security: Auto-update package lockfiles for Sourcegraph base images [#1678](https://github.com/sourcegraph/sourcegraph/pull/1678)
+- Workerutil: Move into tenant package [#1533](https://github.com/sourcegraph/sourcegraph/pull/1533)
+- Dbworker: RFC for tenant-aware, fast dequeues [#1487](https://github.com/sourcegraph/sourcegraph/pull/1487)
+
+### Untracked
+
+The following PRs were merged onto the previous release branch but could not be automatically mapped to a corresponding commit in this release:
+
+- [Backport 5.10.x] Context: switch to Snowball stopwords (#2223) [#2225](https://github.com/sourcegraph/sourcegraph/pull/2225)
+ - Narrowed down the stopwords list used in Cody context, to fix an issue where we could miss highly relevant files.Backports [https://github.com/sourcegraph/sourcegraph/pull/2223](https://github.com/sourcegraph/sourcegraph/pull/2223)
+
+{/* RSS={"version":"5.11 Patch 0", "releasedAt": "2024-12-19"} */}
+
+
+# 5.10 Patch 3
+
+> Warning: This release updates the database container images from Postgres 12 to Postgres 16, and begins using Wolfi based images. Customers are advised to have a database backup before upgrading! See our [postgres 12 end of life](https://sourcegraph.com/docs/admin/postgres12_end_of_life_notice#postgres-12-end-of-life) notice!
+>
+> Also be sure to check your deployment type's [upgrade notes](http://sourcegraph.com/docs/admin/updates#instance-specific-procedures)!
+
+## v5.10.3940
+
+- [sourcegraph](https://github.com/sourcegraph/sourcegraph/releases/tag/v5.10.3940)
+
+- [docker-compose](https://github.com/sourcegraph/deploy-sourcegraph-docker/releases/tag/v5.10.3940)
+
+- [helm](https://github.com/sourcegraph/deploy-sourcegraph-helm/releases/tag/v5.10.3940)
+
+- [kustomize](https://github.com/sourcegraph/deploy-sourcegraph-k8s/releases/tag/v5.10.3940)
+
+### Features
+
+#### Security
+
+- Introduce UntrustedExternalClient [#2433](https://github.com/sourcegraph/sourcegraph/pull/2433)
+ Backport 3f079a57978179aa2ad3f310195346a8c574f9ce from #2349
+
+### Fix
+
+#### Database
+
+- Do not log DSN secrets when changed [#2434](https://github.com/sourcegraph/sourcegraph/pull/2434)
+ - We no longer log the postgresql DSN when it changes. Previously this could contain the secret PGPASSWORD.
+ Backport 2bd9c09969fff536c6fb29108656658d3f875047 from #2272
+
+### Reverts
+
+ There were no reverts for this release
+
+{/* RSS={"version":"5.10 Patch 3", "releasedAt": "2024-12-19"} */}
+
+
+# 5.10 Patch 2
+
+> Warning: This release updates the database container images from Postgres 12 to Postgres 16, and begins using Wolfi based images. Customers are advised to have a database backup before upgrading! See our [postgres 12 end of life](https://sourcegraph.com/docs/admin/postgres12_end_of_life_notice#postgres-12-end-of-life) notice!
+>
+> Also be sure to check your deployment type's [upgrade notes](http://sourcegraph.com/docs/admin/updates#instance-specific-procedures)!
+
+## v5.10.2832
+
+- [sourcegraph](https://github.com/sourcegraph/sourcegraph/releases/tag/v5.10.2832)
+
+- [docker-compose](https://github.com/sourcegraph/deploy-sourcegraph-docker/releases/tag/v5.10.2832)
+
+- [helm](https://github.com/sourcegraph/deploy-sourcegraph-helm/releases/tag/v5.10.2832)
+
+- [kustomize](https://github.com/sourcegraph/deploy-sourcegraph-k8s/releases/tag/v5.10.2832)
+
+### Features
+
+#### Cody
+
+- Update cody web to 0.17.0 version `(PR #2285)`
+- Update cody web to 0.16.0 version `(PR #2284)` Backport 964eceae584e4eff56df9711da68fef7047cbc40 from #2254
+
+### Fix
+
+#### Bazel
+
+- Syft checksum update `(PR #2218)`
+
+#### Cody
+
+- Disable reranking for airgapped instances `(PR #2194)`
+
+#### Release
+
+- Remove `--link` and add optional args env var `(PR #2216)`
+ - Fix(rel): change `pg_upgrade` behavior to use copy instead of hard links Backport 13caa807d96dd4b5dd872fec2a38322d1888134a from #2192
+- Remove -x flag in readiness check on database containers `(PR #2135)`
+ - Fix(rel): address issue with readiness check outputting passwords to logs.
+ Backport 655a739e8e791d7aab1977d2c26543a3a4871809 from #2132
+
+### Chore
+
+#### Ci
+
+- Bzlmod migration for rules_syft `(PR #2193)`
+ - Backport fbf92aedbb81f00766d7107015b7697352b5c482 from #1812
+
+### Reverts
+
+ There were no reverts for this release
+
+### Uncategorized
+
+#### Others
+
+- [Backport 5.10.x] Context: switch to Snowball stopwords (#2223) `(PR #2225)`
+ - Narrowed down the stopwords list used in Cody context, to fix an issue where we could miss highly relevant files.Backports [https://github.com/sourcegraph/sourcegraph/pull/2223](https://github.com/sourcegraph/sourcegraph/pull/2223)
+- [Backport 5.10.x] bugfix: do not load commit history eagerly `(PR #2201)`
+ - Fixes a bug where the new web app may consume an outsized amount of backend resources when browsing large repositories. Backport 79546146e2bfa4e3fcee1a8e825ad48823c8cd77 from #2197
+- [Backport 5.10.x] Cody context: clean up resolvers `(PR #2187)`
+
+{/* RSS={"version":"v5.10.2832", "releasedAt": "2024-12-12"} */}
+
+
+# 5.10 Patch 1
+
+> Warning: This release updates the database container images from Postgres 12 to Postgres 16, and begins using Wolfi based images. Customers are advised to take a database backup before upgrading! See our [Postgres 12 end of life](https://sourcegraph.com/docs/admin/postgres12_end_of_life_notice#postgres-12-end-of-life) notice!
+>
+> Warning: `automatic` upgrades will require setting the environment variable `SRC_AUTOUPGRADE_IGNORE_DRIFT=true` on the `sourcegraph-frontend` deployment/container.
+>
+> Also be sure to check your deployment type's [upgrade notes](http://sourcegraph.com/docs/admin/updates#instance-specific-procedures)!
+
+## v5.10.1164
+
+- [sourcegraph](https://github.com/sourcegraph/sourcegraph/releases/tag/v5.10.1164)
+
+- [docker-compose](https://github.com/sourcegraph/deploy-sourcegraph-docker/releases/tag/v5.10.1164)
+
+- [helm](https://github.com/sourcegraph/deploy-sourcegraph-helm/releases/tag/v5.10.1164)
+
+- [kustomize](https://github.com/sourcegraph/deploy-sourcegraph-k8s/releases/tag/v5.10.1164)
+
+### Fix
+
+#### Database
+
+- Remove 5.10 deprecation dates on out of band migrations `(PR #1996)`
+ - We are removing the deprecation dates on out of band migrations which deprecated in 5.10. This is to unblock MVU and autoupgrades which are encountering a bug with deprecated out of band migrations. Backport f654dcc9200e2dda2deddc8f98bcd972e6a873fd from #1995
+
+#### Search
+
+- Disable zoekt go-git optimization by default `(PR #2051)`
+ - Disabled an indexed search optimization which would skip files accidentally (`ZOEKT_DISABLE_GOGIT_OPTIMIZATION=true`). Backport 34ada948bdcee3d75499c98f4db5c32986943e88 from #2050
+
+### Reverts
+
+ There were no reverts for this release
+
+### Uncategorized
+
+#### Others
+
+- [Backport 5.10.x] oob: Actually run for all tenants `(PR #1994)`
+
+{/* RSS={"version":"v5.10.1164", "releasedAt": "2024-12-03"} */}
+
+
+# 5.10 Patch 0
+
+> Warning: Admins are advised to upgrade directly to v5.10.1164 circumventing this release.
+>
+> Warning: This release updates the database container images from Postgres 12 to Postgres 16, and begins using Wolfi based images. Customers are advised to have a database backup before upgrading! See our [postgres 12 end of life](https://sourcegraph.com/docs/admin/postgres12_end_of_life_notice#postgres-12-end-of-life) notice!
+>
+> Warning: `automatic` and migrator `upgrade` command will not work for this release, please upgrade directly to `v5.10.1164`, or to a 5.9 version and conduct a standard upgrade using migrator's default `up` command!
+>
+> Also be sure to check your deployment type's [upgrade notes](http://sourcegraph.com/docs/admin/updates#instance-specific-procedures)!
+
+## v5.10.0
+
+- [sourcegraph](https://github.com/sourcegraph/sourcegraph/releases/tag/v5.10.0)
+
+- [docker-compose](https://github.com/sourcegraph/deploy-sourcegraph-docker/releases/tag/v5.10.0)
+
+- [helm](https://github.com/sourcegraph/deploy-sourcegraph-helm/releases/tag/v5.10.0)
+
+- [kustomize](https://github.com/sourcegraph/deploy-sourcegraph-k8s/releases/tag/v5.10.0)
+
+### Features
+
+#### Autoedit
+
+- Add autoedit model to use chat completions end point `(PR #1809)`
+
+#### Ci
+
+- Move rules_pkg to MODULE.bazel `(PR #1660)`
+
+#### Cody
+
+- Fix ootb prompt details page `(PR #1902)`
+- Update cody web to 0.14.0 version `(PR #1895)`
+- Add support for out-of-the-box prompts `(PR #1726)`
+- Support openai predicted outputs `(PR #1625)`
+ - Cody Gateway: add support for OpeanAI predicted outputs
+- Added `systemPreInstruction` (CODY-4032) `(PR #1402)`
+ - Adds `systemPreInstruction` to the `modelConfiguration` key in site admin config that allows injecting a prelude prompt into every chat request for an enterprise
+
+#### Cody-Gateway
+
+- Add gpt-4o-mini model `(PR #1591)`
+ - Cody Gateway: add `gpt-4o-mini` to Cody Gateway allow list
+ - Cody Gateway: add `gpt-4o-mini` to DotCom models list
+
+#### Conf/Deploy
+
+- Add 'workspace' deploy type `(PR #1710)`
+
+#### Dev
+
+- Use svelte-dev for multi-tenant `(PR #1843)`
+- Add alias 'sg bz cf' for 'sg bz configure' `(PR #1827)`
+- Add '-open=false' option for 'sg sams login' `(PR #1498)`
+- Adding sg command to request Entitle bundles `(PR #1370)`
+
+#### Gateway
+
+- Add `/models.json` endpoint (PRIME-601) `(PR #1728)`
+- Disable flagged model blocking for enterprise (PRIME-602, PRIME-605) `(PR #1659)`
+
+#### Github
+
+- Add client ID support for GitHub App authentication `(PR #1622)`
+ - The GitHub app authentication package now supports authenticating a GitHub app via the OAuth client ID following the announcement of [https://github.blog/changelog/2024-05-01-github-apps-can-now-use-the-client-id-to-fetch-installation-tokens/](https://github.blog/changelog/2024-05-01-github-apps-can-now-use-the-client-id-to-fetch-installation-tokens/)
+
+#### Graphql
+
+- Add support for reading GitHub App Installation repos from GitHub REST API `(PR #1711)`
+ - A new GraphQL query, `GithubAppRepositoriesForInstallation`, has been added that provides a paginated list of all the GitHub repositories that are accessible to the GitHub app with the provided installation id.
+- Add endpoint for getting github app installations scoped by user `(PR #1606)`
+ - A new graphql endpoint has been added, GithubAppInstallationsForUser, that returns installation information for the global GitHub multi tenant app when running in multitenant mode.
+
+#### Internal/Github
+
+- Add pagination support and test for GetUserInstallations `(PR #1572)`
+ - The Github API client's [GetUserInstallations](https://docs.github.com/en/rest/reference/apps#list-app-installations-accessible-to-the-user-access-token) route, which lists of GitHub App installations the user has access to, now has pagination support.
+
+#### Lib/Cloudapi
+
+- Add support for workload identity to auth roundtripper `(PR #1623)`
+
+#### Local
+
+- Add bazel mod tidy to `sg bazel configure` step `(PR #1656)`
+
+#### Msp
+
+- Apply default max DB conns of 8*CPU `(PR #1394)`
+
+#### Msp/Cloudsql
+
+- Annotate cloudsql trace spans with target database `(PR #1398)`
+
+#### Mt-Router
+
+- Add support for SOAP redirect `(PR #1510)`
+
+#### Multi-Tenant
+
+- Redirect to workspaces/join on user-not-found `(PR #1604)`
+
+#### Multitenant
+
+- Rework GraphQL resolvers and add back App installation link `(PR #1819)`
+- Add temporary UI for workspace repository management `(PR #1791)`
+- Add helper routine for instantiating github app from multitenant credentials `(PR #1758)`
+ - A simple helper routine to the multitenantenv package that automatically populates a github app struct with the provided validated credentials.
+- Use default cookie for github app oauth login `(PR #1571)`
+ - The routing logic for multitenant mode now has a new route that uses the "last seen tenant" cookie to route github app login authorization callbacks to the appropriate tenant.
+
+#### Release
+
+- Add pg16 and pg16 codeinsights to published images `(PR #1731)`
+ - Feat(rel): Add Postgresql 16 and Postgresql 16 codeinsights images to published image list.
+- Add pg 16 codeinsights entrypoint and tests `(PR #1730)`
+ - Feat(rel): Add self updating to Postgres 16 codeinsights db image.
+- Add pg 16 entrypoint and tests `(PR #1718)`
+ - Feat(rel): Add self updating to Postgres 16 container image.
+- Add wolfi postgres 16 codeinsights-db base image `(PR #1619)`
+ - Feat(rel): Add Postgres 16 CodeInsights Wolfi image
+- Add wolfi postgres 16 base image `(PR #1617)`
+ - Feat(rel): Add Postgres 16 Wolfi image
+
+#### Release
+
+- Handle postgres version upgrades in upgrade test `(PR #1918)`
+ - Refactor upgradetest
+ - Introduce proper handling of the postgres version upgrade
+ Backport 9ccdf4200e3e08cea56bffe5779ca8a6cda2909c from #1894
+
+#### Search
+
+- Include file paths in reranker items `(PR #1866)`
+ - Cody context now incorporates filename information in reranking, improving context quality when the reranker is enabled.
+- (new web ui) Add 'open in code host' button to repo root and folder pages `(PR #1776)`
+- (new web ui) Copy URL to clipboard when clicking 'Permalink' `(PR #1774)`
+- (new web ui) Show file/folder name in title instead of full path `(PR #1735)`
+- (new web ui) Add survey toast `(PR #1453)`
+- (new web ui) Show loading indicator when navigating up the file tree `(PR #1465)`
+
+#### Sg
+
+- Add workspaces common operations `(PR #1845)`
+ - Support `get`, `list`, and `delete` workspaces to `sg`
+
+#### Source
+
+- Allow GitHub code host connections to specify an external account as the authenticator `(PR #1842)`
+- Multitenant: add worker job for inserting github multitenant app credentials `(PR #1668)`
+ - A new worker job has been added that updates the database with the credentials for the global github app when running in multitenant mode.
+
+#### Telemetry
+
+- Add request client name and version to telemetry gateway payload `(PR #1607)`
+
+#### Tenant/Reconciler
+
+- Report backpressure when tenants > 0.85*targetMaxTenants `(PR #1719)`
+- Exclude DESTROY_SUCCESS from global reconcile `(PR #1534)`
+
+#### Workspaces
+
+- Check basic email validity to create invite `(PR #1849)`
+- Always set displayName=name if displayName is not set `(PR #1838)`
+- Email all workspace admins when a user joins a workspace `(PR #1824)`
+- Add CheckWorkspaceName RPC `(PR #1822)`
+- Initial iteration of new creation flow `(PR #1806)`
+- Check billing seats when joining and inviting `(PR #1770)`
+- Always apply DEFAULT_WORKSPACE_INSTANCE_CLASS on workspace create `(PR #1763)`
+- Accept instance class `(PR #1752)`
+- List eligible-to-join workspaces in UI `(PR #1672)`
+- Explicit invites POC `(PR #1624)`
+- Error-log illegal state transitions for Sentry `(PR #1616)`
+- List includes workpsaces a user can join via open invite `(PR #1586)`
+- Make membership limits configurable `(PR #1584)`
+- Name, display name, and open invite email domain blocklists `(PR #1539)`
+- Free up assigned workspace slot when workspace is DESTROY_SUCCESS `(PR #1535)`
+- Prevent management API from reading workspaces in deletion state `(PR #1508)`
+- Prune iam store on deletion `(PR #1504)`
+- Implement router pruning, add 'pruned_router_at', 'pruned_iam_at' `(PR #1480)`
+- Delete and reconcile routes `(PR #1440)`
+
+#### Workspaces/Blocklists
+
+- Improve heuristics and errors `(PR #1801)`
+
+#### Workspaces/Instances
+
+- Add UNAVAILABLE, CAPACITY_PRESSURE states `(PR #1712)`
+
+#### Workspaces/Integrations
+
+- Provide workspace uri `(PR #1477)`
+
+#### Workspaces/Web
+
+- As-you-type name validation POC `(PR #1858)`
+
+#### Others
+
+- Switch to buildkite for nightly release pipeline `(PR #1690)`
+ - N/A
+- Add new telemetry v2 events for server side batch changes `(PR #1666)`
+- Add events for interactions with search input toggle buttons `(PR #1469)`
+- Add events for codenav actions `(PR #1441)`
+- Make filters sidebar collapsible `(PR #1437)`
+ - Search filters sidebar is now collapsible
+- Add dynamic filters and aggregation for repo metadata and topics `(PR #1420)`
+ - Added dynamic filters and the ability to aggregate by repo metadata and repo topic
+- Render mdx as markdown `(PR #1392)`
+ - Render .mdx files as markdown
+
+### Fix
+
+#### Batch Changes
+
+- Titles now break over multiple lines if they are too long `(PR #1582)`
+ - Fix(batches): titles now break over multiple lines if they are too long
+- Do not ignore bool env var parsing error `(PR #1537)`
+
+#### Client
+
+- Address pnpm lint:js:web issues and add job in CI `(PR #1520)`
+
+#### Code Intelligence
+
+- Align repo batch settings between syntactic and precise indexing `(PR #1663)`
+- Fix wrong offset in policy iteration `(PR #1546)`
+
+#### Cody
+
+- Use models from model config for PLG chat `(PR #1870)`
+- Sync allowed models in dotcom user rate limits with models.json `(PR #1864)`
+- Filter allowed models based on subscription tier `(PR #1636)`
+
+#### Database
+
+- Drop unique slug contraint from github app table `(PR #1689)`
+ - The github_apps table has removed an erroneous unique constraint that accidentally incorporated an app's slug (which is mutable) as part of the unique identifier for an app.
+
+#### Database
+
+- Update generated squash and schemas `(PR #1917)`
+
+#### Dev
+
+- Fix kill pubsubemulator `(PR #1850)`
+- Correctly pick up error message from 'sg sams login' `(PR #1482)`
+
+#### Enterpriseportal
+
+- Allow list to accept display name query of 2 characters `(PR #1603)`
+
+#### Gateway
+
+- Add blocked phrase if request was blocked due to flagged models list (PRIME-603) `(PR #1670)`
+- Make model cost a pointer (CODY-4007) `(PR #1427)`
+
+#### Graphql
+
+- Refactor getGithubAppFromEnvvar to use multitenantEnv.Config.AsGithubApp `(PR #1767)`
+ - The logic in the new multitenant GraphQL resolvers has been reworked to use the new helper methods introduced in the Multitenant GitHub app configuration logic introduced in [https://app.graphite.dev/github/pr/sourcegraph/sourcegraph/1758/](https://app.graphite.dev/github/pr/sourcegraph/sourcegraph/1758/).
+
+#### Insights
+
+- Fix incorrect line counts in non-default config `(PR #1517)`
+ - Code insights should show correct line counts when enhanced language detection is turned off (note: this setting is on by default).
+
+#### Local
+
+- Display external env overrides when displaying environment variables `(PR #1595)`
+- Sg - Fix images query to point to correct rule `(PR #1430)`
+
+#### Release
+
+- Fix oob migrations hanging `(PR #1959)`
+ - NA
+ Backport a943412a99852332f921b52a0ee3179dc3331d20 from #1958
+- Add vacuum after reindex in Postgres upgrade script `(PR #1779)`
+ - Fix(rel): Add vacuum to Postgres upgrade process
+- Install `sg` in the nightly pipeline GHA `(PR #1675)`
+ - N/A
+
+#### Release
+
+- Correct views drift in postgres 16 `(PR #1878)`
+ - Add migrations to handle database drift caused during postgres 12 to postgres 16 upgrade
+- Fix drift check in local upgradetest `(PR #1832)`
+ - Fix bug in local upgrade test preventing final stage drift check via private monorepo
+
+#### Search
+
+- Consistently marshal SearchTypeRegex as regexp `(PR #1919)`
+ - We sometimes would emit `patternType:regex` instead of `patternType:regexp`. We now always do regexp as well as treating regex as an alias for regexp.
+ Backport a095b39ac39cfcbe3526ecf85ed6d50cb5fa3d9d from #1808
+- Executors on Kubernetes: propagate user and group from Executor env vars to batch change job pod `(PR #1863)`
+ - The environment variables `KUBERNETES_RUN_AS_USER` and `KUBERNETES_RUN_AS_GROUP` contribute to the Job `PodSpec`'s `SecurityContext`.
+ - The default value for those variables is `-1`, which could cause errors with some Kubernetes clusters.
+- (new web app) Only update user activity data once on load `(PR #1797)`
+- (new web ui) Respect 'window.context.disableFeedbackSurvey' flag `(PR #1778)`
+- (search input) Treat not, and, or as keywords regardless of case `(PR #1733)`
+- (new web ui) Fix dimensions of line selection marker `(PR #1417)`
+- (new web ui) Add rollover effect to RadioButtonGroup `(PR #1416)`
+- (new web ui) Fix duplicate lint suggestion insertion `(PR #1413)`
+- (new web ui) Remove unintentional vertical scrollbars `(PR #1411)`
+- (new web ui) Only show specific repo menu items when features are enabled `(PR #1401)`
+
+#### Security
+
+- Do not expand env vars in executor logs `(PR #1811)`
+ - This change reduces the risk of secrets being emitted in executor logs even if there are bugs in the secret redaction logic.
+
+#### Sg
+
+- Remove noop -d declaration for psql `(PR #1455)`
+- Specify postgres database for psql commands `(PR #1450)`
+
+#### Source
+
+- P4-fusion now decodes encode file paths from Perforce `(PR #1347)`
+ - When cloning Perforce depots, Sourcegraph will now decode encoded paths correctly (paths that include characters like `@` and `#`)
+
+#### Tenant/Reconciler
+
+- Do not check dormancy if still in PROVISION states, only check if needed `(PR #1605)`
+- On getTenantErr, report destroy state if in destroy state `(PR #1563)`
+
+#### Workspaces
+
+- Properly represent workspace state to management API `(PR #1816)`
+- Fix DESTROY_PENDING proto adapter, improve handling of unknown states `(PR #1814)`
+- Improve CreateWorkspace resilience `(PR #1773)`
+- Remove broken down-migration statements `(PR #1754)`
+- Support creating workspaces over API `(PR #1714)`
+- Do not list all workspaces if user has no memberships `(PR #1671)`
+- Tidy up email-disabled error log `(PR #1667)`
+
+#### Workspacesreconciler
+
+- Fix double-counting of checked workspaces `(PR #1753)`
+
+#### Others
+
+- Prompt page tweaks `(PR #1899)`
+- Revision picker growth `(PR #1875)`
+- More contrast updates `(PR #1871)`
+- Reranker: recreate from config on every call `(PR #1865)`
+- Prompt library visual updates `(PR #1852)`
+- Use standard protojson library for reducing memory `(PR #1846)`
+- Increase contrast everywhere `(PR #1840)`
+- Make owner nullable in prompts `(PR #1746)`
+- Only retry queries `(PR #1706)`
+- Reranker: listen to config changes, do not mutate config `(PR #1705)`
+- Retry graphql on 502 errors `(PR #1683)`
+ - Fix(web): retry graphql requests on network errors
+- Styling changes to explore panel and badges `(PR #1528)`
+- Increase contrast of highlighted code background and line numbers in selected area `(PR #508)`
+
+### Chore
+
+#### Ci
+
+- Container structure test bzlmod migration `(PR #1818)`
+- Migrate protobuf and rules_proto rules to bzlmod `(PR #1749)`
+- Move buildifier prebuilt to bzlmod `(PR #1709)`
+- Increase buildifier timeout to 6m `(PR #1658)`
+- Move bazel_skylib to bzlmod `(PR #1654)`
+- Bazel - Remove build_tests_only flag for db tests `(PR #1610)`
+- Bazel - Add config settings to switch between pg-12 and pg-16 binaries `(PR #1601)`
+- Refactor bazel migrations `(PR #1583)`
+- Update github workflow for pg-12 and pg-16 package variants `(PR #1580)`
+- Upgrade aspect bazel lib `(PR #1425)`
+- Upgrade to latest rules proto grpc `(PR #1424)`
+- Enable db tests task to run on ci agents with postgres 16 `(PR #1293)`
+- Upgrade rules_pkg `(PR #976)`
+- Upgrade aspect cli `(PR #975)`
+
+#### Code Intelligence
+
+- Remove unused return value & pass TraceLogger `(PR #1551)`
+- Enable exhaustruct for more subfolders (part 2) `(PR #1547)`
+- Document why RepositoryID field is nil `(PR #1545)`
+- Add helper types for relationships `(PR #1542)`
+
+#### Dev
+
+- Delete tracking-issue package `(PR #1556)`
+- Add iterator helper for pagination `(PR #1555)`
+- Fix links to sg monorepo in Markdown `(PR #1554)`
+- Add more helper functions to iterext `(PR #1549)`
+- Enable exhaustruct for more subfolders `(PR #1544)`
+- Add helper package for property-based testing `(PR #1540)`
+- Introduce helper package for iter.Seq `(PR #1522)`
+- Fix links to sg monorepo `(PR #1519)`
+- Simplify language detection code in inventory `(PR #1518)`
+- Flip polarity of boolean for language detection `(PR #1516)`
+- Use a lazyFile type to consolidate lazy file content fetching `(PR #1515)`
+- Rename functions for clarity `(PR #1514)`
+- Remove direct usages of enry.IsVendor `(PR #1513)`
+- Simplify sorting logic `(PR #1512)`
+- Rename type Lang -> LanguageStats `(PR #1511)`
+- Migrate from sync.WaitGroup to conc APIs `(PR #1495)`
+- Fix warning about missing integrity field `(PR #1494)`
+- Update for loops for newer syntax `(PR #1488)`
+- Factor out offset & limit logic `(PR #1486)`
+- Switch to alternate orderedmap library `(PR #1414)`
+- Clarify docs & naming in debugserver code `(PR #1384)`
+
+#### Dev/Mt-Router
+
+- Silence cache miss on default `(PR #1565)`
+
+#### Dotcom
+
+- Rename 'cody services' to just 'cody gateway' `(PR #1466)`
+
+#### Frontend
+
+- Store model config in global var `(PR #1805)`
+
+#### Gateway
+
+- A few small docs fixes `(PR #1751)`
+- Make provider type more specific `(PR #1750)`
+
+#### Local
+
+- Small improvements to sg entitle `(PR #1794)`
+
+#### Msp/Iam
+
+- Suggest standard IAM_MAX_DB_CONNS as env var `(PR #1499)`
+
+#### Release
+
+- Remove postgres-12 wolfi from published images `(PR #1737)`
+ - Chore(rel): remove unused Postgres 12 images
+- Remove appliance from published images and codebase `(PR #1732)`
+ - Chore(rel): remove appliance from published images
+
+#### Release
+
+- Remove check against latest full version in `--post-release-version` code path `(PR #1585)`
+
+#### Search
+
+- (new web ui) Improve search home page SG logo rendering `(PR #1813)`
+- Add NodeJS 20 to the Bundled Executor image `(PR #1569)`
+- Update search web app title and description for SEO on dotcom `(PR #1509)`
+- Add JDK 17 and 21 to the Bundled Executor image `(PR #1502)`
+- (new web ui) Remove beta badge from search progress popover `(PR #1418)`
+- Update CPU and MEM panels for zoekt `(PR #1368)`
+ - We have updated the CPU and MEM monitoring panels for Zoekt on Grafana. The new panels reduce redundancy and provide more insight into MEM distribution.
+
+#### Source
+
+- Simplify oauth middleware `(PR #1876)`
+- Update the gitserver image lockfile to contain the latest p4-fusion `(PR #1410)`
+- Default perforce changelist mapping to enabled `(PR #1376)`
+
+#### Telemetry
+
+- Align billing metadata values with 'sourcegraph/cody' `(PR #1396)`
+
+#### Telemetry/Geolocation
+
+- Update DB-IP Lite database `(PR #1468)`
+ - The local geolocation inference database used in telemetry and audit logs has been updated.
+
+#### Telemetrygateway
+
+- Bump slow-request threshold `(PR #1647)`
+
+#### Tenant/Reconciler
+
+- Add some additional diagnostics `(PR #1795)`
+
+#### Workspaces
+
+- Include longer s&p500 names for fuzzy matching `(PR #1844)`
+- Make unexpected errors more friendly `(PR #1821)`
+- Add spans on write interactions `(PR #1807)`
+- Instantiate large blocklists once in store `(PR #1562)`
+
+#### Workspaces/Web
+
+- Use unified client constructor `(PR #1828)`
+
+#### Others
+
+- Rename method to indicate lack of redaction clearly `(PR #1790)`
+- Reorder fields in executor Config `(PR #1785)`
+- Remove custom Set type `(PR #1742)`
+- Rename Set.Values() -> ValuesNonDet() for clarity `(PR #1741)`
+- Avoid materializing Set Values() just for length `(PR #1739)`
+- Add env var to disable precise & syntactic `(PR #1707)`
+- Bump autoindexing image SHAs `(PR #1703)`
+- Move CodyGatewayRateLimit calculation to where it's used `(PR #1693)`
+- Remove env lock mechanism `(PR #1593)`
+ - Fix(dev): remove env.Get lock that could cause a runtime panic
+- Update event names `(PR #1500)`
+- Remove robert from many CODENOTIFYs `(PR #1421)`
+- Update new search events to make them easier to use `(PR #1395)`
+
+### Refactor
+
+#### Local
+
+- Move reset-pg to internal/db `(PR #1573)`
+
+### Reverts
+
+- Revert "chore/dev: upgrade aspect_bazel_lib to 2.9.4 (#1713)" `(PR #1713)`
+
+### Uncategorized
+
+#### Others
+
+- [Backport 5.10.x] Revert "chore(source): simplify oauth middleware" `(PR #1928)`
+- Githubapp: Expose monolith GitHub app ClientID `(PR #1904)`
+- Pnpm: Remove leftover appliance links in workspace `(PR #1900)`
+- Core: Fixup pnpm lockfile `(PR #1886)`
+- Tenant: Hide unlink button for SAMS external accounts `(PR #1885)`
+- Auth: Hide unlink button for external accounts that cannot be unlinked `(PR #1884)`
+- Svelte: Correctly hide navbar entries `(PR #1883)`
+- Svelte: Add back settings link `(PR #1882)`
+- Workspaces/billing: attach metadata and context without cancel whenever possible `(PR #1881)`
+- Web: respect `expanded` in the search results URL `(PR #1880)`
+ - Fixed an issue where searches from saved URLs may now show aggregations by default
+- Add timeout to gateway calls `(PR #1879)`
+- Workspaces: Align styling for join page `(PR #1860)`
+- Workspaces: Add tables for listing workspaces `(PR #1857)`
+- Workspaces: Slightly tweak style `(PR #1851)`
+- Workspaces: Directly link to installation target `(PR #1848)`
+- Tenant: Suppress some irrelevant missing_context pprof traces `(PR #1847)`
+- Workspaces: Fix workspace picker rendering in React `(PR #1841)`
+- Fix permissions connection resolver ordering `(PR #1839)`
+- Workspaces: Add seat selector on plan page `(PR #1835)`
+- Workspaces/billing: create RPC for purchasing seats `(PR #1831)`
+- Workspaces/billing: extract subscription attribute computation into a `Plan` helper `(PR #1830)`
+- Workspaces: Add updated workspace pickers for tenant `(PR #1829)`
+- Workspaces: Add field to pre-purchase extra seats `(PR #1826)`
+- Workspaces/billing: implement periodic workers for subscription renewal `(PR #1823)`
+- Auth: Fix background contexts in validate authz provider `(PR #1802)`
+- Redispool: support more configuration options `(PR #1799)`
+- Workspaces/billing: add tests to `cmd/workspaces/internal/billing` `(PR #1786)`
+- Workspaces/billing: update test for `ManagementService.CreateWorkspace` `(PR #1784)`
+- Workspaces/billing: add database tests for customers `(PR #1783)`
+- Workspaces/billing: add database tests for transactions `(PR #1782)`
+- Require `X-Requested-With` for Cody API (CODY-4209) `(PR #1781)`
+ - `X-Requested-With` is now a required HTTP header for Cody API calls
+- Context: narrow down stopwords list `(PR #1780)`
+- Workspaces/billing: ignore invoices that are not for the current instance `(PR #1777)`
+- Workspaces/billing: support soft-deleting subscriptions `(PR #1772)`
+- Feature/internal: upsert github credentials on tenant creation `(PR #1769)`
+ - The multitenant reconciler now proactively inserts the credentials for the shared multitenant GitHub app whenever a new tenant is created.
+- Lib/cloudapi: add mt instance type `(PR #1766)`
+- Tenant: Add configuration for MT GitHub App to localdev `(PR #1756)`
+- Seed builtin prompts `(PR #1755)`
+ - Prompts including "Document Code", "Explain Code", "Generate Unit Tests", "Find Code Smells"
+- Tenant: Enable onebox on tenant creation `(PR #1748)`
+- Onebox: introduce 'nls' patterntype `(PR #1744)`
+- Workspaces/billing: implement Stripe webhook handler `(PR #1740)`
+- Cody-gateway: update deployment id for model `(PR #1729)`
+- Workspaces/billing: implement seat purchase and consumption `(PR #1723)`
+- Localdev: Disable precise, syntactic codeintel in multitenant mode `(PR #1720)`
+- Workspaces/billing: use the "correct" way to list customer payment methods `(PR #1717)`
+- `sg start sveltekit-minimal` for quickly running the new UI `(PR #1702)`
+- Conf: Move more types to conftypes `(PR #1692)`
+- Remove experimental admin onboarding v2 `(PR #1691)`
+- Telemetry: Implement telemetry exports for workspaces `(PR #1677)`
+- Autoedit: add speculative decoding `(PR #1673)`
+ - Autoedit: Add speculative decoding support from fireworks
+- Fix `marketingTracking` sending null `(PR #1669)`
+- Prompts: fix prompt name validation and prompts migration `(PR #1664)`
+- Add GraphQL resolvers to read and set a list of repositories for a GH App installation ID `(PR #1657)`
+- Fixup: remove Git conflict marks in `sg.config.yaml` `(PR #1649)`
+- Require prompt field before successful submission `(PR #1639)`
+- Add builtin prompts field to prompts `(PR #1633)`
+- Zoekt: refactor memory dashboards `(PR #1618)`
+- Workspaces: add billing prototype for subscription creation `(PR #1611)`
+- Admin: Update report an issue link `(PR #1608)`
+- Change default autoedit model `(PR #1589)`
+- Feat(cloud) sg cloud eph deploy: support ms env `(PR #1581)`
+- Add Cody.promptLibrary telemetry `(PR #1568)`
+- Worker: Group tasks by purpose `(PR #1566)`
+- Improve policy iterator tests to not rely on SQL for insertion `(PR #1560)`
+- Repoupdater: Fix slow scheduling of cloned->uncloned repos `(PR #1552)`
+- Repoupdater: Fix reporting of background routines `(PR #1550)`
+- Update Prompts Library UI (list page) `(PR #1548)`
+- Update prompt detail header UI `(PR #1538)`
+- Context: remove experimental intent routing `(PR #1536)`
+- Add 'recommended' checkbox to new creation UI. `(PR #1531)`
+- Dormancy: Also fall asleep tenants that never see traffic `(PR #1530)`
+- Fix reranker not being applied `(PR #1529)`
+- Sg: Fix local dev pguser setup `(PR #1506)`
+- Context: ensure we propagate timeouts and missing repos `(PR #1505)`
+- Make Visual Studio Experimental `(PR #1503)`
+- Context: always use more items for reranker `(PR #1476)`
+- Remove insert prompt mode `(PR #1475)`
+- Add missing Cody Web Alert CSS variable override `(PR #1474)`
+- Repoupdater: Fix no rows returned error `(PR #1472)`
+- Add autoedits to cody gateway `(PR #1459)`
+- Ci: bump go-mod-tidy step timeout `(PR #1452)`
+- Add commands to prompts migration `(PR #1449)`
+- Repoupdater: Speed up repo_update_job dequeues `(PR #1448)`
+- Repoupdater: Clean up metrics `(PR #1447)`
+- Repoupdater: Speed up and simplify not fetched metric `(PR #1446)`
+- Migration: Checkpoint new repo_update_jobs migration `(PR #1445)`
+- Gomod: bump Zoekt for query perf fix `(PR #1438)`
+- Implement prompt detail page re-design `(PR #1423)`
+ - Re-designed prompt detail page.
+- Add page faults to Zoekt memory metrics `(PR #1422)`
+- Chore/source Update src-cli version to 5.8.2 `(PR #1415)`
+ - Chore/source Update src-cli version to 5.8.2
+- Siteadmin: Reset pagination cursors after filter change `(PR #1404)`
+- Bugfix: fix settings link `(PR #1393)`
+- Gomod: bump Zoekt for go-git optimization `(PR #1391)`
+- Update Marketing URLs in the site footer links `(PR #1390)`
+- Soft delete prompts `(PR #1386)`
+- Widen blocked phrases, but only confine blocked phrases to expensive (aka flagged) models `(PR #1344)`
+- Repoupdater: Drop support for gitUpdateInterval `(PR #1339)`
+ - The site config setting `gitUpdateInterval` has been deprecated and removed. We are removing it in favor of smarter heuristics like webhooks, user traffic, and repo staleness.
+- Repoupdater: Remove total from schedule and update queue state `(PR #1338)`
+- Add system workspace admin role `(PR #1327)`
+- Add syntactic worker to images so it gets updated in helm charts `(PR #1323)`
+- Feature/source: adjust exclude definition in github schema to disallow using name, id with other filter conditions `(PR #1250)`
+ - The github code host connection schema for `exclude` has been updated to enforce that the name and id fields can't be combined with any other fields.
+- Add gitSSHCipher for git code hosts `(PR #1175)`
+- RFC: Dormancy and tenant states `(PR #756)`
+- Web telemetry: update `marketingTracking` to retrieve latest cookies set on web `(PR #460)`
+
+### Untracked
+
+The following PRs were merged onto the previous release branch but could not be automatically mapped to a corresponding commit in this release:
+
+- Fix wrong offset in policy iteration `(PR #1559)`
+- Release: Prep stitched migration graph for release (#1388) `(PR #1389)`
+ - N/a
+
+{/* RSS={"version":"v5.10.0", "releasedAt": "2024-11-27"} */}
+
+
+# 5.9 Patch 4
+
+## v5.9.17785
+
+- [sourcegraph](https://github.com/sourcegraph/sourcegraph/releases/tag/v5.9.17785)
+
+- [docker-compose](https://github.com/sourcegraph/deploy-sourcegraph-docker/releases/tag/v5.9.17785)
+
+- [helm](https://github.com/sourcegraph/deploy-sourcegraph-helm/releases/tag/v5.9.17785)
+
+- [kustomize](https://github.com/sourcegraph/deploy-sourcegraph-k8s/releases/tag/v5.9.17785)
+
+### Fix
+
+#### Cody
+
+- Allow specification of additional chat GPT models for Cody `(PR #3434)`
+Backport 5190f43a4d09810e69400c5d0e6d9176b3c4b815 from #3380
+
+# 5.9 Patch 3
+
+## v5.9.1590
+
+- [sourcegraph](https://github.com/sourcegraph/sourcegraph/releases/tag/v5.9.1590)
+
+- [docker-compose](https://github.com/sourcegraph/deploy-sourcegraph-docker/releases/tag/v5.9.1590)
+
+- [helm](https://github.com/sourcegraph/deploy-sourcegraph-helm/releases/tag/v5.9.1590)
+
+- [kustomize](https://github.com/sourcegraph/deploy-sourcegraph-k8s/releases/tag/v5.9.1590)
+
+### Fix
+
+#### Code Intelligence
+
+- Fix wrong offset in policy iteration `(PR #1559)`
+
+#### Cody
+
+- Fix broken homepage redirect for cody only plans `(PR #1626)`
+ - When using an instance with a Cody-only license, accessing the home page now correctly redirects you to /cody/dashboard, instead of a non-existent /cody page.
+ Backport a4cb5a0723bad18e1c215d81231db457d1abfbdb from #1621
+
+#### Search
+
+- (new web ui) Disable persistence for history/explore panel `(PR #1614)`
+
+### Chore
+
+#### Release
+
+- Remove extra v identifier for version in artifact exporter `(PR #1594)`
+ Backport c4b838103ce2f71e7591ade720e8bdf17f9a5b39 from #1490
+
+### Reverts
+
+ There were no reverts for this release
+
+### Uncategorized
+
+#### Others
+
+- [Backport 5.9.x] azure: Add support for repositoryPathPattern `(PR #1629)`
+ - Added support for the `repositoryPathPattern` property to Azure DevOps code host connections.
+ - Fixed an issue where Azure DevOps repo names included a port number - Aligning with other code host connection implementations Backport 762bd89a12825ff05de98d9c2d8adfcf1ef5bf4a from #1543
+
+{/* RSS={"version":"v5.9.1590", "releasedAt": "2024-11-13"} */}
+
+
+# 5.9 Patch 2
+
+## v5.9.347
+
+- [sourcegraph](https://github.com/sourcegraph/sourcegraph/releases/tag/v5.9.347)
+
+- [docker-compose](https://github.com/sourcegraph/deploy-sourcegraph-docker/releases/tag/v5.9.347)
+
+- [helm](https://github.com/sourcegraph/deploy-sourcegraph-helm/releases/tag/v5.9.347)
+
+- [kustomize](https://github.com/sourcegraph/deploy-sourcegraph-k8s/releases/tag/v5.9.347)
+
+### Fix
+
+#### Dev
+
+- Hoist env vars init to avoid repo-updater panic `(PR #1527)`
+
+### Reverts
+
+ There were no reverts for this release
+
+{/* RSS={"version":"v5.9.347", "releasedAt": "2024-11-06"} */}
+
+
+# 5.9 Patch 1
+
+## v5.9.45
+
+- [sourcegraph](https://github.com/sourcegraph/sourcegraph/releases/tag/v5.9.45)
+
+- [docker-compose](https://github.com/sourcegraph/deploy-sourcegraph-docker/releases/tag/v5.9.45)
+
+- [helm](https://github.com/sourcegraph/deploy-sourcegraph-helm/releases/tag/v5.9.45)
+
+- [kustomize](https://github.com/sourcegraph/deploy-sourcegraph-k8s/releases/tag/v5.9.45)
+
+### Reverts
+
+ There were no reverts for this release
+
+### Uncategorized
+
+#### Others
+
+- "Add syntactic worker to images so it gets updated in helm charts"" `(PR #1483)`
+
+{/* RSS={"version":"v5.9.45", "releasedAt": "2024-11-05"} */}
+
+
+# 5.9 Patch 0
+
+## v5.9.0
+
+- [sourcegraph](https://github.com/sourcegraph/sourcegraph/releases/tag/v5.9.0)
+
+- [docker-compose](https://github.com/sourcegraph/deploy-sourcegraph-docker/releases/tag/v5.9.0)
+
+- [helm](https://github.com/sourcegraph/deploy-sourcegraph-helm/releases/tag/v5.9.0)
+
+- [kustomize](https://github.com/sourcegraph/deploy-sourcegraph-k8s/releases/tag/v5.9.0)
+
+### Features
+
+#### Api
+
+- Added a better error message for 429 errors for `/.api/cody/completions` (CODY-4097) `(PR #1380)`
+
+#### Audit
+
+- Add tenant to audit logs, fix log stack `(PR #960)`
+
+#### Batch Changes
+
+- Show name of additional fields that cause errors `(PR #799)`
+ - Feat(batches): show name of additional fields that cause errors
+
+#### Ci
+
+- Generate frozen files as part of stich_migration_graph generation `(PR #957)`
+- Record Test infrastructure failures `(PR #884)`
+ - Add library that writes to TEST_INFRASTRUCTURE_FAILURE_FILE if it is defined for test failures
+
+#### Cloud
+
+- Allow monolithsams instances to have no conf auth providers `(PR #1247)`
+- Add support to override target managed service endpoints `(PR #1238)`
+- Add support to override license generation public key from cloud site config `(PR #1193)`
+
+#### Code Intelligence
+
+- Syntactic indexing grafana monitoring dashboard `(PR #1263)`
+
+#### Cody
+
+- Add more API docs content `(PR #1378)`
+- Add CLI tool to compute PCW `(PR #1349)`
+- Add Claude 3.5 Sonnet (Latest) & Claude 3 Opus (Latest) `(PR #1244)`
+- Add Cody Audit Log `(PR #1232)`
+- Add cody audit log table and store `(PR #1182)`
+- Expose token usage in the LLM API `(PR #1070)`
+ - The `/.api/completions/stream` API now includes used input/output tokens and the upstream model name in the response body when using the query parameter `api-version=5` or higher. Does not apply to: Vertex Anthropic, Azure OpenAI (mo model name, and no token usage in streaming response), Gemini (no model name in streaming response)
+ - LLM chat completions now support `stream: false` when using Azure OpenAI and OpenAI-compatible providers.
+- Update telemetry feature prefix for Cody API `(PR #1023)`
+- Add embedded API docs via OpenAPI/Redocly `(PR #1014)`
+ - New OpenAPI API docs within the instance at the URL `$SRC_ENDPOINT/api/openapi/public`. Alternatively, reach the page at "User > Settings > OpenAPI Reference".
+- Add basic telemetry recording for Cody API `(PR #943)`
+- Add support to format raw API responses for Cody `(PR #877)`
+ - The raw HTTP API now accepts the query paramter `format=cody` or header `Accept: application/cody` to render files and directories as context items for Cody. Example request path: `/github.com/sourcegraph/cody/-/raw/agent/src/index.ts?format=cody`.
+
+#### Cody-Gateway
+
+- Add new claude-3-5-haiku-latest model `(PR #1471)`
+Cody Gateway: add new claude-3-5-haiku-latest dotcom models list Backport 11e7481ba3c810ae5b47d32b8cf32066e2f0b2bb from #1470
+- Deprecate old claude 3.5 sonnet `(PR #1248)`
+
+#### Dev
+
+- Add externalSecret support for commandsets `(PR #1027)`
+- Sg sams login and cookie-less workspace creation `(PR #913)`
+
+#### Graphql
+
+- Upload graphql schemas to GCS bucket `(PR #1245)`
+
+#### Internal/Requestclient
+
+- Have HTTP middleware populate all response headers with observed X-Forwarded-For and calculated IP for debugging purposes `(PR #524)`
+ - All of Sourcegraph's HTTP responses now contain two new headers for easier debugging purposes.
+- `Observed-X-Forwarded-For`: echos the `X-Forwarded-For` header
+that we observed on the user's incoming request
+- `Observed-Calculated-IP-From-Forwarded-For`: indicates the IP address that we derived from the user's `X-Forwarded-For` header
+
+#### Local
+
+- Use pending spinner for build waiting in cloud ephemeral `(PR #1039)`
+- Add format for displaying env `(PR #918)`
+
+#### Monitoring
+
+- Set decimals to 1 for standard heatmap `(PR #1361)`
+
+#### Monolithsams
+
+- Load SAMS provider and creds from env `(PR #1024)`
+
+#### Msp
+
+- Package 'auditlog' `(PR #1223)`
+
+#### Msp/Pg
+
+- Updated o11y for pool acquire, add overrides for pgxpool.Config `(PR #1375)`
+
+#### Search
+
+- (new web ui) Show loading feedback for hovercards `(PR #1239)`
+- (new web ui) Add ability so switch search scope in fuzzy finder `(PR #1201)`
+- (new web ui) Make view modes available when opening a file at a commit `(PR #1090)`
+- (new web ui) Render relative images in rich text documents `(PR #841)`
+
+#### Sg
+
+- Make workspaces endpoint configurable `(PR #998)`
+- Implement show-env flag `(PR #883)`
+
+#### Site Admin
+
+- Site config 'telemetry: \{ disableLocalEventLogs \}' to disable event_logs `(PR #1275)`
+ - Long-term local retention of user telemetry as 'event logs' can now be disabled entirely via the `telemetry: { disableLocalEventLogs }` site configuration.
+
+#### Sub_repo_perms
+
+- Add conditional logging for seeing if sub_repo_permisisons are working `(PR #673)`
+ - The sub repository permissions implementation now emits logs that describe the rules that were evaluated for a given request whenever tracing is enabled. (We limit these logs for only when tracing is enabled since they can be quite verbose).
+
+#### Telemetry
+
+- Log estimated LLM cost telemetry (CODY-4007) `(PR #1312)`
+ - Adds cost estimates to the ModelConfiguration returned by `.api/llm/supported-models.json`
+ - Adds `llmTokenUsageCostEstimate` telemetry value with estimates of each requests LLM cost in pennies
+- Add check for PGDATASOURCE `(PR #1281)`
+- Add source.server.server_client.user_agent to telemetry payload `(PR #1120)`
+ - Add the sourcegraph API client user-agent to telemetry payload types under `source.server.server_client.user_agent`.
+- Check for external dbs `(PR #1083)`
+- Propagate new x-sourcegraph-api-client-* Headers to request clients `(PR #1025)`
+ - Propagates new X-Sourcegraph-API-Client-Name and X-Sourcegraph-API-Client-Version headers to request clients
+
+#### Telemetry-Gateway
+
+- Improve logging on processing done `(PR #1252)`
+
+#### Telemetrygateway
+
+- Implement publishusermetadata RPC `(PR #1095)`
+- Spec PublishInstanceUserMetadata and pubsub format `(PR #1053)`
+
+#### Telemetrygatewayexporter
+
+- Log export duration, use better duration buckets `(PR #1305)`
+
+#### Tenant/Reconciler
+
+- Full membership reconcile `(PR #953)`
+- Handle tenant-exists, new-tenant, and error combination paths `(PR #895)`
+
+#### Worker
+
+- Delete legacy event_logs exporter `(PR #859)`
+
+#### Worker/Telemetrygatewayexporter
+
+- Opt-in user metadata exporter `(PR #1096)`
+
+#### Workspaces
+
+- Notify user state updates `(PR #1316)`
+- Allow join-by-email to be provided on creation `(PR #1280)`
+- Add management GetWorkspace that allows view-by-email-domain `(PR #1277)`
+- Guard against excessive join-workspaces `(PR #1251)`
+- Restrict memberships/admins before allowing workspace creation `(PR #1212)`
+- Join by email domain POC `(PR #1162)`
+- Configure join by email domains `(PR #1158)`
+- Only recently seen instances are candidates for hosting workspace `(PR #1031)`
+- Ban 'default' as a workspace name `(PR #992)`
+- Forbid 'src-'-prefix workspace names `(PR #920)`
+- Refactor workspace states with reconcile and dormancy `(PR #819)`
+
+#### Workspaces/Management
+
+- Always return roles `(PR #1358)`
+- Provide workspace URI `(PR #1055)`
+
+#### Workspacesreconciler
+
+- Add WORKSPACESRECONCILER_INSTANCE_STATE_OVERRIDE and 'AT_CAPACITY' state `(PR #1297)`
+- Global periodic reconciler `(PR #997)`
+
+#### Others
+
+- Surface result precision in the explore panel `(PR #1359)`
+- More complete search backend events `(PR #1257)`
+- Add embedded file snippet page `(PR #1196)`
+ - Added embeddable page for file snippets
+- Add embedded file snippet component `(PR #1122)`
+- Add search aggregations to svelte webapp `(PR #1093)`
+
+### Fix
+
+#### Api-Docs
+
+- Added OpenAPI Urls to static page info `(PR #1379)`
+
+#### Batch Changes
+
+- Enable request splitting by default `(PR #1229)`
+ - Fix(batches): enable request splitting by default
+- Handle spec being nil for suffix salt `(PR #1228)`
+ - Fix(batches): handle spec being nil for suffix salt
+- Enable GQL request splitting via BATCH_CHANGES_REQUEST_SPLITTING `(PR #1150)`
+ - Fix(batches): enable GQL request splitting via BATCH_CHANGES_REQUEST_SPLITTING
+- Display "Deleted Namespace" instead of throwing an error `(PR #778)`
+ - Fix(batches): display "Deleted Namespace" instead of throwing an error
+
+#### Ci
+
+- Remove dependsOn key for PG16 step `(PR #1295)`
+- Disable db test task temporarily `(PR #1292)`
+- Generate coreos iptable BUILD.bazel file `(PR #1230)`
+- Cap branch names in image tags `(PR #1103)`
+
+#### Code Monitor
+
+- Fail monitors with missing/unverified primary email address `(PR #938)`
+ - Fix(code-monitor): fail monitors with missing/unverified primary email address
+
+#### Code Intelligence
+
+- Add more limits in auto-indexing inference code `(PR #1170)`
+ - Introduces new limits for auto-indexing inference to reduce the risk of continuously growing auto-indexing queues.
+ - The number of jobs spawned per round of auto-indexing inference per repo is capped (default: 100) to reduce risk of clogging of auto-indexing queues. Excess jobs will be discarded.
+ - The number of paths inspected for a single round of auto-indexing inference per repo is capped (default: 500) to reduce risk of timeouts. Excess paths will be discarded.
+- Handle annotated tag hashes passed as 'commit' for uploads `(PR #1135)`
+ - Fixes handling of SCIP uploads when the hash passed to the `-commit` flag of `src-cli` corresponds to the hash of an annotated tag instead of the hash of a commit. Previously, these uploads were not accessible for code navigation.
+- Propagate error collector to fix retention tab GraphQL API call `(PR #847)`
+ - Fixes a bug where the retention tab for precise indexes would show
+a nil pointer exception instead of retention information.
+
+#### Code Nav
+
+- Trigger hovers for all programming languages `(PR #1076)`
+ - Fixes a bug where hovers were not triggered for less mainstream languages like F#,
+Standard ML, Visual Basic, Pkl, Hack, MATLAB etc.
+
+#### Cody
+
+- Convert nil message content parts for OpenAI compatability `(PR #1467)`
+- Guard against completion usage missing (CODY-4135) `(PR #1218)`
+- API telemetry `(PR #1026)`
+- Reset usage when rate limit value or interval decreased `(PR #1015)`
+- Fix CodyLLMConfiguration resolver `(PR #839)`
+
+#### Codyapi
+
+- Restrict audit log retrieval to site admins only `(PR #1285)`
+- Add usage to completions/chat (CODY-3498) `(PR #1131)`
+ - Added token usage information to `.api/llm/chat/completions`
+
+#### Completions
+
+- Clear out usage information on the completions API when version < 5 (CODY-4114) `(PR #1153)`
+
+#### Dev
+
+- Correctly propagate error key-value pairs `(PR #1258)`
+ - Fixes a bug where logs and traces were sometimes missing key-value pairs recorded alongside errors.
+- Fix sg db reset-pg PGUSER overwrite `(PR #1220)`
+- Fix secrets deadlock `(PR #1032)`
+- Fix workspaces client in local dev `(PR #1028)`
+- (new web ui) Properly initialize local dev defaults `(PR #961)`
+- Remove removed table from MT migration `(PR #910)`
+- Report warning if workspace creation failed `(PR #909)`
+- Fix workspaces flakey test `(PR #862)`
+
+#### Frontend
+
+- Place requestclient as one of the first middleware `(PR #1215)`
+
+#### Local
+
+- Move env into correct grouping `(PR #1332)`
+- Specify default database when checking psql version in `sg setup` `(PR #924)`
+- Fix issue with sg start monitoring ignoring dockerCommands `(PR #848)`
+
+#### Mt-Router
+
+- Prevent infinite oauth redirect `(PR #1118)`
+
+#### Release
+
+- Rename generated changelog file `(PR #1136)`
+- Add stitched migration graph override (#935) `(PR #941)`
+ - NA
+
+#### Search
+
+- Disable hybrid search with index:no `(PR #1462)`
+ - `index:no` will now avoid the index completely. Previously it would still consult the index via a process called hybrid search. Search jobs always uses `index:no`, so if you notice a performance problem please reach out to Sourcegraph support. Setting `SRC_DISABLE_RESPECT_INDEX_FIELD` environment variable on the frontend and worker pods will disable this new behaviour in 5.9.x only.Stacked on `(PR #1456)` Closes [https://linear.app/sourcegraph/issue/SPLF-663/disable-hybrid-search-for-search-jobs](https://linear.app/sourcegraph/issue/SPLF-663/disable-hybrid-search-for-search-jobs) Backport 7aced46a7bc3526695a77e492ee69ad2cfa7bb17 from #1460
+- (new web ui) Render submodules differently in file trees `(PR #1377)`
+- Fix document highlights in certain situations `(PR #1343)`
+- (new web ui) Fix relative links to folders `(PR #1331)`
+- (new web ui) Fix file tree sidebar not staying at top level directory `(PR #1328)`
+- (new web ui) Show informative message when repo has no README or description `(PR #1240)`
+- (new web ui) Fix linkifying files `(PR #1236)`
+- (new web ui) Make blob view readonly `(PR #1234)`
+ - Prevents default browser shortcuts from modifying the file content locally.
+- (new web ui) Prevent uncaught error when navigating back to file page `(PR #1199)`
+- (new web ui) Show helpful message for root commit/change list page `(PR #1138)`
+- (new web ui) Do not show loading spinner for empty commit ranges on compare page `(PR #1126)`
+- (new web ui) Fix search aggregation styles `(PR #1125)`
+- Exclude content filters from phrase boosting `(PR #1038)`
+ - This fixes a bug where we would apply a phrase boost if a `content:` filter was specified with keyword search enabled. This led to inconsistent behavior (regexp vs keyword search) and it also rendered the `content:` filter ineffective, because we ran a general text search instead of a just a content search.
+- (new web ui) 'File not found' when quickly navigating between files `(PR #959)`
+- (new web ui) Blame view not visible for files that use `\r` as line separators `(PR #929)`
+- (new web ui) Show settings link to site admins when repo error occurs `(PR #817)`
+
+#### Sg
+
+- Workaround dangling dev resources `(PR #1048)`
+
+#### Source
+
+- Correct Name() documentation for gitserver's ReadDirIterator `(PR #1278)`
+ - The documentation for gitserver's ReadDir method has been clarified to reflect that the return iterator's Name() method returns the full path of the file, as opposed to just the basename.
+- Multiple GitHub external accounts to the same URL now refresh correctly `(PR #1260)`
+ - When there are multiple auth providers configured that point to the same GitHub URL, as can be the case when using private GitHub Apps, user external account tokens will now refresh correctly.
+- Clarify exclude docs in github connection schema to say that individual expressions within block are `and`-ed together `(PR #1249)`
+ - The documentation for the "exclude" section in the github code host connection schema has been clarified to explain that each block is OR'd together, and the expressions within each block are AND'd together.
+- Fix Azure Devops OnPrem connection editing and repo name `(PR #1184)`
+- The sync of a GitHub repositoryQuery failing will no longer cause repos to be deleted `(PR #1177)`
+ - GitHub code host connections using `repositoryQuery` will no longer delete repositories if the sync fails for reasons like a GitHub outage or a token expiring.
+
+#### Sourcegraphaccounts
+
+- Use native openidconnect provider `(PR #1030)`
+
+#### Telemetry
+
+- Only log Cody API events to a remote data store, do n… `(PR #1304)`
+
+#### Telemetry-Gateway
+
+- Fix configuration `(PR #1129)`
+
+#### Tenant/Reconciler
+
+- Avoid illegal state transitions `(PR #1133)`
+- Double-check assigned instance ID `(PR #1092)`
+- Try to audit log after tenant context creation `(PR #1051)`
+
+#### Workspaces
+
+- Build full redirect_to URL `(PR #1315)`
+- Apply 'secure headers' to SPA `(PR #1313)`
+
+#### Others
+
+- Copy changes to prompt settings `(PR #1286)`
+- Remove call to possibly nil error `(PR #973)`
+
+### Chore
+
+#### Ci
+
+- Add TAG_DB_TEST to all go_tests that depends on dbtest `(PR #1288)`
+- Add test task in workflows for dbtest to run on postgres 16 agents `(PR #1287)`
+- Use bazel 7.4.0 `(PR #1284)`
+- Nix - Update pg-utils for patch renames `(PR #1172)`
+- Move //client/svelte:e2e_test to Integration/E2E_test step `(PR #1148)`
+- Upgrade platform rules `(PR #1020)`
+- Move rustfmt flags to ci bazelrc `(PR #1017)`
+- Upgrade rules_ts and rules_js `(PR #1006)`
+- Upgrade aspect rules swc `(PR #988)`
+- Update rules rust v0.52.2 `(PR #985)`
+- Set test label prefix for backcompat tests `(PR #984)`
+- Upgrade rules_buf `(PR #974)`
+- Skip check if author is sg teammate `(PR #969)`
+- Bazel skylib 1.7.1 `(PR #936)`
+- Upgrade rules_go, gazelle, buildifier_prebuilt & rules_proto `(PR #791)`
+
+#### Code Intelligence
+
+- Remove unused parameter `(PR #1204)`
+- Rename flag -update -> -update-jobs-snapshots `(PR #1203)`
+- Use HTTPError type in uploadhandler code paths `(PR #1174)`
+- Remove unused parameters `(PR #1166)`
+- Introduce new FileContentsMap type for clarity `(PR #828)`
+- Use consistent casing for op strings `(PR #789)`
+- Clarify state transitions in GetUsages `(PR #755)`
+
+#### Database
+
+- Remove residual event_logs export stuff `(PR #864)`
+- Drop product_licenses and product_subscriptions `(PR #264)`
+
+#### Database
+
+- OOB migration for setting non-null columns via page `(PR #885)`
+ - An out of band migration is introduced to set slowly set the value of a new column on all tables. If you have a large postgres database for Sourcegraph (1tb+) please ensure you deploy 5.9 instead of doing a multi-version upgrade past it.
+
+#### Dev
+
+- Use clearer names in health server initialization `(PR #1383)`
+- Make syntactic-code-intel-worker config uniform `(PR #1382)`
+- Enable metrics for precise-code-intel-worker in dev `(PR #1365)`
+- Merge fileutil package into fsext `(PR #1351)`
+- Migrate gitserver APIs from fs.FileInfo to fsext.FileInfo `(PR #1318)`
+- Introduce new package with FileInfo type `(PR #1317)`
+- Document footguns around escaping trace data writers `(PR #1291)`
+- Rename errors.ErrCollector -> errors.Collector `(PR #1265)`
+- Introduce new o11y-friendly RichError interface `(PR #1264)`
+- Replace WithErrors -> With for simplicity `(PR #1261)`
+- Generalize 'observation.With' for custom errors `(PR #1233)`
+
+#### Gitserver
+
+- Inline one-liner for error checking `(PR #1108)`
+
+#### Msp
+
+- Upgrade openfga dependency `(PR #1357)`
+
+#### Mt-Router
+
+- Disable proxy for s2 `(PR #1186)`
+- Use bazel to run generator `(PR #1065)`
+- Setup sentry for stage environment `(PR #1064)`
+- Add scripts to interact with local kv `(PR #1056)`
+
+#### Search
+
+- (new web ui) Enable new web UI by default `(PR #1373)`
+- Fix description for KUBERNETES_JOB_STEP_IMAGE `(PR #1360)`
+- Remove all non-single job pod code from Executors on Kubernetes. `(PR #1163)`
+ - The environment variable `KUBERNETES_SINGLE_JOB_STEP_IMAGE` is now `KUBERNETES_JOB_STEP_IMAGE`.
+ - Both environment variables are read, with preference given to `KUBERNETES_JOB_STEP_IMAGE`, to preserve backward compatibility, but reading of `KUBERNETES_SINGLE_JOB_STEP_IMAGE` may be removed in a future version.
+- (new web ui) Improve search input CSS `(PR #962)`
+
+#### Security
+
+- Update rules_apko and fix issues with sg wolfi v2 `(PR #901)`
+ - Build containers using latest version of apko and rules_apko
+
+#### Telemetry
+
+- Report token usage per request to telemetry `(PR #1165)`
+ - Added LLM token usage telemetry
+
+#### Telemetrygatewayexporter
+
+- Bump default TELEMETRY_GATEWAY_EXPORTER_EXPORT_INTERVAL `(PR #1303)`
+
+#### Telemetrytest
+
+- Add working example `(PR #1274)`
+
+#### Others
+
+- Fix storybook `(PR #1335)`
+- Add searchSource to new search events `(PR #1306)`
+- Make core-services internal/telemetry codeowners `(PR #1272)`
+- Upgrade Mocha from 8.3.4 to ^10 `(PR #1246)`
+- Move web app into child layout group to make room for embedded pages `(PR #1128)`
+- Run prettier `(PR #906)`
+- Upgrade hermetic cc toolchain `(PR #844)`
+- Upgrade rules_oci `(PR #818)`
+
+### Test
+
+#### Others
+
+- Implement structure for e2e tests `(PR #108)`
+
+### Refactor
+
+#### Cody-Gateway
+
+- Support max_completion_tokens for o1 models `(PR #947)`
+ - Refactor(cody-gateway): support max_completion_tokens for o1 models
+
+#### Search
+
+- (new web ui) Update folder page table styling `(PR #1221)`
+
+#### Others
+
+- Move all business logic out of context resolvers `(PR #821)`
+
+### Reverts
+
+- Revert filtering out deprecated models on server `(PR #1276)`
+
+### Uncategorized
+
+#### Others
+
+- [Backport 5.9.x] oob: Run without tenant iterator for older versions `(PR #1429)`
+- Release: Prep stitched migration graph for release (#1388) `(PR #1389)`
+ - N/a
+- Move cody.serverSideContext out of experimentalFeatures in site config `(PR #1385)`
+- Bugfix: add key to search result file header `(PR #1374)`
+- Gitserver: Parse LastChanged, LastFetched as nulltime `(PR #1372)`
+- Add code llama 7B model for ab test `(PR #1371)`
+ - Adding code llama 7B for completions
+- Hide auto submit checkbox and add promoted badge `(PR #1367)`
+- Enable reranker by default if Gateway is enabled `(PR #1366)`
+ - Cody Chat: the context engine now uses the reranker by default everywhere where Cody Gateway is enabled.
+- Db: Set default permissions to RLS user as well `(PR #1362)`
+- Remove promote-to-public dependency on bazel-push-images step `(PR #1356)`
+- Release: Only fail SBOM step if all uploads fail `(PR #1355)`
+- Source: Fix code host connection editor validation `(PR #1354)`
+- Bugfix: fix symbol tree hover selector `(PR #1353)`
+- Dev: Exclude generated code from prettier `(PR #1341)`
+- Prompt library: fix input description for prompt name `(PR #1337)`
+- Workspaces: Various mini fixes and a landing page `(PR #1336)`
+- Tenant: Fix gRPC in local dev `(PR #1334)`
+- Reapply "worker: Fix configuration error reporting" `(PR #1311)`
+- Search: document choice for ZoektScoreBoost `(PR #1310)`
+- Bugfix: escape file paths `(PR #1308)`
+- Change clickable elements to buttons `(PR #1298)`
+- Allow users to insert chips according to cursor position `(PR #1296)`
+- Change prompt creation flow feature flag name `(PR #1294)`
+- Pass Context to scip-syntax invocation to propagate cancellation `(PR #1290)`
+- Gomod: bump Zoekt for metrics improvement `(PR #1276)`
+- Redis: rename RedisWrapper `(PR #1273)`
+- Connectutil: UnexpectedError handler `(PR #1271)`
+- Add recommended flag to Prompt Templates `(PR #1268)`
+ - Adds ability to mark prompts as recommended and then sort the recommended prompts at the top.
+- Bugfix: remove possibility of infinite recursion from the symbol tree `(PR #1256)`
+- Update cody web to 0.10.0 `(PR #1254)`
+- Bugfix: use short OID for file popover `(PR #1242)`
+- Remove outdated install instructions for sg `(PR #1227)`
+- Site: Fix missing unredaction in site config `(PR #1226)`
+- Update the sg docs link `(PR #1225)`
+- Multi-tenant: support synchronized user sign-out `(PR #1222)`
+- Sg: Fix db reset with default local settings `(PR #1217)`
+- Db: Improve error message for failed version update `(PR #1216)`
+- Only push final images on specific default runtypes `(PR #1211)`
+- OpenaI completions response type fixing for gpt-3.5-turbo-instruct and gpt-4o-mini `(PR #1207)`
+- Sg: Always run with lower privileges in dev `(PR #1197)`
+- Tenant: Deactivate OOB migrations `(PR #1192)`
+- Update Enterprise footer link on dotcom `(PR #1191)`
+- Bugfix: escape spaces in repo filter names `(PR #1187)`
+ - Fixed a bug that would cause filters added from the search sidebar to not be correctly escaped
+- Attempt to fix flaky database test `(PR #1181)`
+- Chore/search - Remove runner.Spec.Image and use command.Spec.Image instead `(PR #1161)`
+- Dev: Disable otel in MT dev `(PR #1157)`
+- Bug(release): remove semver check for release branch in `sg backport` `(PR #1156)`
+- Make GetCodyContextAlternatives usable for evals `(PR #1152)`
+- Multi-tenant: list workspaces for the authenticated user `(PR #1146)`
+- Saml: Prevent logspam from context cancel `(PR #1143)`
+- Sg: Update localdev migration `(PR #1132)`
+- Tenant: Exclude product subscription tables from OOB migrator `(PR #1124)`
+- Add prompt mode `(PR #1123)`
+ - Adds mode (CHAT, EDIT, INSERT) to prompt.
+- Gitserver: Clarify annotated tags behavior in ResolveRevision `(PR #1107)`
+- Rate limit: rename GlobalLimiter to DistributedLimiter `(PR #1100)`
+- Rate limit: make GlobalLimiter tenant-aware `(PR #1099)`
+- Saml: Fix nil panic `(PR #1098)`
+- Tenant: Disable migrator for ranking tables `(PR #1097)`
+- Rate limit: avoid using KeyValue within GlobalLimiter `(PR #1082)`
+- Rate limit: simplify inMemoryLimiter `(PR #1081)`
+- Tenant: Use frozen schema for OOB migration `(PR #1077)`
+- Make user emails soft-deletable `(PR #1071)`
+- Fix prompt duplication name `(PR #1067)`
+- Sg: Add no-open flag to workspaces create `(PR #1057)`
+- Creating/Editing Prompts Re-design `(PR #1054)`
+ - The prompt creation/edit page has been redesigned.
+- GraphQL: remove anonymous rate limiter `(PR #1052)`
+- Oob: Make out of band migration runner tenant-aware `(PR #1047)`
+- Fix the CTA to point to chat `(PR #1044)`
+- Fix bug where text pushed buttons out of the container `(PR #1043)`
+- Dev: Implement wrangler router provider `(PR #1035)`
+- Router: Ensure HTTPS protocol on auth redirect `(PR #1034)`
+- Workspaces: Fix race condition registering state listener `(PR #1033)`
+- Dev: Introduce devDNS helper to resolve testdomains `(PR #1029)`
+- Add ability to duplicate existing prompts `(PR #1022)`
+ - Users can now duplicate existing prompts.
+- GraphQL: simplify rate limit interface `(PR #1021)`
+- Add autoSubmit & includeViewerDrafts to Cody prompts `(PR #1003)`
+ - Adds options to set prompts to "Auto Submit", which would automatically execute the prompts in one-click.
+- Vsce: patch release v2.2.19 `(PR #1002)`
+- Workspacesreconciler: fix grpc tls transport `(PR #1000)`
+- Tenant: Move externalhttp to separate package `(PR #996)`
+- Goroutine: reenable recording when multitenancy is enabled `(PR #995)`
+- Rename globaldbtenant to servicetenant `(PR #994)`
+- Ci/mt-router: add bazel build `(PR #990)`
+- Search: populate rev in select repo `(PR #989)`
+- Search: correct has.commit.after query example `(PR #987)`
+- Mt-router: import repo `(PR #986)`
+- Tenant: add mt-router to local dev `(PR #968)`
+- Tenant: Remove tenant auth redirect in monolith `(PR #967)`
+- Do not fail if link parsing fails in relative fix processing `(PR #966)`
+- Dev/msp: improve tfc creation error message `(PR #964)`
+- Goroutine: remove unused support for concurrency `(PR #963)`
+- Ci: Bump backcompat test target to 5.8.0 `(PR #954)`
+- Tenant: Mark tenant as initialized in db `(PR #950)`
+- Bug(release): workspace cash time dance `(PR #948)`
+- Tenant: Fix missing tenant in auth check `(PR #933)`
+- Db: Use non-superuser in DB tests `(PR #930)`
+- Db: Migrator can provision RLS user permissions `(PR #919)`
+- Ci: Bump backcompat target to 5.7 `(PR #916)`
+- Sg: Add default tenant to hosts `(PR #915)`
+- Remove "Don't commit private code yet" from PR template `(PR #908)`
+- "Prompt Library" in navbar (capitalize the L for consistency) `(PR #907)`
+- Blob View: Ensure copy button copies full path and not displayed path `(PR #903)`
+ - Fixes a bug where certain copy path buttons were only copying the visible path and not the full path of a file.
+- Sg: Fix reference to deleted table in localdev MT migration `(PR #898)`
+- Tenant: Separate store package and create tenant1, tenant2 via workspaces `(PR #897)`
+- Tenant: skip some global Prometheus metrics `(PR #892)`
+- Sg: Fix startup of workspaces service `(PR #891)`
+- Ci: do not run executors e2e for eph `(PR #886)`
+- Perforce IP enforcement integration test `(PR #876)`
+- Goroutine: Make iterator required `(PR #875)`
+- Dev/msp: add project id validation `(PR #874)`
+- Db: Drop unused user_public_repos table `(PR #873)`
+- Deprecate long-running OOB migrations `(PR #872)`
+- Lib/cloudapi: add support for multi tenant mode `(PR #871)`
+- Event_logs: add new `aggregatedMetrics` ping `(PR #869)`
+- Redis: refactor rcache interface `(PR #860)`
+- Add extra reranker metrics to Gateway events `(PR #838)`
+- Sourcegraph teammate approval GH action `(PR #824)`
+- Redis: remove KEYS call in completions token usage `(PR #820)`
+- Tenant: Properly initialize RBAC `(PR #754)`
+- Sg: Provision RLS user during setup `(PR #749)`
+- Tenant: Add database migration to enable RLS policies `(PR #743)`
+- Tenant: Add workspace ID and display name `(PR #741)`
+- Tenant: Check that all tables have RLS policy set `(PR #734)`
+- Tenant: Simplify dev migration `(PR #726)`
+- Db: Mark tenant_id columns as non-nullable `(PR #707)`
+- Feature: add internal/tracelog: a log.Logger that only logs if tracing is enabled `(PR #634)`
+ - Added a new `internal/tracelog` package that provides a conditional logger for tracing. This logger only logs when tracing is enabled, improving performance by reducing unnecessary logging.
+- Hackathon: SBOMs feat. bazel `(PR #566)`
+ - Feature(security): Publish SBOMs for Sourcegraph releases
+- Tenant: Unique constraint migration `(PR #430)`
+- Security: Auto-update package lockfiles for Sourcegraph base images `(PR #246)`
+- (feature): site-config: add ipParseCacheSize to schema for enforce IP restrictions schema `(PR #220)`
+ - Added a new `ipParseCacheSize` configuration option for sub-repo permissions to control the caching of Perforce "Host" to IP address translations.
+- Feature/source: implement core logic for parsing / evaluating Perforce IP addresses for sub repo permissions `(PR #46)`
+ - For the Perforce IP permissions implementation, this PR introduces machinery that implements the ability to parse the [IP address expressions from the perforce protections table](https://www.perforce.com/manuals/p4sag/Content/P4SAG/protections.set.html#IP_address) and compare them against the user's IP address (that's advertised from the incoming X-FORWARDED-FOR header.Namely, this PR:
+ - Introduced parsePerforceIPString, which parses Perforce IP strings (e.g., CIDR expressions, specific IP addresses) into an ipMatcher for IP validation.
+ - Implemented multiple ipMatcher types, including:
+ - AddrMatcher for exact IP matches.
+ - CidrMatcher for checking IPs within a CIDR range.
+ - AlwaysTrueMatcher for wildcard * Expressions.
+ - Added toggleableIPMatcher, which either enables or disables IP enforcement based on site configuration settings.
+ - Created matcherCache for caching recent IP string to ipMatcher translations, improving efficiency.
+ - Updated NewRequestClientIPSource to properly derive IP from the x-forwarded-for header.
+- Feature/site-config: add site configuration setting for enforcing IP restrictions `(PR #45)`
+ - Added enforceIPRestrictions setting to the SubRepoPermissions section in site configuration, allowing IP-based enforcement using the X-FORWARDED-FOR header.Updated JSON schema to require SubRepoPermissions to be enabled when enforceIPRestrictions is enabled.Added validation in Perforce external service configuration to ensure IgnoreRulesWithHost and enforceIPRestrictions cannot be enabled simultaneously.Updated internal implementation to associate each Perforce rule with an IPMatcher for IP-based rule enforcement.
+- Feature/plumbing: sub_repo_perms: do pumbling to thread comparing IP addresses alongside paths `(PR #23)`
+ -
+
+### Untracked
+
+The following PRs were merged onto the previous release branch but could not be automatically mapped to a corresponding commit in this release:
+
+- Check for external dbs (#1083) `(PR #1121)`
+- Bug(release): workspace cash time dance (#948) `(PR #949)`
+
+{/* RSS={"version":"v5.9.0", "releasedAt": "2024-11-04"} */}
+
+
+
+# 5.8 Patch 1
+
+## v5.8.1579
+- [sourcegraph](https://github.com/sourcegraph/sourcegraph/releases/tag/v5.8.1579)
+- [docker-compose](https://github.com/sourcegraph/deploy-sourcegraph-docker/releases/tag/v5.8.1579)
+- [helm](https://github.com/sourcegraph/deploy-sourcegraph-helm/releases/tag/v5.8.1579)
+- [kustomize](https://github.com/sourcegraph/deploy-sourcegraph-k8s/releases/tag/v5.8.1579)
+
+### Features
+
+#### Telemetry
+
+- Check for external dbs (#1083) `(PR #1121)`
+
+### Fix
+
+#### Search
+
+- Fix Apollo related error in Safari `(PR #1016)`
+
+#### Others
+
+- Fix OOB migration for batch changes table `(PR #1113)`
+
+### Chore
+
+#### Security
+
+- Upgrade src-cli version to address CVE `(PR #1117)`
+ - Upgrade src-cli version to 5.8.1 to address CVE-2024-24788, CVE-2024-24790, CVE-2024-34156 Backport b8da20f6fa148f30fe97d9267a536bd5a84502f1 from #1112
+
+### Reverts
+
+ There were no reverts for this release
+
+### Uncategorized
+
+#### Others
+
+- Backport 566 to 5.8.x: SBOMs with Bazel `(PR #1089)`
+ - Feature(security): Publish SBOMs for Sourcegraph releases
+- [Backport 5.8.x] Update src-cli MinimumVersion from 5.5.0 to 5.8.1 `(PR #1087)`
+ - Chore(release): Update minimum supported version of src-cli to 5.8.1 Backport 8f039bdcb5425071dd6e4dfddfb2cb436e124b05 from #1079
+
+{/* RSS={"version":"sourcegraph 5 Release 8 Patch 1", "releasedAt": "2024-10-16"} */}
+
+# 5.8 Patch 0
+
+## v5.8.0
+- [sourcegraph](https://github.com/sourcegraph/sourcegraph/releases/tag/v5.8.0)
+- [docker-compose](https://github.com/sourcegraph/deploy-sourcegraph-docker/releases/tag/v5.8.0)
+- [helm](https://github.com/sourcegraph/deploy-sourcegraph-helm/releases/tag/v5.8.0)
+- [kustomize](https://github.com/sourcegraph/deploy-sourcegraph-k8s/releases/tag/v5.8.0)
+
+### Features
+
+#### Accessrequests
+
+- Allow to file another request when original one has been processed `(PR #416)`
+
+#### Appliance
+
+- Refactor install flow, status, state, stage `(PR #352)`
+
+#### Batch Changes
+
+- Verbose error logging for batch syncer with BATCH_CHANGES_SYNCER_VERBOSE_ERROR_LOGGING `(PR #639)`
+ - Feat(batches): verbose error logging for batch syncer with BATCH_CHANGES_SYNCER_VERBOSE_ERROR_LOGGING
+- Add experimental feature to add a fork name suffix to avoid name collisions `(PR #230)`
+ - Feat(batches): add experimental feature to add a fork name suffix to avoid name collisions
+
+#### Ci
+
+- Enable workflows telemetry `(PR #774)`
+ - Enable aspect workflows ci telemetry
+- Convert onconflict gen to bazel `(PR #486)`
+ - Generate `constraints.go` using bazel for onconflict linter
+
+#### Search
+
+- (new web ui) Prefill search input with selected text when pressing '/' `(PR #577)`
+
+#### Code Intelligence
+
+- Updates the autoindexing images for TypeScript and Ruby `(PR #805)`
+ - TypeScript: Fixes references to object properties in various places
+ - Ruby: Fixes references to `Opus::` in Ruby tests
+- Syntactic indexing go evaluation suite and fix tests on CI in general `(PR #482)`
+
+#### Cody
+
+- Update public OpenAPI spec `(PR #796)`
+- Add basic support for server-rendered prompts `(PR #723)`
+ - `/.api/completions/stream` endpoint now accepts `"file"` and `"repo"` parts alongside `"text"` and `"image_url"`
+- Add vision support `(PR #546)``/.api/completions/stream` now supports vision using the OpenAI-compatible base64 encoding of images. Example `"content": [{"type": "image_url", "image_url": { "url": "data:image/png;base64,{{IMAGE_BASE64}}" } }]`. Requires the query parameter `api-version=3` or higher.
+- Document internal APIs with TypeSpec/OpenAPI `(PR #505)`
+
+#### Cody-Gateway
+
+- Log requestinteraction in events `(PR #814)`
+
+#### Database
+
+- BestEffortForce will kill blocking transactions in migrator `(PR #781)`
+ - DB Migrator is given the ability to automatically run pg_terminate_backend on transactions blocking a migration. This is done best effort and is opt-in per migration.
+
+#### Dev
+
+- (new web UI) Make it easier to run tests without proxying `(PR #798)`
+- Add obvious 'target service' notice to `sg msp` commands `(PR #725)`
+
+#### Local
+
+- Add cody-gateway version endpoints `(PR #685)`
+ - Add cody-gateway environments for subcommand `live`
+- Sg - Install pgvector `(PR #520)`
+ - Mac: install pgvector from sourcegraph/pgvector-12
+ - Ubuntu: install postgresql-12-pgvector
+
+#### Msp
+
+- Make databasetest shared `(PR #393)`
+
+#### Msp/Databaseutil
+
+- Make 'upsert' package shared `(PR #394)`
+
+#### Release
+
+- Remove test from promotion ci during release pipeline `(PR #495)`
+ - Remove upgradetest from the release promotion ci
+- Stop releases from going out if there's a PR with the release-blocker label `(PR #472)`
+ - Allow PRs to block a release from going out 😈
+- Use releaseregistry for release banner [REL-145] `(PR #429)`
+ - Implement using the release-registry for the banner
+
+#### Search
+
+- Bump Zoekt for ranking and memory improvements `(PR #816)`
+ - Reduce peak memory required for Zoekt indexing
+ - Improve search ranking by using repo freshness as a scoring signal
+- (new web ui) Add split view support to commit page `(PR #775)`
+- Enable similarity search by default `(PR #772)`
+ - With this change we rank repository search results by similarity. Before, repository search results were ordered by star count instead. This affects suggestions and repository search results. To disable this feature and return to the previous behavior, set `{ "experimentalFeatures": { "disableOrderBySimilarity": true}}` in global settings.
+- (new web ui) Add /cody/dashboard page `(PR #764)`
+- (new web ui) Add account connection modal `(PR #731)`
+- (new web ui) Image previews `(PR #623)`
+- Respect match order for search.results.repositories resolver `(PR #575)`
+ - The GraphQL endpoint `search.results.repositories` now returns the list of repositories in the order of the matches we
+found. Before, repositories were sorted by id.
+- Remove fzf star tiebreaker for repo suggestions `(PR #541)`
+- Preserve ranking for repo suggestions `(PR #447)`
+- (Svelte) open documentation links in new tabs `(PR #401)`
+- Open documentation links in a new tab `(PR #359)`
+
+#### Source
+
+- Add ssh auth support for more code hosts `(PR #615)`
+ - BitBucket Cloud, BitBucket Server, GitLab, Gerrit, Gitolite, AWS CodeCommit Azure DevOps code host connections now support configuring SSH key authentication from the UI instead of mounting from disk.
+- Add support for ssh auth to github `(PR #597)`
+ - GitHub and generic Git code host connections now support configuring SSH key authentication from the UI instead of mounting from disk.
+- Support Azure Devops Server (onPrem) with NTLM authentication `(PR #217)`
+
+#### Tenant
+
+- Allow configuring host instance id `(PR #826)`
+- Add initial Workspaces reconciler `(PR #594)`
+
+#### Wolfi
+
+- Update server + postgresql-12 images `(PR #519)`
+ - Add pgvector to server and postgresql-12 images
+- Add pgvector-12 package `(PR #513)`
+ - Build and add pgvector extension
+
+#### Workspaces
+
+- Implement integrations listworkspaces `(PR #794)`
+- Implement management listworkspaces `(PR #793)`
+- Delete workspace RPC `(PR #729)`
+- Add DB list workspaces `(PR #728)`
+- Add destroy state internally `(PR #644)`
+- Init database schemas, add Workspaces store handler `(PR #395)`
+- Add and demo notifications SDK `(PR #356)`
+
+#### Others
+
+- Add reranker support to Cody Gateway `(PR #670)`
+- Embeddings: v2 `(PR #507)`
+ - Introduce a new experimental embeddings index and context retriever.
+- Make scip-syntax process multiple languages in a single invocation `(PR #364)`
+- Add OpenAI o1 models and early-access models support to Cody Gateway `(PR #323)`
+ - [feat(code gateway): add support for OpenAI o1 models and early-access models handling.](feat: add OpenAI o1 models and early-access models support to Cody Gateway)
+- Implements pagination for syntactic usages `(PR #310)`
+
+### Fix
+
+#### Batch Changes
+
+- Stamp the executor binary with version information `(PR #665)`
+ - Override `internal/version.version` with `x_defs` at build time in executor
+- Disabled "select all" checkbox if all nodes are already disabled `(PR #483)`
+ - Fix(batches): disabled "select all" checkbox if all nodes are already disabled
+
+#### Ci
+
+- Add runfile initialization to upgradetest file `(PR #890)`
+- Use generated json in migrations filegroup `(PR #802)`
+
+#### Search
+
+- (new web ui) Show correct document highlights when codegraph data is available `(PR #620)`
+- 'Save search' action on search results page does not navigate to the saved search creation page `(PR #549)`
+
+#### Code Intelligence
+
+- Correctly escape special characters in repo names and identifiers `(PR #710)`
+ - The new usagesForSymbol API correctly searches repos whose names contain spaces or other special characters.
+- Use multiple language: filters for search-based usages in case of ambiguity `(PR #708)`
+- Cleanup button title `(PR #581)`
+- Fetch tags for scip-go auto-indexing jobs `(PR #371)`
+ - Go cross-repo navigation for tagged versions should work better when using scip-go for auto-indexing. Navigation based on SCIP indexes generated using scip-go in CI or cron jobs should be unaffected.
+
+#### Cody
+
+- Return client-side model config via API `(PR #713)`
+- Disable ModelAPIEnabled for Dotcom `(PR #678)`
+ - `modelsAPIEnabled` is always false for dotcom
+- Allow accuracy category in JSON site config `(PR #641)`
+- Use "balanced" instead of "accuracy" category for SOTA models `(PR #640)`
+- Allow empty `finish_reason` in `/.api/llm/chat/completions` `(PR #539)`
+ - The `/.api/llm/chat/completions` endpoint will now return an empty string `""` for `finish_reason` instead of the string `"unknown_please_report_bug()"`.
+
+#### Database
+
+- Use native UUID in telemetry export queue `(PR #669)`
+
+#### Database
+
+- Correctly find CreateIndexConcurrentlyPhases in migrator `(PR #809)`
+ - INFO logs for migrations that create index concurrently will always correctly report the phase we are in. Previously we sometimes would report a phase of -1.
+
+#### Dev
+
+- Use 9002 for pubsubemulator, simplify shutdown `(PR #780)`
+- Give pubsub pings a more generous timeout locally `(PR #732)`
+- Use key value for PGDSN in SAMS, EP `(PR #689)`
+
+#### Graph
+
+- Prevent duplicate results when performing find references `(PR #497)`
+
+#### Local
+
+- Add no-xattrs when running schema descriptions target locally `(PR #905)`
+- Sg - Return the error when checking for remote branch/commits `(PR #485)`
+ - Dump more information out about the branch if it is out of sync
+
+#### Release
+
+- Remove embeddings from promotion script (#360) `(PR #361)`
+ - Remove embeddings in promotion script
+
+#### Sams-Notifications
+
+- Make subscriber tenant-aware `(PR #668)`
+
+#### Search
+
+- (new web UI) Fix cody dashboard background colors in dark mode `(PR #845)`
+- (new web ui) Fix list styles in rich text documents `(PR #835)`
+- (new web ui) Fix styling of rich text documents `(PR #834)`
+- (new web ui) Show added lines content `(PR #832)`
+- Fix client-side query validation for rev: filters `(PR #810)`
+ - We have updated the client-side query validation to allow combining `rev:` filters with query-based search contexts.
+- (new web ui) Clicking 'Code search' in then navbar of the old UI does not redirect to the new UI `(PR #761)`
+- (new web ui) Use a Map to group symbol names `(PR #721)`
+- VSCode Search extension: Update bug-reporting URL `(PR #693)`
+- VSCode Search extension: fix and improve proxy settings `(PR #679)`
+- In search jobs, don't time out fetches `(PR #666)`
+ - For very large repositories, search jobs could time out while fetching the repository. Now, search jobs can fetch and search over repositories, even if they take a long time to fetch.
+- (new web ui) Use CodeGraph data to validate hover occurence `(PR #656)`
+- (new web ui) User menu feature parity `(PR #628)`
+- Add index for search jobs janitor `(PR #624)`
+ - We added a new database index to speed up a janitor job which is run as part of Search Jobs. Before, the janitor job might have significantly delayed migrations during an upgrade.
+- (new web ui) Respect 'experimentalFeatures.structuralSearch' setting `(PR #621)`
+- VSCode Search extension forgetting endpoint URL and PAT `(PR #560)`
+- Fix logo links in the VSCode Search extension `(PR #547)`
+- Update help router for local development `(PR #271)`
+
+#### Sg
+
+- Config.GetEnv uses GetEnv for os.Expand `(PR #380)`
+
+#### Sg/Msp
+
+- Make embed template fmt-compliant, add docstring `(PR #412)`
+
+#### Telemetry
+
+- Ensure telemetry export only occurs once at a time `(PR #565)`
+ - Fix an issue where duplicate telemetry can be exported when the `worker` service is scaled horizontally
+
+#### Tenant
+
+- Prevent race condition in MockEnforceTenant `(PR #837)`
+- Stop Iterate if it breaks `(PR #387)`
+
+#### Test
+
+- Make workspaces waitforupdate test more reliable `(PR #813)`
+
+#### Others
+
+- Make rerank metric name distinguishable `(PR #846)`
+- Use correct label in splitting metric in embeddings indexing `(PR #771)`
+- Add rerank API token variable to sg.config.yaml `(PR #716)`
+- Adjust formatting when using unix sockets `(PR #653)`
+ - Fix PGDATASOURCE format when using unix sockets
+- Move deletion inside nil check `(PR #556)`
+- Incrementally updating embeddings index `(PR #555)`
+- Decrease parallelism in embeddings indexing `(PR #543)`
+- Filter out empty context items in resolver `(PR #537)`
+- VIP user access to allowed models in Cody Gateway `(PR #528)`
+- Properly escape email in URL query `(PR #426)`
+- Use preferred mermaid APIs `(PR #397)`
+ - Fixes a bug that can cause errors when rendering many mermaid diagrams on a page.
+
+### Chore
+
+#### All
+
+- Use constraint names in ON CONFLICT statements `(PR #473)`
+
+#### Batch Changes
+
+- Add description for env var `(PR #652)`
+
+#### Ci
+
+- Remove stale CODENOTIFY entries `(PR #439)`
+- Bump Go to 1.23.1 `(PR #391)`
+- Update gomod lint `(PR #382)`
+ - Remove lint that checks for promotheus/common 0.32.1 since we are using 0.48
+- Upgrade golang.org/x/tools to 0.24 `(PR #373)`
+ - Address printf linter flagged issues
+- Add annotation for no merge base `(PR #345)`
+ - Post an annotation if there is no merge base
+
+#### Code Intelligence
+
+- Bump autoindexing image SHAs `(PR #831)`
+ - Upgrades default auto-indexing images to the latest versions (1) scip-go to v0.1.21 (2) scip-typescript to v0.3.14
+- Initialize test to consistent state `(PR #825)`
+- Unify GetUsages logic at Service level `(PR #752)`
+- Unify local phase usage extraction logic `(PR #748)`
+- Document code nav logic & limitations `(PR #742)`
+- Factor out & document package mentions code `(PR #740)`
+- Bump autoindexing image SHAs `(PR #681)`
+ - Upgrades the default scip-go auto-indexing image to v0.1.20
+- Log number of paths in auto-inference logic `(PR #635)`
+- Add context to timeout error for commit listing `(PR #607)`
+- Clarify doc comment for NewCanonicalDocument `(PR #480)`
+- Document scip.Document and range canonicalization code `(PR #459)`
+- Split inverted ranges extraction code & add comments `(PR #458)`
+- Use UploadRelPath instead of string `(PR #438)`
+- Bump auto-indexing image SHAs `(PR #403)`
+ - Bumps default auto-indexing scip-go image to use Go 1.23.1 and scip-go v0.1.19
+
+#### Cody
+
+- Add HTTP record/replay test case for AWS Bedrock backend `(PR #452)`
+- Add HTTP record/replay test case for Anthropic LLM backend `(PR #448)`
+- Add HTTP record/replay test case for Azure OpenAI `(PR #446)`
+- Add HTTP record/replay test case for OpenAI LLM backend `(PR #445)`
+- Add HTTP record/replay test case for Fireworks LLM backend `(PR #441)`
+- Add HTTP record/replay test case for Google LLM backend `(PR #410)`
+
+#### Database
+
+- Set app.current_tenant outside of multitenant `(PR #502)`
+
+#### Database
+
+- Remove unused redis_key_value table `(PR #688)`
+- Update oobmigration min version to 4.0 `(PR #540)`
+- GetRepositoriesForIndexScanQuery uses constraint `(PR #534)`
+- Handle failed transactions in setTenant `(PR #533)`
+- Use new constraints for on conflict `(PR #510)`
+- Constraint for unique indexes used in on conflict `(PR #504)`
+
+#### Dev
+
+- Bump Go version to 1.23.2 `(PR #830)`
+
+#### Frontend
+
+- Sync.Once to sync.OnceValue in service connections `(PR #376)`
+
+#### Gomod
+
+- Update zoekt's dependencies `(PR #462)`
+
+#### Local
+
+- Fix ill-formed go.mod file `(PR #434)`
+- Update sg installation docs `(PR #390)`
+
+#### Release
+
+- Prepare stitch graph for 5.8 `(PR #852)`
+ - Backport 6b58d4b62bba8f558c097fa97a751e51b178c537 from #850
+
+#### Release
+
+- Clarify backport error `(PR #784)`
+
+#### Reranker
+
+- Clean up resolvers, improve perf, add more useful spans `(PR #776)`
+
+#### Search
+
+- (new web ui) Add telemetry for opt-out/in `(PR #766)`
+- Remove codeintel ranking code `(PR #719)`
+- Remove cursor based repo pagination `(PR #663)`
+- VSCode Search extension: remove "SOURCEGRAPH SEARCH" stutter in favor of "Info" `(PR #559)`
+- Update wording from "Sourcegraph extension" to "Sourcegraph Search extension" `(PR #558)`
+
+#### Semgrep
+
+- Add upload artifact step `(PR #616)`
+
+#### Sg
+
+- Remove enforce-tenant-id --disable `(PR #705)`
+
+#### Tenant
+
+- Restructure tenant package into internal subpackages `(PR #587)`
+
+#### Trace
+
+- Prevent parallel calls to ConfigureStaticTracerProvider `(PR #467)`
+
+#### Others
+
+- Enable reranker by default `(PR #804)`
+ - Reranker for context retrieval is turned on by default
+- Disable IDF jobs `(PR #783)`
+- Clean up visible uploads initialization `(PR #739)`
+- Rename gatherLocations -> gatherUsages `(PR #737)`
+- Cleanup metadata generation code in Gateway `(PR #714)`
+- Remove unused endpoints from 969 prototype `(PR #712)`
+- Trigger changelog audit on label event `(PR #562)`
+
+### Refactor
+
+#### Svelte
+
+- Introduce extensible GraphQL store `(PR #309)`
+
+#### Others
+
+- Move cody context business logic outside of resolvers `(PR #647)`
+- Remove search mode `(PR #629)`
+- Rename NonLocal -> Global in scip_strict parser `(PR #366)`
+
+### Reverts
+
+- Revert "pgdsn: Allow to fall back to default variables and overwrite … `(PR #369)`
+
+### Uncategorized
+
+#### Others
+
+- Bug(release): workspace cash time dance (#948) `(PR #949)`
+- [Backport 5.8.x] tenant: Improve OOB migration from learnings `(PR #939)`
+- [Backport 5.8.x] Revert "migrator: Backfill IDs from overrides into right schema only" `(PR #914)`
+- [Backport 5.8.x] migrator: Backfill IDs from overrides into right schema only `(PR #894)`
+- [Backport 5.8.x] Revert "fix(migration-graph): add no op migration to backfill overrides" `(PR #888)`
+- [Backport 5.8.x] Update lockfiles with newer version of apko `(PR #882)`
+ - Backport 7f2c3bacf6778fef5f2ef444db2ebd873903c5e6 from #881
+- [Backport 5.8.x] Revert "Update rules_apko and fix issues with `sg wolfi` (#696)" `(PR #880)`
+- [Backport 5.8.x] db: Bump date for schema migrations stitch date `(PR #878)`
+- Tenant: OOB migrator covers more tables `(PR #842)`
+- Tenant: Default to ID 1 for inserts `(PR #840)`
+- Migrator: Correctly render indexing progress `(PR #812)`
+- Adding code qwen 2p5 and deepseek long prompt optimized model `(PR #811)`
+ - Adding code qwen 2p5 and deepseek long prompt optimized model `(PR #811)`
+- Security: Update docker dind to latest release `(PR #808)`
+- Saml: Record requests `(PR #788)`
+- Saml: Return error instead of appending to it `(PR #787)`
+- Add password for sourcegraph-rls `(PR #786)`
+- Cmd/workspaces: setup routes during ws creation `(PR #782)`
+- Db: Fix missing globaldbtenant `(PR #779)`
+- Trace: Fix span pollution in authenticateByCookie `(PR #753)`
+- Sg: Make sure sourcegraph_rls user also has permissions on future tables `(PR #750)`
+- Tenant: Fix license check missing tenant `(PR #747)`
+- Migration: Skip CREATE TABLE if possible `(PR #746)`
+- Tenant: Fix more tenant-less contexts `(PR #745)`
+- Tenant: Mark tenants tables as data tables `(PR #738)`
+- Feat(Cody Reranker): clean up site config and add license-based auth for Cody Gateway `(PR #724)`
+- Sg: Fix go generate `(PR #722)`
+- Tenant/db: Safer ordering of migration statements `(PR #718)`
+- Gitserver: Fix some missing tenant contexts `(PR #717)`
+- Refactor(cody gateway): update model list for autocompletes `(PR #711)`
+- Db: Add tenant_id to last remaining columns `(PR #709)`
+- Db: Add OOB migration to backfill tenant ID `(PR #706)`
+- Tenant: pass correct context to SetCloneStatus `(PR #701)`
+- Sg: Reject empty workspace names `(PR #700)`
+- Sg: Fix enforce-tenant-id after redis_key_value was dropped `(PR #697)`
+- Update rules_apko and fix issues with `sg wolfi` `(PR #696)`
+- Redis: don't check tenant for system commands `(PR #695)`
+- Tenant: only skip goroutine recording if tenancy is enabled `(PR #694)`
+- Search jobs: set high timeout to protect against stuck jobs `(PR #692)`
+- Tenant: fix remaining goroutine recorder errors `(PR #691)`
+- Reapply "feat(cody): add vision support (#546)" (#686) `(PR #687)`
+- Add detailed intent-score pairs to chat intent response `(PR #682)`
+- Jsm/disable model api `(PR #680)`
+- Site admin: simplify goroutine recording `(PR #677)`
+- Update client/vscode/CHANGELOG.md for PR #560 `(PR #676)`
+- Tenant: Mapper returns more precise error `(PR #675)`
+- Tenant: add missing IteratorFactory `(PR #674)`
+- Tenant: Make migrations on startup pass in local dev `(PR #667)`
+- Msp: report error when PGDSN does not have expected template variable `(PR #664)`
+- Final ranker config for context v2 `(PR #659)`
+ - Changing the ranker configuration -- Number of items fetched from zoekt
+- Sg: Make enforce-tenant-id idempotent again `(PR #655)`
+- Refactor(cody gateway): add deprecated models back to dotcom model list `(PR #649)`
+- Gomod: bump Zoekt for memory debugging `(PR #646)`
+- Dev: ensure multi-tenant migration has been run `(PR #645)`
+- Refactor(cody gateway): update dotcom models list `(PR #643)`
+ - Cody Gateway: update default model list for dotcom.
+- Bump Cody Web to 0.9.0 version `(PR #642)`
+- Sg cloud eph deploy: --wait flag `(PR #637)`
+- Executors: Check for rows affected instead of running into unique constraint error `(PR #632)`
+- Symbols: hide scary error messages from users `(PR #631)`
+- Add postgres as datasource for Grafana `(PR #627)`
+- Add time to first token for upstream as header `(PR #618)`
+- Workspaces: implement `managementv1.UpdateWorkspaceMembership` RPC `(PR #613)`
+- Ci: add cloud ephemeral pipeline `(PR #611)`
+- Add sourcegraph ranker `(PR #610)`
+- Workspaces: implement GetWorkspaceMembership rpc `(PR #609)`
+- Workspaces: implement `ReportInstanceState` RPC `(PR #604)`
+- Workspaces: implement `ListWorkspaceMemberships` RPC `(PR #603)`
+- Tenant: Add method to create a new tenant in database `(PR #593)`
+- Workspaces: support []iam.Role in WorkspaceMembership `(PR #590)`
+- Cody Web: bump cody web to 0.8.3 `(PR #589)`
+- Cody context: fix bug in 'archived' change `(PR #588)`
+- Workspaces: Add WorkspaceState to GetWorkspace rpc `(PR #585)`
+- Tenant: Add support for reading tenant by hostname from database instead of hard-coded `(PR #580)`
+- Workspaces: implement user `CreateWorkspace` API `(PR #574)`
+- Workspaces: implement GetWorkspace RPC `(PR #573)`
+- Gomod: bump Zoekt for indexing memory optimization (again) `(PR #572)`
+- Use direct routing by default if present in the backend `(PR #571)`
+- Workspaces: database get/upsert instances `(PR #568)`
+- Workspaces: implement `ReportWorkspaceState` RPC `(PR #564)`
+- Gomod: bump Zoekt for indexing memory optimization `(PR #557)`
+- Bump Cody Web to 0.8.2 version `(PR #545)`
+- Clean up rerankers for Cody Context `(PR #544)`
+- Sg(tenant): Add migration for constraints to local dev `(PR #542)`
+- Rockskip: use full ctx from emitIndexRequest `(PR #532)`
+- Add billing metadata for core search, batch, and insights events `(PR #529)`
+- Cody context: support archived and forked repos `(PR #527)`
+- Vsce: patch release v2.2.18 `(PR #526)`
+- Fix context v2 zoekt subqueries `(PR #523)`
+- Repo-updater: continue start-up if hydration fails `(PR #521)`
+- Cody Web: bump cody web to 0.8.1 `(PR #518)`
+- Cody-gateway: do not PING Redis too often `(PR #517)`
+- Rockskip: Remove another duplicative BTREE index `(PR #516)`
+- Rockskip: Remove duplicative BTREE index `(PR #515)`
+- Db(tenant): lock between setTenant and exec to ensure session variable is set atomically `(PR #512)`
+- Perf: reduce allocations in `evalKeywordExpansions` `(PR #506)`
+- Local/nix: add pgvector extension `(PR #503)`
+ - Enable pgvector in nix managed postgres db
+- Redispool: allow call sites to custmoize their `TestOnBorrow` and `Dial` `(PR #499)`
+- Cody-gateway: wait for Redis connection `(PR #498)`
+- Cody-gateway: set `MaxActive` for Redis `(PR #496)`
+- Bump Cody Web to 0.8.0 version `(PR #492)`
+- Recorder: remove RegistrationDone method `(PR #489)`
+- Repo-updater: add tenancy `(PR #479)`
+- Tenant: Basic support in worker `(PR #476)`
+- Cody context: return matched ranges of chunks `(PR #474)`
+- Add(cody): `api-version=2` for incremental streaming LLM responses `(PR #470)`
+ - The `/.api/completions/stream` endpoint now accepts an `api-version=2` query parameter that returns incremental text text responses when using `"stream": true` to improve performance and reduce bandwidth.
+- Remove Neovim from Cody dashboard `(PR #469)`
+- Fix flaky test by bringing down memory utilization of POS filter `(PR #468)`
+- Msp/iam: fixup checks for `ErrNoRows` `(PR #465)`
+- Gomod: bump Zoekt for zoekt-git-index profiling `(PR #453)`
+- Worker: Make resetter a periodic goroutine `(PR #450)`
+- Gomod: bump Zoekt for index optimization `(PR #449)`
+- Http: Add context to more requests `(PR #437)`
+- Conf: Remove alias for ExternalURL `(PR #436)`
+- Frontend: Drop unused orgs_open_beta_stats table `(PR #435)`
+- Msp/iam: do not close connection pool on startup `(PR #433)`
+- Filter out terms based on POS and expand Zoekt queries `(PR #432)`
+- Authn: Create providers on the fly with current request context `(PR #424)`
+- Tenant: Use request context when creating OIDC provider `(PR #422)`
+- Redis: Add optional tenant isolation `(PR #421)`
+- Tenant: Add context to LogBackendEvent `(PR #420)`
+- Remove debug log statement `(PR #418)`
+- Minor doc change `(PR #413)`
+- Sg: Use custom site-config for multitenant runset `(PR #405)`
+- Retrieve and display change log during upgrades. `(PR #400)`
+ - [Appliance] Retrieve live changelog and display information about the release to be upgraded.
+- Svelte: fix text wrapping for file popover `(PR #399)`
+ - Fixed a bug in the web app rewrite where long paths would cause file popovers to wrap
+- Svelte: fix loading for ref panel `(PR #398)`
+ - Fix loading behavior for the reference panel in the web app rewrite
+- Gomod: bump Zoekt for index optimization `(PR #389)`
+- Svelte: SymbolTree followups `(PR #388)`
+- Repo-updater: hack so it uses tenant 1 for now `(PR #386)`
+- Gitserver: inherit tenant for repoUpdateOrClone `(PR #385)`
+- Chore: close rows `(PR #379)`
+- Database: use keyword value format if connecting via unix socket `(PR #378)`
+- Frontend: always use DSN from ServiceConnections `(PR #375)`
+- Reapply "pgdsn: Allow to fall back to default variables and overwrite..." `(PR #374)`
+- Postgresdsn: support PGHOST as a filepath `(PR #372)`
+- Release: specifiy download directory for changelog `(PR #365)`
+ - Specify download directory for changelog
+- Frontend: Don't double-close readiness channel during auto upgrades `(PR #358)`
+- Workspaces: initial IAM schema and implement `iam.Store` `(PR #353)`
+- Enterprise-portal: implement `iam.Store` and add tests `(PR #351)`
+- Enterprise-portal: create `internal/iam` package and run schema tests in CI `(PR #350)`
+- Tenant: Add tenants 1 and 2 in localdev `(PR #340)`
+- Sg: Introduce first multitenant runset `(PR #335)`
+- Pgdsn: Allow to fall back to default variables and overwrite frontend `(PR #332)`
+- Remove k8s utils dependency `(PR #320)`
+- Msp/iam: fixup migration PG 12 compatibility and sanity test migrations `(PR #301)`
+- Tree-sitter based chunker for embeddings indexing `(PR #298)`
+- Context: return multiple chunks per file from Zoekt results `(PR #294)`
+ - We can improve recall by fetching multiple chunks per file from Zoekt results by turning on the `cody-reranker` feature flag.
+- Add(cody): `api-version=2` incremental streaming LLM response `(PR #293)`
+ - The `/.api/completions/stream` endpoint now accepts an `api-version=2` query parameter that returns incremental text text responses when using `"stream": true` to improve performance and reduce bandwidth.
+- Context: improve ranker integration + loosen the tap `(PR #291)`
+ - Ranker for chat context is now available behind `use-reranker` feature flag.
+- Hook Upgrade page to Release Registry API `(PR #276)`
+- Move IDF repository stats into Postgres and compute them with the background worker `(PR #270)`
+- Svelte: add symbol tree `(PR #209)`
+ - Adds a symbol tree to file page in the experimental webapp
+- Redis: respect context when connecting `(PR #194)`
+- Appliance Admin UI `(PR #168)`
+ - [Appliance]: Adds the upgrade path for the Appliance Admin UX
+
+### Untracked
+
+The following PRs were merged onto the previous release branch but could not be automatically mapped to a corresponding commit in this release:
+
+- Remove the other embedding reference `(PR #362)`
+ - N/a
+
+{/* RSS={"version":"v5.8.0", "releasedAt": "2024-10-08"} */}
+
+# 5.7 Patch 1
+
+## v5.7.2474
+- [sourcegraph](https://github.com/sourcegraph/sourcegraph/releases/tag/v5.7.2474)
+- [docker-compose](https://github.com/sourcegraph/deploy-sourcegraph-docker/releases/tag/v5.7.2474)
+- [helm](https://github.com/sourcegraph/deploy-sourcegraph-helm/releases/tag/v5.7.2474)
+- [kustomize](https://github.com/sourcegraph/deploy-sourcegraph-k8s/releases/tag/v5.7.2474)
+
+### Fix
+
+#### Batch Changes
+
+- Workaround for a bug in GitHub `(PR #584)`
+ - Fix(batches): workaround for a bug in GitHub
+ Backport aad3a04f8c93561a61c404e69132e70a22d0acba from #576
+
+#### Release
+
+- Remove the other embedding reference `(PR #362)`
+ - N/a
+
+#### Search
+
+- Remove query expansion `(PR #586)`
+ - This fixes a bug where we added "readme" too often to the context. Backport 28ff196a663f537c6cb6340f976a91431509a90e from #582
+
+### Reverts
+
+ There were no reverts for this release
+
+### Uncategorized
+
+#### Others
+
+- [Backport 5.7.x] Search: allow queries with only lang filters `(PR #583)`
+
+{/* RSS={"version":"v5.7.2474", "releasedAt": "2024-09-18"} */}
+
+# 5.7 Patch 0
+
+## v5.7.0
+- [sourcegraph](https://github.com/sourcegraph/sourcegraph/releases/tag/v5.7.0)
+- [docker-compose](https://github.com/sourcegraph/deploy-sourcegraph-docker/releases/tag/v5.7.0)
+- [helm](https://github.com/sourcegraph/deploy-sourcegraph-helm/releases/tag/v5.7.0)
+- [kustomize](https://github.com/sourcegraph/deploy-sourcegraph-k8s/releases/tag/v5.7.0)
+
+### Features
+
+#### Appliance
+
+- Enable frontend form and stub out, no backend routes yet `(PR #80)`
+
+#### Batch Changes
+
+- Add a container registry deny list `(PR #109)`
+ - Add a container registry deny list to complement the allow list.
+ - Configure in site config via `"batchChanges.containerRegistryDenylist"`.
+ - Mutually exclusive with `"batchChanges.containerRegistryAllowlist"`.
+- Add support for registry allowlist `(PR #105)`
+ - Add support to configure container registry allowlist for containers use from batch changes via `batchChanges.containerRegistryAllowlist` in Site Configuration.
+
+#### Cody
+
+- Add `/.api/cody/context` API `(PR #66)`
+ - New `POST /.api/cody/context` REST endpoint to retrieve a list of relevant source locations given a natural language query.
+
+#### Dotcom
+
+- Add account ID in subscriptions list view `(PR #192)`
+- Forward license check to Enterprise Portal `(PR #19)`
+
+#### Enterpriseportal
+
+- Use file-based migrations with `goose` `(PR #216)`
+- Add Salesforce Account ID `(PR #176)`
+- Internal instances record detected instance `(PR #139)`
+- Return unknown license as result `(PR #134)`
+
+#### Licensecheck
+
+- Check against Enterprise Portal directly `(PR #22)`
+
+#### Msp/Runtime
+
+- Standardised migrations `(PR #242)`
+- First-class redis support `(PR #241)`
+
+#### Releases
+
+- Scoped releases `(PR #33)`
+ - Feat(release): scoped releases
+
+#### Sg
+
+- MSP database migrations with `goose` `(PR #215)`
+
+#### Site Admin
+
+- Monitoring/telemetry: add v1 teestore write alerts and v2 export queue write alerts `(PR #321)`
+
+#### Svelte
+
+- Add repository sync status indicator to search results `(PR #260)`
+- Sentry: Ignore errors from third party scripts `(PR #171)`
+- Add status notifications `(PR #141)`
+- Add support for indent-based code folding `(PR #75)`
+
+#### Telemetry/Sensitivemetadataallowlist
+
+- Allow string list and nulls `(PR #27)`
+
+#### Others
+
+- Syntactic support for go `(PR #328)`
+
+### Fix
+
+#### Batch Changes
+
+- Omit headRepositoryId if empty `(PR #200)`
+- Avoid "Name already exists on this account" from creating fork by fetching the repo when the error happens `(PR #159)`
+ - Fix(batches): avoid "Name already exists on this account" from creating fork by fetching the repo when the error happens
+
+#### Code Intelligence
+
+- Ensure syntactic worker marks itself as "ready" on startup `(PR #341)`
+
+#### Code Nav
+
+- Return ALL references in the same file as the definition `(PR #240)`
+
+#### Cody
+
+- Correctly parse queries containing 'or' `(PR #267)`
+ - Fixes a regression in Cody context where questions containing the word 'or' could return noisy or no results.
+- Use reverse proxy for Gemini API `(PR #208)`
+- Address critical bug from code review `(PR #179)`
+- Return valid `finish_reason` in `/.api/llm/chat/completions` `(PR #154)`
+ - LLM API `/.api/chat/completions` now returns OpenAI-compatible `finish_reason`.
+- Fix error handling in LLM API `(PR #153)`
+ - LLM API endpoints (`/.api/llm`) now return JSON-encoded HTTP bodies for non-200 status codes.
+- Use `testdata` instead of `golly-recordings` directory name `(PR #152)`
+- Give names to LLM API handlers `(PR #151)`
+- Allow `Bearer TOKEN` header for all LLM APIs `(PR #150)`
+ - For compatibility with OpenAI clients, it's possible to use `Bearer TOKEN` header with all API endpoints that start with the prefix `/.api/llm`.
+- Deepseek-coder-v2-lite-base model name mapping for dotcom users `(PR #135)`
+
+#### Cody-Gateway
+
+- Ignore schema errors on otel init `(PR #237)`
+
+#### Enterpriseportal
+
+- Normalize instance domain on create subscription `(PR #163)`
+- Add subscription ID to trace, other diagnostics improvements `(PR #130)`
+
+#### Enterpriseportal/E2e
+
+- Fix test case for check license `(PR #162)`
+
+#### Frontend
+
+- Do not sign-out users when accessing a file path containing /login `(PR #57)`
+
+#### Local
+
+- Check for rogue files and folders in svelte routes `(PR #337)`
+ - Prevent `web-sveltekit` commands from running if there are untracked files under src/routes
+- Expand _after_ accumulating the whole env `(PR #257)`
+
+#### Oobmigration
+
+- Remove migrations targeting licenses/subscriptions `(PR #263)`
+
+#### Repo-Updater
+
+- Add WARN level logs every time we sync a code host `(PR #44)`
+ - Repo-updater now emits logs that log the result of every code host sync.
+
+#### Sams-Notifications
+
+- Mockrequire.Values incorrectly used `(PR #315)`
+
+#### Search
+
+- Skip if git diff not found in hybrid `(PR #333)`
+ - When searching an unindexed commit we would consult indexed commits for speeding up results. If our index contained a commit that no longer existed in git we would error out due to a regression in v5.4.5099. This is now fixed.
+- Add "Create batch change" back to Actions dropdown in search results `(PR #143)`
+
+#### Sg
+
+- Make start commands cancel fn be sync.OnceFunc `(PR #319)`
+ - The cancel funcs used by sg commands are now wrapped in `sync.OnceFunc` to prevent duplicate execution
+- Add deprecation notice to sg wolfi update-hashes `(PR #289)`
+ - Sg: fix panic when using `wolfi update-hashes`
+ - Sg: add deprecation notice for `wolfi update-hashes`
+- Check if we are ephemeral before getting lease time `(PR #256)`
+ - Sg - Fix panic in Cloud Ephemeral listing when listing instances that are not Ephemeral
+- Clamp deployment name consistently in cloud ephemeral `(PR #117)`
+ - Ensure deployment / instance names are clamped in all places for cloud ephemeral
+- Implement env priority to improve env var ordering `(PR #31)`
+
+#### Svelte
+
+- Preserve history panel scroll position after selecting an entry `(PR #251)`
+- Update existing query filters when including suggested filters `(PR #115)`
+- Remove 'Code Ownership' top navigation `(PR #87)`
+- Update main navigation to match React app `(PR #74)`
+- Fix regex generation for routes that contain parameters `(PR #73)`
+- Fix Bazel production build `(PR #43)`
+- Workaround for handling client-side redirections in production `(PR #14)`
+
+#### Others
+
+- Switch to larger runner for scip-go jobs `(PR #221)`
+- Add deepseek virtual model string `(PR #211)`
+- Set webRoot to /client/web in launch.json `(PR #83)`
+- Speed up auto-index job expiration query `(PR #3)`
+
+### Chore
+
+#### Dotcom
+
+- Fix typo in subscriptions page `(PR #195)`
+- Delete subscriptions, licensing, and cody gateway usage `(PR #21)`
+
+#### Dotcom/Subscriptions
+
+- Minor UX tweaks `(PR #175)`
+
+#### Embedding
+
+- Delete cmd/embeddings `(PR #181)`
+
+#### Enterpriseportal
+
+- Declare required scopes in schema and use schema-based enforcement `(PR #305)`
+- Add Cody Access override case to manual E2E tests `(PR #224)`
+- Improve formatting of duplicate usage message `(PR #177)`
+- Remove dotcomdb connection and testing infra `(PR #20)`
+
+#### Gomod
+
+- Update for a bunch of CVEs `(PR #343)`
+
+#### Local
+
+- Stop using deprecated `docker-compose` command `(PR #206)`
+
+#### Pubsub
+
+- Upgrade to disable OpenTelemetry tracing `(PR #210)`
+
+#### Pubsubemulator
+
+- Init tool `(PR #272)`
+
+#### Release
+
+- Simplify changelog download in release `(PR #227)`
+ - Simplify `changelog` cli download by using `gh` cli
+
+#### Search
+
+- Tell EditorConfig to stop messing with snapshot files `(PR #275)`
+- Remove Beta label from code monitors webhooks option. `(PR #274)`
+
+#### Search-Jobs
+
+- Deprecate experimental site setting `(PR #122)`
+ - The site setting `experimentalFeatures.searchJobs` is not read anymore. To disable Search Jobs, set `DISABLE_SEARCH_JOBS=true` for the "frontend" and "worker" services.
+- Remove EXPERIMENTAL from gql API `(PR #116)`
+- Remove beta badge `(PR #114)`
+
+#### Svelte
+
+- Upgrade dependencies and cleanup configs `(PR #279)`
+- Fix type import `(PR #277)`
+- Reduce build log noise `(PR #252)`
+- Ingore 'RepoNotFoundError's in Sentry `(PR #113)`
+
+#### Tenant
+
+- Iterate does not enforce no tenant unlike Inherit `(PR #334)`
+
+#### Tooling
+
+- Bump Go to 1.23.0 `(PR #126)`
+
+#### Wofli
+
+- Update images `(PR #290)`
+ - Update images to use latest p4-fusion binary
+
+#### Workspaces
+
+- Define initial Workspaces proto schemas `(PR #262)`
+- Stub service and directory `(PR #244)`
+
+#### Others
+
+- Fix onUserRolesChanged `has SiteAdmin role` test name `(PR #314)`
+- Update github.com/openfga/openfga to v1.6.0 `(PR #295)`
+- Updates Rust toolchain to 1.80.1 `(PR #287)`
+- Re-enable SCIP uploads to Demo `(PR #222)`
+- Create github action for changelog audit `(PR #198)`
+- Undo unneeded upgrades `(PR #164)`
+- Upgrade sourcegraph-accounts-sdk-go version `(PR #160)`
+- Simplify semaphore-based code using conc.Iterator `(PR #146)`
+- Bump autoindexing image SHAs `(PR #131)`
+- Migrate httpserver to use sg/log `(PR #112)`
+ - Update httpserver to use sourcegraph/log instead of log15
+- Updates tree-sitter version `(PR #93)`
+- Delete a bunch of unused LSIF-related code `(PR #77)`
+- Clean up CODENOTIFY for Joe `(PR #28)`
+
+### Refactor
+
+#### Svelte
+
+- Make repo page integration test setups reusable `(PR #249)`
+- Refactor temporary settings to remove Apollo dependency `(PR #156)`
+- Lazy load mermaid `(PR #16)`
+
+### Reverts
+
+- Revert reverse proxy usage to access Gemini API `(PR #236)`
+
+### Uncategorized
+
+#### Others
+
+- Bump Cody Web to 0.7.7 version `(PR #347)`
+- Bug: fix slice init length `(PR #339)`
+- Add migration to create sourcegraph_rls user in local dev `(PR #331)`
+- Add tenant1 and tenant2 hostnames to caddy setup `(PR #330)`
+- Deglobalize SiteID `(PR #329)`
+- Gomod: bump zoekt for indexing observability improvements `(PR #327)`
+- Searcher: check for zoekt empty repo commit in hybrid search `(PR #326)`
+- Conf: do not log missing tenant `(PR #318)`
+- Database: introduce globaldbtenant package `(PR #317)`
+- Database: rm unused Transact, Done, ShareableStore from ConfStore `(PR #316)`
+- [perforce] Store label cache file in .p4home `(PR #308)`
+- Convert trivial chunk/batching functions to use slices.Chunk `(PR #307)`
+- Bump cody web to 0.7.6 `(PR #304)`
+- Handle error case where anthropic api returns an empty response `(PR #303)`
+- Msp/iam: use runtime standardized migrations mechanism `(PR #300)`
+- Frontend: update permissions runs per tenant `(PR #299)`
+- Tenant: avoid FromContext logging in Inherit `(PR #297)`
+- Validation: pass in ctx for validateAuthzProviders `(PR #296)`
+- Siteadmin: Make recoverUsers idempotent `(PR #292)`
+ - The recoverUsers endpoint failed with a spurious error when some of the given users were already active. It is now idempotent.
+- Remove (old friend) storm project `(PR #286)`
+- All: skip slow tests when -short `(PR #284)`
+- Licensing: fix flaky uses of MockGetConfiguredProductLicenseInfo `(PR #283)`
+- Gitserver: fix RemoveBadRefs on darwin `(PR #280)`
+- Cody Web: Remove old cody web logic `(PR #273)`
+- Move package `(PR #269)`
+- Add unit test for idf index `(PR #268)`
+- Worker: fix flake in repo syncer test `(PR #266)`
+- Clean unused flag `(PR #265)`
+- Bump own and repos test timeouts to long `(PR #258)`
+- Upgrade SCIM package to allow Microsoft Entra string values `(PR #253)`
+- Add(cody): support for Sonnet 3.5 "fast edit" model `(PR #250)`
+- Enable route outside Site Admin into Appliance service. `(PR #247)`
+- Add common access token for direct routing `(PR #245)`
+- Redis: pass context through remaining methods `(PR #239)`
+- Bump Cody Web to 0.7.3 for react version `(PR #238)`
+- Dev: remove compare-hash.sh `(PR #234)`
+- Doc: update search links for monorepo to be on s2 `(PR #233)`
+- Change the default model from starcoder to deepseek `(PR #232)`
+- Database: capture missing tenant for queries `(PR #231)`
+- Goroutine: support tenants `(PR #229)`
+- Rearrange auth provider middlewares `(PR #228)`
+- Add option to cache label data with p4-fusion `(PR #225)`
+ - Perforce connections now support a `cacheLabels` option to cache Perforce label data from the server, speeding up consecutive syncs on systems with a large number of labels.
+- Lib/cloudapi: introduce features config `(PR #223)`
+- Lib/cloudapi: add auth pkg `(PR #214)`
+- Shortcut noop `(PR #213)`
+- Dev/msp: expose more runtime values to gotmpl `(PR #212)`
+- Worker: add OnUserRolesUpdated SAMS notification handler `(PR #204)`
+- Tenant: use marshal method instead of strconv `(PR #203)`
+- [fix] Perforce auth provider panics when only IP is provided `(PR #199)`
+- Redis: pass context to hash and ttl methods `(PR #196)`
+- Redis: introduce KeyValue.Info() `(PR #193)`
+- Respect context in Stop methods `(PR #191)`
+- Telemetry: wait for v1 writes in tests on teestore `(PR #190)`
+- Tenant: factor out marshalling `(PR #189)`
+- Allow AWS tokens in the repository `(PR #188)`
+ -
+- Tenant: prevent parallel test runs when mocking enforcement `(PR #187)`
+- Configure and activate Admin UI `(PR #186)`
+ - [Appliance] Activate appliance updates on Code Search admin UI
+- Sg: skip dev-private check if OFFLINE set `(PR #185)`
+- Updating owner tag `(PR #183)`
+- Security: Ensure sourcegraph will run with uid randomisation `(PR #182)`
+- Tenant: add context to gitserver's filesystem interface `(PR #178)`
+- Change re-ranking method from public to private `(PR #173)`
+- Web: encode file path for blame `(PR #172)`
+ - Fixes an issue that would cause blame view to fail on files that contain some special characters.
+- Fix main lint `(PR #169)`
+ - [Fix] code linting
+- Redis: add context to httpcache and rcache `(PR #167)`
+- Fixing the limit text for autocompletes `(PR #166)`
+- Bug: Fix file/directory popover regression `(PR #165)`
+ - Fix File and directory popovers in the file tree when code search is scoped to a perforce depot.
+- Ci/srcgql-compat: fix workflow `(PR #161)`
+- Guardrails: temporary cache for incident `(PR #158)`
+- Security: Remove root from some containers, and make it clearer which containers run as root `(PR #157)`
+- Update site.schema.json `(PR #155)`
+- All: update OWNERS and CODENOTIFY to match new team names `(PR #148)`
+- Migrations: remove read on pg_attribute for tenant_id `(PR #147)`
+- Cody Web: Update cody web to 0.7.1 `(PR #144)`
+- Dev/cloud-relay: add msp delivery target for rollout `(PR #142)`
+- Cody Web: fix cody web in svelte safari `(PR #138)`
+- Instrument request latency in Cody Gateway `(PR #136)`
+- Dev/cloud-relay: import repo `(PR #132)`
+- All: upgrade staticcheck and unparam `(PR #128)`
+- Cody Web: Update cody web to 0.6.1 (svelte and react) `(PR #127)`
+- Ci/cloud-gql-compat: only report error on remote workflow failure `(PR #125)`
+- Add perforce support for git references table and labels `(PR #124)`
+ - Code Search now supports labels for Perforce Depots
+- Iterator: add Map function `(PR #123)`
+- Symbols: skip rockskipintegration on dev if missing binaries `(PR #121)`
+- Syntactic-indexing: skip tests on dev if scip-syntax is missing `(PR #120)`
+- Keyring: t.Parallel safe MockDefault `(PR #119)`
+- Appliance: inject os.Getenv to ensure clean environment `(PR #118)`
+- Db: add event_logs_export_allowlist and own_signal_configurations to DataTables `(PR #111)`
+- Expand special case handlers for context endpoint `(PR #110)`
+- More context improvements `(PR #104)`
+- Adding cohere reRanker in the cody context `(PR #102)`
+- Don't use markdown header symbols in graphql docs `(PR #99)`
+- Appliance: check ShouldRunSetupEnvTests in integrationtest `(PR #97)`
+- Fix hardcoded version number in security release approval message `(PR #96)`
+- Blobstore: support tenant isolation `(PR #94)`
+- Make syntactic indexing policies non exclusive to precise indexing `(PR #92)`
+- Add --build flag to `sg cloud ephemeral upgrade` `(PR #91)`
+- Turn off minification for cody web worker `(PR #90)`
+- Redis: add context arg for list methods `(PR #89)`
+- Basic custom context handler `(PR #86)`
+- Security: Auto-update package lockfiles for Sourcegraph base images `(PR #85)`
+- React: Bump Cody Web to 0.5.1 `(PR #79)`
+- Lib/cloudapi: restructure pkg to reduce nesting `(PR #68)`
+- Nix flake update to go 1.23 `(PR #62)`
+- Nix: local is a string for GOTOOLCHAIN `(PR #61)`
+- Sg CLI: Use correct pipeline when retrieving annotations `(PR #60)`
+- Security: Auto-update package lockfiles for Sourcegraph base images `(PR #56)`
+- Nix: set GOTOOLCHAIN=local `(PR #55)`
+- Search: improve indexing delay dashboards `(PR #54)`
+- Telemetry: always best-effort write to v1 store `(PR #53)`
+- Database: limit concurrent event log inserts `(PR #52)`
+- Only commits in policy commitmap `(PR #49)`
+- Lib/cloudapi: import cloud-api proto def `(PR #40)`
+- Ctags/6.1.0 package update `(PR #38)`
+- Redis_exporter/1.62.0 package update `(PR #37)`
+- Docker-client/27.1.2 package update `(PR #36)`
+- P4-fusion/1.13 package update `(PR #35)`
+- Jaeger/1.60.0 package update `(PR #34)`
+- [Stream API]: Add external_service_type field to the SearchedRepo type `(PR #32)`
+ - Searched repo, commit, path, symbol and file match responses will now include external service type.
+- Directory mentions: extract and test buildKeywordQuery `(PR #30)`
+- Lib/background: fix flaky test of monitor routines with context cancel `(PR #29)`
+- Direct route for fireworks models `(PR #26)`
+- Repos: use passed in ctx for SystemsInfo `(PR #18)`
+- Removing featureflag for expanded audit logs `(PR #15)`
+ - More auditlogs for sensitive admin actions will be automatically logged.
+- Perforce UI Elements: Add perforce UI elements to history panel `(PR #12)`
+- Add typescript parser for SCIP symbols `(PR #10)`
+- Migrations: run squash targetting v5.3.0 `(PR #9)`
+
+### Untracked
+
+The following PRs were merged onto the previous release branch but could not be automatically mapped to a corresponding commit in this release:
+
+- Support SAST Scanning with both GHAS and Custom post processing scrip… `(PR #67)`
+ - Sast scans are reported without any issues
+- Added better GHAS check (#64537) `(PR #65)`
+ - Chore(security): Fix GHAS check as non-zero exit code
+
+{/* RSS={"version":"v5.7.0", "releasedAt": "2024-09-04"} */}
+
+# 5.6 Patch 2
+
+## v5.6.2535
+- [sourcegraph](https://github.com/sourcegraph/sourcegraph/releases/tag/v5.6.2535)
+- [docker-compose](https://github.com/sourcegraph/deploy-sourcegraph-docker/releases/tag/v5.6.2535)
+- [helm](https://github.com/sourcegraph/deploy-sourcegraph-helm/releases/tag/v5.6.2535)
+- [kustomize](https://github.com/sourcegraph/deploy-sourcegraph-k8s/releases/tag/v5.6.2535)
+
+{/* RSS={"version":"v5.6.2535", "releasedAt": "2024-08-22"} */}
+
+### Chore
+
+
+#### Security
+
+- Security: added better GHAS check (#64537) `(PR #65)`
+ - Chore(security): Fix GHAS check as non-zero exit code
+
+### Uncategorized
+
+- Support SAST Scanning with both GHAS and Custom post processing scrip… `(PR #67)`
+ - Sast scans are reported without any issues
+- [Backport 5.6.x] fix(search): fix query parsing bug around quoted phrases #59 `(PR #70)`
+- [Backport 5.6.x] fix(batches): fix broken forking workflow `(PR #81)`fix(batches): fix broken forking workflow
+ Backport f833c4a3bf2210c127ffbf1146be69e1f461a449 from #48
+- [Backport 5.6.x] svelte: add slash to path scope `(PR #98)`
+ - Fixes a bug in the new web app that causes incorrect links to be generated for collapsed file names
+ Backport 23dad06bb2af1e7eb6a2f3847ad7f2c76c2a89a5 from #95
+- [Backport 5.6.x] feat(cody): add deepseek-coder-v2-lite-base support `(PR #103)` Backport f71fe081aa43ca40fef66c067c8eaf49d62d491e from #4
+- Backporting #106 `(PR #107)`
+
+# 5.6 Patch 1
+
+## v5.6.185
+- [sourcegraph](https://github.com/sourcegraph/sourcegraph/releases/tag/v5.6.185)
+- [docker-compose](https://github.com/sourcegraph/deploy-sourcegraph-docker/releases/tag/v5.6.185)
+- [helm](https://github.com/sourcegraph/deploy-sourcegraph-helm/releases/tag/v5.6.185)
+- [kustomize](https://github.com/sourcegraph/deploy-sourcegraph-k8s/releases/tag/v5.6.185)
+
+{/* RSS={"version":"v5.6.185", "releasedAt": "2024-08-08"} */}
+
+### Uncategorized
+
+- [Backport 5.6.x] Changing azureUseDeprecatedCompletionsAPIForOldModels to default to true [#64371](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64371) Backport 3b16059588e5eff69e00ed56a489ac8560a70d8e from #64347
+- [Backport 5.6.x] Fix Cody Web CSS [#64373](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64373)
+ - Make Cody Web styles more accessible. Backport 2dd38b3ffd828a1596249c2780ca91bf4bce4bdd from #64370
+
+# 5.6 Patch 0
+
+## v5.6.0
+- [sourcegraph](https://github.com/sourcegraph/sourcegraph/releases/tag/v5.6.0)
+- [docker-compose](https://github.com/sourcegraph/deploy-sourcegraph-docker/releases/tag/v5.6.0)
+- [helm](https://github.com/sourcegraph/deploy-sourcegraph-helm/releases/tag/v5.6.0)
+- [kustomize](https://github.com/sourcegraph/deploy-sourcegraph-k8s/releases/tag/v5.6.0)
+
+{/* RSS={"version":"v5.6.0", "releasedAt": "2024-08-07"} */}
+
+### Feature
+
+#### Codenav
+
+- Codenav: Add symbol support for the Hack language [#64015](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64015)
+
+#### Frontend
+
+- Frontend: do not embed frontend assets anymore [#63946](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63946)
+ - Frontend: assets are no longer bundled with binary through `go:embed`. Instead assets are now added to the frontend container at `assets-dist`.
+
+#### Local
+
+- Local: sg tail [#64146](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64146)
+ - Adds a new `sg tail` command that provides a better UI to tail and filter log messages from `sg start --tail`.
+
+#### Appliance
+
+- Appliance: implement re-direct on all unknown endpoints [#64059](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64059)
+ - Feat(appliance): implement re-direct on all unknown endpoints
+- Appliance: Adopt Frontend Service + Ingress [#63893](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63893)
+ - Feat(appliance): Appliance adopts Frontend's `Ingress` + `Service`
+- Appliance: Merge unstructured objects from helm serialization and appliance cfg defaults [#64021](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64021)
+ - Feat/appliance: Include existing objects when constructing Frontend's `Service` & `Ingress`
+- Appliance: self-update [#63780](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63780)
+ - Appliance can automatically self-update up to 2 minor revisions beyond the currently-deployed sourcegraph version.
+- Appliance: introduce mock up database configuration step in install flow [#64162](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64162)
+- Appliance: self-update can update multiple deployments [#64132](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64132)
+- Appliance: Frontend Pulls Version Info from RelReg [#64089](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64089)
+ - Feat(appliance): frontend pulls versions from relreg
+- Appliance: Change site-admin updates button to point to Appliance based on env var [#64167](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64167)
+ - Feat(appliance): change update endpoint based on env var
+ - Misc: add type to storybook
+
+#### Enterpriseportal
+
+- Enterpriseportal: db layer for cody gateway access [#63737](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63737)
+- Enterpriseportal: support DevOnly in list subscriptions [#63837](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63837)
+- Enterpriseportal: db layer for subscription licenses [#63792](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63792)
+- Enterpriseportal: db layer for subscription conditions [#63812](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63812)
+- Enterpriseportal: ignore context cancellation error in GetCodyGatewayUsage [#64016](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64016)
+
+#### Search
+
+- Search: remove smart search logic [#64215](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64215)Smart search is no longer supported in the Sourcegraph backend. Old searches that specify 'smart search' mode will be run in the default 'precise' mode. If your query now doesn't behave as expected, you can update it to use the new `patterntype:keyword`.
+- Search: update Zoekt [#64238](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64238)
+ - Added support for all Apex language extensions
+ - Shard merging for Zoekt is now enabled by default. This reduces MEM requirements for Zoekt webserver and improves performance for some queries. See our [documentation](https://sourcegraph.com/docs/admin/search#shard-merging) for more information.
+- Search: Add support to all Apex language extensions [#64194](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64194)
+- Search: Enable improved symbol parsing for large repos (when using Rockskip) [#63988](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63988)
+
+#### Svelte
+
+- Svelte: Improve commit page layout on mobile [#63920](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63920)
+- Svelte: Change branch and tags page design, including mobile [#63914](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63914)
+- Svelte: Add support for creating search jobs from search results [#64308](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64308)
+- Svelte: Improve small screeen behavior [#63859](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63859)
+- Svelte: Add compare page [#63850](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63850)
+- Svelte: Add search query syntax introduction [#63753](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63753)
+- Svelte: Add 'y' shortcut to navigate to permalink [#63719](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63719)
+
+#### Dotcom
+
+- Dotcom: use Enterprise Portal for Cody Gateway usage [#63653](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63653)
+
+#### Build
+
+- Build: Add exhaustruct linter (codeintel POC) [#63965](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63965)
+
+#### Others
+
+- Add support for precise usagesForSymbol [#64126](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64126)
+ - Adds support for precise code navigation to the experimental `usagesForSymbol` API,
+which can be used to implement a reference panel or similar functionality.
+- Order search filters alphabetically [#63976](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63976)
+- Show current email during password reset and auto-populate text-box after successful completion [#59645](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/59645)
+
+#### Bazel
+
+- Bazel: read binary version info from accompanying files in OCI images instead of stamping //internal/version [#63977](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63977)
+
+#### Sg
+
+- Sg: prototype 'sg start sourcegraph-accounts' [#63894](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63894)
+- Sg: add 'sg sams client create' [#63885](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63885)
+ - `sg sams client create` can now be used to create IdP clients for SAMS.
+- Sg: support correct completions on 'sg start -cmd' [#63861](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63861)
+ - Completions for `sg start -cmd` now offer valid suggestions.
+- Sg: report user os information via analytics [#64280](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64280)
+- Sg: do not persist external secrets [#63890](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63890)
+- Sg: allow sg commands to default to local-dev SAMS-dev credentials [#63883](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63883)
+ - `sg` commands requiring SAMS client credentials now load shared SAMS-dev client credentials by default.
+
+#### Cody
+
+- Cody: Refactor completions API to use new modelconfig (support more models) [#63797](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63797)Update the Cody APIs for chat or code completions to use the "new style" model configuration. This allows for great flexibility in configuring LLM providers and exposing new models, but also allows Cody Enterprise users to select different models for chats.This will warrant a longer, more detailed changelog entry for the patch release next week. As this unlocks many other exciting features.
+- Cody: add circuit breaker to handle timed-out requests and rate limit hits [#64133](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64133)
+
+#### Requestclient
+
+- Requestclient: propagate original User-Agent as X-Forwarded-For-User-Agent [#64113](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64113)
+
+### Fix
+
+
+#### Appliance
+
+- Appliance: don't include is_development builds in list of versions [#64138](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64138)
+ - Fix(appliance): don't allow installation of development builds
+- Appliance: Make Appliance URL envvars strings [#64227](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64227)
+ - Fix(appliance): make environment variables strings to be passed around
+
+#### Own
+
+- Own: Prevent infinite UI update loop in own pages [#64312](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64312)
+
+#### Docs
+
+- Docs: update quickstart guide links [#64202](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64202)
+
+#### Cody
+
+- Cody: use client-provided timeout for completions requests [#63875](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63875)
+ - Use the provided timeout from request parameters if available; otherwise use the default maximum request duration (8 minutes)
+- Cody: allow pre-release versions for clients [#63913](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63913)
+- Cody: remove client check for context filters [#63855](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63855)
+
+#### Search
+
+- Search: correctly handle select:symbol.enum [#64170](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64170)Fix a bug in `select:symbol.enum` filters where they returned no results
+
+#### Bazel
+
+- Bazel: surface error message when gazelle cant process glob expression [#64214](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64214)
+
+#### Search_jobs
+
+- Search_jobs: prevent job state flip-flopping between 'queued' and 'processing' [#64098](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64098)
+- Search_jobs: remove trailing `*` from URL [#63821](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63821)
+- Search_jobs: progress reporting [#64287](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64287)
+ - Show detailed progress only while job is in status "processing"
+ - Remove dependency of download links on job state
+- Search_jobs: fail validation for repo searches [#64300](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64300)
+- Search_jobs: flickering placeholder component [#64009](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64009)
+
+#### Enterpriseportal
+
+- Enterpriseportal: drop old gorm fk constraints [#63864](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63864)
+
+#### Svelte
+
+- Svelte: Properly redirect to cody marketing page [#64331](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64331)
+- Svelte: Make /cody/dashboard work with the new web app [#64295](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64295)
+- Svelte: Show correct line numbers in unified diff [#63778](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63778)
+- Svelte: Fix and cleanup compare page [#63928](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63928)
+- Svelte: Update top-level route list [#64272](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64272)
+- Svelte: Ctrl+backspace in fuzzy finder [#63804](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63804)
+- Svelte: respect default pattern type in toggles [#63795](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63795)
+- Svelte: Better preloading in file tree [#64327](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64327)
+- Svelte: Center file tree loading indicator [#64309](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64309)
+
+#### Ci
+
+- Ci: reduce push_all concurrency even further due to ratelimits [#64111](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64111)
+- Ci: check command out for error when git fails [#63993](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63993)
+- Ci: reduce push_all concurrency due to ratelimits [#64106](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64106)
+- Ci: only emit bazel execlog artifact for 'test' commands [#63916](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63916)
+
+#### Release
+
+- Release: check for marker in container files instead of binary [#64205](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64205)
+ - Release: check contiainer directory `/assets-dist` for marker instead of frontend binary
+
+
+#### Sg
+
+- Sg: cloud ephemeral - Do no trigger builds on main-dry-run [#64190](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64190)
+ - Sg: deny deployment of `main-dry-run` branches on Cloud Ephemeral.
+- Sg: better err msg for when we fail to insert to bigquery [#63873](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63873)
+ - Sg: provide a better error message when we fail to insert into bigquery
+ - Sg: stop puslishing to bigquery if we get 3 errors in a row
+- Sg: do not try to publish analytics when it is disabled [#63800](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63800)
+ - Sg - Only start the analytics background publisher when analytics are enabled
+- Sg: return different error types depending on secret failure [#63779](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63779)
+- Sg: provide suggestions we fail to get local gcp account email address [#64325](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64325)sg - Provide steps a user can follow if we fail to get the local gcp email address
+- Sg: acknowledge command execution state to avoid recursion when executing short running commands [#64181](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64181)
+
+#### Batches
+
+- Batches: switch github app installation handling from redirect flow to webhooks [#64036](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64036)
+ - When installing a GitHub app for batch changes, the instance now waits for a callback from GitHub to complete the installation to avoid issues from eventual consistency.
+- Batches: don't request unnecessary info that's likely to cause GH errors [#64299](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64299)
+ - Fix(batches): improve GitHub Apps integration reliability by simplifying the data requested from GitHub
+- Batches: show warning instead of error when the changeset status is not FAILED [#64243](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64243)
+ - Batch changes that are still retrying now show a warning instead of an error.
+
+#### Others
+
+- Try workaround for bad index choice when updating execution logs [#64328](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64328)
+- Block URLs without a hostname [#64248](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64248)
+- Uses the same base64 for decoding we use for encoding the UsageCursor [#64290](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64290)
+- Don't propagate un-translated source ranges [#64263](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64263)
+- Handle sub-repo permissions in CodeGraphData API [#64241](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64241)
+- Fixes incorrect highlighting for comments at the start of a file [#64235](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64235)Fixes incorrect syntax highlighting when a comment is present at the start of a file.
+- Connection pending alert and alert content alignment [#64120](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64120)
+- Set timeout for web-sveltekit/unit_tests to moderate [#63879](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63879)
+- Add Exists method to dbworker Store to avoid COUNT(*) [#64297](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64297)
+- Prefer SCIP uploads over LSIF uploads [#64217](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64217)Fixes a bug where old LSIF uploads would also be used for code
+navigation even when newer SCIP uploads were available for the
+same language, potentially leading to duplicate results in the reference
+panel. With this change, scip-go uploads shadow the uploads
+for lsif-go, and similarly for other indexers following the scip-X/lsif-X naming
+convention.
+- Synchronize access to reads of fields in retry test [#63967](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63967)
+- Add extra check for code intelligence inference [#64083](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64083)
+- De-dup and concurrent-ify file content requests & splitting [#64169](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64169)
+- Handle potential nil reference properly [#64265](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64265)
+- Add commit signing filter to `credentialForGitHubAppExists` [#64128](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64128)
+- Make invalid token error message visible while adding external services [#60876](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/60876)
+
+#### Telemetry
+
+- Telemetry: silence invalid events that we already know about [#64084](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64084)
+
+### Chore
+
+
+#### Others
+
+- Mark flaky web-sveltekit tests as manual [#63874](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63874)
+- Frontend does not need disk [#64273](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64273)
+- Make return type more obvious [#63651](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63651)
+- Update main occurrence extraction code to allow for symbol-based matching [#64082](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64082)
+- Rename Index -> AutoIndexJob [#63955](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63955)
+- Reduce frequency of COUNT(*) on lsif_indexes [#64288](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64288)
+- Bump version of sourcegraph/log library [#64233](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64233)
+- Remove cmd/frontend/external/app [#64054](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64054)
+- Remove redis init side-effect of app.NewHandler [#64062](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64062)
+- Don't pass nil context [#64055](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64055)
+- Move codenav types to lower-level package [#64141](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64141)
+- Replace 'dumps' terminology in comments [#63775](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63775)
+- Change some APIs to use symbols instead of monikers [#64029](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64029)
+- Rename uploadstore packages for clarity [#63931](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63931)
+- Remove incorrectly logged warning [#64267](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64267)
+- Use binary search over symbols array [#64240](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64240)
+- De-duplicate CTE for visible uploads [#64232](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64232)
+- Remove unused loghandlers package [#64067](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64067)
+- Move internal/conf/validation to cmd/frontend [#64064](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64064)
+- Init userpasswd provider where we initialize every other authn provider [#64061](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64061)
+- Remove flaky flag from svelte e2e_test [#64123](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64123)
+- Mark flaky test as manual [#63968](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63968)
+- Factor out sub-query for locating nearest uploads [#64210](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64210)
+- Remove global externalURL watcher [#64058](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64058)
+- Re-enable e2e tests for web-sveltekit [#63910](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63910)
+- Replace QueuedCount -> CountByState with bitset parameter [#64302](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64302)
+- Deglobalize oneclickexporter instance [#64066](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64066)
+- Make location fetching queries more uniform [#64026](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64026)
+- Document tech debt wrt multiple doc traversals [#64006](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64006)
+- Unify LsifStore.*SymbolUsages APIs into one [#64076](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64076)
+- Add docs for RepoStore methods [#64283](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64283)
+- Rename URI -> DocumentPath [#63979](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63979)
+- Remove unused TTL in object.Storage config [#63947](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63947)
+- Move cmd/frontend/webhooks to cmd/frontend/internal [#64157](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64157)
+- Rename type Bytes -> Size [#64183](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64183)
+- Unconditionally call endObservation [#64150](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64150)
+- Move internal/highlight to cmd/frontend [#64065](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64065)
+- Bubble precise Usages instead of Locations [#64118](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64118)
+- Switch over to fake RepoStore in codenav tests [#64284](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64284)
+- Move internal/suspiciousnames to cmd/frontend/internal [#64071](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64071)
+- Simplify license routines [#64068](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64068)
+- Use Option type and rename API [#63820](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63820)
+- Bump autoindexing image SHAs [#63801](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63801)
+- Move and clean up test code for syntactic usages [#64318](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64318)
+- Remove unnecessary _ imports [#64158](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64158)
+- Remove cmd/frontend/external redirection package [#64070](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64070)
+- Consolidate mocks for dbworker/store.Store type [#64294](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64294)
+- Consolidate mocks for uploads's Store type [#64286](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64286)
+- Move cmd/frontend/oneclickexport to cmd/frontend/internal/oneclickexport [#64069](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64069)
+- Move authn into cmd/frontend [#63648](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63648)GitLab code host connections were [able to sync permissions by mapping Sourcegraph users to GitLab users via the username property of an external OIDC or SAML provider](https://sourcegraph.com/docs/admin/code_hosts/gitlab#administrator-sudo-level-access-token) that is shared across Sourcegraph and GitLab. This integration stopped working a long time ago, and it has been removed in this release.
+- Replace calls to deprecated ioutil.TempFile [#64177](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64177)
+
+#### Svelte
+
+- Svelte: Add manual entries for repo sub pages to development proxy [#64313](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64313)
+- Svelte: Disable tests which time out [#63844](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63844)
+- Svelte: Refactor infinity query implementation [#63824](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63824)
+- Svelte: fix test by removing duplicate aria-label [#63942](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63942)
+- Svelte: Commit/diff style and behavior tweaks [#63785](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63785)
+- Svelte: Refactor repo loaders [#63828](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63828)
+- Svelte: Clean up dependencies [#63777](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63777)
+
+#### Enterpriseportal
+
+- Enterpriseportal: rewrite subscriptions API tests to be table-driven [#63831](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63831)
+- Enterpriseportal: simplify display_name constraint [#63835](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63835)
+
+#### Telemetrygateway
+
+- Telemetrygateway: gracefully handle sams introspectToken cancelation [#63809](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63809)
+
+#### Bazel
+
+- Bazel: re-enable remote caching of Copy{File,Directory,ToDirectory} actions [#64153](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64153)
+- Bazel: emit json profile for image push jobs [#64188](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64188)
+- Bazel: rework push_all to improve concurrency by avoiding bazel server lock (round 2) [#64079](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64079)
+- Bazel: emit json profile for image push jobs (properly) [#64189](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64189)
+- Bazel: disable stamping on rust_binary targets [#64007](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64007)
+
+#### Config
+
+- Config: clarify env var already registered panic [#63784](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63784)
+ - When conflicting env var are detected, print the two to ease debugging.
+
+#### Executors
+
+- Executors: Native Kubernetes Executors default to use single job pod [#64088](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64088)
+
+#### Codeintel
+
+- Codeintel: Derive TargetPathWithoutRoot dynamically [#63986](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63986)
+- Codeintel: Move mock generation near interface package [#64000](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64000)
+- Codeintel: Simplify code using upload filtering [#63997](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63997)
+- Codeintel: Pass UsageKind instead of raw column names [#64003](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64003)
+- Codeintel: replaces lsp.Range uses with scip.Range [#64178](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64178)
+- Codeintel: Rename local variables for clarity [#63983](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63983)
+- Codeintel: Move RequestState construction to separate func [#63998](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63998)
+- Codeintel: Rename uploads/../Store -> codegraph/../DataStore [#64001](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64001)
+
+#### Search
+
+- Search: update search API call sites to set the version explicitly [#63782](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63782)
+- Search: update logging of search durations [#64269](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64269)
+
+#### Local
+
+- Local: clear ambiguity in between sg version|live [#64122](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64122)
+ - `sg version` explicitly mentions that it's the CLI version that's printed out, not any instance version.
+- Local: use //cmd/frontend:frontend_nobundle for bazel commandsets [#64085](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64085)
+
+#### Search_jobs
+
+- Search_jobs: add janitor job [#64186](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64186)The new background job drastically reduces the size of the `exhaustive_*` tables and improves performance of the Search Jobs GQL API.
+- Search_jobs: improve description on main page [#63992](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63992)
+- Search_jobs: remove label "admin" from contact card [#63823](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63823)
+
+#### Cody
+
+- Cody: allow setting "cody.contextFilters" in site config without feature flag [#63881](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63881)
+
+#### Frontend
+
+- Frontend: use explicit cache for admin analytics [#64077](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64077)
+
+#### Worker
+
+- Worker: move aggregated user stats job to worker [#64033](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64033)
+- Worker: disable jobs based on ENVs [#63853](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63853)
+- Worker: move event_logs janitor routines to worker [#63981](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63981)
+- Worker: move llm token counter to worker [#64008](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64008)
+- Worker: move refreshAnalyticsCache to worker [#64041](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64041)
+
+#### Log
+
+- Log: remove use of log15 in ghe-feeder [#64131](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64131)
+
+#### Ci
+
+- Ci: emit execlog for image push jobs [#64130](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64130)
+
+#### Sg
+
+- Sg: remove 'sg telemetry' and related docs [#63763](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63763)
+ - `sg`: the deprecated `sg telemetry` command for allowlisting export of V1 telemetry from Cloud instances has been removed. Use telemetry V2 instead.
+- Sg: clean up help formatting [#63860](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63860)
+
+### Ci
+
+
+#### Others
+
+- Add cloud controller gql compat test [#64092](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64092)
+- Automatic retry push images job at least 1 [#64145](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64145)
+
+### Perf
+
+
+#### Others
+
+- Find syntactic matches concurrently [#63937](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63937)
+
+### Refactor
+
+
+#### Github
+
+- Github: Have a dedicated PublicRepository type [#63607](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63607)
+
+#### Codeintel
+
+- Codeintel: Extracts a MappedIndex abstraction over uploads [#63781](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63781)
+
+#### Others
+
+- Steps the usage cursor provenance state in a single place [#64321](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64321)
+- Handles Cursor uniformly over all usage provenances [#64319](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64319)
+- Renames usage cursor and adds fields for future syntactic cursor [#64208](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64208)
+
+#### Svelte
+
+- Svelte: Reduce logo complexity [#64274](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64274)
+
+### Reverts
+
+- Revert "Cody: add support for neovim, cody-cli, eclipse, and visualstudio clients [#63854](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63854)
+- Revert "chore(ci): post instructions for PR sections in a comment" [#64176](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64187)
+
+### Uncategorized
+
+- Feat(code insights): language stats speed improvements by using archive loading [#62946](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62946)
+ - Language stats queries now request one archive from gitserver instead of individual file requests. This leads to a huge performance improvement. Even extra large repositories like chromium are now able to compute within one minute. Previously they timed out.
+- Various improvements to saved searches [#63539](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63539)
+ - Improved the saved searches feature, which lets you save search queries to easily reuse them later and share them with other people in an organization.
+ - Added the ability to transfer ownership of a saved search to a user's organizations or from an organization to a user's account.
+ - Removed a long-deprecated and ineffective settings `search.savedQueries` field. You can manage saved searches in a user's or organization's profile area (e.g., at `/user/searches`).
+- Correctly re-map source ranges in new SCIP-based APIs [#63630](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63630)
+- Move internal/session into cmd/frontend/internal [#63649](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63649)
+- Subrepo: More explicitly define supported hosts [#63650](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63650)
+- Licensecheck: Make proper goroutine [#63655](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63655)
+- Remove old reference to env var that no longer exists [#63656](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63656)
+- Schema: Remove unused extension schema file [#63657](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63657)
+- Dotcom: Remove dotcom on-by-default Cloudflare trust mode [#63658](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63658)
+- Webhooks: Polish UI components [#63664](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63664)
+- Webhooks: Deterministically match webhook events to repos [#63668](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63668)
+- Gating: Add individual switches for disabling tools features [#63686](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63686)
+- Svelte: implement new reference panel against new Usages API [#63724](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63724)
+- Usages API: implement surroundingContent [#63730](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63730)
+- Authz: Drop requirement for installing authz providers in every service [#63743](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63743)
+- Make pagination hooks store filter & query params in URL, not just pagination params [#63744](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63744)
+- Update comment and decode bytes instead [#63754](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63754)
+- Svelte: some unrelated cleanups [#63757](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63757)
+- Fix/internal/txemail: add timeout for SMTP connection establishment [#63759](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63759)
+ - Instead of waiting forever, we wait at most 30 seconds before giving up when trying to connect to the configured mail server when sending an email.
+- Feat/graphql/access_tokens: send access token creation/deletion emails in background and create special message for dial errors [#63760](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63760)
+ - When creating or deleting an access token, we no longer wait for the email to be sent before returning to the caller. Instead, we now send it in the background.
+- Add more Completions handler tests [#63761](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63761)NA
+- Search: make 'exclude tests' more general [#63762](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63762)
+- Minor refactoring, fixes [#63766](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63766)NA
+- Svelte: add more general shrinkable path [#63770](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63770)
+- Feature/db/sub_repo_perms: add IPs column to sub repo perms [#63771](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63771)
+ - The sub_repo_permissions table now has an ips column to store the associated IP address associated with each path rule.
+- Security: Auto-update package lockfiles for Sourcegraph base images [#63776](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63776)
+- Gateway: Don't panic because of duplicate env var registration [#63787](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63787)
+- RFC 969 API boilerplate [#63789](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63789)
+- Structural search: fix precise lang filtering [#63791](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63791)
+- Feature: update `sg release cut` to automate stitch graph gen and release branch creation [#63794](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63794)
+- Wolfi image for Sourcegraph Frontend [#63798](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63798)
+- Fix(nix/p4-fusion): update p4-fusion helix-api hashes [#63805](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63805)
+- Move Cody Web to beta [#63806](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63806)
+- Feat/lib/telemetrygateway: expose simple Dial [#63810](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63810)
+- Internal/database/sub_repo_permissions: modify store to be able to insert ip based permissions [#63811](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63811)The sub_repositorypermissions database store can now save and retrieve the IP addresses associated with each path rule.
+- Several fixes around merging modelconfig, and the current Cody Gateway data [#63814](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63814)NA
+- Svelte: optimize `observeIntersection` [#63816](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63816)
+- Change model identifier for finetuned deepseek model [#63817](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63817)
+- Syntactic indexing non local refs java [#63822](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63822)
+- Feat/sg/msp: helpful error on cloudsqlproxy port conflict [#63830](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63830)
+- Feat/sg/enterprise: add 'sg enterprise set-name' [#63832](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63832)
+- Updated error messaging for blocked requests due to abuse [#63836](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63836)
+- Gitserver: Add option to allow setting custom context line count [#63840](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63840)
+- Misc saved searches followups [#63841](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63841)
+- Gitserver: Add OctopusMergeBase RPC method [#63842](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63842)
+- Pr-auditor: use pr-auditor from devx-service [#63847](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63847)
+- Cody: add access token callback pages for CLI, Eclipse and VS [#63849](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63849)
+- Cody: add support for neovim, cody-cli, eclipse, and visualstudio clients [#63851](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63851)
+ - Fix HTTP 406 error when using the Neovim Cody plugin with Enterprise instances
+
+- Chore/lib/telemetrygateway: fixup Dial helper [#63862](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63862)
+- Blame: fix some issues with the stream [#63865](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63865)
+ - Fixed an issue with blame view that can cause retry loops and error pages that block interaction with the rest of the UI
+- Docs: Add alternate names and links in GraphQL docs [#63867](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63867)
+- Show saved searches in new global navbar [#63868](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63868)
+- Factor out PatternConstrainedInput [#63869](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63869)
+- Add configuration for Intent Detection API [#63871](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63871)
+- Prompt Library [#63872](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63872)
+ - The Prompt Library lets you create, share, and browse chat prompts for use with Cody. Prompts are owned by users or organizations, and site admins can make prompts public so that all users on the instance can see and use them. To use a prompt from your Prompt Library in Cody, select it in the Prompts dropdown in the Cody chat message field.
+- Integrate Cohere re-ranking API [#63877](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63877)
+- Special oauth containers [#63880](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63880)
+- Feature: db connection pinger and validator [#63884](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63884)
+- Update CodyLLMConfiguration GraphQL object to be modelconfig aware [#63886](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63886)NA
+- Sg: check for nil multiError [#63889](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63889)
+- Search: add regex support to `repo:has.meta()` [#63891](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63891)
+ - `repo:has.meta()` predicate now supports regex patterns for keys and values
+- Fixes re: Cody Pro x Sourcegraph-supplied models [#63892](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63892)NA
+- Cody-gateway: handle missing Google response [#63895](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63895)cody-gateway: log missing Google response as warning
+- Svelte: fix css selector [#63896](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63896)
+- Self hosted models [#63899](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63899)Cody Enterprise: added a new configuration for self-hosting models. Reach out to support if you would like to use this feature as it is in early access.
+- Adds unit tests for syntactic usages [#63900](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63900)
+- [sg] Make rfc command use private RFCs by default [#63902](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63902)
+- Unify naming of used/ignored context [#63903](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63903)
+- Track usage stats for saved searches in UTC day increments [#63904](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63904)
+- Query Repository.id to support Apollo Client caching [#63905](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63905)
+- WithAuthenticatedUser: use react-router-dom hooks & add test [#63906](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63906)
+- Show org name not displayName in most places [#63907](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63907)
+ - The user menu and other filter menus now show the names of organizations, not their "display names", to avoid ambiguity. For example, these menus will now show `abc-corp` not `ABC Corp` (if the latter was the `abc-corp`'s display name).
+- Add saved search visibility, draft, and timestamps [#63909](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63909)
+ - Saved searches can now be made public (by site admins), which means all users can view them. This is a great way to share useful search queries with all users of a Sourcegraph instance.
+ - Saved searches can be marked as a "draft", which is a gentle indicator that other people shouldn't use it yet.
+- Fix(build-tracker): Failed back-compat doesn't count towards branch-locking quota [#63911](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63911)
+- Sg: enable alerting by default for production projects [#63912](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63912)
+- Add separate shadow value for hovercards [#63918](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63918)
+- GraphQL: improve query cost violation message [#63921](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63921)
+- Fix/frontend/httpapi: improve request reader [#63923](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63923)
+- Saved searches & prompt library fixes [#63930](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63930)
+- Remove "organizations aren't supported" page on dotcom [#63932](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63932)
+- Prevent orgs from being named "global" on dotcom [#63933](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63933)
+- Allow non-site admins to list their orgs' members on dotcom [#63934](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63934)
+- Show "Copied" indicator when copying an access token [#63936](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63936)
+- Codeintel: GitTreeTranslator rewrite [#63938](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63938)
+- Repoupdater: Make batches init jobs dependent on batches.IsEnabled [#63939](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63939)
+- [update] Remove sleep in goroutine for webhook handlers [#63940](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63940)
+- Support getting other orgs on dotcom from the GraphQL API [#63941](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63941)
+- Misc improvements to graphqlbackend [#63943](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63943)
+- Explicitly check viewer access to settings in GraphQL API [#63945](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63945)
+- Use the viewerSettings GraphQL API instead of the 5y+-deprecated viewerConfiguration API [#63949](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63949)
+- Upgrade vitest to latest [#63951](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63951)
+- Add counter for traced requests to Fireworks [#63953](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63953)
+- Remove references to modelconfig.sourcegraph.pollingInterval [#63956](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63956)NA
+- Fix/database/sub_repo_perms: don't mark TestSubRepoPermsStore_GetByUserWithIPs as Parallel [#63958](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63958)
+ - A race condition in the sub_repo_permissions database store test suite has been fixed.
+- Svelte rollout: add toggles for svelte-enabled pages [#63960](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63960)
+- Fix saved searches and prompts list page for anon users [#63961](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63961)
+- Various OrgArea fixes [#63962](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63962)
+- Allow site admins to list org members & view user/org settings on dotcom [#63963](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63963)
+- Svelte: Fix Safari 17.3 groupBy usage [#63964](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63964)
+- Finish removing chromatic [#63966](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63966)
+- Cody: correct link to emacs-cody [#63974](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63974)
+- Implement server-side single-repo context fetching for RFC 969 [#63980](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63980)
+- [fix] Fix being unable to add batch changes credentials when rate limited [#63984](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63984)
+ - Fixed an issue where, when Sourcegraph is applying rate limits, batch change credentials could not be added. Sourcegraph now waits a maximum of 10 seconds to update credentials, and if it times out, it saves the credentials regardless and displays a warning to the user.
+- Fix incorrect URL (/new) on saved search and prompt library pages [#63995](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63995)
+- Feature/worker/permission syncer: perforce: sync HOST field using IP addresses [#64010](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64010)
+ - The perforce permissions syncer has been updated to save the IP address associated with each sub_repository_permissions rule.
+- Bring back post-sign-up route to the backend router [#64011](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64011)
+- Authz: Compute providers on the fly [#64012](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64012)
+- Feat/frontend/dotcom: add toggles for various online license checks [#64013](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64013)
+- Update the legacy link to sg doc [#64017](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64017)
+- Update the outdated link to #dev-experience to #discuss-dev-infra [#64018](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64018)
+- Maintenance Splash Page [#64019](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64019)
+- Codeintel: returns surroundingContent from search result [#64022](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64022)
+- Codeintel: runs occurrence and symbol search in parallel [#64023](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64023)
+- Codeintel: allows batch retrieval of SCIP documents [#64024](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64024)
+- Codeintel: fetches diffs from gitserver in batches [#64025](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64025)
+- Removes the old GitTreeTranslator API [#64027](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64027)
+- Remove dead collaborators invite code [#64039](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64039)
+- Make cody gateway usage worker a periodic routine [#64040](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64040)
+- Unpin openjdk-11 version in blobstore package [#64045](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64045)
+- Bug: update version consts in updatecheck handler [#64052](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64052)
+- Cleanup: Move azure openai provider config validation to right place [#64056](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64056)
+- Security: Auto-update package lockfiles for Sourcegraph base images [#64060](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64060)
+- Auth: Fix Found page response when redis is down [#64063](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64063)
+- Codeintel: Adds a batch api for fetching multiple documents to MappedIndex [#64073](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64073)
+- Syntactic indexing policy toggle: UI and supporting APIs (with backcompat) [#64075](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64075)
+ - In site-admin APIs for updating code intelligence policies:
+ - Field `indexingEnabled` is renamed to `preciseIndexingEnabled`
+ - A required `syntacticIndexingEnabled` is added (only takes effect if experimental feature is enabled)
+ - Field `forIndexing` is renamed to `forPreciseIndexing`
+- Codeintel: Speed up syntactic and search-based usages using batch APIs [#64078](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64078)
+- Scip-syntax: uses `.starts_with` to check reference capture [#64081](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64081)
+- Feat/worker/permission syncing: make sub repo permissions re-insertion fall back to original paths if ips not added yet [#64086](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64086)
+- Enable p4-fusion by default for Perforce code host connections [#64101](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64101)
+ - For Perforce code host connections, `p4-fusion` is now always enabled and the option for the much slower and unreliable `git p4` no longer exists.
+- Gerrit: Add support for repositoryPathPattern [#64102](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64102)Added support for the `repositoryPathPattern` setting for Gerrit code host connections.
+- Msp: use BUILDKITE_BUILD_CREATOR as fallback [#64104](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64104)
+- Msp: remove old author variable [#64107](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64107)
+- Blob search: Fix incorrect icons in the blob search bar [#64108](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64108)
+- Gomod: update zoekt for guardrails perf experiment [#64109](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64109)
+- Svelte Navigation: hide teams when own is not enabled [#64110](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64110)
+- Search-blitz: adjust limit for snippetAttribution to match gateway [#64119](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64119)
+- Observability: Adds useful data to traces from gosyntect.Highlight [#64121](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64121)
+- Scip-syntax: Simplifies to two visibilities [#64124](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64124)
+- Gomod: update zoekt to include improvement to experiment [#64125](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64125)
+- Support detecting search and edit intent [#64129](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64129)
+- SvelteKit: Add 'Tools' Menu item back to global navigation [#64134](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64134)
+- Svelte: do not show path section if empty [#64135](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64135)
+- SvelteKit: fix issue where clicking link with no href refreshed the page [#64136](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64136)
+- Fix/internal/requestclient: read all instances of x-forwarded-for header, not just the first [#64137](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64137)
+- Bug: parse v in target versions [#64139](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64139)
+- Codeintel: document that pagination for usages might return extra results [#64142](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64142)
+- Bug: fix default version [#64143](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64143)
+- Chore(syntax-highlighter): Some cleanup for locals detection [#64144](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64144)
+- Bump cody web to most recent package @sourcegraph/cody-web [#64149](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64149)
+- Docs: Specify matching behavior for usagesForSymbol(range:) [#64151](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64151)
+- Svelte: Bump cody web to most recent package @sourcegraph/cody-web [#64152](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64152)
+- Nit: adds space between tools menu item and dropdown icon [#64154](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64154)
+- Frontend: Remove global conf server variable [#64155](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64155)
+- Frontend: Consolidate remaining registry packages [#64156](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64156)
+- Add unit test for modelconfig converting starcoder completion model [#64160](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64160)NA
+- Relax modelconfig name restrictions [#64161](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64161)NA.
+- Svelte: add welcome introduction when enabling svelte for the first time [#64163](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64163)
+- Replace modelOverridesRecommendedSettings with selfHostedModels [#64164](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64164)Improved configuration functionality for Cody Enterprise with Self-hosted models.
+- Fix autocomplete regression in `main` ("various" provider issue) [#64165](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64165)N/A
+- Expose ranker relevance score in GraphQL API [#64172](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64172)
+- Policy patch - Leave fields unchanged if they're missing from request [#64174](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64174)
+- Docs: Weaken guarantees for Usage cursor [#64185](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64185)
+- Code intel: respect provenance when getting usages [#64193](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64193)
+- Bump @sourcegraph/cody-web to 0.3.2 [#64195](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64195)
+- Don't block `frontend` initialization with invalid modelconfig [#64200](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64200)NA
+- Security: Auto-update package lockfiles for Sourcegraph base images [#64204](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64204)
+- Search: apply phrase boosting to more queries [#64207](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64207)
+- Sg cloud eph: simplify status [#64209](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64209)
+- Styling updates throughout [#64221](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64221)
+- Svelte: welcome banner followups [#64222](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64222)
+- Cody web: add server-side fetching for URL mentions [#64223](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64223)
+- Bump @sourcegraph/cody-web to 0.3.4 [#64224](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64224)
+- Chore: remove enablePreciseOccurrences feature flag [#64229](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64229)
+- Web: fix git blame for files that have `/stream/` in their path [#64230](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64230)
+ - Fixed an issue where blame view would error when the file contains the path element `/stream/`
+- Codeintel: make usage-range non-optional [#64236](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64236)
+- Ephemerals: fix feature flag name [#64237](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64237)
+- Reapply "soap: Fix auto-redirect to IdP when SOAP is enabled" (#64234) [#64244](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64244)
+- Gitserver: RawDiff checks if commits exist [#64245](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64245)Fixes a bug where a force push on HEAD of a repository might lead to our unindexed search failing until the indexed search had updated.
+- Servicecatalog: remove searcher dep on database [#64247](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64247)
+- Chore: remove non-null assertions [#64249](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64249)
+- Svelte: fix welcome banner flashing on reload [#64251](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64251)
+- Cody Web: Update Cody Web to 0.3.6 [React version] [#64254](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64254)
+- Svelte: make closing the welcome overlay more obvious [#64256](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64256)
+- Gomod: update zoekt for shard scanning improvement [#64264](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64264)
+- Update p4-fusion-sg wolfi-package [#64266](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64266)
+- Return 'sourcegraph' as the CodyLLMConfigurationResolver.Provider [#64276](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64276)NA
+- Svelte: remove site admin gate on code intel preview [#64277](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64277)
+- Improving Azure errors for customer containers [#64278](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64278)
+- Update the default Sourcegraph-supplied LLM models [#64281](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64281)NA?
+- Enable SCIP based APIs by default [#64285](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64285)
+- Update wolfi hashes [#64289](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64289)
+- Searcher: fix benchmarks [#64292](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64292)
+- Search: re-add support for 'lucky' patterntype [#64293](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64293)
+- Update Cody Web to 0.3.7 [#64296](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64296)
+- Search: boost matches on quoted terms [#64298](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64298)
+- Return model IDs from GraphQL, not model Names [#64307](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64307)NA
+- Svelte: more welcome banner behavior updates [#64311](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64311)
+- Fix Cody Web Svelte Sidebar [#64320](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64320)
+- Center align Cody logo in Cody Web Sidebar [#64324](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64324)
+- Upgrade Cody Web, always create a new chat [#64334](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64334)
+- Svelte: enable toggle by default [#64340](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64340)
+
+### Untracked
+
+The following PRs were merged onto the previous release branch but could not be automatically mapped to a corresponding commit in this release:
+- [Backport-5.5.x]: Move Cody Web to beta (#63806) [#63808](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63808)
+- Backport: Blame: fix some issues with the stream (#63865) [#63929](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63929)
+- Security: Auto-update package lockfiles for Sourcegraph base images [#64035](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64035)
+- Security: Bump openjdk-11 version in blobstore image [#64047](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64047)
+- Appliance: backport all recent appliance changes [#64182](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64182)
+ - Backport all recent appliance changes. The appliance is still pre-release.
+- Cherry-pick 856e41e with resolved conflicts [#64228](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64228)
+
+# v5.5.3956
+
+{/* RSS={"version":"v5.5.3956", "releasedAt": "2024-08-02"} */}
+
+### Reverts
+
+### Uncategorized
+
+- [Backport-5.5.x]: Move Cody Web to beta (#63806) [#63808](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63808)
+- [Backport 5.5.x] fix(batches): the baseURL for github instance is now updated when creating a GitHub app [#63833](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63833) Backport 1c40c9e5bccd4f6265945bd3449b70a648022e60 from #63803
+- [Backport 5.5.x] Upgrade cody web experimental package to 0.2.5 [#63856](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63856)
+- Backport 63870 to 5.5.x [#63882](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63882)
+ - Adds an experimental feature `commitGraphUpdates` to control how upload visibility is calculated.
+- [Backport 5.5.x] Upgrade cody web experimental package to 0.2.7 (#63863) [#63901](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63901)
+- Backport: Blame: fix some issues with the stream (#63865) [#63929](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63929)
+- [Backport 5.5.x] [fix] Only trigger externalAcctSignup event when a new user is created [#63975](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63975)
+ - Fixed an issue where the `http-header` auth would cause a massive amount of event logs spam Backport cd6595196177b3d307a4e8f76222c6d8c5c9b23f from #63843
+- [Backport 5.5.x] Publish images for all commits on release branches [#63987](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63987) Backport b7242d280f37a4b9effebb52ac4301e59635d629 from #63985
+- [Backport 5.5.x] [logging] Only record events if a new user was created [#64005](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64005) Backport 777c7a089956f1ad9c494ab55e8660bbdd781259 from #64004
+- [Backport 5.5.x] Integrate security release approval into release pipeline [#64030](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64030) Backport 9dd901f3c957cf5bf83aa6ac41fc3c6b2744cfd3 from #63990
+- Security: Auto-update package lockfiles for Sourcegraph base images [#64035](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64035)
+- [Backport 5.5.x] fix(source): Fix issue where worker would crash if a Bitbucket Cloud token couldn''t be refreshed [#64037](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64037)
+ - Fixed an issue where a Bitbucket Cloud OAuth token failing to refresh would crash the `worker` service. Backport bc036ad2bafc9a09d80646d30d26335359a28fd1 from #64028
+- Security: Bump openjdk-11 version in blobstore image [#64047](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64047)
+- [Backport 5.5.x] ci: make internal+promote release higher priority in runtypes [#64050](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64050) Backport 0309564f9362ea24e248aa5189d66f89826ccecf from #64049
+- [Backport 5.5.x] fix: Fix Chrome stack overflow during highlighting [#64074](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64074)
+ - Fixes a Chrome-specific stack overflow when highlighting large files.
+ Backport 2644e242447ac355a415abec7af5cfb8d9849e75 from #64072
+- Backport 5ce2eea to 5.5.x [#64166](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64166)
+- Security: Auto-update package lockfiles for Sourcegraph base images [#64180](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64180)
+- [Backport 5.5.x] fix(appliance): cache authorization status [#64219](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64219) Backport 156aa5a0adec1bc7a1f2142878761d8993dd4c43 from #64213
+- [Backport 5.5.x] fix(appliance): reliably redirect to site-admin post-install [#64220](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64220) Backport e54407d9f50ed11f1a7c27edbb5c42966070f236 from #64216
+- Cherry-pick 856e41e with resolved conflicts [#64228](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64228)
+
+### Untracked
+
+The following PRs were merged onto the previous release branch but could not be automatically mapped to a corresponding commit in this release:
+- [Backport 5.5.x] release/bug: generate a new stitched migration graph [#63769](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63769) Backport cb19d6f0a98f7ecce65629bd117c34a8dc1db8e2 from #63764
+- [Backport 5.5.x] Context: return lines around symbol match [#63788](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63788)
+- [Backport 5.5.x] fix/alertmanager: downgrade prometheus/common to fix generated config [#63793](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63793)
+ - Fix Prometheus Alertmanager configuration failing to apply `observability.alerts` from site config Backport ffa873f3adb18e2c5807ca752115a70fcbc493c8 from #63790
+- [Backport-5.5.x]: Move Cody Web to beta (#63806) [#63808](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63808)
+- [Backport 5.5.x] fix(batches): the baseURL for github instance is now updated when creating a GitHub app [#63833](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63833) Backport 1c40c9e5bccd4f6265945bd3449b70a648022e60 from #63803
+- [Backport 5.5.x] Upgrade cody web experimental package to 0.2.5 [#63856](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63856)
+- Backport 63870 to 5.5.x [#63882](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63882)
+ - Adds an experimental feature `commitGraphUpdates` to control how upload visibility is calculated.
+- [Backport 5.5.x] Upgrade cody web experimental package to 0.2.7 (#63863) [#63901](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63901)
+- Backport: Blame: fix some issues with the stream (#63865) [#63929](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63929)
+- [Backport 5.5.x] [fix] Only trigger externalAcctSignup event when a new user is created [#63975](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63975)
+ - Fixed an issue where the `http-header` auth would cause a massive amount of event logs spam Backport cd6595196177b3d307a4e8f76222c6d8c5c9b23f from #63843
+- [Backport 5.5.x] Publish images for all commits on release branches [#63987](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63987) Backport b7242d280f37a4b9effebb52ac4301e59635d629 from #63985
+- [Backport 5.5.x] [logging] Only record events if a new user was created [#64005](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64005) Backport 777c7a089956f1ad9c494ab55e8660bbdd781259 from #64004
+- [Backport 5.5.x] Integrate security release approval into release pipeline [#64030](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64030) Backport 9dd901f3c957cf5bf83aa6ac41fc3c6b2744cfd3 from #63990
+- Security: Auto-update package lockfiles for Sourcegraph base images [#64035](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64035)
+- [Backport 5.5.x] fix(source): Fix issue where worker would crash if a Bitbucket Cloud token couldn''t be refreshed [#64037](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64037)
+ - Fixed an issue where a Bitbucket Cloud OAuth token failing to refresh would crash the `worker` service. Backport bc036ad2bafc9a09d80646d30d26335359a28fd1 from #64028
+- Security: Bump openjdk-11 version in blobstore image [#64047](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64047)
+- [Backport 5.5.x] ci: make internal+promote release higher priority in runtypes [#64050](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64050) Backport 0309564f9362ea24e248aa5189d66f89826ccecf from #64049
+- [Backport 5.5.x] fix: Fix Chrome stack overflow during highlighting [#64074](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64074)
+ - Fixes a Chrome-specific stack overflow when highlighting large files.
+ Backport 2644e242447ac355a415abec7af5cfb8d9849e75 from #64072
+- Backport 5ce2eea to 5.5.x [#64166](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64166)
+- Security: Auto-update package lockfiles for Sourcegraph base images [#64180](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64180)
+
+# v5.5.3738
+
+{/* RSS={"version":"v5.5.3738", "releasedAt": "2024-07-31"} */}
+
+### Feat
+
+- Appliance: backport all recent appliance changes [#64182](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64182)
+ - Backport all recent appliance changes. The appliance is still pre-release.
+
+### Reverts
+
+### Uncategorized
+
+- [Backport 5.5.x] fix: Fix Chrome stack overflow during highlighting [#64074](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64074)
+ - Fixes a Chrome-specific stack overflow when highlighting large files.
+ Backport 2644e242447ac355a415abec7af5cfb8d9849e75 from #64072
+- Backport 5ce2eea to 5.5.x [#64166](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64166)
+
+# v5.5.2463
+
+{/* RSS={"version":"v5.5.2463", "releasedAt": "2024-07-24"} */}
+
+### Uncategorized
+
+- Backport: Blame: fix some issues with the stream (#63865) [#63929](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63929)
+- [Backport 5.5.x] [fix] Only trigger externalAcctSignup event when a new user is created [#63975](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63975)
+ - Fixed an issue where the `http-header` auth would cause a massive amount of event logs spam Backport cd6595196177b3d307a4e8f76222c6d8c5c9b23f from #63843
+- [Backport 5.5.x] Publish images for all commits on release branches [#63987](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63987) Backport b7242d280f37a4b9effebb52ac4301e59635d629 from #63985
+- [Backport 5.5.x] [logging] Only record events if a new user was created [#64005](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64005) Backport 777c7a089956f1ad9c494ab55e8660bbdd781259 from #64004
+- [Backport 5.5.x] Integrate security release approval into release pipeline [#64030](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64030) Backport 9dd901f3c957cf5bf83aa6ac41fc3c6b2744cfd3 from #63990
+- Security: Auto-update package lockfiles for Sourcegraph base images [#64035](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64035)
+- [Backport 5.5.x] fix(source): Fix issue where worker would crash if a Bitbucket Cloud token couldn''t be refreshed [#64037](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64037)
+ - Fixed an issue where a Bitbucket Cloud OAuth token failing to refresh would crash the `worker` service. Backport bc036ad2bafc9a09d80646d30d26335359a28fd1 from #64028
+- Security: Bump openjdk-11 version in blobstore image [#64047](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64047)
+- [Backport 5.5.x] ci: make internal+promote release higher priority in runtypes [#64050](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/64050) Backport 0309564f9362ea24e248aa5189d66f89826ccecf from #64049
+
+# v5.5.1337
+
+{/* RSS={"version":"v5.5.1337", "releasedAt": "2024-07-18"} */}
+
+### Uncategorized
+
+- [Backport 5.5.x] Upgrade cody web experimental package to 0.2.7 (#63863) [#63901](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63901)
+
+# v5.5.1220
+
+{/* RSS={"version":"v5.5.1220", "releasedAt": "2024-07-17"} */}
+
+### Uncategorized
+
+- [Backport-5.5.x]: Move Cody Web to beta (#63806) [#63808](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63808)
+- [Backport 5.5.x] fix(batches): the baseURL for github instance is now updated when creating a GitHub app [#63833](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63833) Backport 1c40c9e5bccd4f6265945bd3449b70a648022e60 from #63803
+- [Backport 5.5.x] Upgrade cody web experimental package to 0.2.5 [#63856](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63856)
+- Backport 63870 to 5.5.x [#63882](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63882)
+ - Adds an experimental feature `commitGraphUpdates` to control how upload visibility is calculated.
+
+# v5.5.160
+
+{/* RSS={"version":"v5.5.160", "releasedAt": "2024-07-11"} */}
+
+### Uncategorized
+
+- [Backport 5.5.x] Context: return lines around symbol match [#63788](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63788)
+- [Backport 5.5.x] fix/alertmanager: downgrade prometheus/common to fix generated config [#63793](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63793)
+- Fix Prometheus Alertmanager configuration failing to apply `observability.alerts` from site config Backport ffa873f3adb18e2c5807ca752115a70fcbc493c8 from #63790
+
+# v5.5.0
+
+{/* RSS={"version":"v5.5.0", "releasedAt": "2024-07-11"} */}
+
+### Chore
+
+- Change errors.HasType to respect multi-errors [#63024](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63024)
+- Codenav: Resolve repo and commit in common code [#63072](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63072)
+- Graph: Add changelog entry for Python scip-ctags fix (second attempt) [#63106](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63106)
+- Search: Add test case covering hack lang detection behavior [#63136](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63136)
+ - Add test case for coverage hack lang detection
+- Msp: document gRPC notes in spec docstrings [#63140](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63140)
+- Fix lint error (unparam) [#63151](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63151)
+- Validate driver type immediately [#63177](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63177)
+- Appliance: remove references to embeddings [#63185](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63185)
+ - Remove references to embeddings from (still unreleased) appliance.
+- Security: update dependencies [#63197](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63197)
+- Ci: conditionally stamp genrules [#63204](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63204)
+ - Avoid invalidating cache in stamped genrules on dev builds.
+- Schema: Add implementation status for codeGraphData [#63219](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63219)
+- Add GitBlobResolver and GitTreeResolver for readability [#63223](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63223)
+- Remove dead code for Rust crates [#63224](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63224)
+- Bazel: bump to 7.2.0 [#63226](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63226)
+- Changelog: advise contributors of new process [#63243](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63243)
+ - Advise contributors of new changelog process.
+- Svelte: Migrate all icons to Lucide/custom icons [#63246](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63246)
+- Add binary search function that returns range [#63248](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63248)
+- Move deduplicateBy to collections package [#63249](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63249)
+- Codeintel: Use internal language detection package for insights [#63254](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63254)
+ - Code clean up to use common language detection mechanism in more places
+- Remove broken link in README [#63256](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63256)
+- Remove unused code paths in lsifstore package [#63259](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63259)
+- Add more tests for GetLanguages API [#63260](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63260)
+- Simplify location uniquing [#63263](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63263)
+- Add specialized function for sorting primitive sets [#63269](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63269)
+- Bump go-enry and Zoekt to handle new languages [#63281](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63281)
+ - Updates the `lang:` filter to add support for languages such as Mojo, Roc, EdgeQL etc.
+- Ci: remove buildchecker sunday summary posts [#63289](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63289)
+- Maintain consistency between languages functions [#63292](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63292)
+- Local: remove docsite from dotcom commandset [#63314](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63314)
+- Deps: upgrade grpc, prometheus/common [#63328](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63328)
+- Deps: upgrade alertmanager package dependency, improve logs and tests [#63329](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63329)
+- Add more docs for occurrences GraphQL API [#63338](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63338)
+- Svelte: Simplify development for dotcom [#63341](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63341)
+- Svelte: Remove stub logger [#63342](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63342)
+- Plg: migrate invoices list to react-query [#63343](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63343)
+- Local: simplify 'sg db' inline help [#63344](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63344)
+- Ci: instrument push_all.sh commands in honeycomb [#63350](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63350)
+- Ci: mark web-sveltekit:e2e_test as flaky [#63351](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63351)
+- Svelte: Update fuzzy finder designs [#63354](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63354)
+- Fix inaccurate error message [#63361](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63361)
+- Remove obsolete tracking code for Cody App downloads [#63364](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63364)
+- Centralize logic for disabling Batch Changes on dotcom [#63370](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63370)
+- Add SymbolUsageKind to GraphQL API [#63371](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63371)
+- Add doc comment for DiffOptions.Paths [#63385](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63385)
+- Deps: replace internal/slices [#63386](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63386)
+ - Add a collections library to dependencies.
+- Refactor and document GitTreeTranslator [#63390](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63390)
+- Batches: remove visibility options from create batch changes page [#63393](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63393)
+ - Remove visibility options from create batch change page
+- Enterpriseportal: only use 'revoke' verb for licenses [#63407](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63407)
+- Bazel: bump rules_js to address permissions denied warning [#63419](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63419)
+- Ci: emit compact executon log in CI [#63420](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63420)
+- Batches: remove beta badge from batch changes [#63423](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63423)
+ - Remove Beta badge from Batch Changes pages.
+- Enterpriseportal: split database package [#63425](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63425)
+- Enterpriseportal: properly close DB handle [#63426](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63426)
+- Codeintel: Differentiate between paths relative to upload root vs repo root [#63437](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63437)
+- Batches: remove beta badge from Batch Changes page [#63441](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63441)
+ - The Beta badge is now removed from Batch Changes
+- Plg: add useEmbeddedUI site config param [#63442](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63442)
+- Svelte: Properly route to revision agnostic pages [#63444](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63444)
+- Enterpriseportal: tweak maybeMigrate tracing [#63448](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63448)
+- Ci: emit compact executon log in CI for test + build commands only [#63451](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63451)
+- Enterpriseportal: propagate context to migration database context [#63455](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63455)
+- Svelte: Hide cody nav entries and upsell banner when cody isn't enabled [#63463](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63463)
+- Add collection type - OrderedSet [#63469](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63469)
+- Bazel: don't stamp yq rule for wolfi base images [#63470](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63470)
+- Bazel: add client/backstage-frontend to bazelignore [#63471](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63471)
+- Svelte: Upgrade SvelteKit [#63490](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63490)
+- Enterpriseportal: rename customer admin role in API [#63501](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63501)
+- Enterpriseportal: add test for iam_model [#63503](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63503)
+- Codygatewayevents: extract into standalone package for reuse, split up internal/codygateway [#63528](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63528)
+- Local: add dotcom-cody-e2e commandset [#63548](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63548)
+- Linearhooks: use MSP rollouts [#63556](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63556)
+- Analytics: remove Cody characters events from inclusion in pin… [#63557](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63557)
+- Search: VSCode Search extension: Remove signup link for sourcegraph.com [#63558](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63558)
+ - Remove links to create an account on sourcegraph.com because it no longer hosts private code.
+- Search: VSCode Search extension: Remove url and token from configuration [#63559](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63559)
+ - Remove access token and URL from extension settings because they are managed in the extension now.
+- Preserve format imposed by bazel [#63561](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63561)
+- Add feature flag for new SCIP-based GraphQL APIs [#63565](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63565)
+- Simplify path trimming logic in perm checking [#63574](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63574)
+- Set scipBasedAPIs to off by default [#63575](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63575)
+- Use api.RepoID and api.CommitID in more places [#63596](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63596)
+- Local: sg warns about opposite default value on dev builds [#63612](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63612)
+- Local: make sg handle empty secret file gracefully [#63614](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63614)
+- Local: simplify sg teammate [#63667](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63667)
+- Svelte: Cleanup dependencies [#63691](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63691)
+- Drop isGitHubApp field from batch changes credentials [#63709](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63709)
+- Reword headline from tokens to credentials [#63714](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63714)
+- Redis: set max active redis connections to 1000 [#63718](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63718)
+ - Redis-pool: set max active clients to 1000
+- Security: Updated dind image to 27-0-3 [#63725](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63725)
+ - Upgraded dind to 27.0.3 to patch CVE-2024-24790 vulnerability
+- Svelte: Update to latest cody web version [#63732](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63732)
+- Svelte: Use MDI icons for seach input pattern type toggles [#63733](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63733)
+- Svelte: Update cody web version [#63747](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63747)
+- Add changelog entry for Batch Changes - GitHub apps integration [#63756](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63756)
+ - Batch Changes: GitHub apps can now be added as a credential for authentication and interacting with changesets. [#31533](https://github.com/sourcegraph/sourcegraph-public-snapshot/issues/31533)
+
+### Feat
+
+- Ci: Adds playwright tests for sveltekit to bazel [#62560](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62560)
+- Search: Add Syntax Highlighting for Hack Language [#62770](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62770)
+- Search: Add Syntax Highlighting for Magik language [#62919](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62919)
+ - Added syntax highlighting for the Magik programming language.
+- Msp: allow enablement of logical replication features for Datastream [#63092](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63092)
+ - MSP services can now configure `postgreSQL.logicalReplication` to enable Data Analytics team to replicate selected database tables into BigQuery.
+- Search: Support Magik language file filter in search [#63110](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63110)
+ - Added Magik language to language filters (`lang:magik`)
+- Sg: add command to generate a dotcom user gateway access token [#63125](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63125)
+- Appliance: deploy frontend [#63158](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63158)
+ - Appliance (still unreleased) can deploy frontend.
+- Appliance: deploy searcher [#63191](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63191)
+ - Appliance (as yet unreleased) can deploy Searcher.
+- Gitserver: don't log memoryObservation error if it occured b/c context cancellation [#63210](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63210)
+ - Reduce logspam in the gitserver command functionality by ignoring memory observation errors if they occurred due to external context cancellation.
+- Plg: Add new Checkout flow that uses Stripe's `createToken` API [#63213](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63213)
+- Gitserver: avoid logspam from deadline exceeded memory tracking errors [#63215](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63215)
+ - In the gitserver new command logic, logspam from the memory observer when the context error is deadline exceeded will no longer occur.
+- Plg: Add seats [#63227](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63227)
+- Search: Add icon for the Hack language [#63233](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63233)
+ - Adds icon for the Hack language
+- Plg: Apply designs to Cody Pro pages [#63244](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63244)
+- Plg: Use react-query for team management [#63267](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63267)
+- Ci: Trigger security scanner from release pipeline [#63280](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63280)
+ - Added security scanner to the release pipeline
+- Plg: remove accept invite page [#63290](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63290)
+- Enterpriseportal: UpdateCodyGatewayAccess RPC definition [#63307](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63307)
+- Enterpriseportal: CreateEnterpriseSubscription RPC definition [#63308](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63308)
+- Enterpriseportal: add Salesforce metadata at subscription level [#63317](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63317)
+- Sg: command to add default site-admin with predefined access token [#63320](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63320)
+- Enterpriseportal: CreateEnterpriseSubscriptionLicense RPC defininition [#63323](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63323)
+- Enterpriseportal: ArchiveEnterpriseSubscription RPC definition [#63330](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63330)
+- Enterpriseportal: RevokeEnterpriseSubscriptionLicense RPC definition [#63331](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63331)
+- Add id for CodeGraphData [#63337](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63337)
+- Codeintel: Add precise auto-inferencing for dotnet [#63348](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63348)
+ - Enable automatic precise indexing of .NET projects
+- Plg: Update Cody Pro badge deck [#63352](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63352)
+- Appliance: appliance docker container [#63357](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63357)
+ - Feat(appliance): create docker container
+- Plg: Tweak invite co-workers flow [#63374](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63374)
+- Plg: Invite users on Cody Dashboard [#63375](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63375)
+- Plg: require confirmation before removing user or revoking admin [#63388](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63388)
+- Svelte: Make fuzzy finder matching more reliable [#63397](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63397)
+ - Add 'search all' tab
+ - Support multi-word search
+ - Support regular expression patterns
+ - Fix matching reliability
+- Plg: remove seats from subscription [#63408](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63408)
+- Sg: add 'sg enterprise' commands for Cody Analytics [#63414](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63414)
+- Enterpriseportal: validate and normalize instance domains [#63415](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63415)
+- Appliance: local developer mode [#63417](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63417)
+ - Local developer mode for appliance config authors.
+- Enterpriseportal: use UUID type for subscription ID [#63452](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63452)
+- Enterpriseportal: initialize subscriptions tables [#63453](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63453)
+- Enterpriseportal: init licenses tables [#63454](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63454)
+- Enterpriseportal: init Cody Gateway Access table [#63457](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63457)
+- Dotcom: show subscription UUID in Enterprise Portal format [#63482](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63482)
+- Sg: add -auto-approve option for 'sg enterprise' updates [#63500](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63500)
+- Enterpriseportal: make UpdateEnterpriseSubscriptionMembership authoritative [#63502](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63502)
+- Codeintel: Add scip-ctags support for Magik [#63504](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63504)
+ - Add symbol browsing support for the Magik language
+- Enterpriseportal: define GetCodyGatewayUsage RPC, use uint64 for rate limits [#63531](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63531)
+- Remove experimental label from batches merge changesets action [#63542](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63542)
+- Enterpriseportal: implement GetCodyGatewayUsage RPC [#63555](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63555)
+- Search: Make search aware of perforce changelist id mapping [#63563](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63563)
+ - For perforce depots, support searching within a specific changelist by specifying a ref like `context:global repo:^repo/name$@changelist/83854`
+- Introduce database fields for github apps - Batch changes integration, and update database layer [#63577](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63577)
+- Sg: sqlite-backed local store for sg analytics [#63578](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63578)
+- Search: remove keyword toggle [#63584](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63584)The keyword search toggle has been removed from the search results page. [Keyword search](https://sourcegraph.com/docs/code-search/queries#keyword-search-default) is now enabled by default for all searches in the Sourcegraph web app.
+- Sg: one-time oauth login to persist user email for analytics [#63603](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63603)
+- Cody: Expose Sg modelconfig data via HTTP REST API [#63604](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63604)Sourcegraph instances how expose an HTTP endpoint that authenticated users can call to get a list of LLM models supported by the Sourcegraph instance. In the future this will be used to allow Cody users to select the LLM model dynamically, based on what is currently available.
+- Batches: use "keyword" as default pattern type [#63613](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63613)
+ - The new (optional) field "version" of batch specs determines how the spec is processed. This allows us to introduce new features while maintaining backward compatability.
+ - A new version `2` is introduced. Batch specs specifying `version: 2` will use keyword search as the default pattern type to determine repos/workspaces. Batch specs with `version: 1` or without version field keep using pattern type "standard".
+- Svelte: Make diff headers on commit page sticky [#63615](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63615)
+- Implement functionality to create credential GitHub apps [#63635](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63635)
+- Svelte: Add Cody chat sidebar [#63638](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63638)
+- Dotcom: add Enterprise Portal auth proxy [#63652](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63652)
+- Svelte: Add cody button to repo home page [#63684](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63684)
+- Dotcom: remove per-user Enterprise subscriptions UI [#63698](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63698)
+- Enterpriseportal: database layer for subscriptions upsert [#63703](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63703)
+- Svelte: Add reblame support to blame column [#63727](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63727)
+- Source: Properly render multi-line changelist messages from Perforce [#63728](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63728)
+ - Properly render multi-line perforce changelist descriptions
+
+### Fix
+
+- Appliance: use version for image tags [#63075](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63075)
+ - Appliance uses requested version as image tag, instead of requiring sha256 digests.
+- Sg: fix cloud eph suggested commands [#63093](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63093)
+ - Fix suggested cloud ephemeral commands
+ - Show duration till expiry for cloud ephemeral
+- Release: remove generate-notes from github release creation [#63121](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63121)
+ - Remove `generate-notes` cli flag when promoting releases
+ - Push only a single tag
+ - Fix token name used in changelog generation
+- Search: Properly handle URLs with file paths that contain route segments [#63123](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63123)
+- SCIM: don't allow SCIM users to change fields [#63130](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63130)
+- Highlighting: Update JSX/TSX highlighting to more properly label tag delimiters [#63138](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63138)
+ - Update highlighting of JSX/TSX Tags to correctly label delimiters
+- Highlighting: Improve highlighting for Magik language [#63155](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63155)
+ - Correctly identify null and symbols in Magik language syntax highlighting
+- Search: Contributors page errors with empty date string [#63182](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63182)
+- Tests: Clean up mocks after test [#63201](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63201)
+- Local: disable bazel remote cache [#63203](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63203)
+- Search: Copy text from read-only code host configuration input [#63239](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63239)
+- Plg: Fix "Remove team member" feature [#63241](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63241)
+- Svelte: scrolling search input [#63261](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63261)
+- Search: VSCode Search extension: remove auth provider [#63262](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63262)
+ - Remove interaction between the Sourcegraph Search extension and the Accounts menu.
+- Search: Better diagnostic message for invalid and incomplete select: filter value [#63266](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63266)
+ - Show useful valid values when an invalid `select:` value is entered
+ - Do not render empty hover tooltips
+- Search: Improve syntax highlighting of search history entries [#63271](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63271)
+- Search: Ignore *lock keys for keyboard shortcut matching [#63272](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63272)
+- Svelte: Add trailing slash to group and directory suggestions [#63273](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63273)
+- Source: Fix documentation URLs for code hosts help pages [#63274](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63274)
+ - Fix in-product documentation links for code hosts to point to updated docs location
+- Ci: remove broken glob [#63277](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63277)
+- Don't mark references in import statements as definitions [#63284](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63284)
+ - Fixes a bug where import statements in TypeScript code showed up in `type:symbol` search.
+- Plg: banner styles [#63287](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63287)
+- Svelte: Fix icon color in search sidebar [#63288](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63288)
+- Svelte: Open correct file from preview panel line number [#63309](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63309)
+- Svelte: Reference panel width [#63310](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63310)
+- Svelte: Fix reference panel loading/error state [#63316](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63316)
+- Svelte: Properly scope global CSS selector [#63332](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63332)
+- Svelte: Preserve selected lines in codehost URL [#63334](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63334)
+ - Line selection is preserved when navigating to GitHub or GitLab external URLs
+ - File actions are now available in the inline 'at commit' view
+ - File icon is now rendered in the file header for the inline diff view
+- Svelte: History suggestions should show immediately when clicking the history button [#63335](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63335)
+- Batches: disallow retry on deleted changesets [#63336](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63336)
+ - Disallow auto-retry when a changeset is deleted.
+- Svelte: Data/code preloading doesn't work when using panels [#63339](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63339)
+- Svelte: Use correct symbol icon color [#63355](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63355)
+- Api: only allow a user or site admin to view that user's usage stats [#63365](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63365)
+- Client: restore paths for extension bundles [#63402](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63402)
+- Sg: fix mangled log output from `sg start` and `sg run` [#63405](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63405)
+- Enterpriseportal: ListEnterpriseSubscriptions fixes [#63412](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63412)
+- Svelte: Properly rounded corner for file view hover cards [#63446](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63446)
+- Analytics: fix broken v1 codeintel event logging [#63449](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63449)
+- Plg: ensure invite flow is enabled only for embedded UI [#63466](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63466)
+- Check (uploadID, path) pairs in bulk [#63485](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63485)
+- Search: remove "lucky" from default pattern types [#63486](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63486)
+ - Removed experimental pattern type "lucky" from the list of supported default pattern types.
+- Sg: reduce max interrupt count and os.Exit always [#63516](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63516)
+ - Sg - Always os.Exit once shutdown hooks have completed
+ - Sg - Reduce max intterupt count from 5 to 2 to hard exit
+- Batches: remove leading and trailing spaces from batch changes credentials [#63517](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63517)
+ - Whitespaces in Batch Changes credentials are trimmed before being saved to the database, this prevents 401 errors when using the token to construct an authenticated push URL.
+- Search: VSCode Search extension: bring back matched lines in search results. [#63524](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63524)
+- Sg: fix 'sg enterprise' per-command flags [#63527](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63527)
+- Sg: conditionally show protips [#63541](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63541)
+ - Sg - Conditionally show protips when running `sg bazel`
+- Search: Token decoration in keyword-enabled query input [#63543](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63543)
+- Svelte: Reference layout shift while loading data [#63546](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63546)
+- Batches: fix zero division error resulting in wrong stats computation [#63547](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63547)
+- Enterpriseportal: forcibly run gorm-incompatible migration in local dev [#63549](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63549)
+- Telemetrygateway: reduce context cancellation error reports [#63551](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63551)
+- Search: VSCode Search extension: hide file preview link [#63552](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63552)
+- Svelte: Fix unplugin icons usage in storybook [#63594](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63594)
+- Ci: panic using correct err [#63599](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63599)
+ - Ci - Use correct err value to panic on
+- Svelte: Remove rogue console.log statement [#63600](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63600)
+- Search: Don't show inline cody widget when new cody web is enabled [#63608](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63608)
+- Actions: update pinned SHA for `pnpm/action-setup` action [#63632](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63632)
+- Batches: display failure alert depending on github app kind [#63633](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63633)
+- Svelte: Render correct error page [#63663](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63663)
+- Svelte: Use 'pointer' pointer for cody button [#63665](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63665)
+- Svelte: Respect cody ignore settings [#63677](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63677)
+- Svelte: Fixes excessive 'the hotkey ... has already been registered' messages [#63679](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63679)
+- Batches: fix broken credential validator [#63687](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63687)
+- Svelte: Properly load/serve version.json [#63688](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63688)
+- Codygateway: tweak enterprise-portal dial options [#63692](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63692)
+- Batches: fix broken `ghauth` import [#63693](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63693)
+- Svelte: Update cody web [#63710](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63710)
+- Better alignemnt of github credentials and check success notice [#63717](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63717)
+- Show success notice in the correct area [#63721](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63721)
+- Svelte: Prefill search home page query input with (default) context filter [#63740](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63740)
+- Remove watch path that's gone [#63746](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63746)
+- Batches: enable check for creating source as non credential [#63751](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63751)
+- Build: update wolfi image lock for otel [#63755](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63755)
+ - Fix(build): update wolfi lock for otel-collector
+
+### Refactor
+
+- Cody: Reshape the `CompletionsClient` interface [#63358](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63358)NA, just some under the hood refactoring that shouldn't impact any functionality.
+
+### Test
+
+- Cody: Add unit tests for the Completions API [#63434](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63434)NA. Just trivial changes and adding more tests.
+
+### Reverts
+
+
+### Uncategorized
+
+- Gitserver: Sunset Exec endpoint [#62774](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62774)
+- Gitserver: Cleanup CreateCommitFromPatch [#62781](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62781)
+- [React]: Add initial usage of the new web worker-based cody web chat [#62792](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62792)
+- Gitserver: Framework to support integration testing against gitserver [#62801](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62801)
+- Feat/internal/memcmd: add internal/memcmd package to allow for memory tracking of exec.Cmd processes [#62803](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62803)This feature adds a package that allows us to track the memory usage of commands invoked via exec.Cmd.
+- Feat(search/svelte): Add context specific suggestions to repo search input [#62880](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62880)
+- Feat/cody-gateway: use Enterprise Portal for actor/productsubscriptions [#62934](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62934)
+- Reimplement license checks [#63068](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63068)
+- Svelte: inject into primary `app.html` [#63088](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63088)
+- Syntactic Indexing: add TAR archive indexing mode to scip-syntax CLI [#63097](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63097)
+- Add Support for Counting Tokens for Azure Code and Update in Redis [#63100](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63100)
+- Enterprise-portal: update RPC for subscription domain and members [#63105](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63105)
+- Cody Gateway embeddings: powering with generated metadata - Take 2 [#63112](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63112)
+- Fix(Cody Gateway): add model field to Google completion request [#63113](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63113)
+- Feat/cmd/gitserver: add memory tracking for both linux and macos [#63114](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63114)Adds a new experimental feature to enable track of `git` command memory invocations when the `GITSERVER_MEMORY_OBSERVATION_ENABLED` environment variable is true (off by default).
+- Feat/sg-msp-pg: add suggestion to check msp-ops page on perms error [#63118](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63118)
+ - `sg msp pg connect` will tell you about your service's generated Notion page if you run into a permissions-looking error during command setup, where there is guidance about the required Entitle requests.
+- Svelte: add sentry [#63126](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63126)
+- Sg: deny cloud ephemeral builds from main [#63127](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63127)
+ - Deny cloud ephemeral deployments triggered from 'main'
+- Svelte: Add bottom panel close button [#63128](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63128)
+ - Added bottom panel close button
+ - Added 'text' variant to Button component
+ - Added 'actions' slot to Tabs component
+ - Added Button component stories
+- Svelte: Migrate repo sidebar toggle button to use lucide icon [#63129](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63129)
+- Bug: update hard coded consts [#63133](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63133)
+ - Tmp process: update release consts to 5.4.5099
+- Reapply "gitserver(client): Reintroduce 500 maximum connections limit" [#63134](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63134)
+- Scim: Fix user updates when SCIM was previously enabled [#63135](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63135)
+- Enterprise-portal: rename "scope" to "permission" for query RPC [#63137](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63137)
+- Enterprise-portal: init database schema and handler store [#63139](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63139)
+- Svelte: allow popovers to have external targets [#63141](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63141)
+- Feat/enterprise-portal: rudimentary audit logging [#63142](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63142)
+- Build: fixup custom eslint test rule after bump to rules_js 2 [#63143](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63143)
+- Remove references to 'rate-limits-exceeded-for-testing' feature flag [#63144](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63144)
+- Security: Auto-update package lockfiles for Sourcegraph base images [#63145](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63145)
+- Svelte: fix tests [#63146](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63146)
+- Gitserver: Remove comment about error checking [#63147](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63147)
+- Adds stubs for usage connection resolver [#63156](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63156)
+- Feat/enterprise-portal: return all attributes, even when access is disabled [#63159](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63159)
+- Webhooks: Update payload testdata and type for Bitbucket Server push events [#63161](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63161)
+- Fix/enterprise-portal: ignore empty hashes for Cody Gateway access tokens [#63162](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63162)
+- Feat(cody-gateway): add Google Gemini stable models to allowed models [#63163](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63163)
+- Feat/msp/runtime: PG_QUERY_LOGGING=true for local dev query logging [#63164](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63164)
+ - MSP runtime users can now set `PG_QUERY_LOGGING=true` to dump queries and arguments from database interactions at `DEBUG` level in local dev.
+- Msp: encode commit_message as base64 [#63165](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63165)
+- Cody Gateway: Add support for Google non-streaming endpoint [#63166](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63166)
+- Svelte: add Cody upsell banner [#63167](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63167)
+- Chore/cody-gateway: instrument removeUnseenTokens [#63169](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63169)
+- Svelte: add footer links for dotcom [#63170](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63170)
+- Chore/otel-collector: upgrade to v0.103.0, remove jaegerexporter [#63171](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63171)
+ - OpenTelemetry Collector: Upgraded OpenTelemetry Collector to v0.103.0
+ - OpenTelemetry Collector: The [deprecated ](https://github.com/open-telemetry/opentelemetry-specification/pull/2858). Users of `exporter: { jaeger: ... }` in the OpenTelemetry Collector should use `exporter: { otlp/jaeger: ... }` to send traces directly to Jaeger via its OTLP receiver.
+ - Users of the default Jaeger configurations now need to provide `JAEGER_OTLP_GRPC_PORT` as well as the existing `JAEGER_HOST` configuration.
+- Cody Gateway: handle streams with trailing newline in Gemini response [#63172](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63172)
+- Enterprise-portal: implement basic MSP IAM and RPCs [#63173](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63173)
+- Fix: auth issues with Sourcegraph VSCode extension [#63175](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63175)
+ - Entering the URL and access token in the UI now works - No more manual editing of `settings.json`
+- Adds a search client to the codenav service [#63180](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63180)
+- Feat(search/svelte): Support more file icons [#63181](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63181)
+- Dotcom: fix issue with dotcom emails [#63183](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63183)
+- Fix(search/svelte): Hide diff view when closing bottom panel [#63184](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63184)
+- Extend instructions for running CG locally [#63186](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63186)
+- Enterprise-portal: temporarily disable local DB migrate [#63187](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63187)
+- SSC: Fix "Make admin" and "Revoke admin" button actions [#63188](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63188)fix(plg): fixed "Make admin" and "Revoke admin" button actions
+- Resolve syntactic symbol at request range [#63189](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63189)
+- SSC: Fix checkout links [#63190](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63190)fix(plg): make upgrade links point to the right pages for Teams & Invites
+- [Svelte]: Fix standard click-based popover flow [#63192](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63192)
+- Fix: querying event logs breaks when "id" column value > int32 [#63193](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63193)
+ - Address "value out of range" errors when querying the event logs
+- Sg: cloud eph - Improve missing tag/version message [#63195](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63195)
+ - Sg - Improve messaging when an image is missing from Cloud ephemeral registry
+- Adds function to find candidate occurrences via search [#63196](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63196)
+- Webhooks: Add support for secrets for Bitbucket Cloud [#63198](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63198)
+- Context: detect if README is required [#63199](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63199)
+- Sg: cloud eph - Set max deployment name [#63202](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63202)
+ - Sg - Set a max length for cloud ephemeral deployment names
+- Fix/internal/memcmd: fix goroutine leak in linux observer [#63206](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63206)A goroutine leak in the experimental linux memory observation logic has been fixed.
+- Feat/internal/memcmd: ignore context cancellation errors from Stop() [#63208](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63208)
+ - Slightly improve logspam from Linux memory observation logic by ignoring context cancellation errors that occur when the user explicitly stopped the observer.
+- Use 8B version of llama3 in metadata generation [#63212](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63212)
+- Fix/internal/memcmd: close the explicit stop channel before cancelling context [#63214](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63214)This PR fixes a logspam bug in the linux memory observer that was due to do slightly faulty synchronizzation logic.
+- Internal: make adding EventsStore middleware easier [#63216](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63216)
+- Codenav: use new occurrences API for symbol definitions [#63217](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63217)
+- Svelte: remove v1 telemetry [#63220](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63220)
+- Svelte: use Inter font for --font-family-base [#63221](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63221)
+- Proof-of-concept for Intent detector API [#63228](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63228)
+- Add unit test for saml requests with multiple certs [#63229](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63229)
+- Chore(search/svelte): Remove dependencies on barrel files to speed up dev build [#63230](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63230)
+- PLG: Allow users who are already on a team accept invites [#63231](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63231)
+- Svelte: use Roboto Mono as monospace font [#63247](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63247)
+- Chore: disable flaky tests [#63251](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63251)
+- Svelte: implement keyboard shortcut design [#63253](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63253)
+- Svelte: add repo header dropdown menu [#63257](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63257)
+- Fix(cody-gateway): Improve prompt and request validation for gemini [#63258](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63258)
+- Filters candidate matches against syntactic SCIP documents [#63268](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63268)
+- PLG: encode URL search params [#63275](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63275)
+- Chore: update goldmark [#63276](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63276)
+- Cody Gateway: add gemini model to code completion list [#63278](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63278)
+- Adding Anthropic messages API support to the Google provider through Google vertex [#63282](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63282)
+- Adding deepseek and lang specific mixtral for completions ab experiment [#63283](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63283)
+- Wraps up syntactic usages in resolvers [#63285](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63285)
+- Fix(cody-gateway): Disable flagging Google requests [#63295](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63295)
+- Svelte: fix sidebar icon alignment [#63296](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63296)
+- Fix/graphql/database: make count of failed user permissions syncs ignore soft deleted users [#63297](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63297)
+ - The failed user permission sync count on the permission dashboard now properly ignores syncs from deleted users (which is the expected behavior).
+- Fix/graphql/database: fix repo permission sync count to ignore soft deleted repositories [#63298](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63298)
+ - The failed repository permission sync count on the permission dashboard now properly ignores syncs from deleted repository (which is the expected behavior).
+- Feature/internal/database: add test to ensure that not found errors fulfiill errcode.NotFound [#63299](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63299)
+ - Added unit tests to ensure that the database userNotFound and RepositoryNotFound error types fulfuill the errcode.NotFound interface.
+- Context: simplify file chunk conversion [#63301](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63301)
+- Fix/frontend/graphql: log and add trace events for all non-not-found errors that occur when fetching permission syncs [#63302](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63302)
+ - Our graphqlAPI now logs and traces any non-not-found errors that occur when fetching permission sync jobs (as opposed to being silently swallowed).
+- Feat(cody gateway): code completion support for Google Gemini Flash models [#63303](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63303)feat(cody gateway): code completion support for Google Gemini Flash models
+- Fix(cody-gateway): Fix Google flagging configuration [#63305](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63305)
+- Fix(cody-gateway): streaming google endpoint [#63306](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63306)
+- Syntax-highlighter: Use camino to make handling utf8 paths nicer [#63311](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63311)
+- Retry 404 errors from Triton [#63315](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63315)
+- Minor: update license wording [#63318](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63318)
+- Svelte: repo header followups [#63319](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63319)
+- Dotcom: Remove on-demand cloning of repositories [#63321](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63321)Dotcom no longer clones repos on demand.
+- Chore: remove search console [#63322](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63322)
+- Wip: Introduce `cody-gateway-config` tool for generating model configuration [#63324](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63324)NA, this is an initial step. A later PR will elaborate on the exciting new feature this is enabling.
+- V2-telemetry: Simplify sensitive metadata allowlist to accept feature only [#63325](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63325)
+- Search: surface pattern type in query input [#63326](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63326)
+- Code monitors: respect default pattern type [#63333](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63333)
+- Use math/rand/v2 [#63346](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63346)
+- Cody pro icon was squashed in the upgrade banner [#63356](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63356)
+- Refactor the 'getModel' callbacks into their own file [#63359](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63359)NA
+- Fix/msp/postgresqlroles: wait for databases to be provisioned [#63362](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63362)
+ - MSP Cloud SQL: Fix race condition between database creation and role grants for the read-only operator access user
+- Skip highlighting large lockfiles on all instances, not just dotcom [#63366](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63366)
+ - Syntax highlighting is disabled on lockfiles (such as `package-lock.json`) because it is CPU-intensive on these large files and very rarely desirable.
+- Allow repo access by default on dotcom [#63367](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63367)
+- Clearer access tokens allow check on dotcom [#63368](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63368)
+- Nix: use go1.22.4 [#63372](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63372)
+- Remove extraneous Cody onboarding steps [#63373](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63373)
+- Publish images from patch release branches [#63379](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63379)
+- Plg: Make page headers the same style [#63380](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63380)
+- Improve InviteUsers interface [#63383](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63383)
+- Cody Gateway: New Claude 3.5 Sonnet model [#63395](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63395)feature(plg): new Claude 3.5 Sonnet model support for Cody Pro users
+- Search: expose path matches on FileMatch [#63396](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63396)
+ - Exposed the matched ranges of a file path via the GraphQL API
+- Svelte: Make the byline in the fuzzy finder items bigger [#63398](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63398)
+- Msp: add `GetFloat` to runtime `Env` [#63399](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63399)
+- Fix(cody-gateway): model id for claude 3.5 sonnet [#63400](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63400)
+- Fix(cody-gateway): getAPIURL before transformBody [#63406](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63406)
+- Search: always respect default pattern type [#63410](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63410)
+- Feat(cody-gateway): add support for Gemini models with context cache [#63413](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63413)
+- Rename intent API (add chat reference, make the name more idiomatic) [#63416](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63416)
+- Add language ID to private metadata for v2 codeintel events (for in p… [#63421](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63421)
+- Lib: downgrade GORM to 1.25.6 [#63427](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63427)
+- "Cody" in navbar not "Cody AI" [#63429](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63429)
+ - In the navbar, Cody is now just "Cody" not "Cody AI".
+- Remove Cody "upsells"—and all Cody links if Cody is disabled [#63430](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63430)
+ - When Cody is disabled in site config (with `"cody.enabled": false`), all links and UI elements about Cody are hidden from all users. Previously, when Cody was disabled, users would see some links informing them about Cody.
+- Remove disabled web UI code for embeddings [#63432](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63432)
+- Remove rule warning about React props spreading [#63433](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63433)
+- Support fast, simple `sg start single-program-experimental-blame-sqs` for local dev [#63435](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63435)
+- Config: Various fixes and updating the naming rules for ModelConfig resource IDs [#63436](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63436)
+- Remove unused CODY_APP esbuild config and entrypoint [#63438](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63438)
+- Remove old and unused Cody search page [#63439](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63439)
+- Remove Code Search upsell from Cody page [#63440](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63440)
+- Scip-syntax: adds strict SCIP symbol parsing and formatting [#63443](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63443)
+- Fix(code hosts): Use more deterministic API endpoints for GitHub code host connections [#63445](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63445)
+ - The `"internal"` repositoryQuery for GitHub code host connections now use a more deterministic API that's less susceptible to missing repositories
+ - The `"public"` repositoryQuery for GitHub code host connections now make additional requests to fetch missing repository details, like topics. This fixes an issue where repos added by the `"public"` repositoryQuery would have missing repo details
+- Add back /post-sign-up [#63456](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63456)
+- Add v2 telemetry infrastructure to browser extensions and native inte… [#63458](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63458)
+- Allow more models to be used in Cody Free [#63459](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63459)
+- Gateway: forward X-Fireworks-Genie header from client [#63460](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63460)
+- Search-based usages for new codenav API [#63464](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63464)
+- Chore(code-search): disable codemonitoring dotcom (jscontext) [#63465](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63465)
+- Notebooks: store default pattern type per notebook [#63472](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63472)
+- Chore: refactoring occurrence indexing [#63473](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63473)
+- Update free tier limits [#63474](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63474)
+- Svelte: add debug view for code intel occurrences [#63475](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63475)
+- Chore: fix repo stars alignment [#63476](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63476)
+- Omit go:embed of big assets from `sg start single-program-experimental-blame-sqs` [#63477](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63477)
+- Fix chopped-off tooltips in code monitor query input [#63478](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63478)
+ - Fixed an issue when creating or editing a code monitor that obscured helpful tooltips in the query editor.
+- Add React key to fragments in code monitoring logs [#63479](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63479)
+- Remove beta labels for code monitoring Slack notifs & logs [#63480](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63480)
+ - Code monitoring Slack notifications, previously in beta, are now GA. This feature lets you post matching code changes to a Slack channel.
+ - Code monitoring logs, previously in beta, are now GA. This feature lets you see the status of and activity related to code monitors to troubleshoot issues with finding results and performing configured actions.
+- Shorter PR template [#63481](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63481)
+- Cloud: add feature flags to show no edit warning [#63484](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63484)
+- Saved searches: use default pattern type [#63487](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63487)
+- Search: fix regexp toggle if regexp is default [#63489](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63489)
+- Fix azure completions api [#63491](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63491)
+- Enable new Cody Web by default [#63493](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63493)
+- Msp: split contract into JobContract and ServiceContract [#63494](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63494)
+- Svelte: improve contrast for file tree guide line [#63495](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63495)
+- Fix/internal/observation: make ErrCollector type threadsafe [#63496](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63496)
+ - Fixed a threadsafety issue in the internal/observation.ErrCollector type
+- Fix initial context for Cody Web on the repository page [#63497](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63497)
+- Cody Web: Fix Cody page for signed out users [#63498](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63498)
+- Cloud: update feature flag warning severity [#63499](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63499)n/a
+- Svelte: rev picker design updates and addition to commits page [#63506](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63506)
+- Oops, fix Cody Web enablement [#63508](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63508)
+- Fix Cody nav link for unauthed dotcom users [#63510](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63510)
+- Looser eslint rules [#63511](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63511)
+- Remove unused CTAs [#63512](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63512)
+- Misc wording and UI tweaks to search contexts pages [#63513](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63513)
+- Make Cody and Code Search global navbar items one-click [#63514](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63514)
+ - Code Search and Cody now are one-click links in the global navbar. Other features are in the new "Tools" menu: search contexts, code monitors, search jobs, and notebooks. Your Cody dashboard is linked from your user menu (in the top right).
+- Bump `cody-web-experimental` package version [#63525](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63525)
+- Sg: generate github action subscription matrix dynamically [#63526](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63526)
+- Backend: Introduce a basic utils package for appliance sourcegraph upgrades [#63529](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63529)
+- Link to Cody chat on the web from the Cody manage page [#63530](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63530)
+- Feature: Data types for encoding LLM Model config via Sourcegraph site config [#63533](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63533)
+- Release: resource def jaeger [#63534](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63534)
+- Release: resource def grafana [#63535](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63535)
+- Scip-syntax: implements parallel processing for workspace and tar commands [#63536](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63536)
+- Add LazyQueryInputFormControl, remove duplicated common pattern [#63537](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63537)
+- Fetch User.id to suppress GraphQL cache warning [#63538](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63538)
+- Fix(sg/bazel-do): use ci.sourcegraph.bazelrc with bazel-do [#63545](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63545)
+ - Sg - Ensure bazel-do invocations use the ci sourcegraph bazelrc
+- (chore)analytics: consistent naming of web code copied events [#63550](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63550)
+- Update config for workflows 5.10 [#63554](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63554)
+- Chore(search) VSCode Search extension: Update README and CHANGELOG [#63562](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63562)
+- Perf(scip-syntax): uses the same parse tree for globals and locals [#63564](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63564)
+- Make `` element focus & select at end to match native label behavior [#63568](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63568)
+- Fix bug preventing site admins from directly adding org members when email.smtp was set [#63569](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63569)
+ - Fixed a bug where site admins could not directly add users to an organization if (1) email sending was configured for the instance and (2) the user had no verified email address.
+- Cosmetic improvements to OrgSettingsMemberPage, UserEmail [#63570](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63570)
+ - Minor cosmetic improvements to the pages for managing organization members and user email addresses.
+- Narrow NamespaceProps type [#63571](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63571)
+- Suppress ResizeObserver type error [#63572](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63572)
+- Marks search-based usages as definitions or references [#63576](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63576)
+- Insights: persist patternType in db [#63579](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63579)
+- Syntactic indexing produce scip files [#63580](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63580)
+- Chore: Calendar Updates [#63583](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63583)
+ - Chore(release): Update calendar events until September
+ - Chore(release): Remove branch cut automation from `calendar.go`
+- Cody context: fix an issue with anchoring repo names [#63585](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63585)
+ - Fixes a bug that caused context to be fetched for Cody from irrelevant repos
+- Feature: migrate maintenance from sourcegraph-operator-ui [#63586](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63586)
+- Search: restore snippets to filters sidebar [#63587](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63587)
+ - Restores search snippets in the search sidebar
+- Clean up FilteredConnection filter types and code [#63590](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63590)
+- Add a better Cody client server-sent configuration mechanism [#63591](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63591)
+- Fetch NamespaceSelector namespaces from GraphQL (`viewer { affiliatedNamespaces }`) [#63592](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63592)
+- Implement UI for Github Apps - Batch Changes integration [#63597](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63597)
+- Trivial additions [#63601](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63601)NA
+- Fix/cody-gateway: use keepalive/idle timeout options for Enterprise Portal [#63605](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63605)
+- Security: Auto-update package lockfiles for Sourcegraph base images [#63606](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63606)
+- Remove autocomplete limit from Cody dashboard page [#63609](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63609)
+- Adds a test for search-based usages [#63610](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63610)
+- Fix(perforce) Fix support for p4breaker workaround scripts [#63611](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63611)
+ - Fixed an issue where Sourcegraph would no longer be able to decode Perforce permissions if `p4broker` is used, provided that the filter script gets adjusted as well.
+- Vsce: patch release v2.2.17 [#63617](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63617)
+- Add SourcegraphModelConfig.AccessToken [#63619](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63619)NA
+- Svelte: add mutation observer to `sizeToFit` [#63620](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63620)
+- Pick up CompletionsConfig.User for the AzureOpenAI API Provider [#63621](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63621)NA
+- Fix annoying consistency [#63623](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63623)NA
+- Fix/client/dev: update proxy overwrite to respect authProviders [#63624](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63624)
+- Codygateway: Use only one redis pool and make REDIS_ENDPOINT a clear requirement in config [#63625](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63625)
+- Add GenericProviderConfig.ServiceName [#63626](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63626)NA
+- Documents that usages are first bucketed by provenance [#63629](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63629)
+- Fix the scheduling interval for syntactic indexing [#63634](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63634)
+- Adds Option for codeintel [#63637](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63637)
+- Docs: Fix inaccuracies in RangeInput GraphQL docs [#63640](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63640)
+- Add ModelRef.APIVersionID() [#63643](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63643)NA
+- Rcache: Explicitly pass redis pool to use [#63644](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63644)
+- Remove old cache cleanup method [#63645](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63645)
+- Remove unused package [#63646](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63646)
+- Unexport some externally irrelevant symbols from uploadstore [#63647](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63647)
+- Add new "modelConfiguration" schema to site config [#63654](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63654)Changelog entry will come later with proper docs link, when we are ready for customers to use this.
+- Convert Appliance Maintenance UI to Bazel [#63661](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63661)
+- Notebooks: set default pattern type to keyword [#63662](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63662)
+- Remove long-unused UI routes [#63670](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63670)
+- Add database.NotFoundError helper type [#63671](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63671)
+- Improve FilteredConnection filter types [#63672](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63672)
+- Bump code-web-experimental version to 0.2.0 [#63675](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63675)
+- Scheduler: Simplify query for uncloned repos [#63681](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63681)
+- Phabricator: Move syncer to worker [#63682](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63682)
+- React app: bump cody web to 0.2.1 [#63694](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63694)
+- Svelte: encode path components in file header [#63695](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63695)
+- Site config: minor fixes, make modelConfiguration enable new backend models API, initial self-hosted model config [#63697](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63697)N/A
+- Searcher: Modernize entrypoint and gRPC server [#63700](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63700)
+- Adding deepseek-v2 and deepseek fine-tuned model trained on symbol graph context [#63702](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63702)
+- Modelconfig: handle converting site config JSON -> internal data types [#63706](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63706)Has no effect on users unless they opt into the early-access `"modelConfiguration"` site config feature.
+- Symbols: Minor code cleanup [#63708](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63708)
+- Sg: when in CI we do not need to prompt for an identity [#63712](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63712)
+- Update changelog: Keyword search GA [#63715](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63715)
+- Keyword search: remove beta badge [#63720](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63720)
+- Cody Web: bump cody web to 0.2.3 [#63723](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63723)
+- Backend: add line index [#63726](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63726)
+- Squirrel: Correctly use request context [#63729](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63729)
+- Several refactoring to prepare for rolling out modelconfig [#63731](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63731)NA
+- Symbols: Make symbols specific code internal [#63736](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63736)
+- Chore: remove gorilla/schema [#63738](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63738)
+- Pass ModelConfigInfo down to client.Get() for self-hosted-models [#63739](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63739)N/A
+- Bump cody-web-experimental to 0.2.4 [#63742](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63742)
+- Feat(sg/cloud): trigger build on cloud-ephemeral pipeline [#63748](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63748)
+ - `sg cloud eph` will now trigger builds on the `cloud-ephemeral` pipeline
+- Chore(security) : upgrade src-cli version to address CVE [#63750](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63750)Upgrade src-cli version to 5.4.0 to address CVE-2024-24790 , CVE-2023-45288
+
+# v5.4.7765
+
+{/* RSS={"version":"v5.4.7765", "releasedAt": "2024-06-20"} */}
+
+### Reverts
+
+### Uncategorized
+
+- [63131](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63131) [Backport 5.4.5099] scim: Fix random suffix added to every user on resync
+- [63148](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63148) [Backport 5.4.5099] fix(release): remove generate-notes from github r…
+ - Remove `generate-notes` cli flag when promoting releases
+ - Push only a single tag
+ - Fix token name used in changelog generation
+ - Tag creation on release is idempotent, even in environments that cache the git repository (e.g. buildkite runners)
+- [63152](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63152) [Backport 5.4.5099] chore(release): remind releasers of tag pipeline
+ - Remind releasers of tag pipeline as final step. Backport 2be933cda9ac893f44d3da308052cce8be70cb7c from #63150
+- [63178](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63178) [Backport 5.4.5099] release: never use build number in image family Backport 8bb0ab54ebbf4c7d356397dc0da29cb98ea3e14f from #63157
+- [63392](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63392) [Backport 5.4.5099] chore(tooling): bump Go version to 1.22.4
+ - Bumped version of Go used to build to 1.22.4
+ Backport bb178ba729d160d834bf7fcbb4414f0f95e4d0df from #63124
+
+# v5.4.5099
+
+{/* RSS={"version":"v5.4.5099", "releasedAt": "2024-06-06"} */}
+
+### Chore
+
+- [61969](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/61969) bazel: enable rules_esbuild sandbox with object-inspect workaround
+- [62089](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62089) rel: fix tests not waiting for push prod
+- [62511](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62511) rel: bump minor for stitch graph + add support invalidating migrations repo rule
+- [62522](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62522) Rename function to reduce confusion
+- [62527](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62527) Fix function name in comment
+- [62529](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62529) Document post-condition for upload matching
+- [62530](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62530) Rename locals id -> uploadID, dump -> upload
+- [62532](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62532) fix typos
+- [62537](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62537) Inline method at single usage site
+- [62539](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62539) remove overridden repository cache flag from bazelrc
+- [62540](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62540) Make receiver names consistent in codenav/service.go
+- [62542](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62542) Add missing interface assertion for codenav Resolver
+- [62543](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62543) Move helper function to database package
+- [62544](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62544) ci: Remove dead boards
+- [62573](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62573) Refactor codeintel middleware code
+- [62587](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62587) Expose ParsePersonalAccessToken publicly for src-cli
+- [62593](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62593) Use SRC_ACCESS_TOKEN for uploading indexes
+- [62595](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62595) Stop uploading indexes to k8s.sgdev.org
+- [62623](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62623) ci: bump backcompat target to 5.4.0
+- [62658](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62658) ci: remove backcompat mitigation
+- [62680](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62680) localenv: disable `tsc` declaration files
+- [62714](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62714) Move cmd/searcher/protocol to internal/searcher/protocol
+- [62718](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62718) ci: rules_buf 1.31
+- [62719](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62719) process: add structure guide for PRs
+- [62753](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62753) Bump autoindexing image SHAs
+- [62755](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62755) Simplify extsvc config in integration tests
+- [62762](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62762) licenses: fix khroma and elkjs
+- [62768](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62768) Factor out logic for modifying site config
+- [62780](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62780) Document how to load test highlighter
+- [62789](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62789) Remove client construction from SignUp/In funcs
+- [62820](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62820) skip failing tests
+- [62853](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62853) Pull in latest http-server-stabilizer version
+- [62857](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62857) gha: link to how-to when license check fail
+- [62878](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62878) rel: plug automatic changelog generation (RFC912)
+- [62902](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62902) release: add changelog section to pr template
+ - Added instructions to guide teamates into writing changelog entries directly in their PR descriptions.
+- [62921](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62921) Bump Rust version 1.73.0 -> 1.78.0
+- [62922](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62922) Delete old Dockerfile and build scripts
+- [62925](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62925) sg: cloud ephemeral - Account for conclusion field
+- [62938](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62938) release: quick fix latest version after release
+ - Bump latest version reported by dotcom
+- [62943](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62943) local: catch bazel-do issues before push
+ - Prevent pushing Bazel commands/flags that would end up being rejected by the CI due to the allow list.
+- [62959](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62959) appliance: scaffolding for embeddings service
+ - Add config scaffolding for embeddings service.
+- [62962](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62962) dev: shorten test plan in PR template
+ - Test plan has been in place for a long time, so we can get rid of the detailed instructions.
+- [62988](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62988) sg: cloud ephemeral fix instance check
+ - Fix cloud ephemeral deployment check
+- [62992](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62992) Add tests documenting error invariants
+- [62996](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62996) Remove unused code in errors package
+- [62998](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62998) ci: fix PR template's changelog type list
+- [62999](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62999) appliance: fix race condition in tests
+ - Fix a race condition in one package's tests.
+- [63001](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63001) bazel: update ownership tags to increase coverage
+- [63020](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63020) productsubscription: add metric tracking usage
+- [63025](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63025) Enable traces for uploads
+ - Tracing is enabled for all SCIP index uploads by default
+- [63027](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63027) Remove unused code for precise defs by symbol
+- [63029](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63029) Use new cmp package to simplify comparisons
+- [63030](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63030) Remove unused codeintel utils code
+- [63040](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63040) Simplify RequestState/PositionalRequestArgs o11y code
+- [63045](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63045) enterpriseportal: add instrumentation for RPC handlers
+- [63046](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63046) Temporarily disable syntactic indexing worker job
+- [63047](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63047) Replace errors.As with generic As and AsInterface
+- [63052](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63052) msp: blindly retry Notion page deletion
+- [63056](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63056) Make GetDefinitions API consistent with GetReferences etc.
+- [63059](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63059) codeintel: usagesForSymbol - Make start/end non-optional for now
+- [63060](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63060) codeintel: Document prepareCandidateUploads function
+- [63061](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63061) codeintel: Simplify map[T]struct{} logic to use Set
+- [63062](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63062) Rename Contains to IsSupersetOf
+- [63070](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63070) pnpm: add telemetry package
+ - Add missing telemetry package to pnpm lock file
+- [63085](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63085) upgrade to latest rules_oci 1.x-
+- [63094](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63094) sg: move `registry list` cmd to `release list`
+- [63103](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63103) graph: Add changelog entry for Python scip-ctags fix
+
+### CI
+
+- [62823](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62823) fix test issues on main
+
+### Feat
+
+- [60761](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/60761) make display limit configurable from user settings
+- [62268](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62268) introduce new workflow to restrict image sizes for docs
+- [62452](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62452) popover to configure editor
+- [62531](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62531) Add new GraphQL API for getting occurrences
+- [62704](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62704) msp: do not use tfvars file outside of deploy-type 'subscription'
+- [62708](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62708) ci: docker-images runtype
+- [62756](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62756) incomplete datapoints can now resolve the affected repositories
+- [62772](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62772) sg: handle interrupts more gracefully
+- [62802](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62802) cody: new site config for smart context
+- [62877](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62877) bazel: `//cmd/{frontend,server}` targets that don't include client bundle for backend integration tests
+- [62883](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62883) sg: add 'sg sams' commands 'create-client-token' and 'introspect-token'
+- [62912](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62912) enterprise: make per-subscription model allowlists no-op
+- [62945](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62945) local: add cloud ephemeral dashboard command
+ - `cloud eph dashboard/dash` opens up the cloud ephemeral dashboard
+ - `cloud eph ops [--name ]` opens up the ops page for the deployment of the current branch or for the instance specified as a flag
+- [62961](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62961) search: Add inline file search to Svelte app
+ - Refactored the existing CodeMirror extension to allow UI customization
+ - Moved utility functions around to avoid loading all of wildcard into the prototype (which lead to build errors)
+ - Tweaked the new icon component to better align within buttons (I missed that in #62908 because I didn't test it within buttons)
+ - Noticed that button group styles didn't apply correctly and the reason seemed to be that we were mixing sveltekit and react styles. So I copied the button styles into the sveltekit app.
+ - Added a switch component, following [https://web.dev/articles/building/a-switch-component](https://web.dev/articles/building/a-switch-component) .2024-05-29_12-58
+- [62964](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62964) appliance: deploy worker
+ - Deploys the Worker service.
+- [62965](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62965) codeintel: If SignatureDocumentation is present in SCIP, use it for hover text
+ - The backend now respects the SCIP [signature_documentation](https://github.com/sourcegraph/scip/blob/main/scip.proto#L409-L415) field, and if available, uses that to create the initial part of the hover text. SCIP indexers should not repeat the text in signature_documentation inside the documentation field.
+- [62970](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62970) sg: add version=auto for `sg release cut`
+ - Add `--version=auto` to `sg release cut`
+- [62985](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62985) ci: add GHA to report when Bazel test ownership drops below 70% threshold
+- [62994](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62994) msp: use pgxpool instead of pgx.Conn
+ - The MSP runtime `lib/managedservicesplatform/contract.Contract`'s `ConnectToDatabase(...)` has been renamed to `GetConnectionPool(...)`, and now returns a `*pgxpool.Pool` instead of a `*pgx.Conn`
+ - The MSP runtime `lib/managedservicesplatform/cloudsql` helper library's `Connect(...)` has been renamed to `GetConnectionPool(...)`, and now returns a `*pgxpool.Pool` instead of a `*pgx.Conn`
+- [63011](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63011) msp: add link to ops page in Slack channel description
+ - MSP-provisioned alerts Slack channels now include a link to the service's generated operational docs for a service (go/msp-ops) in the channel description.
+- [63033](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63033) release: rename code freeze event to `branch cut` event
+ - Rename the calendar event `Code Freeze:` to `Branch Cut:`
+- [63034](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63034) release: allow creation of multiple patch release events
+ - Multiple patch events can now be created with the `sg release cal` command
+- [63042](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63042) appliance: deploy codeinsights-dbAdd optional diff extra args to compare-helmI wanted this to do `diff --side-by-side`, may as well commit it as a
+feature.feat(appliance): deploy codeinsights-dbReady for review, but draft until base branch merged.
+- [63069](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63069) sg: respect the context when executing interrupt hooks
+ - Hard exit sg when 5 intterupt hooks are received
+ - Respect the context while executing interrupt hooks to ensure we still exit if some hook is misbehaving
+- [63071](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63071) sg: add `list-build` subcommand to ci
+ - Add `list-builds` subcommand to sg to list builds in various states
+- [63089](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63089) msp: update handbook link in alerts dashboard, sort custom alerts first
+
+### Fix
+
+- [62415](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62415) Correctly filter uploads with commit and path existence checks
+- [62505](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62505) deprecation in pkg call
+- [62758](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62758) update links for dev docs
+- [62779](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62779) Show full info for highlighter errors
+- [62788](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62788) backporting
+- [62817](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62817) Make most syntaxHighlighting config fields optional
+- [62928](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62928) local: panic in sg ci preview
+- [62947](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62947) sg: fix error condition for cloud eph deployment that already exists
+ - Deny creating a deployment if a deployment with that name already exists
+- [62949](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62949) telemetry: fix dotcom-mode sensitive metadata removal
+- [62960](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62960) Initialize operation for UsagesForSymbol
+ - Fixed a bug in stub implementation of UsagesForSymbol
+- [62963](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62963) Icon auto-import in Bazel
+- [62969](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62969) msp: test for cron interval changes based on time, add more restrictions
+ - Fixed an issue with output of `sg msp generate` for MSP jobs with particular schedules changing throughout the week
+ - MSP jobs schedules now must be between 15 minutes at the most frequent, and every week at the least frequent
+- [62989](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62989) sg: cloud eph - Do not fail just because we cannot parse reason
+ - Gracefully handle when we can't parse the reason in cloud ephemeral
+- [63017](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63017) msp: make deadlineSeconds job-level configuration, apply in timeout
+ - MSP jobs: `schedule.deadline` is deprecated, use the top-level `deadlineSeconds` instead. Configured deadlines are now correctly applied as the Cloud Run job execution timeout as well.
+- [63058](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63058) enterpriseportal: fix registration of connectRPC handler options
+- [63084](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63084) msp: flatten custom alert promQL query for GCP
+- [63109](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63109) gateway: update Google model names in allowed custom chat models
+
+### Reverts
+
+- [#62684](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62684) Revert "Svelte [RepoPopover]: Instantiate the RepoPopover result across the web-app
+
+### Uncategorized
+
+- [61808](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/61808) v2t: add v2t to src/teams
+- [61968](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/61968) Create a shared Cody Ignore dataset
+- [61989](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/61989) Svelte [RepoPopover]: Instantiate the RepoPopover result across the web-app
+- [62107](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62107) gitserver: Implement Stat and ReadDir in gRPC API
+- [62136](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62136) lib: upgrade `Routine` interface with context and errors
+- [62252](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62252) gitserver: grpc: port DiffSymbols from client as new GitBackend.ChangedFiles() func
+- [62262](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62262) gitserver: grpc: create changed files RPC implementation for gRPC server
+- [62263](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62263) lib: initial service API for RFC 885
+- [62322](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62322) Migrate "New Cody Subscription" page
+- [62354](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62354) gitserver: grpc: add new ChangedFiles method to gitserver client
+- [62355](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62355) symbols: replace usage of gitserver client's DiffSymbols method with new ChangedFiles method
+- [62358](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62358) searcher: replace usage of gitserver.DiffSymbols with new gitserver.ChangedFiles client method
+- [62359](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62359) worker: embeddings: replace usage of old gitserver.DiffSymbols client method with new gitserver.ChangedFiles method
+- [62360](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62360) gitserver: grpc: remove now unused DiffSymbols func
+- [62363](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62363) searcher: remove unused diff.ParseGitDiffNameStatus package
+- [62364](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62364) v2t: add v2t to client/branded
+- [62413](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62413) SG-61976 - Run a test to remove steps from the new user signup flow
+- [62453](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62453) SSC: Teams and Invites: Create "Manage team" page
+- [62456](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62456) sg: cloud ephemeral check if deployment exists already
+- [62457](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62457) svelte: Reduce imported global CSS
+- [62472](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62472) Add access request enabled check in backend redirect
+- [62473](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62473) Svelte: implement symbol redesign
+- [62474](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62474) Svelte: fix badge centering
+- [62476](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62476) sg: skip honey event duration if event is nil
+- [62485](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62485) Syntactic indexing: enqueuer and scheduler
+- [62487](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62487) always add patch number when cutting branch
+- [62489](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62489) sg+ci: cloud ephemeral annotation
+- [62491](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62491) Cody PLG: Change fine-tuned model identifier for completions
+- [62494](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62494) svelte: First pass on fuzzy finder
+- [62498](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62498) Svelte: Implement and instantiate FilePopover
+- [62501](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62501) telemetry: improve logging on RecordEvents errors
+- [62502](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62502) appliance: deploy redis services
+- [62503](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62503) Fix panic on startup
+- [62504](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62504) gomod: Bump zoekt for UseKeywordScoring rename
+- [62508](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62508) msp: add infra and runtime support for job checkins
+- [62510](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62510) Rockskip: simplify ruler function
+- [62512](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62512) appliance: add pgsql service definition
+- [62513](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62513) gitserver: Implement CommitsUniqueToBranch using Commits
+- [62514](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62514) gitserver: Move CommitsUniqueToBranch to callsite
+- [62518](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62518) gitserver: Implement CommitLog using Commits
+- [62519](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62519) gitserver: Always use Commits in HasCommitAfter
+- [62520](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62520) gitserver: Move implementation of HasCommitAfter to caller
+- [62521](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62521) dev: add support for project modifier
+- [62523](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62523) Auto-update package lockfiles for Sourcegraph base images
+- [62524](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62524) msp: export Cloud SQL conection internals for direct usage
+- [62525](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62525) enterprise-portal: initialize service with dotcom DB connection
+- [62526](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62526) gitserver: Add basic tests for repositoryservice
+- [62533](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62533) sg: cloud ephemeral - Add build and upgrade commands
+- [62534](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62534) Svelte: Visual updates to diff summary
+- [62536](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62536) Svelte: Styling updates to search filters
+- [62538](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62538) svelte: Fix file tree behavior
+- [62541](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62541) release: return an error when promoting a dev release
+- [62545](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62545) Cody Ignore: use "cache-and-network" fetch policy for context filters query
+- [62548](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62548) Gitserver: add `StatusTypeChanged` to supported statuses in `ChangedFiles`
+- [62549](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62549) Rockskip: test getHops function
+- [62552](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62552) release: pass in `IS_DEVELOPMENT_RELEASE` flag to buildkite
+- [62555](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62555) sg gen buf: fix completions
+- [62557](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62557) Rockskip: refactor metrics registration
+- [62559](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62559) msp: grant 'sso' team read access to MSP workspaces
+- [62561](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62561) gitserver: grpc: fixup and add tests for GetCommit RPC
+- [62562](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62562) release(5.4.0): update changelog
+- [62563](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62563) gitserver: client: grpc: add tests for GetObject
+- [62564](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62564) gitserver: grpc: create proto roundtrip tests for GetObject[Request/Response]
+- [62565](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62565) sg msp tfc sync: support applying to all services
+- [62566](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62566) sg+release: push releases to the cloud ephemeral registry too
+- [62567](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62567) rockskip: ruler function is just bits.TrailingZeros
+- [62568](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62568) sg: cloud - Remove wip notice for ephemeral commands
+- [62569](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62569) sg: cloud - Move all cloud ephemeral commands to a sub command `ephemeral`
+- [62570](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62570) appliance: deploy syntect-server
+- [62574](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62574) [Svelte]: Hide suggestion UI after query was submitted
+- [62576](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62576) PR feedback followup
+- [62580](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62580) msp: add option to respect existing run mode
+- [62581](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62581) Rockskip: add search tests
+- [62583](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62583) Render Jupyter notebooks
+- [62585](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62585) Svelte: First run on file tree visual update
+- [62586](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62586) v2t: add v2 telemetry to the client/shared folder
+- [62588](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62588) PLG-590 - Add 16px margin between the "$9/month" and CTA
+- [62592](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62592) Move syntactic indexing toggle to site config
+- [62594](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62594) conf: redact `scim.authToken` in site config UI
+- [62596](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62596) sg: add cloud deploy pubsub notifications
+- [62598](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62598) build-tracker: emit agent state-change webhook events to BigQuery
+- [62602](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62602) gitserver: Make ReadDir return an iterator on client side
+- [62603](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62603) gitserver: Fix duration reported for ChangedFiles
+- [62604](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62604) msp: centralize and expose locations configuration
+- [62605](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62605) Web: small style fix for jupyter notebooks
+- [62606](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62606) gitserver: Add CommitLog API to replace client-side Commits
+- [62607](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62607) msp: add incident response starter guide, Notion-specific formatting
+- [62608](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62608) Fixup parseDirectoryChildren replacement
+- [62609](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62609) gitserver: Add API to enumerate repos on disk
+- [62610](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62610) gitserver: Move repo timestamp updates to caller
+- [62611](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62611) gitserver: Implement LatestCommitTimestamp in backend
+- [62612](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62612) gitserver: Implement RefHash in backend
+- [62613](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62613) gitserver: Use the same GitBackendSource for all code paths
+- [62614](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62614) gitserver: Move removal of stray tmp pack files to janitor
+- [62615](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62615) gitserver: Reduce number of git config invocations
+- [62616](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62616) gitserver: Move spec arg safety check into git layer
+- [62620](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62620) gitserver: Fixup error codes for ReadDir
+- [62624](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62624) appliance: deploy precise-code-intel
+- [62625](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62625) Remove SCIP upload to dogfood host
+- [62627](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62627) build-tracker: use repeated type for agent queues + deref strings
+- [62632](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62632) build-tracker: fix handling of agent webhooks
+- [62636](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62636) sg: upgrade sentry
+- [62637](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62637) Python notebooks: fix anchor offset
+- [62638](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62638) Update broken link for our Development docs in the README file
+- [62639](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62639) LLM Models: add GPT-4o support
+- [62641](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62641) msp: fix bad formatting
+- [62642](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62642) URL Path Escape Model Name
+- [62643](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62643) Context: more precise chunk sizing
+- [62644](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62644) msp: use new in-terraform custom target provisioning
+- [62646](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62646) dev: add /-/healthz endpoint
+- [62650](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62650) msp: upgrade to 1.7.5
+- [62659](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62659) sg: fix typo in exernal_health_check description
+- [62660](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62660) appliance: fix panic on reconcile
+- [62664](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62664) bazel: transcribe test ownership to bazel tags
+- [62665](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62665) web: Cycle through in-file search results when pressing the numpad enter key
+- [62667](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62667) Update HubSpot contacts integration
+- [62668](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62668) appliance: default storageclass is nil
+- [62669](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62669) Bump zoekt for iterator optimization
+- [62670](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62670) build-tracker: include timestamp in agent state change events
+- [62672](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62672) inference: Add missing defer
+- [62675](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62675) sg msp: add category flag for 'tfc sync'
+- [62678](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62678) Web: add mermaid diagram rendering
+- [62679](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62679) Docs: update integration test instructions
+- [62681](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62681) Svelte: follow up on display limit TODO
+- [62682](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62682) Svelte: update navigation bar for dotcom deployment
+- [62688](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62688) Auto-update package lockfiles for Sourcegraph base images
+- [62690](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62690) Cody Ignore: set lower client version constraint to enable clients testing
+- [62694](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62694) SSC: Refactor team management
+- [62700](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62700) Bump minimum src-cli version required
+- [62701](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62701) fix/telemetry(auth): return authenticated context from session.SetActorFromUser
+- [62702](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62702) sg: add repo annotation to delivery pipeline
+- [62703](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62703) sg: clarify `repository` annotation meaning in delivery pipeline
+- [62705](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62705) gitserver: Allow multiple ranges to be passed to Commits
+- [62706](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62706) feat/enterprise-portal: DB layer for \{Get/List\}CodyGatewayAccess
+- [62709](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62709) gitserver: Use git-diff-tree to simplify validation and improve security
+- [62710](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62710) observability: Fix error checks in ErrorsFilter
+- [62711](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62711) inference: Fix regression for non-absolute commit ID
+- [62712](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62712) gitserver: Adjust buckets for cleanup timing
+- [62715](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62715) Add Cody Pro REST API client library
+- [62716](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62716) Cody Ignore: lower version constraint fot test mode
+- [62717](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62717) docs: Add CHANGELOG entry for SRC_ACCESS_TOKEN
+- [62720](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62720) Client Compatible Bedrock ARN handling
+- [62724](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62724) Svelte: Increase search suggestions font size
+- [62726](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62726) svelte: Fix various z-index/layering issues
+- [62727](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62727) sg: fix `CustomTargetType` reference in `Target` definition
+- [62728](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62728) docs: Add link to Entitle permission
+- [62729](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62729) svelte: Show correct keyboard shortcut on Linux in "search files" button
+- [62730](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62730) appliance: split reconciler package into subpackage
+- [62731](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62731) appliance: initial smoke testing harness
+- [62732](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62732) appliance: fix test flakiness when container env vars are specified
+- [62734](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62734) rockskip: Replace second long-running process with gRPC API
+- [62735](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62735) feat(sg/repoferee): add security command with `repo-report` subcommand to fetch latest repoferee report
+- [62736](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62736) sg msp: only generate skaffold assets if last stage of rollouts
+- [62738](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62738) Fix issue in SAMS account disambiguation
+- [62742](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62742) msp: add commit attribute to rollout
+- [62743](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62743) gitserver: Remove and deprecate no_timeout option from exec
+- [62744](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62744) Svelte: unrevert `RepoPopover`
+- [62745](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62745) gitserver: Fix Diff generation
+- [62746](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62746) feat/sg-msp: add more stats to 'fleet' command
+- [62748](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62748) Chore: add changelog entries
+- [62749](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62749) security: Auto-update package lockfiles for Sourcegraph base images
+- [62754](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62754) PLG: migrate subscription management page
+- [62757](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62757) Change chat defaults to Sonnet and autocomplete defaults to StarCoder or Haiku
+- [62759](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62759) authz: Fix panic when auth provider is missing
+- [62761](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62761) Fix up "Manage team" page UI
+- [62763](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62763) Fix a condition I negated by accident
+- [62764](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62764) fix(sg/eph): handle nil regex
+- [62769](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62769) bazel: Cleanup oci_deps.bzl
+- [62771](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62771) feat/enterprise-portal: ConnectRPC layer for \{Get/List\}CodyGatewayAccess
+- [62773](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62773) gitserver: Deprecate Exec and remove localGit
+- [62775](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62775) gitserver: Switch corruption logs to use separate file
+- [62776](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62776) gitserver: Made git GC recloning less dependent on time
+- [62778](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62778) repoupdater: Add retry policy to repositoryservice
+- [62782](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62782) gitserver: Remove unnecessary redaction
+- [62787](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62787) gitserver: Clean up some errors from improper API usage
+- [62790](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62790) Make SSC base url dynamic
+- [62794](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62794) Change "Remove" button to a regular button
+- [62795](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62795) sg: cloud ephemeral - Handle empty times better and santizes name better
+- [62797](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62797) Add missing API types
+- [62798](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62798) Fix auth-related error in the SSC REST API client hook
+- [62800](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62800) gitserver: Fix postrepoactions for repos with many refs
+- [62816](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62816) Update changelog for 5.4.2198
+- [62818](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62818) SSC: Three small fixes for Teams & invites
+- [62819](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62819) Chore: add changelog entry for #62597
+- [62822](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62822) svelte: Preserve current revision in repo search input
+- [62825](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62825) gitserver: Add observability to chunked messages
+- [62828](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62828) gitserver: Fix CommitLog on some git versions
+- [62829](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62829) Svelte: add default badge to default branch
+- [62830](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62830) Update sensitive metadata allowlist to filter on keys
+- [62831](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62831) Remove misleading logic to add credentials to clone URL
+- [62832](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62832) svelte: Add tailling space to default repo search input
+- [62834](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62834) Svelte: remove site-admin-only data from repo popover
+- [62835](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62835) Fix woes related to undefined frontendCodyProConfig.sscBaseUrl
+- [62837](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62837) syncer: Fix issues causing excessive fetches
+- [62838](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62838) adding finetuned model setup
+- [62839](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62839) Add default values for CG config so it starts
+- [62841](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62841) svelte: Show correct byline when commit has author and committer
+- [62842](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62842) svelte: Improve commit page loading state
+- [62843](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62843) sg: cloud ephemeral - Only push one tag
+- [62844](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62844) sg: cloud ephemeral - Various small fixes
+- [62845](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62845) appliance: fix syntect service account name
+- [62852](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62852) Make the URL dynamic, now with a fallback
+- [62854](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62854) sg: remove debugging printlns
+- [62858](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62858) SSC: Fix invite date formatting
+- [62859](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62859) Update missing changelog element for 5.4.2198
+- [62860](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62860) SSC: Fix notification colors
+- [62862](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62862) Svelte: linkify and wrap dir entries
+- [62864](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62864) worker: Reduce frequency of very frequently run jobs
+- [62865](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62865) Svelte: add repo popovers to repo name in header and in dynamic filters
+- [62866](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62866) svelte: Fix failing/skipped playwright tests
+- [62867](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62867) Svelte: add copy button and reduce spacing
+- [62868](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62868) gitserver: Implement Perforce changelist ID mapper as standalone job
+- [62869](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62869) Refresh SAMS access tokens as needed
+- [62870](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62870) codeintel-service-def
+- [62871](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62871) perforce: Add fallback logic for changelist mapper
+- [62872](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62872) fix/msp/spec: validate against LivenessInterval that is too high
+- [62874](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62874) bazel: bump to latest aspect_rules_js, rules_nodejs, aspect_bazel_lib, aspect_rules_ts, aspect_rules_swc
+- [62875](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62875) sg: cloud eph - Api now requires env during list
+- [62876](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62876) appliance: deploy prometheus
+- [62881](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62881) sg: cloud use new status reason format
+- [62882](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62882) Update blobstore package to remove unused port + ssl properties
+- [62884](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62884) Embeddings: silence worker log warnings
+- [62885](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62885) sg: support for super-simple alerts on custom metrics
+- [62887](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62887) Update release calendar
+- [62888](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62888) SSC: Handle "Accept invite" calls
+- [62890](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62890) Pings: Update hardcoded latest release strings
+- [62891](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62891) repo-updater: Hydrate schedule on startup
+- [62893](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62893) bazel: Add container test for s3proxy
+- [62894](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62894) Log all prompts from specific users
+- [62896](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62896) svelte: Fix GraphQL error on contributors page
+- [62897](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62897) docs: Add tips for highlighter queries and test cases
+- [62898](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62898) sg: fix init prompts breaking when encountering whitespace
+- [62899](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62899) svelte: Add link to code-graph page to repo navigation
+- [62900](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62900) svelte: Format code
+- [62901](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62901) svelte: Allow closing the diff and commit view from the history panel
+- [62903](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62903) appliance: move storage elements to standard feature
+- [62906](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62906) SSC: Handle `team=1` input on checkout form
+- [62907](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62907) s3proxy: Fix permissions on s3proxy package binary
+- [62908](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62908) svelte: Add lucide icons and new icon API
+- [62909](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62909) feat/cody-gateway: support wildcard models
+- [62911](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62911) feat/cody-gateway: use wildcard for enterprise allowlists
+- [62913](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62913) lib: `CombineRoutine.Start` should not wait
+- [62914](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62914) gitserver: grpc: change gitserver ReadFileRequest.Path type to bytes from string
+- [62915](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62915) gitserver: grpc: change FileNotFoundPayload path field from string to bytes
+- [62916](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62916) gitserver: grpc: Change BlameRequest Path field from string to bytes
+- [62917](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62917) gitserver: grpc: relax BlameAuthor name field to allow arbitrary byte sequences
+- [62918](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62918) gitserver: grpc: add comment to Stat implementation explaining why we cast the Path field to []byte
+- [62920](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62920) privateApp to set `first_source_url` contact property on HubSpot
+- [62926](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62926) codeintel: Add stub implementation for usagesForSymbol API
+- [62927](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62927) Support Google Gemini through AI Studio
+- [62929](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62929) sg: cloud ephemeral - Handle multiple job reasons
+- [62930](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62930) bazel: add utility macro for wrapping single-file tools
+- [62931](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62931) uploads: Fixup nested code intel uploads
+- [62932](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62932) feat/enterprise-portal: subscriptions.ListEnterpriseSubscriptionLicenses
+- [62936](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62936) SSC: Add "Welcome to Cody Pro" banner
+- [62939](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62939) PLG: use react-query for async state management
+- [62940](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62940) Fix request blocking in Cody Gateway
+- [62941](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62941) schema: Document perf scaling for occurrences(...)
+- [62942](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62942) appliance: deploy cadvisor
+- [62948](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62948) Rename smartContext to smartContextWindow
+- [62950](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62950) Adding the User param to the site config so that it can be supported by Azure as an extra param
+- [62953](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62953) feat/sg/enterprise-portal: use externalSecret to configure SAMS client secret
+- [62954](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62954) chore/msp-example: refactor to align with service structure best practices
+- [62955](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62955) feature: Use custom Stripe checkout
+ - Added Stripe Custom Checkout for Cody PLG
+- [62957](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62957) gomod: bump Zoekt for filename boost
+- [62958](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62958) Batch changes: remove structural search example
+- [62966](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62966) feat/enterprise-portal: explicit opt-in to serve non-dev/non-internal data
+- [62967](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62967) Update titles for and references to the Analytics > Extensions page t…
+- [62968](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62968) feat/enterpriseportal/codyaccess: add subscription display name
+- [62971](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62971) fix typo on feature name
+- [62972](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62972) feat/msp/spec: require notionPageID if a production env is provisioned
+ - MSP services with production environments now must provide a `service.notionPageID` for go/msp-ops
+- [62973](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62973) feat/sg/msp: add 'sg msp validate' for validating service specifications
+ - `sg msp validate` can now be used to get quick feedback on whether MSP service specifications are valid.
+- [62974](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62974) Svelte: QoL fixes for hover popovers
+- [62975](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62975) chores: remove AMI automation
+ - Move AMI automation to helm repo
+- [62976](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62976) Context: detect symbol names in query
+- [62977](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62977) cmd: frontend: add note that clarifies that your code host needs to be accessible over the network to test connection button
+- [62978](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62978) Svelte: simplify and grow last commit
+- [62979](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62979) Svelte: remove go to repository root button
+- [62980](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62980) feat/enterprise-portal: only do dotcomdb connection check on-demand
+- [62981](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62981) Svelte: add lines to directory groups
+- [62982](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62982) sg: fix nil `domain` and `EnvironmentDomainTypeNone` in diagram gen
+- [62983](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62983) Remove external accounts modal feature flag
+- [62986](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62986) insights: Fix overview page
+- [62990](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62990) bug: update version strings in upgradeReadiness
+- [62991](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62991) Svelte: make search header primary
+- [62993](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62993) Cody PLG: add support for Google Gemini modelsIn your sg local instant, look for the gemini models in the license page.Verify you are not seeing the following error when running the curl command listed in [https://sourcegraph.slack.com/archives/C05AGQYD528/p1717105626504719?thread_ts=1717011825.198899&cid=C05AGQYD528:](https://sourcegraph.slack.com/archives/C05AGQYD528/p1717105626504719?thread_ts=1717011825.198899&cid=C05AGQYD528:) `{"error":"model \"google/gemini-1.5-flash-latest\" is not allowed, allowed: []"}`
+- [62997](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62997) Svelte: Paper cuts for 5.5 release
+- [63002](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63002) fix(scip-syntax): Fixes a couple CLI annoyancesInternal change. Implements QoL changes to the `scip-syntax` CLI
+- [63003](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63003) PLG: extract Cody Pro routes to a separate file
+- [63004](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63004) Remove echo test alert
+- [63005](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63005) build: bump to rules_esbuild 0.16.0
+- [63008](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63008) chore/enterprise-portal: enable MSP rollouts
+- [63009](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63009) Svelte: clean up file tree
+- [63010](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63010) feat/lib/background: mark goroutine names as safe for Sentry
+- [63012](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63012) build: bump to aspect_bazel_lib 2.7.7
+- [63013](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63013) feat(cody-gateway): Add FLAGGED_MODEL_NAMES checkAdd a FLAGGED_MODEL_NAMES env var for Cody Gateway. Any requests using a supplied model will be flagged.
+- [63014](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63014) Embeddings: hide site admin references
+- [63016](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63016) msp: add Job runtime
+- [63022](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63022) build: upgrade to rules_js 2.0 RC
+- [63026](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63026) gitserver: Add observability for repo service
+- [63028](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63028) gitserver: Remove IsCloneable check from clone path
+- [63031](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63031) Publish sourcegraph-dev image
+- [63032](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63032) sg: speed up interrupt execution
+- [63041](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63041) Svelte: Add telemetry v2 to svelte client
+- [63043](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63043) gitserver: Increase default GitLongCommandTimeout
+- [63044](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63044) Use anyhow context, bail, and ensure instead of panicking
+- [63048](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63048) GRAPH-646: scip syntax java package namespace fix
+- [63049](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63049) chore/msp/runtime: disable telemetry on Google Monitoring/Trace APIs
+- [63050](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63050) chore/msp/spec: tidy up custom alerts spec
+- [63051](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63051) worker: add SAMS notifications subscriber
+- [63053](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63053) Cody Gateway: Add Gemini models to PLG and Enterprise usersAdded support for Google as an LLM provider for Cody, with the following models available through Cody Gateway: Gemini Pro (`gemini-pro-latest`), Gemini 1.5 Flash (`gemini-1.5-flash-latest`), and Gemini 1.5 Pro (`gemini-1.5-pro-latest`).
+- [63054](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63054) Chore: remove plausible scripts
+- [63055](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63055) Cody Gateway: remove feature flag requirement for Gemini modelsYou should be able to use the gemini model without the `"cody-pro-gemini-enabled"` feature flag enabled for your account for Pro users.
+- [63063](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63063) gitserver: Fix some cases of RevNotFound in CommitLog
+- [63065](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63065) build-tracker: remove old links
+- [63066](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63066) gitserver: Remove caching of cloned state
+- [63073](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63073) Change JetBrains IDE statuses from Beta to Stablechore(cody): Set JetBrains labels from Beta to Stable
+- [63079](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63079) sg: add command to fetch versions from release registry
+ - Add `sg release registry list` to list versions from the release registry
+- [63080](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63080) Svelte: fix editor button styling
+- [63082](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63082) Svelte: collapse path when too long
+- [63086](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63086) repoupdater: Prevent race condition of schedule preloading
+- [63087](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63087) chore/msp/runtime: add args as trace attributes, clean up tracing code
+- [63095](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63095) bazel: rules_js rc3 and remove deprecated "exclude_declarations" option
+ - Remove deprecated option `exclude_declarations_from_npm_packages` from local.bazelrc
+ - Update to rc3 of rules_js
+- [63096](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63096) Fix Cody onboarding redirect problemfix(cody): redirect Cody client requests to the access token creation page in all cases
+- [63099](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63099) Initialise authProviders array in Go code
+- [63101](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63101) cleanup: fix typo: scretTokenKey --> secretTokenKey
+- [63104](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63104) security: Auto-update package lockfiles for Sourcegraph base images
+- [63108](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/63108) msp: add 'author' and 'commit_message' annotations
+
+### Untracked
+
+The following PRs were merged onto the previous release branch but could not be automatically mapped to a corresponding commit in this release:
+- [62490](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62490) rel: bump minor for stitch graph + add support invalidating migrations repo rule
+- [62493](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62493) rel: remove broken annotation code
+- [62551](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62551) release: pass in `IS_DEVELOPMENT_RELEASE` flag to buildkite
+ - `IS_DEVELOPMENT` is now correctly passed to release tooling, allowing to skip certain steps.
+- [62553](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62553) release: execute gh via bazel
+ - Removes implicit dependency on CI agents having `gh` installed.
+- [62556](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62556) release: remove slack webhook requirement
+- [62767](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62767) security: Auto-update package lockfiles for Sourcegraph base images
+- [62793](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62793) Backport: Client Compatible Bedrock ARN handling (#62720)
+- [62905](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62905) security: Auto-update package lockfiles for Sourcegraph base images
+
+# v5.4.2198
+
+{/* RSS={"version":"v5.4.2198", "releasedAt": "2024-05-20"} */}
+
+### Added
+
+### Changed
+
+### Fixed
+
+- Fix a bug that caused Bedrock Provisioned Throughput model names to fail [#62695](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62695) ~~[#62642](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62642)~~
+- Fixed an issue where usernames were too eagerly suffixed with a random ID to prevent duplicates which could cause issues with Bitbucket Server permissions syncing where exact username matches are required. [#62747](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62747)
+- Fixed an issue where code graph configuration policies would miscategorize lightweight tags as branches. [#62671](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62671)
+- Fixed a bug in batch changes scheduling that could cause excessive CPU usage. [#62597](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62597)
+- Cody ignore: update version constraint error message [#62654](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62654)
+
+# v5.4.0
+
+### Added
+
+- Added rate and latency instrumentation for git / package repository syncing operations. These are visible in the gitserver dashboards (VCS "Clone/Fetch/IsCloneable" Metrics). [#61708](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/61708)
+- Added syntax highlighting for the [Pkl](https://pkl-lang.org/) configuration language. [#61478](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/61478)
+- New `rev:at.time()` search filter that allows you to search a branch at a point in time. [#61513](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/61513)
+- "cody.contextFilters" field to the site config. Admins can set include and exclude rules to define which repositories Cody can use as context in its requests to third-party LLMs. [#61101](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/61101), [#61641](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/61641)
+- Added whether "cody.contextFilters" field is configured in the site config to pings. [#62080](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62080)
+- Added exhaustive logging for all gRPC requests sent to gitserver. This feature is off by default, and can be enabled by setting the `SRC_GITSERVER_EXHAUSTIVE_LOGGING_ENABLED` environment variable to `true`. [#61270](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/61270)
+- Added an `internal` option for the `repositoryQuery` field for GitHub Enterprise code host connections. This will mirror all internal repositories on the code host. [#61924](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/61924)
+
+### Changed
+
+- Improved syntax highlighting for Dart. [#58480](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/58480)
+- The default noop Event type in the honey package has been replaced with a new type that aggregates fields in memory for testing and logging purposes. [#61854](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/61854)
+- Improved the performance of Language Stats Insights by 50-70% by increasing the concurrent requests from the frontend to the gitserver from 1 to 4. You can override the concurrency with the `GET_INVENTORY_GIT_SERVER_CONCURRENCY` environment variable. [#62011](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62011)
+- Raised the backend timeout for Language Stats Insights from 3 minutes to 5 minutes. You can override this with the `GET_INVENTORY_TIMEOUT` environment variable. [#62011](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62011)
+- Code insights drilldown behavior has been changed from a diff search to a point-in-time search with the new `rev:at.time()`. [#61953](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/61953)
+- The `FirstEverCommit` gitserver client method has been changed to use a new bespoke gRPC endpoint instead of the legacy `exec` endpoint. [#62173](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62173)
+- The `GetBehindAhead` gitserver client method has been changed to use a new bespoke gRPC endpoint instead of the legacy `exec` endpoint. [#62217](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62217)
+- All uses of the `DiffSymbols` gitserver client method have been replaced with the new `ChangedFiles` method. As such, the `DiffSymbos` method has been removed [#62355](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62355)
+
+### Fixed
+
+- Updated the Docker-in-Docker image to 26.0.0 to resolve several vulnerabilities. [#61735](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/61735)
+- The GetCommit() RPC in the gitserver service now uses the correct protobuf type that allows for non-utf8 byte sequences in commit messages, author names, and author emails. [#61940](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/61940)
+- The ArchiveReader() RPC in the gitserver service now uses the correct protobuf type that allows for non-utf8 byte sequences in file paths. [#61970](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/61970)
+- Pinned code intel popovers and popovers opened via the keyboard are properly shown again. [#61966](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/61966)
+- Syntax highlighting works correctly for JSX files. [#62027](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62027)
+- Changesets with a skipped CI check now have their CI status correctly displayed in the Batch Changes UI. [#62204](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62204)
+- Fixed the Sourcegraph login page auto-redirecting to the single auth provider when request access is enabled. [#62376](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62376)
+
+# v5.3.12303
+
+### Added
+
+- Indexed-search now supports draining a replica of indexes to support zero-downtime reduction in cluster size. [#62005](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62005)
+
+### Fixed
+
+- Rust binaries are now built in release mode to avoid unnecessary debug checks. [#61740](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/61740)
+- Fixed how scip-ctags reports errors to avoid failing search indexing on non-fatal errors. [#61712](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/61712)
+- Fixed a bug in Enterprise Cody context for queries containing only stopwords. [#61848](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/61848), [#62026](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/62026)
+- Fixed the instance dropdown on the zoekt grafana dashboard. [#61836](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/61836)
+
+# v5.3.11625
+
+### Changed
+
+- Notices configured in the site config now allow for specifying a style or color. [#61338](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/61338)
+- Reduce spamming error logs when canceling symbols indexing or canceling a syntax highlighting request. [#61880](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/61880), [#61719](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/61719), [#61732](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/61732)
+
+### Fixed
+
+- Fixed a bug where the `src batch preview` command could fail due to an incorrect file-not-found error. [#61984](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/61984)
+- Fixed a bug where the Roles page in the Site Admin view was inaccessible. [#61738](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/61738)
+- Fixed a panic in Cody Attribution in sourcegraph-frontend when reporting an error. [#60439](https://github.com/sourcegraph/sourcegraph-public-snapshot/issues/60439)
+
+# v5.3.9104
+
+### Added
+
+- GitHub app installations can now be refreshed from the Batch Changes Site Admin page. [#60125](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/60125)
+- The SAML auth provider configuration now supports a `usernameAttributeNames` field that can be used to specify a list of SAML attribute that should be used as the username. [#60603](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/60603)
+- Added the GraphQL query `User.evaluateFeatureFlag` to show if a feature flag is enabled or disabled for a user. [#60828](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/60828)
+- Search Jobs now supports diff, commit and path searches. Before, only file searches were supported. [#60883](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/60883)
+- Auth providers now support a `noSignIn` option that, when set to true, will hide the auth provider from the sign in page, but still allow users to connect the external account from their Account Security page for permissions syncing. [#60722](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/60722)
+- Added a "Commits" button to the folders in repos that shows commits for the items in that folder. [#60909](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/60909)
+- The frontend Grafana dashboard has a new Prometheus metric that tracks the rate of requests that Sourcegraph issues to external services. [#61348](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/61348)
+- Added support for the `gitURLType` setting for Gerrit, Sourcegraph now supports cloning from Gerrit via SSH. Note: Not on Cloud yet, like for all code hosts. [#61537](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/61537)
+- Support for OpenAI chat models for enterprise customers. [#61539](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/61539)
+- Added support for explicitly enumerating repositories to sync from Bitbucket Cloud. Previously, Sourcegraph would automatically sync all repositories from a Bitbucket Cloud workspace. [#61536](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/61536)
+
+### Changed
+
+- GitHub apps installation records will only be deleted from the database if the GitHub App has been uninstalled or if the GitHub app has been deleted. [#60460](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/60460)
+- The Anthropic provider for Cody has been updated to use the messages API which includes support for Claude 3 models. This is applicable to both BYOK and Cody Gateway users. The messages API does not support model identifiers which only set a major model version such as: `claude-2`, `claude-instant-v1` and `claude-instant-1`. Default values have been updated to `claude-2.0` and `claude-instant-1.2`, any legacy models identifiers in the site config will be set to the corresponding default previously mentioned. [#60953](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/60953) [#61324](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/61324)
+- The AWS Bedrock provider for Cody has been updated to use Anthropic's Messages API, bringing support for Claude 3 models. [#61347](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/61347)
+- Notices configured in the site config now allow for specifying a style or color. [#61338](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/61338)
+
+### Fixed
+
+- Code Monitors now properly ignores monitors associated with soft-deleted users, which previously would have led to an error on the overview page. [#60405](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/60405)
+- Fixed a bug where clicking "Exclude Repo" on Azure DevOps or Gerrit repositories would not work. [#60509](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/60509)
+- Links in codeintel popovers respect the revision from the URL. [#60545](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/60545)
+- Fixed an issue where repositories with a name ending in `.git` failed to clone. [#60627](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/60627)
+- Fixed an issue where Sourcegraph could lose track of repositories on gitserver, leaving behind unnecessary data and inconsistent clone status in the UI. [#60627](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/60627)
+- The "Commits" button in repository and folder pages links to commits in the current revision instead of in the default branch. [#61408](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/61408)
+- Fixed an issue where code insights queries would fail if there are more than 65535 restricted repositories and regular expressions. [#61580](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/61580)
+- The "Commits" button in repository and folder pages uses Perforce language and links to `/-/changelists` for Perforce depots when the experimental feature `perforceChangelistMapping` is enabled. [#61408](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/61408)
+- Selecting "View blame prior to this change" on a file that was moved will now correctly navigate to the old file location at the specified commit. [#61577](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/61577)
+- Git blame performance on large files with a large number of commits has been drastically improved. [#61577](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/61577)
+- Code Insights now properly ignores search API alerts, which previously would have led to a code insight error. [#61431](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/61431)
+
+# v5.3.3
+
+### Added
+
+### Changed
+
+- Changed the Azure OpenAI Cody provider to use the stable 2023-05-15 api version, due to the retirement of previous preview api versions. [61005](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/61005)
+
+### Fixed
+
+- Fixed an issue in our build process that broke tooltips and validation in the settings editors. [#60808](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/60808)
+
+- Fixes a bug where the reference panel would not show any definitions or references for Protocol Buffers (and other languages where the name contained a space). [#60987](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/60987)
+
+- Fixed a bug where permission syncs could be scheduled for repositories or users even when a sync is already scheduled or in progress, leading to significant delays in the permissions sync system as a whole. [#61024](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/61024)
+
+- Fixed a bug in gitserver where it was possible to use expired Github App authorization tokens when syncing a large repository. Now, gitserver will use the latest tokens for each step of the syncing process (and refresh them if necessary). [#61179](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/61179/)
+
+### Removed
+
+# v5.3.2
+
+### Fixed
+
+- A bug in search that could trigger a panic
+- An unintentional change to the search results when using the LineMatch API which would include surrounding lines with no matches
+- Autoupgrade only looks for open db connections from the Sourcegraph application services, and disregards other applications connected to the postgres instance. [#60771](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/60771)
+- Fixes a bug where hovers would not show up in C++ headers with the `.hxx` extension. [#60662](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/60662)
+
+# v5.3.1
+
+### Fixed
+
+- Updated container images to fix CVE-2023-4408, CVE-2023-50387, CVE-2023-50868, CVE-2023-5517, CVE-2023-5679, CVE-2023-6516
+
+
+# v5.3.0
+
+### Added
+
+- The search bar now supports keyword search by default, which ANDs terms together instead of searching literally as before. The behavior can be disabled through a toggle on the search results page. [#58815](https://github.com/sourcegraph/sourcegraph-public-snapshot/issues/58815)
+- The `has.topic` filter now supports filtering by Gitlab topics. [#57649](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/57649)
+- Batch Changes now allows changesets to be exported in CSV and JSON format. [#56721](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/56721)
+- Supports custom ChatCompletion models in Cody clients for dotcom users. [#58158](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/58158)
+- Topics synced from GitHub and GitLab are now displayed for repository matches in the search results and on the repository tree page. [#58927](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/58927)
+- Added a new column "Repository metadata JSON" to the CSV export of repository search results, which includes the JSON encoded object of metadata key-value pairs. [#59334](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/59334)
+- Expiry to access tokens. Users can now select a maximum timespan for which a token is valid. Tokens will automatically lose access after this period. Default timeframes and an override to disable access tokens without expiration can be configured in the `auth.accessTokens` section of the site configuration. [#59565](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/59565)
+- Gerrit code host connections now support an 'exclude' field that prevents repos in this list from being synced. [#59739](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/59739)
+- Limit the number of active access tokens for a user. By default users are able to have 25 active access tokens. This limit can be configured using the `maxTokensPerUser` setting in the `auth.accessTokens` section of the site configuration. [#59731](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/59731)
+- Add experimental support for .cody/ignore when retrieving remote context. To enable it, set `experimentalFeatures.codyContextIgnore: true` in the site configuration. [#59836](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/59836), [#59907](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/59907)
+- Site admin, link to the Cody Analytics service. [#60371](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/60371)
+- Added a reimagined filter panel to the search result page, facilitating a workflow centered around iterative refinement.
+- Search results were treated to a design refresh, improving information density of results. [#59834](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/59834)
+- Added a preview pane to file search results so you can view the full file without navigating away from the search results. [#58311](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/58311)
+
+### Changed
+
+- `cody.restrictUsersFeatureFlag` has been deprecated and replaced by role based access control instead. Until the old configuration value is removed from your site config, it will be respected just as before but with a warning displayed at the top of Sourcegraph. Once removed, the old feature flag will not be respected and instead the Cody access will be managed via role based access controls, see [the docs](/cody/overview/enable-cody-enterprise#enable-cody-only-for-some-users) for more information. [#58831](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/58831)
+- The setting `experimentalFeatures.searchQueryInput` now refers to the new query input as `v2` (not `experimental`).
+- Search-based code intel doesn't include the currently selected search context anymore. It was possible to get into a situation where search-based code intel wouldn't find any information due to being restricted by the current search context. [#58010](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/58010)
+- The last commit which changed a file/directory is now shown in the files panel on the repo and file pages. To avoid duplicating information and confusion, the commits panel was removed. [58328](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/58328)
+- Clicking on a search result now opens the blob view at the same commit as the search result. Before, blob views were opened at the tip of the default branch, which sometimes caused inconsistencies in line numbers if the index was out of date. [#58381](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/58381)
+- The `exclude` configuration for code host configuration has been updated to allow chaining multiple conditions together and filtering GitHub repositories based on their size or number of GitHub stars. [#58377](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/58377) and [#58405](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/58405)
+ - Multiple attributes on _a single_ `exclude` entry now have to be all true for a repository to be excluded. Example: `{"exclude": [{"name": "github.com/example/example"}, {"id": "my-id"}]}` will _only_ exclude repositories that have the name _and_ the id mentioned.
+ - GitHub code host connections can exclude by size and stars now: `{"exclude": [{"name": "github.com/example/example"}, {"stars": "< 100", "size": ">= 1GB"}]}`
+ - For `size` and `stars` the supported operators are `<`, `>`, `<=`, `>=`.
+ - For `size` the supported units are `B`, `b`, `kB`, `KB`, `kiB`, `KiB`, `MiB`, `MB`, `GiB`, `GB`. No decimals points are supported.
+- Structural Search is now disabled by default. To enable it, set `experimentalFeatures.structuralSearch: "enabled"` in the site configuration. [#57584](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/57584)
+- Search Jobs switches the format of downloaded results from CSV to JSON. [#59619](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/59619)
+- [Search Jobs](/code_search/how-to/search-jobs) is now in beta and enabled by default. It can be disabled in the site configuration by setting `experimentalFeatures.searchJobs: false`.
+- The search input on the search homepage is now automatically focused when the page loads.
+- GRPC is now the only method for our internal APIs, and can not be disabled. All of corresponding the REST implementations have been removed. The vast majority of customers upgrading to 5.3 don't need to take any action - The change should be invisible. However, if you have restrictions on Sourcegraph’s internal (service to service) traffic, some firewall or security configurations may be necessary. You can downgrade to Sourcegraph 5.2 and disable gRPC while you troubleshoot / reach out to our customer support team. See [https://sourcegraph.com/docs/admin/updates/grpc](https://sourcegraph.com/docs/admin/updates/grpc) for more details. [#59093](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/59093)
+- The default `count:` for search has been increased to 10000, significantly increasing the number of searches that are exhaustive by default. [#60114](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/60114)
+
+### Fixed
+
+- Site configuration edit history no longer breaks when the user that made the edit is deleted. [#57656](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/57656)
+- Drilling down into an insights query no longer mangles `content:` fields in your query. [#57679](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/57679)
+- The blame column now shows correct blame information when a hunk starts in a folded code section. [#58042](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/58042)
+- Fixed a bug where typing in the GraphQL editor in the Site Admin API console could cause the cursor to jump to the start of the editor. [#57862](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/57862)
+- The blame column no longer ignores whitespace-only changes by default. [#58134](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/58134)
+- Long lines now wrap correctly in the diff view. [#58138](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/58138)
+- Fixed an issue in the search input where pressing Enter after selecting a suggestion would sometimes insert another suggestions instead of submitting the query. [#58186](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/58186)
+- Fixed an issue where having sub-repo permissions enabled could cause repositories with a large number of files in directories to become unviewable. [#59420](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/59420)
+- On the search context, code monitoring, code insights, saved searches or notebook pages, when selecting a repository or file suggestion in the query input with Enter the suggestion is now properly appended to the query instead of navigating away to the corresponding repository or file page. [#59941](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/59941)
+- Perforce email matching for user permissions is now case insensitive, matching Perforce behavior. [#60252](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/60252)
+- A bug with syncing GitHub App installations that caused installations to be truncated after the first 30 orgs. [#60383](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/60383)
+- Various significant performance optimizations in the search and code navigation user flows.
+
+### Removed
+
+- The experimental GraphQL query `User.invitableCollaborators`.
+- The following experimental settings in site-configuration are now deprecated and will not be read anymore: `maxReorderQueueSize`, `maxQueueMatchCount`, `maxReorderDurationMS`. [#57468](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/57468)
+- The feature-flag `search-ranking`, which allowed to disable the improved ranking introduced in 5.1, is now deprecated and will not be read anymore. [#57468](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/57468)
+- The GitHub Proxy service is no longer required and has been removed from deployment options. [#55290](https://github.com/sourcegraph/sourcegraph-public-snapshot/issues/55290)
+- The VSCode search extension "Sourcegraph for VS Code" has been sunset and removed from Sourcegraph
+ repository. [#58023](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/58023)
+- The `rateLimit` configuration for Perforce code host connections has been removed to avoid confusion, it was unused. [#58188](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/58188)
+- The feature flag `search-ranking` is now completely removed. [#58156](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/58156)
+- The notepad UI, notebook creation feature. [#58217](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/58217)
+- The experimental `indexRepositoryName` option for the rust packages code host connection has been removed. [#59176](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/59176)
+- The column "Repository metadata" in the CSV export of repository search results is now deprecated and will be removed in a future release. Use "Repository metadata JSON" instead [#59334](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/59334)
+- Remote embeddings as context source for Cody has been removed. [#59493](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/59493)
+
+# v5.2.7
+
+### Added
+
+### Fixed
+
+- The reference panel correctly shows definition and reference information instead of a "Could not find token" error for MATLAB. [#59636](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/59636)
+- The auto-index configuration page correctly shows any auto-inference errors instead of a nil pointer exception. [#59756](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/59756)
+
+### Removed
+
+### Changed
+
+# v5.2.6
+
+### Added
+
+- Implement adding automatic retry support for idempotent gRPC methods [#59404](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/59404)
+
+### Fixed
+
+- Fix executors auth header `installSrc` [#59391](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/59391)
+- Avoid constantly rerunning failed embeddings jobs. [#58980](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/58980)
+
+# v5.2.5
+
+### Added
+
+- Added Cody providers data to pings. [#58848](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/58848)
+- Added the ability to proxy authentication requests when using the Azure OpenAI Cody provider. [#58862](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/58862)
+
+### Fixed
+
+- Fixed an issue where updating a generic git code host would cause it to become unrestricted if permissions user mapping is enabled. [#58772](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/58772)
+- Fail embeddings jobs immediately if the rate limit is exceeded. [#58869](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/58869)
+
+### Changed
+
+- Improved the admin page for search indexing. [#58866](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/58866)
+
+### Removed
+
+# v5.2.4
+
+### Added
+
+- Added the ability to use Workload Identity, Managed Identity and Environmental credentials when using the Azure OpenAI completions and embeddings providers [#58289](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/58289)
+- Added support for cloning via SSH from Azure DevOps. [#58655](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/58655)
+
+### Fixed
+
+- Fixed two issues in Zoekt that could cause out of memory errors during search indexing. [sourcegraph/zoekt#686](https://github.com/sourcegraph/zoekt/pull/686), [sourcegraph/zoekt#689](https://github.com/sourcegraph/zoekt/pull/689)
+- Fixed performance issue with embeddings job scheduling. (#58651)[https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/58651]
+
+# v5.2.3
+
+### Added
+
+- Added configurable GraphQL query cost limitations to prevent unintended resource exhaustion. Default values are now provided and enforced, replacing the previously unlimited behaviour. For more information, please refer to: [GraphQL Cost Limits Documentation](/api/graphql#cost-limits). See details at [#58346](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/58346).
+- Sourcegraph now supports connecting to Bitbucket Cloud using Workspace Access Tokens. [#58465](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/58465).
+
+### Fixed
+
+- Defining file filters for embeddings jobs no longer causes all files to be skipped if `MaxFileSizeBytes` isn't defined. [#58262](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/58262)
+
+# v5.2.2
+
+### Added
+
+- Added a new authorization configuration options to GitLab code host connections: "markInternalReposAsPublic". Setting "markInternalReposAsPublic" to true is useful for organizations that have a large amount of internal repositories that everyone on the instance should be able to access, removing the need to have permissions to access these repositories. Additionally, when configuring a GitLab auth provider, you can specify "syncInternalRepoPermissions": false, which will remove the need to sync permissions for these internal repositories. [#57858](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/57858)
+- Experimental support for OpenAI powered autocomplete has been added. [#57872](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/57872)
+
+### Fixed
+
+- Updated the endpoint used by the AWS Bedrock Claude provider. [#58028](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/58028)
+
+# v5.2.1
+
+### Added
+
+- Added two new authorization configuration options to GitHub code host connections: "markInternalReposAsPublic" and "syncInternalRepoPermissions". Setting "markInternalReposAsPublic" to true is useful for organizations that have a large amount of internal repositories that everyone on the instance should be able to access, removing the need to have permissions to access these repositories. Setting "syncInternalRepoPermissions" to true adds an additional step to user permission syncs that explicitly checks for internal repositories. However, this could lead to longer user permission sync times. [#56677](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/56677)
+- Fixed an issue with Code Monitors that could cause users to be notified multiple times for the same commit [#57546](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/57546)
+- Fixed an issue with Code Monitors that could prevent a new code monitor from being created if it targeted multiple repos [#57546](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/57546)
+- Sourcegraph instances will now emit a limited set of [telemetry events](/admin/telemetry) in the background by default ([#57605](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/57605)). Enablement will be based on the following conditions:
+ - Customers with a license key created after October 3, 2023, or do not have a valid license key configured, will export all telemetry events recorded in the new system.
+ - Customers with a license key created before October 3, 2023 will export only Cody-related events recorded in the new system, as covered by the [Cody Usage and Privacy Notice](https://about.sourcegraph.com/terms/cody-notice).
+ - If you have a previous agreement regarding telemetry sharing, you account representative will reach out with more details.
+
+### Fixed
+
+- Fixed a user's Permissions page being inaccessible if the user has had no permission syncs with an external account connected. [#57372](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/57372)
+- Fixed a bug where site admins could not view a user's permissions if they didn't have access to all of the repositories the user has. Admins still won't be able to see repositories they don't have access to, but they will now be able to view the rest of the user's repository permissions. [#57375](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/57375)
+- Fixed a bug where gitserver statistics would not be properly decoded / reported when using REST (i.e. `experimentalFeatures.enableGRPC = false` in site configuration). [#57318](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/57318)
+- Updated the `curl` and `libcurl` dependencies to `8.4.0-r0` to fix [CVE-2023-38545](https://curl.se/docs/CVE-2023-38545.html). [#57533](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/57533)
+- Fixed a bug where commit signing failed when creating a changeset if `batchChanges.enforceFork` is set to true. [#57520](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/57520)
+- Fixed a regression in ranking of Go struct and interface in search results. [zoekt#655](https://github.com/sourcegraph/zoekt/pull/655)
+
+# v5.2.0
+
+### Added
+
+- Experimental support for AWS Bedrock Claude for the completions provider has been added. [#56321](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/56321)
+- Recorded command logs can now be viewed for Git operations performed by Sourcegraph. This provides auditing and debugging capabilities. [#54997](https://github.com/sourcegraph/sourcegraph-public-snapshot/issues/54997)
+- Disk usage metrics for gitservers are now displayed on the site admin Git Servers page, showing free/total disk space. This helps site admins monitor storage capacity on GitServers. [#55958](https://github.com/sourcegraph/sourcegraph-public-snapshot/issues/55958)
+- Overhauled Admin Onboarding UI for enhanced user experience, introducing a license key modal with validation, automated navigation to Site Configuration Page, an interactive onboarding checklist button, and direct documentation links for SMTP and user authentication setup. [56366](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/56366)
+- New experimental feature "Search Jobs". Search Jobs allows you to run search queries across your organization's codebase (all repositories, branches, and revisions) at scale. It enhances the existing Sourcegraph's search capabilities, enabling you to run searches without query timeouts or incomplete results. Please refer to the [documentation](/code_search/how-to/search-jobs) for more information.
+
+### Changed
+
+- OpenTelemetry Collector has been upgraded to v0.81, and OpenTelemetry packages have been upgraded to v1.16. [#54969](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/54969), [#54999](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/54999)
+- Bitbucket Cloud code host connections no longer automatically syncs the repository of the username used. The appropriate workspace name will have to be added to the `teams` list if repositories for that account need to be synced. [#55095](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/55095)
+- Newly created access tokens are now hidden by default in the Sourcegraph UI. To view a token, click "show" button next to the token. [#56481](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/56481)
+- The GitHub proxy service has been removed and is no longer required. You can safely remove it from your deployment. [#55290](https://github.com/sourcegraph/sourcegraph-public-snapshot/issues/55290)
+- On startup, Zoekt indexserver will now delete the `/.indexserver.tmp` directory to remove leftover repository clones, possibly causing a brief delay. Due to a bug, this directory wasn't previously cleaned up and could cause unnecessary disk usage. [zoekt#646](https://github.com/sourcegraph/zoekt/pull/646).
+- GRPC is now used by default for all internal (service to service) communication. This change should be invisible to most customers. However, if you're running in an environment that places restrictions on Sourcegraph's internal traffic, some prior configuration might be required. See the ["Sourcegraph 5.2 gRPC Configuration Guide"](/admin/updates/grpc) for more information. [#56738](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/56738)
+
+### Fixed
+
+- Language detection for code highlighting now uses `go-enry` for all files by default, which fixes highlighting for MATLAB files. [#56559](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/56559)
+
+### Removed
+
+- Indexed-search has removed the deprecated environment variable ZOEKT_ENABLE_LAZY_DOC_SECTIONS [zoekt#620](https://github.com/sourcegraph/zoekt/pull/620)
+- The federation feature that could redirect users from their own Sourcegraph instance to public repositories on Sourcegraph.com has been removed. It allowed users to open a repository URL on their own Sourcegraph instance and, if the repository wasn't found on that instance, the user would be redirect to the repository on Sourcegraph.com, where it was possibly found. The feature has been broken for over a year though and we don't know that it was used. If you want to use it, please open a feature-request issue and tag the `@sourcegraph/source` team. [#55161](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/55161)
+- The `applySearchQuerySuggestionOnEnter` experimental feature flag in user settings was removed, and this behavior is now always enabled. Previously, this behavior was on by default, but it was possible to disable it.
+- The feature-flag `search-hybrid`, which allowed to disable the performance improvements for unindexed search in 4.3, is now deprecated and will not be read anymore. [#56470](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/56470)
+
+# v5.1.9
+
+### Added
+
+- Enable "Test connection" for Perforce code hosts. The "Test connection" button in the code host page UI now works for Perforce code hosts. [#56697](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/56697)
+
+### Changed
+
+- User access to Perforce depots is sometimes denied unintentionally when using `"authorization"/"subRepoPermissions": true` in the code host config and the protects file contains exclusionary entries with the Host field filled out. Ignoring those rules (that use anything other than the wildcard (`*`) in the Host field) is now toggle-able by adding `"authorization"/"ignoreRulesWithHost"` to the code host config and setting the value to `true`. [#56450](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/56450)
+
+### Fixed
+
+- Fixed an issue where the "gitLabProjectVisibilityExperimental" feature flag would not be respected by the permissions syncer. This meant that users on Sourcegraph that have signed in with GitLab would not see GitLab internal repositories that should be accessible to everyone on the GitLab instance, even though the feature flag was enabled [#56492](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/56492)
+- Fixed a bug when syncing repository lists from GitHub that could lead to 404 errors showing up when running into GitHub rate limits [#56478](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/56478)
+
+# v5.1.8
+
+### Added
+
+- Added experimental autocomplete support for Azure OpenAI [#56063](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/56063)
+
+### Changed
+
+- Improved stability of gRPC connections [#56314](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/56314), [#56302](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/56302), [#56298](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/56298), [#56217](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/56217)
+
+# v5.1.7
+
+### Changed
+
+- Pressing `Mod-f` will always select the input value in the file view search [#55546](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/55546)
+- Caddy has been updated to version 2.7.3 resolving a number of vulnerabilities. [#55606](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/55606)
+- The commit message defined in a batch spec will now be passed to `git commit` on stdin using `--file=-` instead of being included inline with `git commit -m` to improve how the message is interpreted by `git` in certain edge cases, such as when the commit message begins with a dash, and to prevent extra quotes being added to the message. This may mean that previous escaping strategies will behave differently.
+
+### Fixed
+
+- Fixed a bug in the `deploy-sourcegraph-helm` deployment of Sourcegraph, for sufficiantly large scip indexes uploads will fail when the precise-code-intel worker attempts to write to `/tmp` and doesn't have a volume mounted for this purpose. See kubernetes release notes for more details [#342](https://github.com/sourcegraph/deploy-sourcegraph-helm/pull/343)
+
+# v5.1.6
+
+### Added
+
+- New Prometheus metrics have been added to track the response / request sizes of gRPC calls. [#55381](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/55381)
+- A new embeddings site configuration setting `excludeChunkOnError` allows embedding jobs to complete job execution despite chunks of code or text that fail. When enabled the chunks are skipped after failed retries but the index can continue being populated. When disabled the entire job fails and the index is not saved. This setting is enabled by default. Embedding job statistics now capture `code_chunks_excluded` and `text_chunks_excluded` for successfully completed jobs. Total excluded chunks and file names for excluded chunks are logged as warnings. [#55180](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/55180)
+- Experimental support for Azure OpenAI for the completions and embeddings provider has been added. [#55178](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/55178)
+- Added a feature flag for alternate GitLab project visibility resolution. This may solve some weird cases with not being able to see GitLab internal projects. [#54426](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/54426)
+ - To use this feature flag, create a Boolean feature flag named "gitLabProjectVisibilityExperimental" and set the value to True.
+- It is now possible to add annotations to pods spawned by jobs created by the Kubernetes executor. [#55361](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/55361)
+
+### Changed
+
+- Updated all packages in container images to latest versions
+- Updated Docker-in-Docker image from 23.0.1 to 23.0.6
+- The gRPC implementation for the Symbol service's `LocalCodeIntel` endpoint has been changed to stream its results. [#55242](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/55242)
+- When using OpenAI or Azure OpenAI for Cody completions, code completions will be disabled - Chat will continue to work. This is because we currently don't support code completions with OpenAI. [#55624](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/55624)
+
+### Fixed
+
+- Fixed a bug where user account requests could not be approved even though the license would permit user creation otherwise. [#55482](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/55482)
+- Fixed a bug where the background scheduler for embedding jobs based on policies would not schedule jobs for private repositories. [#55698](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/55698)
+- Fixed a source of inconsistency in precise code navigation, affecting implementations and prototypes especially. [#54410](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/54410)
+
+### Removed
+
+# v5.1.5
+
+### Known Issues
+
+- Standard and multi-version upgrades are not currently working from Sourcegraph versions 5.0.X to 5.1.5. As a temporary workaround, please upgrade 5.0.X to 5.1.0, then 5.1.0 to 5.1.5.
+
+### Fixed
+
+- Fixed an embeddings job scheduler bug where if we cannot resolve one of the repositories or its default branch then all repositories submitted will not have their respective embeddings job enqueued. Embeddings job scheduler will now continue to schedule jobs for subsequent repositories in the submitted repositories set. [#54701](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/54701)
+- Creation of GitHub Apps will now respect system certificate authorities when specifying certificates for the tls.external site configuration. [#55084](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/55084)
+- Passing multi-line Coursier credentials in JVM packages configuration should now work correctly. [#55113](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/55113)
+- SCIP indexes are now ingested in a streaming fashion, eliminating out-of-memory errors in most cases, even when uploading very large indexes (1GB+ uncompressed). [#53828](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/53828)
+- Moved the license checks to worker service. We make sure to run only 1 instance of license checks this way. [54854](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/54854)
+- Updated base images to resolve issues in curl, OpenSSL, and OpenSSL. [55310](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/55310)
+- The default message size limit for gRPC clients has been raised from 4MB to 90MB. [#55209](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/55209)
+- The message printing feature for the custom gRPC internal error interceptor now supports logging all internal error types, instead of just non-utf 8 errors. [#55130](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/55130)
+- Fixed an issue where GitHub Apps could not be set up using Firefox. [#55305](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/55305)
+- Fixed nil panic on certain GraphQL fields when listing users. [#55322](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/55322)
+
+### Changed
+
+- The "Files" tab of the fuzzy finder now allows you to navigate directly to a line number by appending `:NUMBER`. For example, the fuzzy query `main.ts:100` opens line 100 in the file `main.ts`. [#55064](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/55064)
+- The gRPC implementation for the Symbol service's `LocalCodeIntel` endpoint has been changed to stream its results. [#55242](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/55242)
+- GitLab auth providers now support an `ssoURL` option that facilitates scenarios where a GitLab group requires SAML/SSO. [#54957](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/54957)
+
+### Added
+
+### Removed
+
+# v5.1.4
+
+### Fixed
+
+- A bug where we would temporarily use much more memory than needed during embeddings fetching. [#54972](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/54972)
+
+### Changed
+
+- The UI for license keys now displays more information about license validity. [#54990](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/54990)
+- Sourcegraph now supports more than one auth provider per URL. [#54289](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/54289)
+- Site-admins can now list, view and edit all code monitors. [#54981](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/54981)
+
+# v5.1.3
+
+### Changed
+
+- Cody source code (for the VS Code extension, CLI, and client shared libraries) has been moved to the [sourcegraph/cody repository](https://github.com/sourcegraph/cody).
+- `golang.org/x/net/trace` instrumentation, previously available under `/debug/requests` and `/debug/events`, has been removed entirely from core Sourcegraph services. It remains available for Zoekt. [#53795](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/53795)
+
+### Fixed
+
+- Fixed an embeddings job scheduler bug where if we cannot resolve one of the repositories or its default branch then all repositories submitted will not have their respective embeddings job enqueued. Embeddings job scheduler will now continue to schedule jobs for subsequent repositories in the submitted repositories set. [#54701](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/54701)
+
+# v5.1.2
+
+### Fixed
+
+- Fixes a crash when uploading indexes with malformed source ranges (this was a bug in scip-go). [#54304](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/54304)
+- Fixed validation of Bitbucket Cloud configuration in site-admin create/update form. [#54494](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/54494)
+- Fixed race condition with grpc `server.send` message. [#54500](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/54500)
+- Fixed a configuration initialization issue that broke the outbound request in the site admin page. [#54745](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/54745)
+- Fixed Postgres DSN construction edge-case. [#54858](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/54858)
+
+# v5.1.1
+
+### Fixed
+
+- Fixed the default behaviour when the explicit permissions API is enabled. Repositories are no longer marked as unrestricted by default. [#54419](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/54419)
+
+# v5.1.0
+
+> **Note**: As of 5.1.0, the limited OSS subset of Sourcegraph has been removed, and code search OSS code has been relicensed going forward. See https://github.com/sourcegraph/sourcegraph-public-snapshot/issues/53528#issuecomment-1594967818 for more information (blog post coming soon).
+
+> **Note**: As of 5.1.0, the `rsa-sha` signature algorithm is no longer supported when connecting to code hosts over SSH. If you encounter the error `sign_and_send_pubkey: no mutual signature supported` when syncing repositories, see [Repository authentication](/admin/repo/auth#error-sign_and_send_pubkey-no-mutual-signature-supported) for more information and steps to resolve the issue.
+
+### Known issues
+
+- There is an issue with Sourcegraph instances configured to use explicit permissions using permissions.userMapping in Site configuration, where repository permissions are not enforced. Customers using the explicit permissions API are advised to upgrade to v5.1.1 directly.
+- There is an issue with creating and updating existing Bitbucket.org (Cloud) code host connections due to problem with JSON schema validation which prevents the JSON editor from loading and surfaces as an error in the UI.
+
+### Added
+
+- Executors natively support Kubernetes environments. [#49236](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/49236)
+- Documentation for GitHub fine-grained access tokens. [#50274](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/50274)
+- Code Insight dashboards retain size and order of the cards. [#50301](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/50301)
+- The LLM completions endpoint is now exposed through a GraphQL query in addition to the streaming endpoint [#50455](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/50455)
+- Permissions center statistics pane is added. Stats include numbers of queued jobs, users/repos with failed jobs, no permissions, and outdated permissions. [#50535](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/50535)
+- SCIM user provisioning support for Deactivate/Reactivation of users. [#50533](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/50533)
+- Login form can now be configured with ordering and limit of auth providers. [See docs](/admin/auth/login_form). [#50586](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/50586), [50284](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/50284) and [#50705](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/50705)
+- OOM reaper events affecting `p4-fusion` jobs on `gitserver` are better detected and handled. Error (non-zero) exit status is used, and the resource (CPU, memory) usage of the job process is appended to the job output so that admins can infer possible OOM activity and take steps to address it. [#51284](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/51284)
+- When creating a new batch change, spaces are automatically replaced with dashes in the name field. [#50825](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/50825) and [51071](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/51071)
+- Support for custom HTML injection behind an environment variable (`ENABLE_INJECT_HTML`). This allows users to enable or disable HTML customization as needed, which is now disabled by default. [#51400](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/51400)
+- Added the ability to block auto-indexing scheduling and inference via the `codeintel_autoindexing_exceptions` Postgres table. [#51578](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/51578)
+- When an admin has configured rollout windows for Batch Changes changesets, the configuration details are now visible to all users on the Batch Changes settings page. [#50479](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/50479)
+- Added support for regular expressions in`exclude` repositories for GitLab code host connections. [#51862](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/51862)
+- Branches created by Batch Changes will now be automatically deleted on the code host upon merging or closing a changeset if the new `batchChanges.autoDeleteBranch` site setting is enabled. [#52055](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/52055)
+- Repository metadata now generally available for everyone [#50567](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/50567), [#50607](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/50607), [#50857](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/50857), [#50908](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/50908), [#972](https://github.com/sourcegraph/src-cli/pull/972), [#51031](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/51031), [#977](https://github.com/sourcegraph/src-cli/pull/977), [#50821](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/50821), [#51258](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/51258), [#52078](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/52078), [#51985](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/51985), [#52150](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/52150), [#52249](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/52249), [#51982](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/51982), [#51248](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/51248), [#51921](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/51921), [#52301](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/52301)
+- Batch Changes for Gerrit Code Hosts [#52647](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/52647).
+- Batch Changes now supports per-batch-change control for pushing to a fork of the upstream repository when the property `changesetTemplate.fork` is specified in the batch spec. [#51572](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/51572)
+- Executors can now be configured to process multiple queues. [#52016](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/52016)
+- Added `isCodyEnabled` as a new GraphQL field to `Site`. [#52941](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/52941)
+- Enabled improved search ranking by default. This feature can be disabled through the `search-ranking` feature flag.[#53031](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/53031)
+- Added token callback route for Cody in VS Code and VS Code insiders. [#53313](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/53313)
+- Latest repository clone/sync output is surfaced in the "Mirroring and cloning" page (`{REPO}/-/settings/mirror`). Added primarily to enable easier debugging of issues with Perforce depots, it can also be useful for other code hosts. [#51598](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/51598)
+- New `file:has.contributor(...)` predicate for filtering files based on contributors. [#53206](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/53206)
+- Added multi-repo scope selector for Cody on the web supporting unified context generation API which uses combination of embeddings search and keyword search as fallback for context generation. [53046](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/53046)
+- Batch Changes can now sign commits for changesets published on GitHub code hosts via GitHub Apps. [#52333](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/52333)
+- Added history of changes to the site configuration page. Site admins can now see information about changes made to the site configuration, by whom and when. [#49842](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/49842)
+- For Perforce depots, users will now see the changelist ID (CL) instead of Git commit SHAs when visiting a depot or the view changelists page [#51195](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/51195)
+- Visiting a specific CL will now use the CL ID in the URL instead of the commit SHA. Other areas affected by this change are browsing files at a specific CL, viewing a specific file changed as part of a specific CL. To enable this behaviour, site admins should set `"perforceChangelistMapping": "enabled"` under experimentalFeatures in the site configuration. Note that currently we process only one perforce depot at a time to map the commit SHAs to their CL IDs in the backend. In a subsequent release we will add support to process multiple depots in parallel. Other areas where currently commit SHAs are used will be updated in future releases. [#53253](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/53253) [#53608](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/53608) [#54051](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/54051)
+- Added autoupgrading to automatically perform multi-version upgrades, without manual `migrator` invocations, through the `frontend` deployment. Please see the [documentation](/admin/updates/automatic) for details. [#52242](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/52242) [#53196](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/53196)
+
+### Changed
+
+- Access tokens now begin with the prefix `sgp_` to make them identifiable as secrets. You can also prepend `sgp_` to previously generated access tokens, although they will continue to work as-is without that prefix.
+- The commit message defined in a batch spec will now be quoted when git is invoked, i.e. `git commit -m "commit message"`, to improve how the message is interpreted by the shell in certain edge cases, such as when the commit message begins with a dash. This may mean that previous escaping strategies will behave differently.
+- 429 errors from external services Sourcegraph talks to are only retried automatically if the Retry-After header doesn't indicate that a retry would be useless. The time grace period can be configured using `SRC_HTTP_CLI_EXTERNAL_RETRY_AFTER_MAX_DURATION` and `SRC_HTTP_CLI_INTERNAL_RETRY_AFTER_MAX_DURATION`. [#51743](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/51743)
+- Security Events NO LONGER write to database by default - Instead, they will be written in the [audit log format](/admin/audit_log) to console. There is a new site config setting `log.securityEventLogs` that can be used to configure security event logs to write to database if the old behaviour is desired. This new default will significantly improve performance for large instances. In addition, the old environment variable `SRC_DISABLE_LOG_PRIVATE_REPO_ACCESS` no longer does anything. [#51686](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/51686)
+- Audit Logs & Security Events are written with the same severity level as `SRC_LOG_LEVEL`. This prevents a misconfiguration
+ issue when `log.AuditLogs.SeverityLevel` was set below the overall instance log level. `log.AuditLogs.SeverityLevel` has
+ been marked as deprecated and will be removed in a future release [#52566](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/52566)
+- Update minimum supported Redis version to 6.2 [#52248](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/52248)
+- The batch spec properties [`transformChanges`](/batch-changes/batch-spec-yaml-reference#transformchanges) and [`workspaces`](/batch-changes/batch-spec-yaml-reference#workspaces) are now generally available.
+- Cody feature flags have been simplified [#52919](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/52919) See [the docs page for complete setup details](/cody/explanations/enabling_cody_enterprise)
+ - `cody.enabled` in site-config now controls whether Cody is on/off, default `false`.
+ - When `cody.enabled` is set and no specific configuration for `completions` and `embeddings` are given, Cody will by default talk to the `sourcegraph` provider, Sourcegraphs Cody Gateway which allows access to chat completions and embeddings.
+ - Enabling Cody now requires `cody.enabled` set to `true` and `completions` to be set.
+ - `cody.restrictUsersFeatureFlag` replaces `experimentalFeatures.CodyRestrictUsersFeatureFlag` in site-config, default `false`.
+ - `completions.enabled` has been deprecated, replaced by `cody.enabled`.
+ - The feature flags for Cody in web features have been removed and the single source of truth is now `cody.enabled`.
+ - The embeddings configuration now requires a `provider` field to be set.
+ - Ping data now reflects whether `cody.enabled` and `completions` are set.
+- If a Sourcegraph request is traced, its trace ID and span ID are now set to the `X-Trace` and `X-Trace-Span` response headers respectively. The trace URL (if a template is configured in `observability.tracing.urlTemplate`) is now set to `X-Trace-URL` - Previously, the URL was set to `X-Trace`. [#53259](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/53259)
+- For users using the single-container server image with the default built-in database, the database must be reindexed. This process can take up to a few hours on systems with large datasets. See [Migrating to Sourcegraph 5.1.x](/admin/migration/5_1) for full details. [#53256](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/53256)
+- [Sourcegraph Own](/own) is now available as a beta enterprise feature. `search-ownership` feature flag is removed and doesn't need to be used.
+- Update Jaeger to 1.45.0, and Opentelemetry-Collector to 0.75.0 [#54000](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/54000)
+- Switched container OS to Wolfi for hardened containers [#47182](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/47182), [#47368](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/47368)
+- Batches changes now supports for CODEOWNERS for Github. Pull requests requiring CODEOWNERS approval, will no longer show as approved unless explicitly approved by a CODEOWNER. https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/53601
+- The insecure `rsa-sha` signature algorithm is no longer supported when connecting to code hosts over SSH. See the [Repository authentication](/admin/repo/auth#error-sign_and_send_pubkey-no-mutual-signature-supported) page for further details.
+
+### Fixed
+
+- GitHub `repositoryQuery` searches now respect date ranges and use API requests more efficiently. #[49969](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/49969)
+- Fixed an issue where search based references were not displayed in the references panel. [#50157](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/50157)
+- Symbol suggestions only insert `type:symbol` filters when necessary. [#50183](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/50183)
+- Removed an incorrect beta label on the Search Context creation page [#51188](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/51188)
+- Multi-version upgrades to version `5.0.2` in a fully airgapped environment will not work without the command `--skip-drift-check`. [#51164](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/51164)
+- Could not set "permissions.syncOldestUsers" or "permissions.syncOldestRepos" to zero. [#51255](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/51255)
+- GitLab code host connections will disable repo-centric repository permission syncs when the authentication provider is set as "oauth". This prevents repo-centric permission sync from getting incorrect data. [#51452](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/51452)
+- Code intelligence background jobs did not correctly use an internal context, causing SCIP data to sometimes be prematurely deleted. [#51591](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/51591)
+- Slow request logs now have the correct trace and span IDs attached if a trace is present on the request. [#51826](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/51826)
+- The braindot menu on the blob view no longer fetches data eagerly to prevent performance issues for larger monorepo users. [#53039](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/53039)
+- Fixed an issue where commenting out redacted site-config secrets would re-add the secrets. [#53152](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/53152)
+- Fixed an issue where SCIP packages would sometimes not be written to the database, breaking cross-repository jump to definition. [#53763](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/53763)
+- Fixed an issue when adding a new user external account was not scheduling a new permission sync for the user. [#54144](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/54144)
+- Adding a new user account now correctly schedules a permission sync for the user. [#54258](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/54258)
+- Users/repos without an existing sync job in the permission_sync_jobs table are now scheduled properly. [#54278](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/54278)
+
+### Removed
+
+- User tags are removed in favor of the newer feature flags functionality. [#49318](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/49318)
+- Previously deprecated site config `experimentalFeatures.bitbucketServerFastPerm` has been removed. [#50707](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/50707)
+- Unused site-config field `api.rateLimit` has been removed. [#51087](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/51087)
+- Legacy (table-based) blob viewer. [#50915](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/50915)
+
+# v5.0.6
+
+### Fixed
+
+- SAML assertions to get user display name are now compared case insensitively and we do not always return an error. [#52992](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/52992)
+- Fixed an issue where `type:diff` search would not work when sub-repo permissions are enabled. [#53210](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/53210)
+
+# v5.0.5
+
+### Added
+
+- Organization members can now administer batch changes created by other members in their organization's namespace if the setting `orgs.allMembersBatchChangesAdmin` is enabled for that organization. [#50724](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/50724)
+- Allow instance public access mode based on `auth.public` site config and `allow-anonymous-usage` license tag [#52440](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/52440)
+- The endpoint configuration field for completions is now supported by the OpenAI provider [#52530](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/52530)
+
+### Fixed
+
+- MAU calculation in product analytics and pings use the same condition and UTC at all times. [#52306](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/52306) [#52579](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/52579) [#52581](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/52581)
+- Bitbucket native integration: fix code-intel popovers on the pull request pages. [#52609](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/52609)
+- `id` column of `user_repo_permissions` table was switched to `bigint` to avoid `int` overflow. [#52299](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/52299)
+- In some circumstances filenames containing `..` either could not be read or would return a diff when viewed. We now always correctly read those files. [#52605](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/52605)
+- Syntax highlighting for several languages including Python, Java, C++, Ruby, TypeScript, and JavaScript is now working again when using the single Docker container deployment option. Other deployment options were not affected.
+
+# v5.0.4
+
+### Fixed
+
+- Git blame lookups of repositories synced through `src serve-git` or code hosts using a custom `repositoryPathPattern` will now use the correct URL when streaming git blame is enabled. [#51525](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/51525)
+- Code Insights scoped to a static list of repository names would fail to resolve repositories with permissions enabled, resulting in insights that would not process. [#51657](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/51657)
+- Batches: Resolved an issue with GitHub webhooks where CI check updates fail due to the removal of a field from the GitHub webhook payload. [#52035](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/52035)
+
+# v5.0.3
+
+### Added
+
+- Cody aggregated pings. [#50835](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/50835)
+
+### Fixed
+
+- Bitbucket Server adding an error log if there is no account match for the user. #[51030](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/51030)
+- Editing search context with special characters such as `/` resulted in http 404 error. [#51196](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/51196)
+- Significantly improved performance and reduced memory usage of the embeeddings service. [#50953](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/50953), [#51372](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/51372)
+- Fixed an issue where a Code Insights query with structural search type received 0 search results for the latest commit of any matching repo. [#51076](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/51076)
+
+# v5.0.2
+
+### Added
+
+- An experimental site config setting to restrict cody to users by the cody-experimental feature flag [#50668](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/50668)
+
+### Changed
+
+- Use the Alpine 3.17 releases of cURL and Git
+
+### Fixed
+
+- For Cody, explicitly detect some cases where context is needed to avoid failed responses. [#50541](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/50541)
+- Code Insights that are run over zero repositories will finish processing and show `"No data to display"`. #[50561](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/50561)
+- DNS timeouts on calls to host.docker.internal from every html page load for docker-compose air-gapped instances. No more DNS lookups in jscontext.go anymore. #[50638](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/50638)
+- Improved the speed of the embedding index by significantly decreasing the calls to Gitserver. [#50410](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/50410)
+
+### Removed
+
+-
+
+# v5.0.1
+
+### Added
+
+- The ability to exclude certain file path patterns from embeddings.
+- Added a modal to show warnings and errors when exporting search results. [#50348](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/50348)
+
+### Changed
+
+### Fixed
+
+- Fixed CVE-2023-0464 in container images
+- Fixed CVE-2023-24532 in container images
+- Fixed an issue where Slack code monitoring notifications failed when the message was too long. [#50083](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/50083)
+- Fixed an edge case issue with usage statistics calculations that cross over month and year boundaries.
+- Fixed the "Last incremental sync" value in user/repo permissions from displaying a wrong date if no sync had been completed yet.
+- Fixed an issue that caused search context creation to fail with error "you must provide a first or last value to properly paginate" when defining the repositories and revisions with a JSON configuration.
+- Fixed an issue where the incorrect actor was provided when searching an embeddings index.
+- Fixed multiple requests downloading the embeddings index concurrently on an empty cache leading to an out-of-memory error.
+- Fixed the encoding of embeddings indexes which caused out-of-memory errors for large indexes when uploading them from the worker service.
+- Fixed git blame decorations styles
+- CODEOWNERS rules with consecutive slashes (`//`) will no longer fail ownership searches
+- Granting pending permissions to users when experimentalFeatures.unifiedPermissions is turned ON [#50059](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/50059)
+- The unified permissions out of band migration reported as unfinished if there were users with no permissions [#50147](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/50147)
+- Filenames with special characters are correctly handled in Cody's embedding service [#50023](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/50023)
+- Structural search correctly cleans up when done preventing a goroutine leak [#50034](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/50034)
+- Fetch search based definitions in the reference panel if no precise definitions were found [#50179](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/50179)
+
+### Removed
+
+# v5.0.0
+
+### Added
+
+- The environment variable `TELEMETRY_HTTP_PROXY` can be set on the `sourcegraph-frontend` service, to use an HTTP proxy for telemetry and update check requests. [#47466](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/47466)
+- Kubernetes Deployments: Introduced a new Kubernetes deployment option ([deploy-sourcegraph-k8s](https://github.com/sourcegraph/deploy-sourcegraph-k8s)) to deploy Sourcegraph with Kustomize. [#46755](https://github.com/sourcegraph/sourcegraph-public-snapshot/issues/46755)
+- Kubernetes Deployments: The new Kustomize deployment ([deploy-sourcegraph-k8s](https://github.com/sourcegraph/deploy-sourcegraph-k8s)) introduces a new base cluster that runs all Sourcegraph services as non-root users with limited privileges and eliminates the need to create RBAC resources. [#4213](https://github.com/sourcegraph/deploy-sourcegraph/pull/4213)
+- Added the `other.exclude` setting to [Other external service config](/admin/code_hosts/other#configuration). It can be configured to exclude mirroring of repositories matching a pattern similar to other external services. This is useful when you want to exclude repositories discovered via `src serve-git`. [#48168](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/48168)
+- The **Site admin > Updates** Page displays the upgrade readiness information about schema drift and out-of-band migrations. [#48046](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/48046)
+- Pings now contain ownership search and file-view activity counts. [#47062](https://github.com/sourcegraph/sourcegraph-public-snapshot/47062)
+- Greatly improves keyboard handling and accessibility of the files and symbol tree on the repository pages. [#12916](https://github.com/sourcegraph/sourcegraph-public-snapshot/issues/12916)
+- The file tree on the repository page now automatically expands into single-child directories. [#47117](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/47117)
+- When encountering GitHub rate limits, Sourcegraph will now wait the recommended amount of time and retry the request. This prevents sync jobs from failing prematurely due to external rate limits. [#48423](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/48423)
+- Added a dashboard with information about user and repository background permissions sync jobs. [#46317](https://github.com/sourcegraph/sourcegraph-public-snapshot/issues/46317)
+- When encountering GitHub or GitLab rate limits, Sourcegraph will now wait the recommended amount of time and retry the request. This prevents sync jobs from failing prematurely due to external rate limits. [#48423](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/48423), [#48616](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/48616)
+- Switching between code editor, files and symbols trees using keyboard shortcuts (currently under the experimental feature flag: `blob-page-switch-areas-shortcuts`). [#46829](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/46829).
+- Added "SCIM" badges for SCIM-controlled users on the User admin page. [#48727](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/48727)
+- Added Azure DevOps Services as a Tier 1 Code Host, including: repository syncing, permissions syncing, and Batch Changes support. [#46265](https://github.com/sourcegraph/sourcegraph-public-snapshot/issues/46265)
+- Added feature to disable some fields on user profiles for SCIM-controlled users. [#48816](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/48816)
+- Native support for ingesting and searching GitHub topics with `repo:has.topic()` [#48875](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/48875)
+- [Role- Access Control](/admin/access_control) is now available as an enterprise feature (in Beta). It is currently only supported for Batch Changes functionality. [#43276](https://github.com/sourcegraph/sourcegraph-public-snapshot/issues/43276)
+- Site admins can now [restrict creation of batch changes to certain u[sers](/admin/access_control/batch_changes) by tailoring their roles and the permissions granted to those )roles. [#34491](https://github.com/sourcegraph/sourcegraph-public-snapshot/issues/34491)
+- Site admins can now [configure outgoing webh[ooks](/admin/config/webhooks/outgoing) for Batch Changes to inform external tools of events related to Sourceg)raph batch changes and their changesets. [#38278](https://github.com/sourcegraph/sourcegraph-public-snapshot/issues/38278)
+- [Sourcegraph[ Own](/own) is now available as an experimental enterprise feature. Enable the `search-ownership` fe)ature flag to use it.
+- Gitserver supports a new `COURSIER_CACHE_DIR` env var to configure the cache location for coursier JVM package repos.
+- Pings now emit a histogram of repository sizes cloned by Sourcegraph [48211](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/48211).
+- The search input has been redesigned to greatly improve usability. New contextual suggestions help users learn the Sourcegraph query language as they search. Suggestions have been unified across contexts and filters, and the history mode has been integrated into the input. Improved and expanded keyboard shortcuts also make navigation much easier. This functionality is in beta, and can be disabled in the user menu.
+
+### Changed
+
+- Experimental GraphQL query, `permissionsSyncJobs` is substituted with new non-experimental query which provides full information about permissions sync jobs stored in the database. [#47933](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/47933)
+- Renders `readme.txt` files in the repository page. [#47944](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/47944)
+- Renders GitHub pull request references in all places where a commit message is referenced. [#48183](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/48183)
+- CodeMirror blob view (default) uses selection-driven code navigation. [#48066](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/48066)
+- Older Code Insights data points will now be automatically archived as configured by the site configuration setting `insights.maximumSampleSize`, set to 30 by default. All points can be exported. This behaviour can be disabled using the experimental setting `insightsDataRetention`. [#48259](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/48259)
+- The admin debug GraphQL endpoint for Code Insights will now include the series metadata in the response. [#49473](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/49473)
+- Usage telemetry has been streamlined; there are no longer two categories (critical and non-critical), and telemetry will be streamlined and reviewed/reduced further in upcoming releases. The site admin flag `disableNonCriticalTelemetry` currently still remains but has no effect.
+
+### Fixed
+
+- The symbols service `CACHE_DIR` and `MAX_TOTAL_PATHS_LENGTH` were renamed to have a `SYMBOLS_` prefix in the last version of Sourcegraph; this version fixes a bug where the old names without the `SYMBOLS_` prefix were not respected correctly. Both names now work.
+- Fixed issues with propagating tracing configuration throughout the application. [#47428](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/47428)
+- Enable `auto gc` on fetch when `SRC_ENABLE_GC_AUTO` is set to `true`. [#47852](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/47852)
+- Fixes syntax highlighting and line number issues in the code preview rendered inside the references panel. [#48107](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/48107)
+- The ordering of code host sync error messages in the notifications menu will now be persistent. Previously the order was not guaranteed on a refresh of the status messages, which would make the code host sync error messages jump positions, giving a false sense of change to the site admins. [#48722](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/48722)
+- Fixed Detect & Track Code Insights running over all repositories when during creation a search was used to specify the repositories for the insight. [#49633](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/49633)
+
+### Removed
+
+- The LSIF upload endpoint is no longer supported and has been replaced by a diagnostic error page. src-cli v4.5+ will translate all local LSIF files to SCIP prior to upload. [#47547](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/47547)
+- The experimental setting `authz.syncJobsRecordsLimit` has been removed. [#47933](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/47933)
+- Storing permissions sync jobs statuses in Redis has been removed as now all permissions sync related data is stored in a database. [#47933](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/47933)
+- The key `shared_steps` has been removed from auto-indexing configuration descriptions. If you have a custom JSON auto-indexing configuration set for a repository that defines this key, you should inline the content into each index job's `steps` array. [#48770](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/48770)
+
+# v4.5.1
+
+### Changed
+
+- Updated git to version 2.39.2 to address [reported security vulnerabilities](https://github.blog/2023-02-14-git-security-vulnerabilities-announced-3/) [#47892](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/47892/files)
+- Updated curl to 7.88.1 to address [reported security vulnerabilities](https://curl.se/docs/CVE-2022-42915.html) [#48144](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/48144)
+
+# v4.5.0
+
+### Added
+
+- Endpoint environment variables (`SEARCHER_URL`, `SYMBOLS_URL`, `INDEXED_SEARCH_SERVERS`, `SRC_GIT_SERVERS`) now can be set to replica count values in Kubernetes, Kustomize, Helm and Docker Compose environments. This avoids the need to use service discovery or generating the respective list of addresses in those environments. [#45862](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/45862)
+- The default author and email for changesets will now be pulled from user account details when possible. [#46385](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/46385)
+- Code Insights has a new display option: "Max number of series points to display". This setting controls the number of data points you see per series on an insight. [#46653](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/46653)
+- Added out-of-band migration that will migrate all existing data from LSIF to SCIP (see additional [migration documenta[tion](/admin/how-to/lsif_scip_migration)). [#45106](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/45106))
+- Code Insights has a new search-powered repositories field that allows you to select repositories with Sourcegraph search syntax. [#45687](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/45687)
+- You can now export all data for a Code Insight from the card menu or the standalone page. [#46795](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/46795), [#46694](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/46694)
+- Added Gerrit as an officially supported code host with permissions syncing. [#46763](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/46763)
+- Markdown files now support `` and `` elements in the rendered view. [#47074](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/47074)
+- Batch Changes: Log outputs from execution steps are now paginated in the web interface. [#46335](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/46335)
+- Monitoring: the searcher dashboard now contains more detailed request metrics as well as information on interactions with the local cache (via gitserver). [#47654](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/47654)
+- Renders GitHub pull request references in the commit list. [#47593](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/47593)
+- Added a new background permissions syncer & scheduler which is backed by database, unlike the old one that was based on an in-memory processing queue. The new system is enabled by default, but can be disabled. Revert to the in-memory processing queue by setting the feature flag `database-permission-sync-worker` to `false`. [#47783](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/47783)
+- Zoekt introduces a new opt-in feature, "shard merging". Shard merging consolidates small index files into larger ones, which reduces Zoekt-webserver's memory footprint [documenta[tion](/code_search/explanations/search_details#shard-merging))
+- Blob viewer is now backed by the CodeMirror editor. Previous table-based blob viewer can be re-enabled by setting `experimentalFeatures.enableCodeMirrorFileView` to `false`. [#47563](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/47563)
+- Code folding support for the CodeMirror blob viewer. [#47266](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/47266)
+- CodeMirror blob keyboard navigation as experimental feature. Can be enabled in settings by setting `experimentalFeatures.codeNavigation` to `selection-driven`. [#44698](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/44698)
+
+### Changed
+
+- Archived and deleted changesets are no longer counted towards the completion percentage shown in the Batch Changes UI. [#46831](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/46831)
+- Code Insights has a new UI for the "Add or remove insights" view, which now allows you to search code insights by series label in addition to insight title. [#46538](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/46538)
+- When SMTP is configured, users created by site admins via the "Create user" page will no longer have their email verified by default - Users must verify their emails by using the "Set password" link they get sent, or have their emails verified by a site admin via the "Emails" tab in user settings or the `setUserEmailVerified` mutation. The `createUser` mutation retains the old behaviour of automatically marking emails as verified. To learn more, refer to the [SMTP and email deli[very](/admin/config/email) documentation. [#46187](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/46187))
+- Connection checks for code host connections have been changed to talk to code host APIs directly via HTTP instead of doing DNS lookup and TCP dial. That makes them more resistant in environments where proxies are used. [#46918](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/46918)
+- Expiration of licenses is now handled differently. When a license is expired promotion to site-admin is disabled, license-specific features are disabled (exceptions being SSO & permission syncing), grace period has been replaced with a 7-day-before-expiration warning. [#47251](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/47251)
+- Searcher will now timeout searches in 2 hours instead of 10 minutes. This timeout was raised for batch use cases (such as code insights) searching old revisions in very large repositories. This limit can be tuned with the environment variable `PROCESSING_TIMEOUT`. [#47469](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/47469)
+- Zoekt now bypasses the regex engine for queries that are common in the context of search-based code intelligence, such as `\bLITERAL\b case:yes`. This can lead to a significant speed-up for "Find references" and "Find implementations" if precise code intelligence is not available. [zoekt#526](https://github.com/sourcegraph/zoekt/pull/526)
+- The Sourcegraph Free license has undergone a number of changes. Please contact support@sourcegraph.com with any questions or concerns. [#46504](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/46504)
+ - The Free license allows for only a single private repository on the instance.
+ - The Free license does not support SSO of any kind.
+ - The Free license does not offer mirroring of code host user permissions.
+- Expired Sourcegraph licenses no longer allow continued use of the product. [#47251](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/47251)
+ - Licensed features are disabled once a license expires.
+ - Users can no longer be promoted to Site Admins once a license expires.
+
+### Fixed
+
+- Resolved issue which would prevent Batch Changes from being able to update changesets on forks of repositories on Bitbucket Server created prior to version 4.2. [#47397](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/47397)
+- Fixed a bug where changesets created on forks of repositories in a personal user's namespace on GitHub could not be updated after creation. [#47397](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/47397)
+- Fixed a bug where saving default Sort & Limit filters in Code Insights did not persist [#46653](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/46653)
+- Restored the old syntax for `repo:contains` filters that was previously removed in version 4.0.0. For now, both the old and new syntaxes are supported to allow for smooth upgrades. Users are encouraged to switch to the new syntax, since the old one may still be removed in a future version.
+- Fixed a bug where removing an auth provider would render a user's Account Security page inaccessible if they still had an external account associated with the removed auth provider. [#47092](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/47092)
+- Fixed a bug where the `repo:has.description()` parameter now correctly shows description of a repository synced from a Bitbucket server code host connection, while previously it used to show the repository name instead [#46752](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/46752)
+- Fixed a bug where permissions syncs consumed more rate limit tokens than required. This should lead to speed-ups in permission syncs, as well as other possible cases where a process runs in repo-updater. [#47374](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/47374)
+- Fixes UI bug where folders with single child were appearing as child folders themselves. [#46628](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/46628)
+- Performance issue with the Outbound requests page. [#47544](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/47544)
+
+### Removed
+
+- The Code insights "run over all repositories" mode has been replaced with search-powered repositories filed syntax. [#45687](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/45687)
+- The settings `search.repositoryGroups`, `codeInsightsGqlApi`, `codeInsightsAllRepos`, `experimentalFeatures.copyQueryButton`,, `experimentalFeatures.showRepogroupHomepage`, `experimentalFeatures.showOnboardingTour`, `experimentalFeatures.showSearchContextManagement` and `codeIntelligence.autoIndexRepositoryGroups` have been removed as they were deprecated and unsued. [#47481](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/47481)
+- The site config `enableLegacyExtensions` setting was removed. It is no longer possible to enable legacy Sourcegraph extension API functionality in this version.
+
+# v4.4.2
+
+### Changed
+
+- Expiration of licenses is now handled differently. When a license is expired promotion to site-admin is disabled, license-specific features are disabled (exceptions being SSO & permission syncing), grace period has been replaced with a 7-day-before-expiration warning. [#47251](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/47251)
+
+# v4.4.1
+
+### Changed
+
+- Connection checks for code host connections have been changed to talk to code host APIs directly via HTTP instead of doing DNS lookup and TCP dial. That makes them more resistant in environments where proxies are used. [#46918](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/46918)
+- The search query input overflow behavior on search home page has been fixed. [#46922](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/46922)
+
+# v4.4.0
+
+### Added
+
+- Added a button "Reindex now" to the index status page. Admins can now force an immediate reindex of a repository. [#45533](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/45533)
+- Added an option "Unlock user" to the actions dropdown on the Site Admin Users page. Admins can unlock user accounts that wer locked after too many sign-in attempts. [#45650](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/45650)
+- Templates for certain emails sent by Sourcegraph are now configurable via `email.templates` in site configuration. [#45671](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/45671), [#46085](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/46085)
+- Keyboard navigation for search results is now enabled by default. Use Arrow Up/Down keys to navigate between search results, Arrow Left/Right to collapse and expand file matches, Enter to open the search result in the current tab, Ctrl/Cmd+Enter to open the result in a separate tab, / to refocus the search input, and Ctrl/Cmd+Arrow Down to jump from the search input to the first result. Arrow Left/Down/Up/Right in previous examples can be substituted with h/j/k/l for Vim-style bindings. Keyboard navigation can be disabled by creating the `search-results-keyboard-navigation` feature flag and setting it to false. [#45890](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/45890)
+- Added support for receiving GitLab webhook `push` events. [#45856](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/45856)
+- Added support for receiving Bitbucket Server / Datacenter webhook `push` events. [#45909](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/45909)
+- Monitoring: Indexed-Search's dashboard now has new graphs for search request durations and "in-flight" search request workloads [#45966](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/45966)
+- The GraphQL API now supports listing single-file commit history across renames (with `GitCommit.ancestors(follow: true, path: "")`). [#45882](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/45882)
+- Added support for receiving Bitbucket Cloud webhook `push` events. [#45960](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/45960)
+- Added a way to test code host connection from the `Manage code hosts` page. [#45972](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/45972)
+- Updates to the site configuration from the site admin panel will now also record the user id of the author in the database in the `critical_and_site_config.author_user_id` column. [#46150](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/46150)
+- When setting and resetting passwords, if the user's primary email address is not yet verified, using the password reset link sent via email will now also verify the email address. [#46307](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/46307)
+- Added new code host details and updated edit code host pages in site admin area. [#46327](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/46327)
+- If the experimental setting `insightsDataRetention` is enabled, the number of Code Insights data points that can be viewed will be limited by the site configuration setting `insights.maximumSampleSize`, set to 30 by default. Older points beyond that number will be periodically archived. [#46206](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/46206), [#46440](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/46440)
+- Bitbucket Cloud can now be added as an authentication provider on Sourcegraph. [#46309](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/46309)
+- Bitbucket Cloud code host connections now support permissions syncing. [#46312](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/46312)
+- Keep a log of corruption events that happen on repositories as they are detected. The Admin repositories page will now show when a repository has been detected as being corrupt and they'll also be able to see a history log of the corruption for that repository. [#46004](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/46004)
+- Added corrupted statistic as part of the global repositories statistics. [46412](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/46412)
+- Added a `Corrupted` status filter on the Admin repositories page, allowing Administrators to filter the list of repositories to only those that have been detected as corrupt. [#46415](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/46415)
+- Added “Background job dashboard” admin feature [#44901](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/44901)
+
+### Changed
+
+- Code Insights no longer uses a custom index of commits to compress historical backfill and instead queries the repository log directly. This allows the compression algorithm to span any arbitrary time frame, and should improve the reliability of the compression in general. [#45644](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/45644)
+- GitHub code host configuration: The error message for non-existent organizations has been clarified to indicate that the organization is one that the user manually specified in their code host configuration. [#45918](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/45918)
+- Git blame view got a user-interface overhaul and now shows data in a more structured way with additional visual hints. [#44397](https://github.com/sourcegraph/sourcegraph-public-snapshot/issues/44397)
+- User emails marked as unverified will no longer receive code monitors and account update emails - Unverified emails can be verified from the user settings page to continue receiving these emails. [#46184](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/46184)
+- Zoekt by default eagerly unmarshals the symbol index into memory. Previously we would unmarshal on every request for the purposes of symbol searches or ranking. This lead to pressure on the Go garbage collector. On sourcegraph.com we have noticed time spent in the garbage collector halved. In the unlikely event this leads to more OOMs in zoekt-webserver, you can disable by setting the environment variable `ZOEKT_ENABLE_LAZY_DOC_SECTIONS=t`. [zoekt#503](https://github.com/sourcegraph/zoekt/pull/503)
+- Removes the right side action sidebar that is shown on the code view page and moves the icons into the top nav. [#46339](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/46339)
+- The `sourcegraph/prometheus` image no longer starts with `--web.enable-lifecycle --web.enable-admin-api` by default - These flags can be re-enabled by configuring `PROMETHEUS_ADDITIONAL_FLAGS` on the container. [#46393](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/46393)
+- The experimental setting `authz.syncJobsRecordsTTL` has been changed to `authz.syncJobsRecordsLimit` - Records are no longer retained based on age, but based on this size cap. [#46676](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/46676)
+- Renders GitHub pull request references in git blame view. [#46409](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/46409)
+
+### Fixed
+
+- Made search results export use the same results list as the search results page. [#45702](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/45702)
+- Code insights with more than 1 year of history will correctly show 12 data points instead of 11. [#45644](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/45644)
+- Hourly code insights will now behave correctly and will no longer truncate to midnight UTC on the calendar date the insight was created. [#45644](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/45644)
+- Code Insights: fixed an issue where filtering by a search context that included multiple repositories would exclude data. [#45574](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/45574)
+- Ignore null JSON objects returned from GitHub API when listing public repositories. [#45969](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/45969)
+- Fixed issue where emails that have never been verified before would be unable to receive resent verification emails. [#46185](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/46185)
+- Resolved issue preventing LSIF uploads larger than 2GiB (gzipped) from uploading successfully. [#46209](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/46209)
+- Local vars in Typescript are now detected as symbols which will positively impact ranking of search results. [go-ctags#10](https://github.com/sourcegraph/go-ctags/pull/10)
+- Fix issue in Gitlab OAuth in which user group membership is set too wide - Adds `min_access_level=10` to `/groups` request. [#46480](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/46480)
+
+### Removed
+
+- The extension registry no longer supports browsing, creating, or updating legacy extensions. Existing extensions may still be enabled or disabled in user settings and may be listed via the API. (The extension API was deprecated in 2022-09 but is still available if the `enableLegacyExtensions` site config experimental features flag is enabled.)
+- User and organization auto-defined search contexts have been permanently removed along with the `autoDefinedSearchContexts` GraphQL query. The only auto-defined context now is the `global` context. [#46083](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/46083)
+- The settings `experimentalFeatures.showSearchContext`, `experimentalFeatures.showSearchNotebook`, and `experimentalFeatures.codeMonitoring` have been removed and these features are now permanently enabled when available. [#46086](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/46086)
+- The legacy panels on the homepage (recent searches, etc) which were turned off by default but could still be re-enabled by setting `experimentalFeatures.showEnterpriseHomePanels` to true, are permanently removed now. [#45705](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/45705)
+- The `site { monitoringStatistics { alerts } }` GraphQL query has been deprecated and will no longer return any data. The query will be removed entirely in a future release. [#46299](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/46299)
+- The Monaco version of the search query input and the corresponding feature flag (`experimentalFeatures.editor`) have been permanently removed. [#46249](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/46249)
+
+# v4.3.1
+
+### Changed
+
+- A bug that broke the site-admin page when no repositories have been added to the Sourcegraph instance has been fixed. [#46123](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/46123)
+
+# v4.3.0
+
+### Added
+
+- A "copy path" button has been added to file content, path, and symbol search results on hover or focus, next to the file path. The button copies the relative path of the file in the repo, in the same way as the "copy path" button in the file and repo pages. [#42721](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/42721)
+- Unindexed search now use the index for files that have not changed between the unindexed commit and the indexed commit. The result is faster unindexed search in general. If you are noticing issues you can disable by setting the feature flag `search-hybrid` to false. [#37112](https://github.com/sourcegraph/sourcegraph-public-snapshot/issues/37112)
+- The number of commits listed in the History tab can now be customized for all users by site admins under Configuration -> Global Settings from the site admin page by using the config `history.defaultPageSize`. Individual users may also set `history.defaultPagesize` from their user settings page to override the value set under the Global Settings. [#44651](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/44651)
+- Batch Changes: Mounted files can be accessed via the UI on the executions page. [#43180](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/43180)
+- Added "Outbound request log" feature for site admins [#44286](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/44286)
+- Code Insights: the data series API now provides information about incomplete datapoints during processing
+- Added a best-effort migration such that existing Code Insights will display zero results instead of missing points at the start and end of a graph. [#44928](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/44928)
+- More complete stack traces for Outbound request log [#45151](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/45151)
+- A new status message now reports how many repositories have already been indexed for search. [#45246](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/45246)
+- Search contexts can now be starred (favorited) in the search context management page. Starred search contexts will appear before other contexts in the context dropdown menu next to the search box. [#45230](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/45230)
+- Search contexts now let you set a context as your default. The default will be selected every time you open Sourcegraph and will appear near the top in the context dropdown menu next to the search box. [#45387](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/45387)
+- [search.largeF[iles](/admin/config/site_config#search-largeFiles) accepts an optional prefix `!` to negate a pattern. The o)rder of the patterns within search.largeFiles is honored such that the last pattern matching overrides preceding patterns. For patterns that begin with a literal `!` prefix with a backslash, for example, `\!fileNameStartsWithExcl!.txt`. Previously indexed files that become excluded due to this change will remain in the index until the next reindex [#45318](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/45318)
+- [Webh[ooks](/admin/config/webhooks/incoming) have been overhauled completely and can now be found under **Site admin >) Repositories > Incoming webhooks**. Webhooks that were added via code host configuration are [deprec[ated](/admin/config/webhooks/incoming#deprecation-notice) and will be removed in 5.1.0.
+- Added support fo)r receiving webhook `push` events from GitHub which will trigger Sourcegraph to fetch the latest commit rather than relying on polling.
+- Added support for private container registries in Sourcegraph executors. [Using private registries](/admin/executors/deploy_executors#using-private-registries)
+
+### Changed
+
+- Batch Change: When one or more changesets are selected, we now display all bulk operations but disable the ones that aren't applicable to the changesets. [#44617](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/44617)
+- Gitserver's repository purge worker now runs on a regular interval instead of just on weekends, configurable by the `repoPurgeWorker` site configuration. [#44753](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/44753)
+- Editing the presentation metadata (title, line color, line label) or the default filters of a scoped Code Insight will no longer trigger insight recalculation. [#44769](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/44769), [#44797](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/44797)
+- Indexed Search's `memory_map_areas_percentage_used` alert has been modified to alert earlier than it used to. It now issues a warning at 60% (previously 70%) and issues a critical alert at 80% (previously 90%).
+- Saving a new view of a scoped Code Insight will no longer trigger insight recalculation. [#44679](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/44679)
+
+### Fixed
+
+- The Code Insights commit indexer no longer errors when fetching commits from empty repositories when sub-repo permissions are enabled. [#44558](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/44558)
+- Unintended newline characters that could appear in diff view rendering have been fixed. [#44805](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/44805)
+- Signing out doesn't immediately log the user back in when there's only one OAuth provider enabled. It now redirects the user to the Sourcegraph login page. [#44803](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/44803)
+- An issue causing certain kinds of queries to behave inconsistently in Code Insights. [#44917](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/44917)
+- When the setting `batchChanges.enforceForks` is enabled, Batch Changes will now prefix the name of the fork repo it creates with the original repo's namespace name in order to prevent repo name collisions. [#43681](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/43681), [#44458](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/44458), [#44548](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/44548), [#44924](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/44924)
+- Code Insights: fixed an issue where certain queries matching sequential whitespace characters would overcount. [#44969](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/44969)
+- GitHub fine-grained Personal Access Tokens can now clone repositories correctly, but are not yet officially supported. [#45137](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/45137)
+- Detect-and-track Code Insights will now return data for repositories without sub-repo permissions even when sub-repo permissions are enabled on the instance. [#45631](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/45361)
+
+### Removed
+
+- Removed legacy GraphQL field `dirtyMetadata` on an insight series. `insightViewDebug` can be used as an alternative. [#44416](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/44416)
+- Removed `search.index.enabled` site configuration setting. Search indexing is now always enabled.
+- Removed the experimental feature setting `showSearchContextManagement`. The search context management page is now available to all users with access to search contexts. [#45230](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/45230)
+- Removed the experimental feature setting `showComputeComponent`. Any notebooks that made use of the compute component will no longer render the block. The block will be deleted from the databse the next time a notebook that uses it is saved. [#45360](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/45360)
+
+# v4.2.1
+
+- `minio` has been replaced with `blobstore`. Please see the update notes [here](/admin/how-to/blobstore_update_notes)
+
+# v4.2.0
+
+### Added
+
+- Creating access tokens is now tracked in the security events. [#43226](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/43226)
+- Added `codeIntelAutoIndexing.indexerMap` to site-config that allows users to update the indexers used when inferring precise code intelligence auto-indexing jobs (without having to overwrite the entire inference scripts). For example, `"codeIntelAutoIndexing.indexerMap": {"go": "my.registry/sourcegraph/lsif-go"}` will cause Go projects to use the specified container (in a alternative Docker registry). [#43199](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/43199)
+- Code Insights data points that do not contain any results will display zero instead of being omitted from the visualization. Only applies to insight data created after 4.2. [#43166](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/43166)
+- Sourcegraph ships with node-exporter, a Prometheus tool that provides hardware / OS metrics that helps Sourcegraph scale your deployment. See your deployment update for more information:
+ - [Kubernetes](/admin/updates/kubernetes)
+ - [Docker Compose](/admin/updates/docker_compose)
+- A structural search diagnostic to warn users when a language filter is not set. [#43835](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/43835)
+- GitHub/GitLab OAuth success/fail attempts are now a part of the audit log. [#43886](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/43886)
+- When rendering a file which is backed by Git LFS, we show a page informing the file is LFS and linking to the file on the codehost. Previously we rendered the LFS pointer. [#43686](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/43686)
+- Batch changes run server-side now support secrets. [#27926](https://github.com/sourcegraph/sourcegraph-public-snapshot/issues/27926)
+- OIDC success/fail login attempts are now a part of the audit log. [#44467](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/44467)
+- A new experimental GraphQL query, `permissionsSyncJobs`, that lists the states of recently completed permissions sync jobs and the state of each provider. The TTL of entries retrained can be configured with `authz.syncJobsRecordsTTL`. [#44387](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/44387), [#44258](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/44258)
+- The search input has a new search history button and allows cycling through recent searches via up/down arrow keys. [#44544](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/44544)
+- Repositories can now be ordered by size on the repo admin page. [#44360](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/44360)
+- The search bar contains a new Smart Search toggle. If a search returns no results, Smart Search attempts alternative queries based on a fixed set of rules, and shows their results (if there are any). Smart Search is enabled by default. It can be disabled by default with `"search.defaultMode": "precise"` in settings. [#44385](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/44395)
+- Repositories in the site-admin area can now be filtered, so that only indexed repositories are displayed [#45288](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/45288)
+
+### Changed
+
+- Updated minimum required version of `git` to 2.38.1 in `gitserver` and `server` Docker image. This addresses: https://github.blog/2022-04-12-git-security-vulnerability-announced/ and https://lore.kernel.org/git/d1d460f6-e70f-b17f-73a5-e56d604dd9d5@github.com/. [#43615](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/43615)
+- When a `content:` filter is used in a query, only file contents will be searched (previously any of file contents, paths, or repos were searched). However, as before, if `type:` is also set, the `content:` filter will search for results of the specified `type:`. [#43442](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/43442)
+- Updated [p4-fusion](https://github.com/salesforce/p4-fusion) from `1.11` to `1.12`.
+
+### Fixed
+
+- Fixed a bug where path matches on files in the root directory of a repository were not highlighted. [#43275](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/43275)
+- Fixed a bug where a search query wouldn't be validated after the query type has changed. [#43849](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/43849)
+- Fixed an issue with insights where a single erroring insight would block access to all insights. This is a breaking change for users of the insights GraphQL api as the `InsightViewConnection.nodes` list may now contain `null`. [#44491](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/44491)
+- Fixed a bug where Open in Editor didn't work well with `"repositoryPathPattern" = "{nameWithOwner}"` [#43839](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/44475)
+
+### Removed
+
+- Remove the older `log.gitserver.accessLogs` site config setting. The setting is succeeded by `log.auditLog.gitserverAccess`. [#43174](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/43174)
+- Remove `LOG_ALL_GRAPHQL_REQUESTS` env var. The setting is succeeded by `log.auditLog.graphQL`. [#43181](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/43181)
+- Removed support for setting `SRC_ENDPOINTS_CONSISTENT_HASH`. This was an environment variable to support the transition to a new consistent hashing scheme introduced in 3.31.0. [#43528](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/43528)
+- Removed legacy environment variable `ENABLE_CODE_INSIGHTS_SETTINGS_STORAGE` used in old versions of Code Insights to fall back to JSON settings based storage. All data was previously migrated in version 3.35 and this is no longer supported.
+
+# v4.1.3
+
+### Fixed
+
+- Fixed a bug that caused the Phabricator native extension to not load the right CSS assets. [#43868](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/43868)
+- Fixed a bug that prevented search result exports to load. [#43344](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/43344)
+
+# v4.1.2
+
+### Fixed
+
+- Fix code navigation on OSS when CodeIntel is unavailable. [#43458](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/43458)
+
+### Removed
+
+- Removed the onboarding checklist for new users that showed up in the top navigation bar, on user profiles, and in the site-admin overview page. After changes to the underlying user statistics system, the checklist caused severe performance issues for customers with large and heavily-used instances. [#43591](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/43591)
+
+# v4.1.1
+
+### Fixed
+
+- Fixed a bug with normalizing the `published` draft value for `changeset_specs`. [#43390](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/43390)
+
+# v4.1.0
+
+### Added
+
+- Outdated executors now show a warning from the admin page. [#40916](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/40916)
+- Added support for better Slack link previews for private instances. Link previews are currently feature-flagged, and site admins can turn them on by creating the `enable-link-previews` feature flag on the `/site-admin/feature-flags` page. [#41843](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/41843)
+- Added a new button in the repository settings, under "Mirroring", to delete a repository from disk and reclone it. [#42177](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/42177)
+- Batch changes run on the server can now be created within organisations. [#36536](https://github.com/sourcegraph/sourcegraph-public-snapshot/issues/36536)
+- GraphQL request logs are now compliant with the audit logging format. The old GraphQl logging based on `LOG_ALL_GRAPHQL_REQUESTS` env var is now deprecated and scheduled for removal. [#42550](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/42550)
+- Mounting files now works when running batch changes server side. [#31792](https://github.com/sourcegraph/sourcegraph-public-snapshot/issues/31792)
+- Added mini dashboard of total batch change metrics to the top of the batch changes list page. [#42046](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/42046)
+- Added repository sync counters to the code host details page. [#43039](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/43039)
+
+### Changed
+
+- Git server access logs are now compliant with the audit logging format. Breaking change: The 'actor' field is now nested under 'audit' field. [#41865](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/41865)
+- All Perforce rules are now stored together in one column and evaluated on a "last rule takes precedence" basis. [#41785](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/41785)
+- Security events are now a part of the audit log. [#42653](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/42653)
+- "GC AUTO" is now the default garbage collection job. We disable sg maintenance, which had previously replace "GC AUTO", after repeated reports about repo corruption. [#42856](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/42856)
+- Security events (audit log) can now optionally omit the internal actor actions (internal traffic). [#42946](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/42946)
+- To use the optional `customGitFetch` feature, the `ENABLE_CUSTOM_GIT_FETCH` env var must be set on `gitserver`. [#42704](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/42704)
+
+### Fixed
+
+- WIP changesets in Gitlab >= 14.0 are now prefixed with `Draft:` instead of `WIP:` to accomodate for the [breaking change in Gitlab 14.0](https://docs.gitlab.com/ee/update/removals.html#wip-merge-requests-renamed-draft-merge-requests). [#42024](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/42024)
+- When updating the site configuration, the provided Last ID is now used to prevent race conditions when simultaneous config updates occur. [#42691](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/42691)
+- When multiple auth providers of the same external service type is set up, there are now separate entries in the user's Account Security settings. [#42865](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/42865)
+- Fixed a bug with GitHub code hosts that did not label archived repos correctly when using the "public" repositoryQuery keyword. [#41461](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/41461)
+- Fixed a bug that would display the blank batch spec that a batch change is initialized with in the batch specs executions tab. [#42914](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/42914)
+- Fixed a bug that would cause menu dropdowns to not open appropriately. [#42779](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/42779)
+
+### Removed
+
+-
+
+# v4.0.1
+
+### Fixed
+
+- Fixed a panic that can be caused by some tracing configurations. [#42027](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/42027)
+- Fixed broken code navigation for Javascript. [#42055](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/42055)
+- Fixed issue with empty code navigation popovers. [#41958](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/41958)
+
+# v4.0.0
+
+### Added
+
+- A new look for Sourcegraph, previously in beta as "Simple UI", is now permanently enabled. [#41021](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/41021)
+- A new [multi-version upgrade](/admin/updates#multi-version-upgrades) process now allows Sourcegraph instances to upgrade more than a single minor version. Instances at version 3.20 or later can now jump directly to 4.0. [#40628](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/40628)
+- Matching ranges in file paths are now highlighted for path results and content results. Matching paths in repository names are now highlighted for repository results. [#41296](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/41296) [#41385](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/41385) [#41470](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/41470)
+- Aggregations by repository, file, author, and capture group are now provided for search results. [#39643](https://github.com/sourcegraph/sourcegraph-public-snapshot/issues/39643)
+- Blob views and search results are now lazily syntax highlighted for better performance. [#39563](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/39563) [#40263](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/40263)
+- File links in both the search results and the blob sidebar and now prefetched on hover or focus. [#40354](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/40354) [#41420](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/41420)
+- Negation support for the search predicates `-repo:has.path()` and `-repo:has.content()`. [#40283](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/40283)
+- Experimental clientside OpenTelemetry can now be enabled with `"observability.client": { "openTelemetry": "/-/debug/otlp" }`, which sends OpenTelemetry to the new [bundled OpenTelemetry Collector](/admin/observability/opentelemetry). [#37907](https://github.com/sourcegraph/sourcegraph-public-snapshot/issues/37907)
+- File diff stats are now characterized by 2 figures: lines added and lines removed. Previously, a 3rd figure for lines modified was also used. This is represented by the fields on the `DiffStat` type on the GraphQL API. [#40454](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/40454)
+
+### Changed
+- [Sourcegraph with Kubernetes (without Helm)](/admin/deploy/kubernetes): The `jaeger-agent` sidecar has been replaced by an [OpenTelemetry Collector](/admin/observability/opentelemetry) DaemonSet + Deployment configuration. The bundled Jaeger instance is now disabled by default, instead of enabled. [#40456](https://github.com/sourcegraph/sourcegraph-public-snapshot/issues/40456)
+- [Sourcegraph with Docker Compose](/admin/deploy/docker-compose): The `jaeger` service has been replaced by an [OpenTelemetry Collector](/admin/observability/opentelemetry) service. The bundled Jaeger instance is now disabled by default, instead of enabled. [#40455](https://github.com/sourcegraph/sourcegraph-public-snapshot/issues/40455)
+- `"observability.tracing": { "type": "opentelemetry" }` is now the default tracer type. To revert to existing behaviour, set `"type": "jaeger"` instead. The legacy values `"type": "opentracing"` and `"type": "datadog"` have been removed. [#41242](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/41242)
+- `"observability.tracing": { "urlTemplate": "" }` is now the default, and if `"urlTemplate"` is left empty, no trace URLs are generated. To revert to existing behaviour, set `"urlTemplate": "{{ .ExternalURL }}/-/debug/jaeger/trace/{{ .TraceID }}"` instead. [#41242](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/41242)
+- Code host connection tokens are no longer supported as a fallback method for syncing changesets in Batch Changes. [#25394](https://github.com/sourcegraph/sourcegraph-public-snapshot/issues/25394)
+- **IMPORTANT:** `repo:contains(file:foo content:bar)` has been renamed to `repo:contains.file(path:foo content:bar)`. `repo:contains.file(foo)` has been renamed to `repo:contains.path(foo)`. `repo:contains()` **is no longer a valid predicate. Saved searches using** `repo:contains()` **will need to be updated to use the new syntax.** [#40389](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/40389)
+
+### Fixed
+
+- Fixed support for bare repositories using the src-cli and other codehost type. This requires the latest version of src-cli. [#40863](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/40863)
+- The recommended [src-cli](https://github.com/sourcegraph/src-cli) version is now reported consistently. [#39468](https://github.com/sourcegraph/sourcegraph-public-snapshot/issues/39468)
+- A performance issue affecting structural search causing results to not stream. It is much faster now. [#40872](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/40872)
+- An issue where the saved search input box reports an invalid pattern type for `standard`, which is now valid. [#41068](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/41068)
+- Git will now respect system certificate authorities when specifying `certificates` for the `tls.external` site configuration. [#38128](https://github.com/sourcegraph/sourcegraph-public-snapshot/issues/38128)
+- Fixed a bug where setting `"observability.tracing": {}` would disable tracing, when the intended behaviour is to default to tracing with `"sampling": "selective"` enabled by default. [#41242](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/41242)
+- The performance, stability, and latency of search predicates like `repo:has.file()`, `repo:has.content()`, and `file:has.content()` have been dramatically improved. [#418](https://github.com/sourcegraph/zoekt/pull/418), [#40239](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/40239), [#38988](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/38988), [#39501](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/39501)
+- A search query issue where quoted patterns inside parenthesized expressions would be interpreted incorrectly. [#41455](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/41455)
+
+### Removed
+
+- `CACHE_DIR` has been removed from the `sourcegraph-frontend` deployment. This required ephemeral storage which will no longer be needed. This variable (and corresponding filesystem mount) has been unused for many releases. [#38934](https://github.com/sourcegraph/sourcegraph-public-snapshot/issues/38934)
+- Quick links will no longer be shown on the homepage or search sidebar. The `quicklink` setting is now marked as deprecated. [#40750](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/40750)
+- Quick links will no longer be shown on the homepage or search sidebar if the "Simple UI" toggle is enabled and will be removed entirely in a future release. The `quicklink` setting is now marked as deprecated. [#40750](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/40750)
+- `file:contains()` has been removed from the list of valid predicates. `file:has.content()` and `file:contains.content()` remain, both of which work the same as `file:contains()` and are valid aliases of each other.
+- The single-container `sourcegraph/server` deployment no longer bundles a Jaeger instance. [#41244](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/41244)
+- The following previously-deprecated fields have been removed from the Batch Changes GraphQL API: `GitBranchChangesetDescription.headRepository`, `BatchChange.initialApplier`, `BatchChange.specCreator`, `Changeset.publicationState`, `Changeset.reconcilerState`, `Changeset.externalState`.
+
+## Older versions
+
+For older versions of Sourcegraph, see the [CHANGELOG](https://github.com/sourcegraph/sourcegraph-public-snapshot/blob/main/CHANGELOG.md) on GitHub.
+```
diff --git a/docs/tutorials/index.mdx b/docs/tutorials/index.mdx
index aaeeb5d32..a75ba9811 100644
--- a/docs/tutorials/index.mdx
+++ b/docs/tutorials/index.mdx
@@ -34,6 +34,7 @@
| ------------------------------------------------------------------------------------------------------------------------------------------ | ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Product Tour is VSCode](https://www.youtube.com/watch?v=OTIYXUwAQtI&t=6s) | Tutorial (video) | A video tutorial walkthrough of Cody in VSCode. |
|[Cody Admin Training](https://www.youtube.com/watch?v=_Xwr7YlfTt0) | Tutorial (video) | A video tutorial explaining Cody administrative functionality.|
+|[Cody Tutorial in VS Code](/cody/use-cases/vsc-tutorial) | Tutorial (written) | A single documentation page with animated .gifs, demonstrating Cody features in VS Code |
## Code Navigation
@@ -54,10 +55,10 @@
| Topic | Content Type | Description |
| ----------------------------------------------------------------------------------------------------------------------------- | ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
-| [Introduction to Batch Changes](/batch_changes/explanations/introduction_to_batch_changessearch_contexts) | Explanation | A basic introduction to the concepts, processes, and supported environments behind Batch Changes |
+| [Introduction to Batch Changes](/batch-changes/) | Explanation | A basic introduction to the concepts, processes, and supported environments behind Batch Changes |
| [Get Started With Batch Changes](https://www.youtube.com/watch?v=GKyHYqH6ggY) | Tutorial (video) | Learn how you can quickly use Sourcegraph Batch Changes to automate small and large-scale code changes server-side. |
-| [Batch Changes Quickstart Guide](/batch_changes/quickstartsearch_contexts) | Tutorial | Get started and create your first batch change in 10 minutes or less. This guide follows the local (CLI) method of running batch changes. |
-| [Getting Started Running Batch Changes Server-Side](/batch_changes/explanations/server_side_getting_started) | How-To-Guide | Follow this guide to learn how to run batch changes server-side. |
+| [Batch Changes Quickstart Guide](/batch-changes/quickstart) | Tutorial | Get started and create your first batch change in 10 minutes or less. This guide follows the local (CLI) method of running batch changes. |
+| [Getting Started Running Batch Changes Server-Side](/batch-changes/server-side) | How-To-Guide | Follow this guide to learn how to run batch changes server-side. |
## The Sourcegraph API
diff --git a/docs/versioned/5.2/CHANGELOG.mdx b/docs/versioned/5.2/CHANGELOG.mdx
deleted file mode 100644
index f46b36d3f..000000000
--- a/docs/versioned/5.2/CHANGELOG.mdx
+++ /dev/null
@@ -1,4397 +0,0 @@
-# Changelog
-
-All notable changes to Sourcegraph are documented in this file.
-
-## Unreleased 5.3.0 (planned release date: February, 2024)
-
-### Added
-
-- The `has.topic` filter now supports filtering by Gitlab topics. [#57649](https://github.com/sourcegraph/sourcegraph/pull/57649)
-- Batch Changes now allows changesets to be exported in CSV and JSON format. [#56721](https://github.com/sourcegraph/sourcegraph/pull/56721)
-- Supports custom ChatCompletion models in Cody clients for dotcom users. [#58158](https://github.com/sourcegraph/sourcegraph/pull/58158)
-- Topics synced from GitHub and GitLab are now displayed for repository matches in the search results and on the repository tree page. [#58927](https://github.com/sourcegraph/sourcegraph/pull/58927)
-- Added a new column "Repository metadata JSON" to the CSV export of repository search results, which includes the JSON encoded object of metadata key-value pairs. [#59334](https://github.com/sourcegraph/sourcegraph/pull/59334)
-- Expiry to access tokens. Users can now select a maximum timespan for which a token is valid. Tokens will automatically lose access after this period. Default timeframes and an override to allow access tokens without expiration can be configured in the `auth.accessTokens` section of the site configuration. [#59565](https://github.com/sourcegraph/sourcegraph/pull/59565)
-
-### Changed
-
-- `cody.restrictUsersFeatureFlag` has been deprecated and replaced by role based access control instead. Until the old configuration value is removed from your site config, it will be respected just as before but with a warning displayed at the top of Sourcegraph. Once removed, the old feature flag will not be respected and instead the Cody access will be managed via role based access controls, see [the docs](https://docs.sourcegraph.com/cody/overview/enable-cody-enterprise#enable-cody-only-for-some-users) for more information. [#58831](https://github.com/sourcegraph/sourcegraph/pull/58831)
-- The setting `experimentalFeatures.searchQueryInput` now refers to the new query input as `v2` (not `experimental`).
-
-{/* NOTE: If v2 becomes the default before this release is cut, then update this entry to mention that instead of adding a separate entry. */}
-
-- Search-based code intel doesn't include the currently selected search context anymore. It was possible to get into a situation where search-based code intel wouldn't find any information due to being restricted by the current search context. [#58010](https://github.com/sourcegraph/sourcegraph/pull/58010)
-- The last commit which changed a file/directory is now shown in the files panel on the repo and file pages. To avoid duplicating information and confusion, the commits panel was removed. [58328](https://github.com/sourcegraph/sourcegraph/pull/58328)
-- Clicking on a search result now opens the blob view at the same commit as the search result. Before, blob views were opened at the tip of the default branch, which sometimes caused inconsistencies in line numbers if the index was out of date. [#58381](https://github.com/sourcegraph/sourcegraph/pull/58381)
-- The `exclude` configuration for code host configuration has been updated to allow chaining multiple conditions together and filtering GitHub repositories based on their size or number of GitHub stars. [#58377](https://github.com/sourcegraph/sourcegraph/pull/58377) and [#58405](https://github.com/sourcegraph/sourcegraph/pull/58405)
- - Multiple attributes on _a single_ `exclude` entry now have to be all true for a repository to be excluded. Example: `{"exclude": [{"name": "github.com/example/example"}, {"id": "my-id"}]}` will _only_ exclude repositories that have the name _and_ the id mentioned.
- - GitHub code host connections can exclude by size and stars now: `{"exclude": [{"name": "github.com/example/example"}, {"stars": "< 100", "size": ">= 1GB"}]}`
- - For `size` and `stars` the supported operators are `<`, `>`, `<=`, `>=`.
- - For `size` the supported units are `B`, `b`, `kB`, `KB`, `kiB`, `KiB`, `MiB`, `MB`, `GiB`, `GB`. No decimals points are supported.
-- Structural Search is now disabled by default. To enable it, set `experimentalFeatures.structuralSearch: "enabled"` in the site configuration. [#57584](https://github.com/sourcegraph/sourcegraph/pull/57584)
-- Search Jobs switches the format of downloaded results from CSV to JSON. [#59619](https://github.com/sourcegraph/sourcegraph/pull/59619)
-
-### Fixed
-
-- Site configuration edit history no longer breaks when the user that made the edit is deleted. [#57656](https://github.com/sourcegraph/sourcegraph/pull/57656)
-- Drilling down into an insights query no longer mangles `content:` fields in your query. [#57679](https://github.com/sourcegraph/sourcegraph/pull/57679)
-- The blame column now shows correct blame information when a hunk starts in a folded code section. [#58042](https://github.com/sourcegraph/sourcegraph/pull/58042)
-- Fixed a bug where typing in the GraphQL editor in the Site Admin API console could cause the cursor to jump to the start of the editor. [#57862](https://github.com/sourcegraph/sourcegraph/pull/57862)
-- The blame column no longer ignores whitespace-only changes by default. [#58134](https://github.com/sourcegraph/sourcegraph/pull/58134)
-- Long lines now wrap correctly in the diff view. [#58138](https://github.com/sourcegraph/sourcegraph/pull/58138)
-- Fixed an issue in the search input where pressing Enter after selecting a suggestion would sometimes insert another suggestions instead of submitting the query. [#58186](https://github.com/sourcegraph/sourcegraph/pull/58186)
-- Fixed an issue where having sub-repo permissions enabled could cause repositories with a large number of files in directories to become unviewable. [#59420](https://github.com/sourcegraph/sourcegraph/pull/59420)
-
-### Removed
-
-- The experimental GraphQL query `User.invitableCollaborators`.
-- The following experimental settings in site-configuration are now deprecated and will not be read anymore: `maxReorderQueueSize`, `maxQueueMatchCount`, `maxReorderDurationMS`. [#57468](https://github.com/sourcegraph/sourcegraph/pull/57468)
-- The feature-flag `search-ranking`, which allowed to disable the improved ranking introduced in 5.1, is now deprecated and will not be read anymore. [#57468](https://github.com/sourcegraph/sourcegraph/pull/57468)
-- The GitHub Proxy service is no longer required and has been removed from deployment options. [#55290](https://github.com/sourcegraph/sourcegraph/issues/55290)
-- The VSCode search extension "Sourcegraph for VS Code" has been sunset and removed from Sourcegraph
- repository. [#58023](https://github.com/sourcegraph/sourcegraph/pull/58023)
-- The `rateLimit` configuration for Perforce code host connections has been removed to avoid confusion, it was unused. [#58188](https://github.com/sourcegraph/sourcegraph/pull/58188)
-- The feature flag `search-ranking` is now completely removed. [#58156](https://github.com/sourcegraph/sourcegraph/pull/58156)
-- The notepad UI, notebook creation feature. [#58217](https://github.com/sourcegraph/sourcegraph/pull/58217)
-- The experimental `indexRepositoryName` option for the rust packages code host connection has been removed. [#59176](https://github.com/sourcegraph/sourcegraph/pull/59176)
-- The column "Repository metadata" in the CSV export of repository search results is now deprecated and will be removed in a future release. Use "Repository metadata JSON" instead [#59334](https://github.com/sourcegraph/sourcegraph/pull/59334)
-
-## Unreleased 5.2.6
-
-### Added
-
-- Implement adding automatic retry support for idempotent gRPC methods [#59404](https://github.com/sourcegraph/sourcegraph/pull/59404)
-
-### Fixed
-
-- Fix executors auth header `installSrc` [#59391](https://github.com/sourcegraph/sourcegraph/pull/59391)
-- Avoid constantly rerunning failed embeddings jobs. [#58980](https://github.com/sourcegraph/sourcegraph/pull/58980)
-
-### Changed
-
-### Removed
-
-## 5.2.5
-
-### Added
-
-- Added Cody providers data to pings. [#58848](https://github.com/sourcegraph/sourcegraph/pull/58848)
-- Added the ability to proxy authentication requests when using the Azure OpenAI Cody provider. [#58862](https://github.com/sourcegraph/sourcegraph/pull/58862)
-
-### Fixed
-
-- Fixed an issue where updating a generic git code host would cause it to become unrestricted if permissions user mapping is enabled. [#58772](https://github.com/sourcegraph/sourcegraph/pull/58772)
-- Fail embeddings jobs immediately if the rate limit is exceeded. [#58869](https://github.com/sourcegraph/sourcegraph/pull/58869)
-
-### Changed
-
-- Improved the admin page for search indexing. [#58866](https://github.com/sourcegraph/sourcegraph/pull/58866)
-
-### Removed
-
-## Unreleased 5.2.4
-
-### Added
-
-- Added the ability to use Workload Identity, Managed Identity and Environmental credentials when using the Azure OpenAI completions and embeddings providers [#58289](https://github.com/sourcegraph/sourcegraph/pull/58289)
-
-### Fixed
-
-- Fixed two issues in Zoekt that could cause out of memory errors during search indexing. [sourcegraph/zoekt#686](https://github.com/sourcegraph/zoekt/pull/686), [sourcegraph/zoekt#689](https://github.com/sourcegraph/zoekt/pull/689)
-
-### Changed
-
-### Removed
-
-## 5.2.3
-
-### Added
-
-- Added configurable GraphQL query cost limitations to prevent unintended resource exhaustion. Default values are now provided and enforced, replacing the previously unlimited behaviour. For more information, please refer to: [GraphQL Cost Limits Documentation](https://docs.sourcegraph.com/api/graphql#cost-limits). See details at [#58346](https://github.com/sourcegraph/sourcegraph/pull/58346).
-- Sourcegraph now supports connecting to Bitbucket Cloud using Workspace Access Tokens. [#58465](https://github.com/sourcegraph/sourcegraph/pull/58465).
-
-### Fixed
-
-- Defining file filters for embeddings jobs no longer causes all files to be skipped if `MaxFileSizeBytes` isn't defined. [#58262](https://github.com/sourcegraph/sourcegraph/pull/58262)
-
-## 5.2.2
-
-### Added
-
-- Added a new authorization configuration options to GitLab code host connections: "markInternalReposAsPublic". Setting "markInternalReposAsPublic" to true is useful for organizations that have a large amount of internal repositories that everyone on the instance should be able to access, removing the need to have permissions to access these repositories. Additionally, when configuring a GitLab auth provider, you can specify "syncInternalRepoPermissions": false, which will remove the need to sync permissions for these internal repositories. [#57858](https://github.com/sourcegraph/sourcegraph/pull/57858)
-- Experimental support for OpenAI powered autocomplete has been added. [#57872](https://github.com/sourcegraph/sourcegraph/pull/57872)
-
-### Fixed
-
-- Updated the endpoint used by the AWS Bedrock Claude provider. [#58028](https://github.com/sourcegraph/sourcegraph/pull/58028)
-
-## 5.2.1
-
-### Added
-
-- Added two new authorization configuration options to GitHub code host connections: "markInternalReposAsPublic" and "syncInternalRepoPermissions". Setting "markInternalReposAsPublic" to true is useful for organizations that have a large amount of internal repositories that everyone on the instance should be able to access, removing the need to have permissions to access these repositories. Setting "syncInternalRepoPermissions" to true adds an additional step to user permission syncs that explicitly checks for internal repositories. However, this could lead to longer user permission sync times. [#56677](https://github.com/sourcegraph/sourcegraph/pull/56677)
-- Fixed an issue with Code Monitors that could cause users to be notified multiple times for the same commit [#57546](https://github.com/sourcegraph/sourcegraph/pull/57546)
-- Fixed an issue with Code Monitors that could prevent a new code monitor from being created if it targeted multiple repos [#57546](https://github.com/sourcegraph/sourcegraph/pull/57546)
-- Sourcegraph instances will now emit a limited set of [telemetry events](https://docs.sourcegraph.com/admin/telemetry) in the background by default ([#57605](https://github.com/sourcegraph/sourcegraph/pull/57605)). Enablement will be based on the following conditions:
- - Customers with a license key created after October 3, 2023, or do not have a valid license key configured, will export all telemetry events recorded in the new system.
- - Customers with a license key created before October 3, 2023 will export only Cody-related events recorded in the new system, as covered by the [Cody Usage and Privacy Notice](https://about.sourcegraph.com/terms/cody-notice).
- - If you have a previous agreement regarding telemetry sharing, you account representative will reach out with more details.
-
-### Fixed
-
-- Fixed a user's Permissions page being inaccessible if the user has had no permission syncs with an external account connected. [#57372](https://github.com/sourcegraph/sourcegraph/pull/57372)
-- Fixed a bug where site admins could not view a user's permissions if they didn't have access to all of the repositories the user has. Admins still won't be able to see repositories they don't have access to, but they will now be able to view the rest of the user's repository permissions. [#57375](https://github.com/sourcegraph/sourcegraph/pull/57375)
-- Fixed a bug where gitserver statistics would not be properly decoded / reported when using REST (i.e. `experimentalFeatures.enableGRPC = false` in site configuration). [#57318](https://github.com/sourcegraph/sourcegraph/pull/57318)
-- Updated the `curl` and `libcurl` dependencies to `8.4.0-r0` to fix [CVE-2023-38545](https://curl.se/docs/CVE-2023-38545.html). [#57533](https://github.com/sourcegraph/sourcegraph/pull/57533)
-- Fixed a bug where commit signing failed when creating a changeset if `batchChanges.enforceFork` is set to true. [#57520](https://github.com/sourcegraph/sourcegraph/pull/57520)
-- Fixed a regression in ranking of Go struct and interface in search results. [zoekt#655](https://github.com/sourcegraph/zoekt/pull/655)
-
-## 5.2.0
-
-### Added
-
-- Experimental support for AWS Bedrock Claude for the completions provider has been added. [#56321](https://github.com/sourcegraph/sourcegraph/pull/56321)
-- Recorded command logs can now be viewed for Git operations performed by Sourcegraph. This provides auditing and debugging capabilities. [#54997](https://github.com/sourcegraph/sourcegraph/issues/54997)
-- Disk usage metrics for gitservers are now displayed on the site admin Git Servers page, showing free/total disk space. This helps site admins monitor storage capacity on GitServers. [#55958](https://github.com/sourcegraph/sourcegraph/issues/55958)
-- Overhauled Admin Onboarding UI for enhanced user experience, introducing a license key modal with validation, automated navigation to Site Configuration Page, an interactive onboarding checklist button, and direct documentation links for SMTP and user authentication setup. [56366](https://github.com/sourcegraph/sourcegraph/pull/56366)
-- New experimental feature "Search Jobs". Search Jobs allows you to run search queries across your organization's codebase (all repositories, branches, and revisions) at scale. It enhances the existing Sourcegraph's search capabilities, enabling you to run searches without query timeouts or incomplete results. Please refer to the [documentation](https://docs.sourcegraph.com/code_search/how-to/search-jobs) for more information.
-
-### Changed
-
-- OpenTelemetry Collector has been upgraded to v0.81, and OpenTelemetry packages have been upgraded to v1.16. [#54969](https://github.com/sourcegraph/sourcegraph/pull/54969), [#54999](https://github.com/sourcegraph/sourcegraph/pull/54999)
-- Bitbucket Cloud code host connections no longer automatically syncs the repository of the username used. The appropriate workspace name will have to be added to the `teams` list if repositories for that account need to be synced. [#55095](https://github.com/sourcegraph/sourcegraph/pull/55095)
-- Newly created access tokens are now hidden by default in the Sourcegraph UI. To view a token, click "show" button next to the token. [#56481](https://github.com/sourcegraph/sourcegraph/pull/56481)
-- The GitHub proxy service has been removed and is no longer required. You can safely remove it from your deployment. [#55290](https://github.com/sourcegraph/sourcegraph/issues/55290)
-- On startup, Zoekt indexserver will now delete the `/.indexserver.tmp` directory to remove leftover repository clones, possibly causing a brief delay. Due to a bug, this directory wasn't previously cleaned up and could cause unnecessary disk usage. [zoekt#646](https://github.com/sourcegraph/zoekt/pull/646).
-- gRPC is now used by default for all internal (service to service) communication. This change should be invisible to most customers. However, if you're running in an environment that places restrictions on Sourcegraph's internal traffic, some prior configuration might be required. See the ["Sourcegraph 5.2 gRPC Configuration Guide"](https://docs.sourcegraph.com/admin/updates/grpc) for more information. [#56738](https://github.com/sourcegraph/sourcegraph/pull/56738)
-
-### Fixed
-
-- Language detection for code highlighting now uses `go-enry` for all files by default, which fixes highlighting for MATLAB files. [#56559](https://github.com/sourcegraph/sourcegraph/pull/56559)
-
-### Removed
-
-- indexed-search has removed the deprecated environment variable ZOEKT_ENABLE_LAZY_DOC_SECTIONS [zoekt#620](https://github.com/sourcegraph/zoekt/pull/620)
-- The federation feature that could redirect users from their own Sourcegraph instance to public repositories on Sourcegraph.com has been removed. It allowed users to open a repository URL on their own Sourcegraph instance and, if the repository wasn't found on that instance, the user would be redirect to the repository on Sourcegraph.com, where it was possibly found. The feature has been broken for over a year though and we don't know that it was used. If you want to use it, please open a feature-request issue and tag the `@sourcegraph/source` team. [#55161](https://github.com/sourcegraph/sourcegraph/pull/55161)
-- The `applySearchQuerySuggestionOnEnter` experimental feature flag in user settings was removed, and this behavior is now always enabled. Previously, this behavior was on by default, but it was possible to disable it.
-- The feature-flag `search-hybrid`, which allowed to disable the performance improvements for unindexed search in 4.3, is now deprecated and will not be read anymore. [#56470](https://github.com/sourcegraph/sourcegraph/pull/56470)
-
-## 5.1.9
-
-### Added
-
-- Enable "Test connection" for Perforce code hosts. The "Test connection" button in the code host page UI now works for Perforce code hosts. [#56697](https://github.com/sourcegraph/sourcegraph/pull/56697)
-
-### Changed
-
-- User access to Perforce depots is sometimes denied unintentionally when using `"authorization"/"subRepoPermissions": true` in the code host config and the protects file contains exclusionary entries with the Host field filled out. Ignoring those rules (that use anything other than the wildcard (`*`) in the Host field) is now toggle-able by adding `"authorization"/"ignoreRulesWithHost"` to the code host config and setting the value to `true`. [#56450](https://github.com/sourcegraph/sourcegraph/pull/56450)
-
-### Fixed
-
-- Fixed an issue where the "gitLabProjectVisibilityExperimental" feature flag would not be respected by the permissions syncer. This meant that users on Sourcegraph that have signed in with GitLab would not see GitLab internal repositories that should be accessible to everyone on the GitLab instance, even though the feature flag was enabled [#56492](https://github.com/sourcegraph/sourcegraph/pull/56492)
-- Fixed a bug when syncing repository lists from GitHub that could lead to 404 errors showing up when running into GitHub rate limits [#56478](https://github.com/sourcegraph/sourcegraph/pull/56478)
-
-## 5.1.8
-
-### Added
-
-- Added experimental autocomplete support for Azure OpenAI [#56063](https://github.com/sourcegraph/sourcegraph/pull/56063)
-
-### Changed
-
-- Improved stability of gRPC connections [#56314](https://github.com/sourcegraph/sourcegraph/pull/56314), [#56302](https://github.com/sourcegraph/sourcegraph/pull/56302), [#56298](https://github.com/sourcegraph/sourcegraph/pull/56298), [#56217](https://github.com/sourcegraph/sourcegraph/pull/56217)
-
-## 5.1.7
-
-### Changed
-
-- Pressing `Mod-f` will always select the input value in the file view search [#55546](https://github.com/sourcegraph/sourcegraph/pull/55546)
-- Caddy has been updated to version 2.7.3 resolving a number of vulnerabilities. [#55606](https://github.com/sourcegraph/sourcegraph/pull/55606)
-- The commit message defined in a batch spec will now be passed to `git commit` on stdin using `--file=-` instead of being included inline with `git commit -m` to improve how the message is interpreted by `git` in certain edge cases, such as when the commit message begins with a dash, and to prevent extra quotes being added to the message. This may mean that previous escaping strategies will behave differently.
-
-### Fixed
-
-- Fixed a bug in the `deploy-sourcegraph-helm` deployment of Sourcegraph, for sufficiantly large scip indexes uploads will fail when the precise-code-intel worker attempts to write to `/tmp` and doesn't have a volume mounted for this purpose. See [kubernetes release notes](./admin/updates/kubernetes#v516-➔-v517) for more details [#342](https://github.com/sourcegraph/deploy-sourcegraph-helm/pull/343)
-
-## 5.1.6
-
-### Added
-
-- New Prometheus metrics have been added to track the response / request sizes of gRPC calls. [#55381](https://github.com/sourcegraph/sourcegraph/pull/55381)
-- A new embeddings site configuration setting `excludeChunkOnError` allows embedding jobs to complete job execution despite chunks of code or text that fail. When enabled the chunks are skipped after failed retries but the index can continue being populated. When disabled the entire job fails and the index is not saved. This setting is enabled by default. Embedding job statistics now capture `code_chunks_excluded` and `text_chunks_excluded` for successfully completed jobs. Total excluded chunks and file names for excluded chunks are logged as warnings. [#55180](https://github.com/sourcegraph/sourcegraph/pull/55180)
-- Experimental support for Azure OpenAI for the completions and embeddings provider has been added. [#55178](https://github.com/sourcegraph/sourcegraph/pull/55178)
-- Added a feature flag for alternate GitLab project visibility resolution. This may solve some weird cases with not being able to see GitLab internal projects. [#54426](https://github.com/sourcegraph/sourcegraph/pull/54426)
- - To use this feature flag, create a Boolean feature flag named "gitLabProjectVisibilityExperimental" and set the value to True.
-- It is now possible to add annotations to pods spawned by jobs created by the Kubernetes executor. [#55361](https://github.com/sourcegraph/sourcegraph/pull/55361)
-
-### Changed
-
-- Updated all packages in container images to latest versions
-- Updated Docker-in-Docker image from 23.0.1 to 23.0.6
-- The gRPC implementation for the Symbol service's `LocalCodeIntel` endpoint has been changed to stream its results. [#55242](https://github.com/sourcegraph/sourcegraph/pull/55242)
-- When using OpenAI or Azure OpenAI for Cody completions, code completions will be disabled - chat will continue to work. This is because we currently don't support code completions with OpenAI. [#55624](https://github.com/sourcegraph/sourcegraph/pull/55624)
-
-### Fixed
-
-- Fixed a bug where user account requests could not be approved even though the license would permit user creation otherwise. [#55482](https://github.com/sourcegraph/sourcegraph/pull/55482)
-- Fixed a bug where the background scheduler for embedding jobs based on policies would not schedule jobs for private repositories. [#55698](https://github.com/sourcegraph/sourcegraph/pull/55698)
-- Fixed a source of inconsistency in precise code navigation, affecting implementations and prototypes especially. [#54410](https://github.com/sourcegraph/sourcegraph/pull/54410)
-
-### Removed
-
-## 5.1.5
-
-### Known Issues
-
-- Standard and multi-version upgrades are not currently working from Sourcegraph versions 5.0.X to 5.1.5. As a temporary workaround, please upgrade 5.0.X to 5.1.0, then 5.1.0 to 5.1.5.
-
-### Fixed
-
-- Fixed an embeddings job scheduler bug where if we cannot resolve one of the repositories or its default branch then all repositories submitted will not have their respective embeddings job enqueued. Embeddings job scheduler will now continue to schedule jobs for subsequent repositories in the submitted repositories set. [#54701](https://github.com/sourcegraph/sourcegraph/pull/54701)
-- Creation of GitHub Apps will now respect system certificate authorities when specifying certificates for the tls.external site configuration. [#55084](https://github.com/sourcegraph/sourcegraph/pull/55084)
-- Passing multi-line Coursier credentials in JVM packages configuration should now work correctly. [#55113](https://github.com/sourcegraph/sourcegraph/pull/55113)
-- SCIP indexes are now ingested in a streaming fashion, eliminating out-of-memory errors in most cases, even when uploading very large indexes (1GB+ uncompressed). [#53828](https://github.com/sourcegraph/sourcegraph/pull/53828)
-- Moved the license checks to worker service. We make sure to run only 1 instance of license checks this way. [54854](https://github.com/sourcegraph/sourcegraph/pull/54854)
-- Updated base images to resolve issues in curl, OpenSSL, and OpenSSL. [55310](https://github.com/sourcegraph/sourcegraph/pull/55310)
-- The default message size limit for gRPC clients has been raised from 4MB to 90MB. [#55209](https://github.com/sourcegraph/sourcegraph/pull/55209)
-- The message printing feature for the custom gRPC internal error interceptor now supports logging all internal error types, instead of just non-utf 8 errors. [#55130](https://github.com/sourcegraph/sourcegraph/pull/55130)
-- Fixed an issue where GitHub Apps could not be set up using Firefox. [#55305](https://github.com/sourcegraph/sourcegraph/pull/55305)
-- Fixed nil panic on certain GraphQL fields when listing users. [#55322](https://github.com/sourcegraph/sourcegraph/pull/55322)
-
-### Changed
-
-- The "Files" tab of the fuzzy finder now allows you to navigate directly to a line number by appending `:NUMBER`. For example, the fuzzy query `main.ts:100` opens line 100 in the file `main.ts`. [#55064](https://github.com/sourcegraph/sourcegraph/pull/55064)
-- The gRPC implementation for the Symbol service's `LocalCodeIntel` endpoint has been changed to stream its results. [#55242](https://github.com/sourcegraph/sourcegraph/pull/55242)
-- GitLab auth providers now support an `ssoURL` option that facilitates scenarios where a GitLab group requires SAML/SSO. [#54957](https://github.com/sourcegraph/sourcegraph/pull/54957)
-
-### Added
-
-### Removed
-
-## 5.1.4
-
-### Fixed
-
-- A bug where we would temporarily use much more memory than needed during embeddings fetching. [#54972](https://github.com/sourcegraph/sourcegraph/pull/54972)
-
-### Changed
-
-- The UI for license keys now displays more information about license validity. [#54990](https://github.com/sourcegraph/sourcegraph/pull/54990)
-- Sourcegraph now supports more than one auth provider per URL. [#54289](https://github.com/sourcegraph/sourcegraph/pull/54289)
-- Site-admins can now list, view and edit all code monitors. [#54981](https://github.com/sourcegraph/sourcegraph/pull/54981)
-
-## 5.1.3
-
-### Changed
-
-- Cody source code (for the VS Code extension, CLI, and client shared libraries) has been moved to the [sourcegraph/cody repository](https://github.com/sourcegraph/cody).
-- `golang.org/x/net/trace` instrumentation, previously available under `/debug/requests` and `/debug/events`, has been removed entirely from core Sourcegraph services. It remains available for Zoekt. [#53795](https://github.com/sourcegraph/sourcegraph/pull/53795)
-
-### Fixed
-
-- Fixed an embeddings job scheduler bug where if we cannot resolve one of the repositories or its default branch then all repositories submitted will not have their respective embeddings job enqueued. Embeddings job scheduler will now continue to schedule jobs for subsequent repositories in the submitted repositories set. [#54701](https://github.com/sourcegraph/sourcegraph/pull/54701)
-
-## 5.1.2
-
-### Fixed
-
-- Fixes a crash when uploading indexes with malformed source ranges (this was a bug in scip-go). [#54304](https://github.com/sourcegraph/sourcegraph/pull/54304)
-- Fixed validation of Bitbucket Cloud configuration in site-admin create/update form. [#54494](https://github.com/sourcegraph/sourcegraph/pull/54494)
-- Fixed race condition with grpc `server.send` message. [#54500](https://github.com/sourcegraph/sourcegraph/pull/54500)
-- Fixed a configuration initialization issue that broke the outbound request in the site admin page. [#54745](https://github.com/sourcegraph/sourcegraph/pull/54745)
-- Fixed Postgres DSN construction edge-case. [#54858](https://github.com/sourcegraph/sourcegraph/pull/54858)
-
-## 5.1.1
-
-### Fixed
-
-- Fixed the default behaviour when the explicit permissions API is enabled. Repositories are no longer marked as unrestricted by default. [#54419](https://github.com/sourcegraph/sourcegraph/pull/54419)
-
-## 5.1.0
-
-> **Note**: As of 5.1.0, the limited OSS subset of Sourcegraph has been removed, and code search OSS code has been relicensed going forward. See https://github.com/sourcegraph/sourcegraph/issues/53528#issuecomment-1594967818 for more information (blog post coming soon).
-
-> **Note**: As of 5.1.0, the `rsa-sha` signature algorithm is no longer supported when connecting to code hosts over SSH. If you encounter the error `sign_and_send_pubkey: no mutual signature supported` when syncing repositories, see [Repository authentication](https://docs.sourcegraph.com/admin/repo/auth#error-sign_and_send_pubkey-no-mutual-signature-supported) for more information and steps to resolve the issue.
-
-### [Known issues](KNOWN-ISSUES)
-
-- There is an issue with Sourcegraph instances configured to use explicit permissions using permissions.userMapping in Site configuration, where repository permissions are not enforced. Customers using the explicit permissions API are advised to upgrade to v5.1.1 directly.
-- There is an issue with creating and updating existing Bitbucket.org (Cloud) code host connections due to problem with JSON schema validation which prevents the JSON editor from loading and surfaces as an error in the UI.
-
-### Added
-
-- Executors natively support Kubernetes environments. [#49236](https://github.com/sourcegraph/sourcegraph/pull/49236)
-- Documentation for GitHub fine-grained access tokens. [#50274](https://github.com/sourcegraph/sourcegraph/pull/50274)
-- Code Insight dashboards retain size and order of the cards. [#50301](https://github.com/sourcegraph/sourcegraph/pull/50301)
-- The LLM completions endpoint is now exposed through a GraphQL query in addition to the streaming endpoint [#50455](https://github.com/sourcegraph/sourcegraph/pull/50455)
-- Permissions center statistics pane is added. Stats include numbers of queued jobs, users/repos with failed jobs, no permissions, and outdated permissions. [#50535](https://github.com/sourcegraph/sourcegraph/pull/50535)
-- SCIM user provisioning support for Deactivate/Reactivation of users. [#50533](https://github.com/sourcegraph/sourcegraph/pull/50533)
-- Login form can now be configured with ordering and limit of auth providers. [See docs](https://docs.sourcegraph.com/admin/auth/login_form). [#50586](https://github.com/sourcegraph/sourcegraph/pull/50586), [50284](https://github.com/sourcegraph/sourcegraph/pull/50284) and [#50705](https://github.com/sourcegraph/sourcegraph/pull/50705)
-- OOM reaper events affecting `p4-fusion` jobs on `gitserver` are better detected and handled. Error (non-zero) exit status is used, and the resource (CPU, memory) usage of the job process is appended to the job output so that admins can infer possible OOM activity and take steps to address it. [#51284](https://github.com/sourcegraph/sourcegraph/pull/51284)
-- When creating a new batch change, spaces are automatically replaced with dashes in the name field. [#50825](https://github.com/sourcegraph/sourcegraph/pull/50825) and [51071](https://github.com/sourcegraph/sourcegraph/pull/51071)
-- Support for custom HTML injection behind an environment variable (`ENABLE_INJECT_HTML`). This allows users to enable or disable HTML customization as needed, which is now disabled by default. [#51400](https://github.com/sourcegraph/sourcegraph/pull/51400)
-- Added the ability to block auto-indexing scheduling and inference via the `codeintel_autoindexing_exceptions` Postgres table. [#51578](https://github.com/sourcegraph/sourcegraph/pull/51578)
-- When an admin has configured rollout windows for Batch Changes changesets, the configuration details are now visible to all users on the Batch Changes settings page. [#50479](https://github.com/sourcegraph/sourcegraph/pull/50479)
-- Added support for regular expressions in`exclude` repositories for GitLab code host connections. [#51862](https://github.com/sourcegraph/sourcegraph/pull/51862)
-- Branches created by Batch Changes will now be automatically deleted on the code host upon merging or closing a changeset if the new `batchChanges.autoDeleteBranch` site setting is enabled. [#52055](https://github.com/sourcegraph/sourcegraph/pull/52055)
-- Repository metadata now generally available for everyone [#50567](https://github.com/sourcegraph/sourcegraph/pull/50567), [#50607](https://github.com/sourcegraph/sourcegraph/pull/50607), [#50857](https://github.com/sourcegraph/sourcegraph/pull/50857), [#50908](https://github.com/sourcegraph/sourcegraph/pull/50908), [#972](https://github.com/sourcegraph/src-cli/pull/972), [#51031](https://github.com/sourcegraph/sourcegraph/pull/51031), [#977](https://github.com/sourcegraph/src-cli/pull/977), [#50821](https://github.com/sourcegraph/sourcegraph/pull/50821), [#51258](https://github.com/sourcegraph/sourcegraph/pull/51258), [#52078](https://github.com/sourcegraph/sourcegraph/pull/52078), [#51985](https://github.com/sourcegraph/sourcegraph/pull/51985), [#52150](https://github.com/sourcegraph/sourcegraph/pull/52150), [#52249](https://github.com/sourcegraph/sourcegraph/pull/52249), [#51982](https://github.com/sourcegraph/sourcegraph/pull/51982), [#51248](https://github.com/sourcegraph/sourcegraph/pull/51248), [#51921](https://github.com/sourcegraph/sourcegraph/pull/51921), [#52301](https://github.com/sourcegraph/sourcegraph/pull/52301)
-- Batch Changes for Gerrit Code Hosts [#52647](https://github.com/sourcegraph/sourcegraph/pull/52647).
-- Batch Changes now supports per-batch-change control for pushing to a fork of the upstream repository when the property `changesetTemplate.fork` is specified in the batch spec. [#51572](https://github.com/sourcegraph/sourcegraph/pull/51572)
-- Executors can now be configured to process multiple queues. [#52016](https://github.com/sourcegraph/sourcegraph/pull/52016)
-- Added `isCodyEnabled` as a new GraphQL field to `Site`. [#52941](https://github.com/sourcegraph/sourcegraph/pull/52941)
-- Enabled improved search ranking by default. This feature can be disabled through the `search-ranking` feature flag.[#53031](https://github.com/sourcegraph/sourcegraph/pull/53031)
-- Added token callback route for Cody in VS Code and VS Code insiders. [#53313](https://github.com/sourcegraph/sourcegraph/pull/53313)
-- Latest repository clone/sync output is surfaced in the "Mirroring and cloning" page (`{REPO}/-/settings/mirror`). Added primarily to enable easier debugging of issues with Perforce depots, it can also be useful for other code hosts. [#51598](https://github.com/sourcegraph/sourcegraph/pull/51598)
-- New `file:has.contributor(...)` predicate for filtering files based on contributors. [#53206](https://github.com/sourcegraph/sourcegraph/pull/53206)
-- Added multi-repo scope selector for Cody on the web supporting unified context generation API which uses combination of embeddings search and keyword search as fallback for context generation. [53046](https://github.com/sourcegraph/sourcegraph/pull/53046)
-- Batch Changes can now sign commits for changesets published on GitHub code hosts via GitHub Apps. [#52333](https://github.com/sourcegraph/sourcegraph/pull/52333)
-- Added history of changes to the site configuration page. Site admins can now see information about changes made to the site configuration, by whom and when. [#49842](https://github.com/sourcegraph/sourcegraph/pull/49842)
-- For Perforce depots, users will now see the changelist ID (CL) instead of Git commit SHAs when visiting a depot or the view changelists page [#51195](https://github.com/sourcegraph/sourcegraph/pull/51195)
-- Visiting a specific CL will now use the CL ID in the URL instead of the commit SHA. Other areas affected by this change are browsing files at a specific CL, viewing a specific file changed as part of a specific CL. To enable this behaviour, site admins should set `"perforceChangelistMapping": "enabled"` under experimentalFeatures in the site configuration. Note that currently we process only one perforce depot at a time to map the commit SHAs to their CL IDs in the backend. In a subsequent release we will add support to process multiple depots in parallel. Other areas where currently commit SHAs are used will be updated in future releases. [#53253](https://github.com/sourcegraph/sourcegraph/pull/53253) [#53608](https://github.com/sourcegraph/sourcegraph/pull/53608) [#54051](https://github.com/sourcegraph/sourcegraph/pull/54051)
-- Added autoupgrading to automatically perform multi-version upgrades, without manual `migrator` invocations, through the `frontend` deployment. Please see the [documentation](https://docs.sourcegraph.com/admin/updates/automatic) for details. [#52242](https://github.com/sourcegraph/sourcegraph/pull/52242) [#53196](https://github.com/sourcegraph/sourcegraph/pull/53196)
-
-### Changed
-
-- Access tokens now begin with the prefix `sgp_` to make them identifiable as secrets. You can also prepend `sgp_` to previously generated access tokens, although they will continue to work as-is without that prefix.
-- The commit message defined in a batch spec will now be quoted when git is invoked, i.e. `git commit -m "commit message"`, to improve how the message is interpreted by the shell in certain edge cases, such as when the commit message begins with a dash. This may mean that previous escaping strategies will behave differently.
-- 429 errors from external services Sourcegraph talks to are only retried automatically if the Retry-After header doesn't indicate that a retry would be useless. The time grace period can be configured using `SRC_HTTP_CLI_EXTERNAL_RETRY_AFTER_MAX_DURATION` and `SRC_HTTP_CLI_INTERNAL_RETRY_AFTER_MAX_DURATION`. [#51743](https://github.com/sourcegraph/sourcegraph/pull/51743)
-- Security Events NO LONGER write to database by default - instead, they will be written in the [audit log format](https://docs.sourcegraph.com/admin/audit_log) to console. There is a new site config setting `log.securityEventLogs` that can be used to configure security event logs to write to database if the old behaviour is desired. This new default will significantly improve performance for large instances. In addition, the old environment variable `SRC_DISABLE_LOG_PRIVATE_REPO_ACCESS` no longer does anything. [#51686](https://github.com/sourcegraph/sourcegraph/pull/51686)
-- Audit Logs & Security Events are written with the same severity level as `SRC_LOG_LEVEL`. This prevents a misconfiguration
- issue when `log.AuditLogs.SeverityLevel` was set below the overall instance log level. `log.AuditLogs.SeverityLevel` has
- been marked as deprecated and will be removed in a future release [#52566](https://github.com/sourcegraph/sourcegraph/pull/52566)
-- Update minimum supported Redis version to 6.2 [#52248](https://github.com/sourcegraph/sourcegraph/pull/52248)
-- The batch spec properties [`transformChanges`](https://docs.sourcegraph.com/batch_changes/references/batch_spec_yaml_reference#transformchanges) and [`workspaces`](https://docs.sourcegraph.com/batch_changes/references/batch_spec_yaml_reference#workspaces) are now generally available.
-- Cody feature flags have been simplified [#52919](https://github.com/sourcegraph/sourcegraph/pull/52919) See [the docs page for complete setup details](https://docs.sourcegraph.com/cody/explanations/enabling_cody_enterprise)
- - `cody.enabled` in site-config now controls whether Cody is on/off, default `false`.
- - When `cody.enabled` is set and no specific configuration for `completions` and `embeddings` are given, Cody will by default talk to the `sourcegraph` provider, Sourcegraphs Cody Gateway which allows access to chat completions and embeddings.
- - Enabling Cody now requires `cody.enabled` set to `true` and `completions` to be set.
- - `cody.restrictUsersFeatureFlag` replaces `experimentalFeatures.CodyRestrictUsersFeatureFlag` in site-config, default `false`.
- - `completions.enabled` has been deprecated, replaced by `cody.enabled`.
- - The feature flags for Cody in web features have been removed and the single source of truth is now `cody.enabled`.
- - The embeddings configuration now requires a `provider` field to be set.
- - Ping data now reflects whether `cody.enabled` and `completions` are set.
-- If a Sourcegraph request is traced, its trace ID and span ID are now set to the `X-Trace` and `X-Trace-Span` response headers respectively. The trace URL (if a template is configured in `observability.tracing.urlTemplate`) is now set to `X-Trace-URL` - previously, the URL was set to `X-Trace`. [#53259](https://github.com/sourcegraph/sourcegraph/pull/53259)
-- For users using the single-container server image with the default built-in database, the database must be reindexed. This process can take up to a few hours on systems with large datasets. See [Migrating to Sourcegraph 5.1.x](https://docs.sourcegraph.com/admin/migration/5_1) for full details. [#53256](https://github.com/sourcegraph/sourcegraph/pull/53256)
-- [Sourcegraph Own](https://docs.sourcegraph.com/own) is now available as a beta enterprise feature. `search-ownership` feature flag is removed and doesn't need to be used.
-- Update Jaeger to 1.45.0, and Opentelemetry-Collector to 0.75.0 [#54000](https://github.com/sourcegraph/sourcegraph/pull/54000)
-- Switched container OS to Wolfi for hardened containers [#47182](https://github.com/sourcegraph/sourcegraph/pull/47182), [#47368](https://github.com/sourcegraph/sourcegraph/pull/47368)
-- Batches changes now supports for CODEOWNERS for Github. Pull requests requiring CODEOWNERS approval, will no longer show as approved unless explicitly approved by a CODEOWNER. https://github.com/sourcegraph/sourcegraph/pull/53601
-- The insecure `rsa-sha` signature algorithm is no longer supported when connecting to code hosts over SSH. See the [Repository authentication](https://docs.sourcegraph.com/admin/repo/auth#error-sign_and_send_pubkey-no-mutual-signature-supported) page for further details.
-
-### Fixed
-
-- GitHub `repositoryQuery` searches now respect date ranges and use API requests more efficiently. #[49969](https://github.com/sourcegraph/sourcegraph/pull/49969)
-- Fixed an issue where search based references were not displayed in the references panel. [#50157](https://github.com/sourcegraph/sourcegraph/pull/50157)
-- Symbol suggestions only insert `type:symbol` filters when necessary. [#50183](https://github.com/sourcegraph/sourcegraph/pull/50183)
-- Removed an incorrect beta label on the Search Context creation page [#51188](https://github.com/sourcegraph/sourcegraph/pull/51188)
-- Multi-version upgrades to version `5.0.2` in a fully airgapped environment will not work without the command `--skip-drift-check`. [#51164](https://github.com/sourcegraph/sourcegraph/pull/51164)
-- Could not set "permissions.syncOldestUsers" or "permissions.syncOldestRepos" to zero. [#51255](https://github.com/sourcegraph/sourcegraph/pull/51255)
-- GitLab code host connections will disable repo-centric repository permission syncs when the authentication provider is set as "oauth". This prevents repo-centric permission sync from getting incorrect data. [#51452](https://github.com/sourcegraph/sourcegraph/pull/51452)
-- Code intelligence background jobs did not correctly use an internal context, causing SCIP data to sometimes be prematurely deleted. [#51591](https://github.com/sourcegraph/sourcegraph/pull/51591)
-- Slow request logs now have the correct trace and span IDs attached if a trace is present on the request. [#51826](https://github.com/sourcegraph/sourcegraph/pull/51826)
-- The braindot menu on the blob view no longer fetches data eagerly to prevent performance issues for larger monorepo users. [#53039](https://github.com/sourcegraph/sourcegraph/pull/53039)
-- Fixed an issue where commenting out redacted site-config secrets would re-add the secrets. [#53152](https://github.com/sourcegraph/sourcegraph/pull/53152)
-- Fixed an issue where SCIP packages would sometimes not be written to the database, breaking cross-repository jump to definition. [#53763](https://github.com/sourcegraph/sourcegraph/pull/53763)
-- Fixed an issue when adding a new user external account was not scheduling a new permission sync for the user. [#54144](https://github.com/sourcegraph/sourcegraph/pull/54144)
-- Adding a new user account now correctly schedules a permission sync for the user. [#54258](https://github.com/sourcegraph/sourcegraph/pull/54258)
-- Users/repos without an existing sync job in the permission_sync_jobs table are now scheduled properly. [#54278](https://github.com/sourcegraph/sourcegraph/pull/54278)
-
-### Removed
-
-- User tags are removed in favor of the newer feature flags functionality. [#49318](https://github.com/sourcegraph/sourcegraph/pull/49318)
-- Previously deprecated site config `experimentalFeatures.bitbucketServerFastPerm` has been removed. [#50707](https://github.com/sourcegraph/sourcegraph/pull/50707)
-- Unused site-config field `api.rateLimit` has been removed. [#51087](https://github.com/sourcegraph/sourcegraph/pull/51087)
-- Legacy (table-based) blob viewer. [#50915](https://github.com/sourcegraph/sourcegraph/pull/50915)
-
-## 5.0.6
-
-### Fixed
-
-- SAML assertions to get user display name are now compared case insensitively and we do not always return an error. [#52992](https://github.com/sourcegraph/sourcegraph/pull/52992)
-- Fixed an issue where `type:diff` search would not work when sub-repo permissions are enabled. [#53210](https://github.com/sourcegraph/sourcegraph/pull/53210)
-
-## 5.0.5
-
-### Added
-
-- Organization members can now administer batch changes created by other members in their organization's namespace if the setting `orgs.allMembersBatchChangesAdmin` is enabled for that organization. [#50724](https://github.com/sourcegraph/sourcegraph/pull/50724)
-- Allow instance public access mode based on `auth.public` site config and `allow-anonymous-usage` license tag [#52440](https://github.com/sourcegraph/sourcegraph/pull/52440)
-- The endpoint configuration field for completions is now supported by the OpenAI provider [#52530](https://github.com/sourcegraph/sourcegraph/pull/52530)
-
-### Fixed
-
-- MAU calculation in product analytics and pings use the same condition and UTC at all times. [#52306](https://github.com/sourcegraph/sourcegraph/pull/52306) [#52579](https://github.com/sourcegraph/sourcegraph/pull/52579) [#52581](https://github.com/sourcegraph/sourcegraph/pull/52581)
-- Bitbucket native integration: fix code-intel popovers on the pull request pages. [#52609](https://github.com/sourcegraph/sourcegraph/pull/52609)
-- `id` column of `user_repo_permissions` table was switched to `bigint` to avoid `int` overflow. [#52299](https://github.com/sourcegraph/sourcegraph/pull/52299)
-- In some circumstances filenames containing `..` either could not be read or would return a diff when viewed. We now always correctly read those files. [#52605](https://github.com/sourcegraph/sourcegraph/pull/52605)
-- Syntax highlighting for several languages including Python, Java, C++, Ruby, TypeScript, and JavaScript is now working again when using the single Docker container deployment option. Other deployment options were not affected.
-
-## 5.0.4
-
-### Fixed
-
-- Git blame lookups of repositories synced through `src serve-git` or code hosts using a custom `repositoryPathPattern` will now use the correct URL when streaming git blame is enabled. [#51525](https://github.com/sourcegraph/sourcegraph/pull/51525)
-- Code Insights scoped to a static list of repository names would fail to resolve repositories with permissions enabled, resulting in insights that would not process. [#51657](https://github.com/sourcegraph/sourcegraph/pull/51657)
-- Batches: Resolved an issue with GitHub webhooks where CI check updates fail due to the removal of a field from the GitHub webhook payload. [#52035](https://github.com/sourcegraph/sourcegraph/pull/52035)
-
-## 5.0.3
-
-### Added
-
-- Cody aggregated pings. [#50835](https://github.com/sourcegraph/sourcegraph/pull/50835)
-
-### Fixed
-
-- Bitbucket Server adding an error log if there is no account match for the user. #[51030](https://github.com/sourcegraph/sourcegraph/pull/51030)
-- Editing search context with special characters such as `/` resulted in http 404 error. [#51196](https://github.com/sourcegraph/sourcegraph/pull/51196)
-- Significantly improved performance and reduced memory usage of the embeeddings service. [#50953](https://github.com/sourcegraph/sourcegraph/pull/50953), [#51372](https://github.com/sourcegraph/sourcegraph/pull/51372)
-- Fixed an issue where a Code Insights query with structural search type received 0 search results for the latest commit of any matching repo. [#51076](https://github.com/sourcegraph/sourcegraph/pull/51076)
-
-## 5.0.2
-
-### Added
-
-- An experimental site config setting to restrict cody to users by the cody-experimental feature flag [#50668](https://github.com/sourcegraph/sourcegraph/pull/50668)
-
-### Changed
-
-- Use the Alpine 3.17 releases of cURL and Git
-
-### Fixed
-
-- For Cody, explicitly detect some cases where context is needed to avoid failed responses. [#50541](https://github.com/sourcegraph/sourcegraph/pull/50541)
-- Code Insights that are run over zero repositories will finish processing and show `"No data to display"`. #[50561](https://github.com/sourcegraph/sourcegraph/pull/50561)
-- DNS timeouts on calls to host.docker.internal from every html page load for docker-compose air-gapped instances. No more DNS lookups in jscontext.go anymore. #[50638](https://github.com/sourcegraph/sourcegraph/pull/50638)
-- Improved the speed of the embedding index by significantly decreasing the calls to Gitserver. [#50410](https://github.com/sourcegraph/sourcegraph/pull/50410)
-
-### Removed
-
--
-
-## 5.0.1
-
-### Added
-
-- The ability to exclude certain file path patterns from embeddings.
-- Added a modal to show warnings and errors when exporting search results. [#50348](https://github.com/sourcegraph/sourcegraph/pull/50348)
-
-### Changed
-
-### Fixed
-
-- Fixed CVE-2023-0464 in container images
-- Fixed CVE-2023-24532 in container images
-- Fixed an issue where Slack code monitoring notifications failed when the message was too long. [#50083](https://github.com/sourcegraph/sourcegraph/pull/50083)
-- Fixed an edge case issue with usage statistics calculations that cross over month and year boundaries.
-- Fixed the "Last incremental sync" value in user/repo permissions from displaying a wrong date if no sync had been completed yet.
-- Fixed an issue that caused search context creation to fail with error "you must provide a first or last value to properly paginate" when defining the repositories and revisions with a JSON configuration.
-- Fixed an issue where the incorrect actor was provided when searching an embeddings index.
-- Fixed multiple requests downloading the embeddings index concurrently on an empty cache leading to an out-of-memory error.
-- Fixed the encoding of embeddings indexes which caused out-of-memory errors for large indexes when uploading them from the worker service.
-- Fixed git blame decorations styles
-- CODEOWNERS rules with consecutive slashes (`//`) will no longer fail ownership searches
-- Granting pending permissions to users when experimentalFeatures.unifiedPermissions is turned ON [#50059](https://github.com/sourcegraph/sourcegraph/pull/50059)
-- The unified permissions out of band migration reported as unfinished if there were users with no permissions [#50147](https://github.com/sourcegraph/sourcegraph/pull/50147)
-- Filenames with special characters are correctly handled in Cody's embedding service [#50023](https://github.com/sourcegraph/sourcegraph/pull/50023)
-- Structural search correctly cleans up when done preventing a goroutine leak [#50034](https://github.com/sourcegraph/sourcegraph/pull/50034)
-- Fetch search based definitions in the reference panel if no precise definitions were found [#50179](https://github.com/sourcegraph/sourcegraph/pull/50179)
-
-### Removed
-
-## 5.0.0
-
-### Added
-
-- The environment variable `TELEMETRY_HTTP_PROXY` can be set on the `sourcegraph-frontend` service, to use an HTTP proxy for telemetry and update check requests. [#47466](https://github.com/sourcegraph/sourcegraph/pull/47466)
-- Kubernetes Deployments: Introduced a new Kubernetes deployment option ([deploy-sourcegraph-k8s](https://github.com/sourcegraph/deploy-sourcegraph-k8s)) to deploy Sourcegraph with Kustomize. [#46755](https://github.com/sourcegraph/sourcegraph/issues/46755)
-- Kubernetes Deployments: The new Kustomize deployment ([deploy-sourcegraph-k8s](https://github.com/sourcegraph/deploy-sourcegraph-k8s)) introduces a new base cluster that runs all Sourcegraph services as non-root users with limited privileges and eliminates the need to create RBAC resources. [#4213](https://github.com/sourcegraph/deploy-sourcegraph/pull/4213)
-- Added the `other.exclude` setting to [Other external service config](https://docs.sourcegraph.com/admin/external_service/other#configuration). It can be configured to exclude mirroring of repositories matching a pattern similar to other external services. This is useful when you want to exclude repositories discovered via `src serve-git`. [#48168](https://github.com/sourcegraph/sourcegraph/pull/48168)
-- The **Site admin > Updates** page displays the upgrade readiness information about schema drift and out-of-band migrations. [#48046](https://github.com/sourcegraph/sourcegraph/pull/48046)
-- Pings now contain ownership search and file-view activity counts. [#47062](https://github.com/sourcegraph/sourcegraph/47062)
-- Greatly improves keyboard handling and accessibility of the files and symbol tree on the repository pages. [#12916](https://github.com/sourcegraph/sourcegraph/issues/12916)
-- The file tree on the repository page now automatically expands into single-child directories. [#47117](https://github.com/sourcegraph/sourcegraph/pull/47117)
-- When encountering GitHub rate limits, Sourcegraph will now wait the recommended amount of time and retry the request. This prevents sync jobs from failing prematurely due to external rate limits. [#48423](https://github.com/sourcegraph/sourcegraph/pull/48423)
-- Added a dashboard with information about user and repository background permissions sync jobs. [#46317](https://github.com/sourcegraph/sourcegraph/issues/46317)
-- When encountering GitHub or GitLab rate limits, Sourcegraph will now wait the recommended amount of time and retry the request. This prevents sync jobs from failing prematurely due to external rate limits. [#48423](https://github.com/sourcegraph/sourcegraph/pull/48423), [#48616](https://github.com/sourcegraph/sourcegraph/pull/48616)
-- Switching between code editor, files and symbols trees using keyboard shortcuts (currently under the experimental feature flag: `blob-page-switch-areas-shortcuts`). [#46829](https://github.com/sourcegraph/sourcegraph/pull/46829).
-- Added "SCIM" badges for SCIM-controlled users on the User admin page. [#48727](https://github.com/sourcegraph/sourcegraph/pull/48727)
-- Added Azure DevOps Services as a Tier 1 Code Host, including: repository syncing, permissions syncing, and Batch Changes support. [#46265](https://github.com/sourcegraph/sourcegraph/issues/46265)
-- Added feature to disable some fields on user profiles for SCIM-controlled users. [#48816](https://github.com/sourcegraph/sourcegraph/pull/48816)
-- Native support for ingesting and searching GitHub topics with `repo:has.topic()` [#48875](https://github.com/sourcegraph/sourcegraph/pull/48875)
-- [Role-based Access Control](https://docs.sourcegraph.com/admin/access_control) is now available as an enterprise feature (in Beta). It is currently only supported for Batch Changes functionality. [#43276](https://github.com/sourcegraph/sourcegraph/issues/43276)
-- Site admins can now [restrict creation of batch changes to certain users](https://docs.sourcegraph.com/admin/access_control/batch_changes) by tailoring their roles and the permissions granted to those roles. [#34491](https://github.com/sourcegraph/sourcegraph/issues/34491)
-- Site admins can now [configure outgoing webhooks](https://docs.sourcegraph.com/admin/config/webhooks/outgoing) for Batch Changes to inform external tools of events related to Sourcegraph batch changes and their changesets. [#38278](https://github.com/sourcegraph/sourcegraph/issues/38278)
-- [Sourcegraph Own](https://docs.sourcegraph.com/own) is now available as an experimental enterprise feature. Enable the `search-ownership` feature flag to use it.
-- Gitserver supports a new `COURSIER_CACHE_DIR` env var to configure the cache location for coursier JVM package repos.
-- Pings now emit a histogram of repository sizes cloned by Sourcegraph [48211](https://github.com/sourcegraph/sourcegraph/pull/48211).
-- The search input has been redesigned to greatly improve usability. New contextual suggestions help users learn the Sourcegraph query language as they search. Suggestions have been unified across contexts and filters, and the history mode has been integrated into the input. Improved and expanded keyboard shortcuts also make navigation much easier. This functionality is in beta, and can be disabled in the user menu.
-
-### Changed
-
-- Experimental GraphQL query, `permissionsSyncJobs` is substituted with new non-experimental query which provides full information about permissions sync jobs stored in the database. [#47933](https://github.com/sourcegraph/sourcegraph/pull/47933)
-- Renders `readme.txt` files in the repository page. [#47944](https://github.com/sourcegraph/sourcegraph/pull/47944)
-- Renders GitHub pull request references in all places where a commit message is referenced. [#48183](https://github.com/sourcegraph/sourcegraph/pull/48183)
-- CodeMirror blob view (default) uses selection-driven code navigation. [#48066](https://github.com/sourcegraph/sourcegraph/pull/48066)
-- Older Code Insights data points will now be automatically archived as configured by the site configuration setting `insights.maximumSampleSize`, set to 30 by default. All points can be exported. This behaviour can be disabled using the experimental setting `insightsDataRetention`. [#48259](https://github.com/sourcegraph/sourcegraph/pull/48259)
-- The admin debug GraphQL endpoint for Code Insights will now include the series metadata in the response. [#49473](https://github.com/sourcegraph/sourcegraph/pull/49473)
-- Usage telemetry has been streamlined; there are no longer two categories (critical and non-critical), and telemetry will be streamlined and reviewed/reduced further in upcoming releases. The site admin flag `disableNonCriticalTelemetry` currently still remains but has no effect.
-
-### Fixed
-
-- The symbols service `CACHE_DIR` and `MAX_TOTAL_PATHS_LENGTH` were renamed to have a `SYMBOLS_` prefix in the last version of Sourcegraph; this version fixes a bug where the old names without the `SYMBOLS_` prefix were not respected correctly. Both names now work.
-- Fixed issues with propagating tracing configuration throughout the application. [#47428](https://github.com/sourcegraph/sourcegraph/pull/47428)
-- Enable `auto gc` on fetch when `SRC_ENABLE_GC_AUTO` is set to `true`. [#47852](https://github.com/sourcegraph/sourcegraph/pull/47852)
-- Fixes syntax highlighting and line number issues in the code preview rendered inside the references panel. [#48107](https://github.com/sourcegraph/sourcegraph/pull/48107)
-- The ordering of code host sync error messages in the notifications menu will now be persistent. Previously the order was not guaranteed on a refresh of the status messages, which would make the code host sync error messages jump positions, giving a false sense of change to the site admins. [#48722](https://github.com/sourcegraph/sourcegraph/pull/48722)
-- Fixed Detect & Track Code Insights running over all repositories when during creation a search was used to specify the repositories for the insight. [#49633](https://github.com/sourcegraph/sourcegraph/pull/49633)
-
-### Removed
-
-- The LSIF upload endpoint is no longer supported and has been replaced by a diagnostic error page. src-cli v4.5+ will translate all local LSIF files to SCIP prior to upload. [#47547](https://github.com/sourcegraph/sourcegraph/pull/47547)
-- The experimental setting `authz.syncJobsRecordsLimit` has been removed. [#47933](https://github.com/sourcegraph/sourcegraph/pull/47933)
-- Storing permissions sync jobs statuses in Redis has been removed as now all permissions sync related data is stored in a database. [#47933](https://github.com/sourcegraph/sourcegraph/pull/47933)
-- The key `shared_steps` has been removed from auto-indexing configuration descriptions. If you have a custom JSON auto-indexing configuration set for a repository that defines this key, you should inline the content into each index job's `steps` array. [#48770](https://github.com/sourcegraph/sourcegraph/pull/48770)
-
-## 4.5.1
-
-### Changed
-
-- Updated git to version 2.39.2 to address [reported security vulnerabilities](https://github.blog/2023-02-14-git-security-vulnerabilities-announced-3/) [#47892](https://github.com/sourcegraph/sourcegraph/pull/47892/files)
-- Updated curl to 7.88.1 to address [reported security vulnerabilities](https://curl.se/docs/CVE-2022-42915.html) [#48144](https://github.com/sourcegraph/sourcegraph/pull/48144)
-
-## 4.5.0
-
-### Added
-
-- Endpoint environment variables (`SEARCHER_URL`, `SYMBOLS_URL`, `INDEXED_SEARCH_SERVERS`, `SRC_GIT_SERVERS`) now can be set to replica count values in Kubernetes, Kustomize, Helm and Docker Compose environments. This avoids the need to use service discovery or generating the respective list of addresses in those environments. [#45862](https://github.com/sourcegraph/sourcegraph/pull/45862)
-- The default author and email for changesets will now be pulled from user account details when possible. [#46385](https://github.com/sourcegraph/sourcegraph/pull/46385)
-- Code Insights has a new display option: "Max number of series points to display". This setting controls the number of data points you see per series on an insight. [#46653](https://github.com/sourcegraph/sourcegraph/pull/46653)
-- Added out-of-band migration that will migrate all existing data from LSIF to SCIP (see additional [migration documentation](https://docs.sourcegraph.com/admin/how-to/lsif_scip_migration)). [#45106](https://github.com/sourcegraph/sourcegraph/pull/45106)
-- Code Insights has a new search-powered repositories field that allows you to select repositories with Sourcegraph search syntax. [#45687](https://github.com/sourcegraph/sourcegraph/pull/45687)
-- You can now export all data for a Code Insight from the card menu or the standalone page. [#46795](https://github.com/sourcegraph/sourcegraph/pull/46795), [#46694](https://github.com/sourcegraph/sourcegraph/pull/46694)
-- Added Gerrit as an officially supported code host with permissions syncing. [#46763](https://github.com/sourcegraph/sourcegraph/pull/46763)
-- Markdown files now support `` and `` elements in the rendered view. [#47074](https://github.com/sourcegraph/sourcegraph/pull/47074)
-- Batch Changes: Log outputs from execution steps are now paginated in the web interface. [#46335](https://github.com/sourcegraph/sourcegraph/pull/46335)
-- Monitoring: the searcher dashboard now contains more detailed request metrics as well as information on interactions with the local cache (via gitserver). [#47654](https://github.com/sourcegraph/sourcegraph/pull/47654)
-- Renders GitHub pull request references in the commit list. [#47593](https://github.com/sourcegraph/sourcegraph/pull/47593)
-- Added a new background permissions syncer & scheduler which is backed by database, unlike the old one that was based on an in-memory processing queue. The new system is enabled by default, but can be disabled. Revert to the in-memory processing queue by setting the feature flag `database-permission-sync-worker` to `false`. [#47783](https://github.com/sourcegraph/sourcegraph/pull/47783)
-- Zoekt introduces a new opt-in feature, "shard merging". Shard merging consolidates small index files into larger ones, which reduces Zoekt-webserver's memory footprint [documentation](https://docs.sourcegraph.com/code_search/explanations/search_details#shard-merging)
-- Blob viewer is now backed by the CodeMirror editor. Previous table-based blob viewer can be re-enabled by setting `experimentalFeatures.enableCodeMirrorFileView` to `false`. [#47563](https://github.com/sourcegraph/sourcegraph/pull/47563)
-- Code folding support for the CodeMirror blob viewer. [#47266](https://github.com/sourcegraph/sourcegraph/pull/47266)
-- CodeMirror blob keyboard navigation as experimental feature. Can be enabled in settings by setting `experimentalFeatures.codeNavigation` to `selection-driven`. [#44698](https://github.com/sourcegraph/sourcegraph/pull/44698)
-
-### Changed
-
-- Archived and deleted changesets are no longer counted towards the completion percentage shown in the Batch Changes UI. [#46831](https://github.com/sourcegraph/sourcegraph/pull/46831)
-- Code Insights has a new UI for the "Add or remove insights" view, which now allows you to search code insights by series label in addition to insight title. [#46538](https://github.com/sourcegraph/sourcegraph/pull/46538)
-- When SMTP is configured, users created by site admins via the "Create user" page will no longer have their email verified by default - users must verify their emails by using the "Set password" link they get sent, or have their emails verified by a site admin via the "Emails" tab in user settings or the `setUserEmailVerified` mutation. The `createUser` mutation retains the old behaviour of automatically marking emails as verified. To learn more, refer to the [SMTP and email delivery](https://docs.sourcegraph.com/admin/config/email) documentation. [#46187](https://github.com/sourcegraph/sourcegraph/pull/46187)
-- Connection checks for code host connections have been changed to talk to code host APIs directly via HTTP instead of doing DNS lookup and TCP dial. That makes them more resistant in environments where proxies are used. [#46918](https://github.com/sourcegraph/sourcegraph/pull/46918)
-- Expiration of licenses is now handled differently. When a license is expired promotion to site-admin is disabled, license-specific features are disabled (exceptions being SSO & permission syncing), grace period has been replaced with a 7-day-before-expiration warning. [#47251](https://github.com/sourcegraph/sourcegraph/pull/47251)
-- Searcher will now timeout searches in 2 hours instead of 10 minutes. This timeout was raised for batch use cases (such as code insights) searching old revisions in very large repositories. This limit can be tuned with the environment variable `PROCESSING_TIMEOUT`. [#47469](https://github.com/sourcegraph/sourcegraph/pull/47469)
-- Zoekt now bypasses the regex engine for queries that are common in the context of search-based code intelligence, such as `\bLITERAL\b case:yes`. This can lead to a significant speed-up for "Find references" and "Find implementations" if precise code intelligence is not available. [zoekt#526](https://github.com/sourcegraph/zoekt/pull/526)
-- The Sourcegraph Free license has undergone a number of changes. Please contact support@sourcegraph.com with any questions or concerns. [#46504](https://github.com/sourcegraph/sourcegraph/pull/46504)
- - The Free license allows for only a single private repository on the instance.
- - The Free license does not support SSO of any kind.
- - The Free license does not offer mirroring of code host user permissions.
-- Expired Sourcegraph licenses no longer allow continued use of the product. [#47251](https://github.com/sourcegraph/sourcegraph/pull/47251)
- - Licensed features are disabled once a license expires.
- - Users can no longer be promoted to Site Admins once a license expires.
-
-### Fixed
-
-- Resolved issue which would prevent Batch Changes from being able to update changesets on forks of repositories on Bitbucket Server created prior to version 4.2. [#47397](https://github.com/sourcegraph/sourcegraph/pull/47397)
-- Fixed a bug where changesets created on forks of repositories in a personal user's namespace on GitHub could not be updated after creation. [#47397](https://github.com/sourcegraph/sourcegraph/pull/47397)
-- Fixed a bug where saving default Sort & Limit filters in Code Insights did not persist [#46653](https://github.com/sourcegraph/sourcegraph/pull/46653)
-- Restored the old syntax for `repo:contains` filters that was previously removed in version 4.0.0. For now, both the old and new syntaxes are supported to allow for smooth upgrades. Users are encouraged to switch to the new syntax, since the old one may still be removed in a future version.
-- Fixed a bug where removing an auth provider would render a user's Account Security page inaccessible if they still had an external account associated with the removed auth provider. [#47092](https://github.com/sourcegraph/sourcegraph/pull/47092)
-- Fixed a bug where the `repo:has.description()` parameter now correctly shows description of a repository synced from a Bitbucket server code host connection, while previously it used to show the repository name instead [#46752](https://github.com/sourcegraph/sourcegraph/pull/46752)
-- Fixed a bug where permissions syncs consumed more rate limit tokens than required. This should lead to speed-ups in permission syncs, as well as other possible cases where a process runs in repo-updater. [#47374](https://github.com/sourcegraph/sourcegraph/pull/47374)
-- Fixes UI bug where folders with single child were appearing as child folders themselves. [#46628](https://github.com/sourcegraph/sourcegraph/pull/46628)
-- Performance issue with the Outbound requests page. [#47544](https://github.com/sourcegraph/sourcegraph/pull/47544)
-
-### Removed
-
-- The Code insights "run over all repositories" mode has been replaced with search-powered repositories filed syntax. [#45687](https://github.com/sourcegraph/sourcegraph/pull/45687)
-- The settings `search.repositoryGroups`, `codeInsightsGqlApi`, `codeInsightsAllRepos`, `experimentalFeatures.copyQueryButton`,, `experimentalFeatures.showRepogroupHomepage`, `experimentalFeatures.showOnboardingTour`, `experimentalFeatures.showSearchContextManagement` and `codeIntelligence.autoIndexRepositoryGroups` have been removed as they were deprecated and unsued. [#47481](https://github.com/sourcegraph/sourcegraph/pull/47481)
-- The site config `enableLegacyExtensions` setting was removed. It is no longer possible to enable legacy Sourcegraph extension API functionality in this version.
-
-## 4.4.2
-
-### Changed
-
-- Expiration of licenses is now handled differently. When a license is expired promotion to site-admin is disabled, license-specific features are disabled (exceptions being SSO & permission syncing), grace period has been replaced with a 7-day-before-expiration warning. [#47251](https://github.com/sourcegraph/sourcegraph/pull/47251)
-
-## 4.4.1
-
-### Changed
-
-- Connection checks for code host connections have been changed to talk to code host APIs directly via HTTP instead of doing DNS lookup and TCP dial. That makes them more resistant in environments where proxies are used. [#46918](https://github.com/sourcegraph/sourcegraph/pull/46918)
-- The search query input overflow behavior on search home page has been fixed. [#46922](https://github.com/sourcegraph/sourcegraph/pull/46922)
-
-## 4.4.0
-
-### Added
-
-- Added a button "Reindex now" to the index status page. Admins can now force an immediate reindex of a repository. [#45533](https://github.com/sourcegraph/sourcegraph/pull/45533)
-- Added an option "Unlock user" to the actions dropdown on the Site Admin Users page. Admins can unlock user accounts that wer locked after too many sign-in attempts. [#45650](https://github.com/sourcegraph/sourcegraph/pull/45650)
-- Templates for certain emails sent by Sourcegraph are now configurable via `email.templates` in site configuration. [#45671](https://github.com/sourcegraph/sourcegraph/pull/45671), [#46085](https://github.com/sourcegraph/sourcegraph/pull/46085)
-- Keyboard navigation for search results is now enabled by default. Use Arrow Up/Down keys to navigate between search results, Arrow Left/Right to collapse and expand file matches, Enter to open the search result in the current tab, Ctrl/Cmd+Enter to open the result in a separate tab, / to refocus the search input, and Ctrl/Cmd+Arrow Down to jump from the search input to the first result. Arrow Left/Down/Up/Right in previous examples can be substituted with h/j/k/l for Vim-style bindings. Keyboard navigation can be disabled by creating the `search-results-keyboard-navigation` feature flag and setting it to false. [#45890](https://github.com/sourcegraph/sourcegraph/pull/45890)
-- Added support for receiving GitLab webhook `push` events. [#45856](https://github.com/sourcegraph/sourcegraph/pull/45856)
-- Added support for receiving Bitbucket Server / Datacenter webhook `push` events. [#45909](https://github.com/sourcegraph/sourcegraph/pull/45909)
-- Monitoring: Indexed-Search's dashboard now has new graphs for search request durations and "in-flight" search request workloads [#45966](https://github.com/sourcegraph/sourcegraph/pull/45966)
-- The GraphQL API now supports listing single-file commit history across renames (with `GitCommit.ancestors(follow: true, path: "")`). [#45882](https://github.com/sourcegraph/sourcegraph/pull/45882)
-- Added support for receiving Bitbucket Cloud webhook `push` events. [#45960](https://github.com/sourcegraph/sourcegraph/pull/45960)
-- Added a way to test code host connection from the `Manage code hosts` page. [#45972](https://github.com/sourcegraph/sourcegraph/pull/45972)
-- Updates to the site configuration from the site admin panel will now also record the user id of the author in the database in the `critical_and_site_config.author_user_id` column. [#46150](https://github.com/sourcegraph/sourcegraph/pull/46150)
-- When setting and resetting passwords, if the user's primary email address is not yet verified, using the password reset link sent via email will now also verify the email address. [#46307](https://github.com/sourcegraph/sourcegraph/pull/46307)
-- Added new code host details and updated edit code host pages in site admin area. [#46327](https://github.com/sourcegraph/sourcegraph/pull/46327)
-- If the experimental setting `insightsDataRetention` is enabled, the number of Code Insights data points that can be viewed will be limited by the site configuration setting `insights.maximumSampleSize`, set to 30 by default. Older points beyond that number will be periodically archived. [#46206](https://github.com/sourcegraph/sourcegraph/pull/46206), [#46440](https://github.com/sourcegraph/sourcegraph/pull/46440)
-- Bitbucket Cloud can now be added as an authentication provider on Sourcegraph. [#46309](https://github.com/sourcegraph/sourcegraph/pull/46309)
-- Bitbucket Cloud code host connections now support permissions syncing. [#46312](https://github.com/sourcegraph/sourcegraph/pull/46312)
-- Keep a log of corruption events that happen on repositories as they are detected. The Admin repositories page will now show when a repository has been detected as being corrupt and they'll also be able to see a history log of the corruption for that repository. [#46004](https://github.com/sourcegraph/sourcegraph/pull/46004)
-- Added corrupted statistic as part of the global repositories statistics. [46412](https://github.com/sourcegraph/sourcegraph/pull/46412)
-- Added a `Corrupted` status filter on the Admin repositories page, allowing Administrators to filter the list of repositories to only those that have been detected as corrupt. [#46415](https://github.com/sourcegraph/sourcegraph/pull/46415)
-- Added “Background job dashboard” admin feature [#44901](https://github.com/sourcegraph/sourcegraph/pull/44901)
-
-### Changed
-
-- Code Insights no longer uses a custom index of commits to compress historical backfill and instead queries the repository log directly. This allows the compression algorithm to span any arbitrary time frame, and should improve the reliability of the compression in general. [#45644](https://github.com/sourcegraph/sourcegraph/pull/45644)
-- GitHub code host configuration: The error message for non-existent organizations has been clarified to indicate that the organization is one that the user manually specified in their code host configuration. [#45918](https://github.com/sourcegraph/sourcegraph/pull/45918)
-- Git blame view got a user-interface overhaul and now shows data in a more structured way with additional visual hints. [#44397](https://github.com/sourcegraph/sourcegraph/issues/44397)
-- User emails marked as unverified will no longer receive code monitors and account update emails - unverified emails can be verified from the user settings page to continue receiving these emails. [#46184](https://github.com/sourcegraph/sourcegraph/pull/46184)
-- Zoekt by default eagerly unmarshals the symbol index into memory. Previously we would unmarshal on every request for the purposes of symbol searches or ranking. This lead to pressure on the Go garbage collector. On sourcegraph.com we have noticed time spent in the garbage collector halved. In the unlikely event this leads to more OOMs in zoekt-webserver, you can disable by setting the environment variable `ZOEKT_ENABLE_LAZY_DOC_SECTIONS=t`. [zoekt#503](https://github.com/sourcegraph/zoekt/pull/503)
-- Removes the right side action sidebar that is shown on the code view page and moves the icons into the top nav. [#46339](https://github.com/sourcegraph/sourcegraph/pull/46339)
-- The `sourcegraph/prometheus` image no longer starts with `--web.enable-lifecycle --web.enable-admin-api` by default - these flags can be re-enabled by configuring `PROMETHEUS_ADDITIONAL_FLAGS` on the container. [#46393](https://github.com/sourcegraph/sourcegraph/pull/46393)
-- The experimental setting `authz.syncJobsRecordsTTL` has been changed to `authz.syncJobsRecordsLimit` - records are no longer retained based on age, but based on this size cap. [#46676](https://github.com/sourcegraph/sourcegraph/pull/46676)
-- Renders GitHub pull request references in git blame view. [#46409](https://github.com/sourcegraph/sourcegraph/pull/46409)
-
-### Fixed
-
-- Made search results export use the same results list as the search results page. [#45702](https://github.com/sourcegraph/sourcegraph/pull/45702)
-- Code insights with more than 1 year of history will correctly show 12 data points instead of 11. [#45644](https://github.com/sourcegraph/sourcegraph/pull/45644)
-- Hourly code insights will now behave correctly and will no longer truncate to midnight UTC on the calendar date the insight was created. [#45644](https://github.com/sourcegraph/sourcegraph/pull/45644)
-- Code Insights: fixed an issue where filtering by a search context that included multiple repositories would exclude data. [#45574](https://github.com/sourcegraph/sourcegraph/pull/45574)
-- Ignore null JSON objects returned from GitHub API when listing public repositories. [#45969](https://github.com/sourcegraph/sourcegraph/pull/45969)
-- Fixed issue where emails that have never been verified before would be unable to receive resent verification emails. [#46185](https://github.com/sourcegraph/sourcegraph/pull/46185)
-- Resolved issue preventing LSIF uploads larger than 2GiB (gzipped) from uploading successfully. [#46209](https://github.com/sourcegraph/sourcegraph/pull/46209)
-- Local vars in Typescript are now detected as symbols which will positively impact ranking of search results. [go-ctags#10](https://github.com/sourcegraph/go-ctags/pull/10)
-- Fix issue in Gitlab OAuth in which user group membership is set too wide - adds `min_access_level=10` to `/groups` request. [#46480](https://github.com/sourcegraph/sourcegraph/pull/46480)
-
-### Removed
-
-- The extension registry no longer supports browsing, creating, or updating legacy extensions. Existing extensions may still be enabled or disabled in user settings and may be listed via the API. (The extension API was deprecated in 2022-09 but is still available if the `enableLegacyExtensions` site config experimental features flag is enabled.)
-- User and organization auto-defined search contexts have been permanently removed along with the `autoDefinedSearchContexts` GraphQL query. The only auto-defined context now is the `global` context. [#46083](https://github.com/sourcegraph/sourcegraph/pull/46083)
-- The settings `experimentalFeatures.showSearchContext`, `experimentalFeatures.showSearchNotebook`, and `experimentalFeatures.codeMonitoring` have been removed and these features are now permanently enabled when available. [#46086](https://github.com/sourcegraph/sourcegraph/pull/46086)
-- The legacy panels on the homepage (recent searches, etc) which were turned off by default but could still be re-enabled by setting `experimentalFeatures.showEnterpriseHomePanels` to true, are permanently removed now. [#45705](https://github.com/sourcegraph/sourcegraph/pull/45705)
-- The `site { monitoringStatistics { alerts } }` GraphQL query has been deprecated and will no longer return any data. The query will be removed entirely in a future release. [#46299](https://github.com/sourcegraph/sourcegraph/pull/46299)
-- The Monaco version of the search query input and the corresponding feature flag (`experimentalFeatures.editor`) have been permanently removed. [#46249](https://github.com/sourcegraph/sourcegraph/pull/46249)
-
-## 4.3.1
-
-### Changed
-
-- A bug that broke the site-admin page when no repositories have been added to the Sourcegraph instance has been fixed. [#46123](https://github.com/sourcegraph/sourcegraph/pull/46123)
-
-## 4.3.0
-
-### Added
-
-- A "copy path" button has been added to file content, path, and symbol search results on hover or focus, next to the file path. The button copies the relative path of the file in the repo, in the same way as the "copy path" button in the file and repo pages. [#42721](https://github.com/sourcegraph/sourcegraph/pull/42721)
-- Unindexed search now use the index for files that have not changed between the unindexed commit and the indexed commit. The result is faster unindexed search in general. If you are noticing issues you can disable by setting the feature flag `search-hybrid` to false. [#37112](https://github.com/sourcegraph/sourcegraph/issues/37112)
-- The number of commits listed in the History tab can now be customized for all users by site admins under Configuration -> Global Settings from the site admin page by using the config `history.defaultPageSize`. Individual users may also set `history.defaultPagesize` from their user settings page to override the value set under the Global Settings. [#44651](https://github.com/sourcegraph/sourcegraph/pull/44651)
-- Batch Changes: Mounted files can be accessed via the UI on the executions page. [#43180](https://github.com/sourcegraph/sourcegraph/pull/43180)
-- Added "Outbound request log" feature for site admins [#44286](https://github.com/sourcegraph/sourcegraph/pull/44286)
-- Code Insights: the data series API now provides information about incomplete datapoints during processing
-- Added a best-effort migration such that existing Code Insights will display zero results instead of missing points at the start and end of a graph. [#44928](https://github.com/sourcegraph/sourcegraph/pull/44928)
-- More complete stack traces for Outbound request log [#45151](https://github.com/sourcegraph/sourcegraph/pull/45151)
-- A new status message now reports how many repositories have already been indexed for search. [#45246](https://github.com/sourcegraph/sourcegraph/pull/45246)
-- Search contexts can now be starred (favorited) in the search context management page. Starred search contexts will appear before other contexts in the context dropdown menu next to the search box. [#45230](https://github.com/sourcegraph/sourcegraph/pull/45230)
-- Search contexts now let you set a context as your default. The default will be selected every time you open Sourcegraph and will appear near the top in the context dropdown menu next to the search box. [#45387](https://github.com/sourcegraph/sourcegraph/pull/45387)
-- [search.largeFiles](https://docs.sourcegraph.com/admin/config/site_config#search-largeFiles) accepts an optional prefix `!` to negate a pattern. The order of the patterns within search.largeFiles is honored such that the last pattern matching overrides preceding patterns. For patterns that begin with a literal `!` prefix with a backslash, for example, `\!fileNameStartsWithExcl!.txt`. Previously indexed files that become excluded due to this change will remain in the index until the next reindex [#45318](https://github.com/sourcegraph/sourcegraph/pull/45318)
-- [Webhooks](https://docs.sourcegraph.com/admin/config/webhooks/incoming) have been overhauled completely and can now be found under **Site admin > Repositories > Incoming webhooks**. Webhooks that were added via code host configuration are [deprecated](https://docs.sourcegraph.com/admin/config/webhooks/incoming#deprecation-notice) and will be removed in 5.1.0.
-- Added support for receiving webhook `push` events from GitHub which will trigger Sourcegraph to fetch the latest commit rather than relying on polling.
-- Added support for private container registries in Sourcegraph executors. [Using private registries](https://docs.sourcegraph.com/admin/deploy_executors#using-private-registries)
-
-### Changed
-
-- Batch Change: When one or more changesets are selected, we now display all bulk operations but disable the ones that aren't applicable to the changesets. [#44617](https://github.com/sourcegraph/sourcegraph/pull/44617)
-- Gitserver's repository purge worker now runs on a regular interval instead of just on weekends, configurable by the `repoPurgeWorker` site configuration. [#44753](https://github.com/sourcegraph/sourcegraph/pull/44753)
-- Editing the presentation metadata (title, line color, line label) or the default filters of a scoped Code Insight will no longer trigger insight recalculation. [#44769](https://github.com/sourcegraph/sourcegraph/pull/44769), [#44797](https://github.com/sourcegraph/sourcegraph/pull/44797)
-- Indexed Search's `memory_map_areas_percentage_used` alert has been modified to alert earlier than it used to. It now issues a warning at 60% (previously 70%) and issues a critical alert at 80% (previously 90%).
-- Saving a new view of a scoped Code Insight will no longer trigger insight recalculation. [#44679](https://github.com/sourcegraph/sourcegraph/pull/44679)
-
-### Fixed
-
-- The Code Insights commit indexer no longer errors when fetching commits from empty repositories when sub-repo permissions are enabled. [#44558](https://github.com/sourcegraph/sourcegraph/pull/44558)
-- Unintended newline characters that could appear in diff view rendering have been fixed. [#44805](https://github.com/sourcegraph/sourcegraph/pull/44805)
-- Signing out doesn't immediately log the user back in when there's only one OAuth provider enabled. It now redirects the user to the Sourcegraph login page. [#44803](https://github.com/sourcegraph/sourcegraph/pull/44803)
-- An issue causing certain kinds of queries to behave inconsistently in Code Insights. [#44917](https://github.com/sourcegraph/sourcegraph/pull/44917)
-- When the setting `batchChanges.enforceForks` is enabled, Batch Changes will now prefix the name of the fork repo it creates with the original repo's namespace name in order to prevent repo name collisions. [#43681](https://github.com/sourcegraph/sourcegraph/pull/43681), [#44458](https://github.com/sourcegraph/sourcegraph/pull/44458), [#44548](https://github.com/sourcegraph/sourcegraph/pull/44548), [#44924](https://github.com/sourcegraph/sourcegraph/pull/44924)
-- Code Insights: fixed an issue where certain queries matching sequential whitespace characters would overcount. [#44969](https://github.com/sourcegraph/sourcegraph/pull/44969)
-- GitHub fine-grained Personal Access Tokens can now clone repositories correctly, but are not yet officially supported. [#45137](https://github.com/sourcegraph/sourcegraph/pull/45137)
-- Detect-and-track Code Insights will now return data for repositories without sub-repo permissions even when sub-repo permissions are enabled on the instance. [#45631](https://github.com/sourcegraph/sourcegraph/pull/45361)
-
-### Removed
-
-- Removed legacy GraphQL field `dirtyMetadata` on an insight series. `insightViewDebug` can be used as an alternative. [#44416](https://github.com/sourcegraph/sourcegraph/pull/44416)
-- Removed `search.index.enabled` site configuration setting. Search indexing is now always enabled.
-- Removed the experimental feature setting `showSearchContextManagement`. The search context management page is now available to all users with access to search contexts. [#45230](https://github.com/sourcegraph/sourcegraph/pull/45230)
-- Removed the experimental feature setting `showComputeComponent`. Any notebooks that made use of the compute component will no longer render the block. The block will be deleted from the databse the next time a notebook that uses it is saved. [#45360](https://github.com/sourcegraph/sourcegraph/pull/45360)
-
-## 4.2.1
-
-- `minio` has been replaced with `blobstore`. Please see the update notes here: https://docs.sourcegraph.com/admin/how-to/blobstore_update_notes
-
-## 4.2.0
-
-### Added
-
-- Creating access tokens is now tracked in the security events. [#43226](https://github.com/sourcegraph/sourcegraph/pull/43226)
-- Added `codeIntelAutoIndexing.indexerMap` to site-config that allows users to update the indexers used when inferring precise code intelligence auto-indexing jobs (without having to overwrite the entire inference scripts). For example, `"codeIntelAutoIndexing.indexerMap": {"go": "my.registry/sourcegraph/lsif-go"}` will cause Go projects to use the specified container (in a alternative Docker registry). [#43199](https://github.com/sourcegraph/sourcegraph/pull/43199)
-- Code Insights data points that do not contain any results will display zero instead of being omitted from the visualization. Only applies to insight data created after 4.2. [#43166](https://github.com/sourcegraph/sourcegraph/pull/43166)
-- Sourcegraph ships with node-exporter, a Prometheus tool that provides hardware / OS metrics that helps Sourcegraph scale your deployment. See your deployment update for more information:
- - [Kubernetes](https://docs.sourcegraph.com/admin/updates/kubernetes)
- - [Docker Compose](https://docs.sourcegraph.com/admin/updates/docker_compose)
-- A structural search diagnostic to warn users when a language filter is not set. [#43835](https://github.com/sourcegraph/sourcegraph/pull/43835)
-- GitHub/GitLab OAuth success/fail attempts are now a part of the audit log. [#43886](https://github.com/sourcegraph/sourcegraph/pull/43886)
-- When rendering a file which is backed by Git LFS, we show a page informing the file is LFS and linking to the file on the codehost. Previously we rendered the LFS pointer. [#43686](https://github.com/sourcegraph/sourcegraph/pull/43686)
-- Batch changes run server-side now support secrets. [#27926](https://github.com/sourcegraph/sourcegraph/issues/27926)
-- OIDC success/fail login attempts are now a part of the audit log. [#44467](https://github.com/sourcegraph/sourcegraph/pull/44467)
-- A new experimental GraphQL query, `permissionsSyncJobs`, that lists the states of recently completed permissions sync jobs and the state of each provider. The TTL of entries retrained can be configured with `authz.syncJobsRecordsTTL`. [#44387](https://github.com/sourcegraph/sourcegraph/pull/44387), [#44258](https://github.com/sourcegraph/sourcegraph/pull/44258)
-- The search input has a new search history button and allows cycling through recent searches via up/down arrow keys. [#44544](https://github.com/sourcegraph/sourcegraph/pull/44544)
-- Repositories can now be ordered by size on the repo admin page. [#44360](https://github.com/sourcegraph/sourcegraph/pull/44360)
-- The search bar contains a new Smart Search toggle. If a search returns no results, Smart Search attempts alternative queries based on a fixed set of rules, and shows their results (if there are any). Smart Search is enabled by default. It can be disabled by default with `"search.defaultMode": "precise"` in settings. [#44385](https://github.com/sourcegraph/sourcegraph/pull/44395)
-- Repositories in the site-admin area can now be filtered, so that only indexed repositories are displayed [#45288](https://github.com/sourcegraph/sourcegraph/pull/45288)
-
-### Changed
-
-- Updated minimum required version of `git` to 2.38.1 in `gitserver` and `server` Docker image. This addresses: https://github.blog/2022-04-12-git-security-vulnerability-announced/ and https://lore.kernel.org/git/d1d460f6-e70f-b17f-73a5-e56d604dd9d5@github.com/. [#43615](https://github.com/sourcegraph/sourcegraph/pull/43615)
-- When a `content:` filter is used in a query, only file contents will be searched (previously any of file contents, paths, or repos were searched). However, as before, if `type:` is also set, the `content:` filter will search for results of the specified `type:`. [#43442](https://github.com/sourcegraph/sourcegraph/pull/43442)
-- Updated [p4-fusion](https://github.com/salesforce/p4-fusion) from `1.11` to `1.12`.
-
-### Fixed
-
-- Fixed a bug where path matches on files in the root directory of a repository were not highlighted. [#43275](https://github.com/sourcegraph/sourcegraph/pull/43275)
-- Fixed a bug where a search query wouldn't be validated after the query type has changed. [#43849](https://github.com/sourcegraph/sourcegraph/pull/43849)
-- Fixed an issue with insights where a single erroring insight would block access to all insights. This is a breaking change for users of the insights GraphQL api as the `InsightViewConnection.nodes` list may now contain `null`. [#44491](https://github.com/sourcegraph/sourcegraph/pull/44491)
-- Fixed a bug where Open in Editor didn't work well with `"repositoryPathPattern" = "{nameWithOwner}"` [#43839](https://github.com/sourcegraph/sourcegraph/pull/44475)
-
-### Removed
-
-- Remove the older `log.gitserver.accessLogs` site config setting. The setting is succeeded by `log.auditLog.gitserverAccess`. [#43174](https://github.com/sourcegraph/sourcegraph/pull/43174)
-- Remove `LOG_ALL_GRAPHQL_REQUESTS` env var. The setting is succeeded by `log.auditLog.graphQL`. [#43181](https://github.com/sourcegraph/sourcegraph/pull/43181)
-- Removed support for setting `SRC_ENDPOINTS_CONSISTENT_HASH`. This was an environment variable to support the transition to a new consistent hashing scheme introduced in 3.31.0. [#43528](https://github.com/sourcegraph/sourcegraph/pull/43528)
-- Removed legacy environment variable `ENABLE_CODE_INSIGHTS_SETTINGS_STORAGE` used in old versions of Code Insights to fall back to JSON settings based storage. All data was previously migrated in version 3.35 and this is no longer supported.
-
-## 4.1.3
-
-### Fixed
-
-- Fixed a bug that caused the Phabricator native extension to not load the right CSS assets. [#43868](https://github.com/sourcegraph/sourcegraph/pull/43868)
-- Fixed a bug that prevented search result exports to load. [#43344](https://github.com/sourcegraph/sourcegraph/pull/43344)
-
-## 4.1.2
-
-### Fixed
-
-- Fix code navigation on OSS when CodeIntel is unavailable. [#43458](https://github.com/sourcegraph/sourcegraph/pull/43458)
-
-### Removed
-
-- Removed the onboarding checklist for new users that showed up in the top navigation bar, on user profiles, and in the site-admin overview page. After changes to the underlying user statistics system, the checklist caused severe performance issues for customers with large and heavily-used instances. [#43591](https://github.com/sourcegraph/sourcegraph/pull/43591)
-
-## 4.1.1
-
-### Fixed
-
-- Fixed a bug with normalizing the `published` draft value for `changeset_specs`. [#43390](https://github.com/sourcegraph/sourcegraph/pull/43390)
-
-## 4.1.0
-
-### Added
-
-- Outdated executors now show a warning from the admin page. [#40916](https://github.com/sourcegraph/sourcegraph/pull/40916)
-- Added support for better Slack link previews for private instances. Link previews are currently feature-flagged, and site admins can turn them on by creating the `enable-link-previews` feature flag on the `/site-admin/feature-flags` page. [#41843](https://github.com/sourcegraph/sourcegraph/pull/41843)
-- Added a new button in the repository settings, under "Mirroring", to delete a repository from disk and reclone it. [#42177](https://github.com/sourcegraph/sourcegraph/pull/42177)
-- Batch changes run on the server can now be created within organisations. [#36536](https://github.com/sourcegraph/sourcegraph/issues/36536)
-- GraphQL request logs are now compliant with the audit logging format. The old GraphQl logging based on `LOG_ALL_GRAPHQL_REQUESTS` env var is now deprecated and scheduled for removal. [#42550](https://github.com/sourcegraph/sourcegraph/pull/42550)
-- Mounting files now works when running batch changes server side. [#31792](https://github.com/sourcegraph/sourcegraph/issues/31792)
-- Added mini dashboard of total batch change metrics to the top of the batch changes list page. [#42046](https://github.com/sourcegraph/sourcegraph/pull/42046)
-- Added repository sync counters to the code host details page. [#43039](https://github.com/sourcegraph/sourcegraph/pull/43039)
-
-### Changed
-
-- Git server access logs are now compliant with the audit logging format. Breaking change: The 'actor' field is now nested under 'audit' field. [#41865](https://github.com/sourcegraph/sourcegraph/pull/41865)
-- All Perforce rules are now stored together in one column and evaluated on a "last rule takes precedence" basis. [#41785](https://github.com/sourcegraph/sourcegraph/pull/41785)
-- Security events are now a part of the audit log. [#42653](https://github.com/sourcegraph/sourcegraph/pull/42653)
-- "GC AUTO" is now the default garbage collection job. We disable sg maintenance, which had previously replace "GC AUTO", after repeated reports about repo corruption. [#42856](https://github.com/sourcegraph/sourcegraph/pull/42856)
-- Security events (audit log) can now optionally omit the internal actor actions (internal traffic). [#42946](https://github.com/sourcegraph/sourcegraph/pull/42946)
-- To use the optional `customGitFetch` feature, the `ENABLE_CUSTOM_GIT_FETCH` env var must be set on `gitserver`. [#42704](https://github.com/sourcegraph/sourcegraph/pull/42704)
-
-### Fixed
-
-- WIP changesets in Gitlab >= 14.0 are now prefixed with `Draft:` instead of `WIP:` to accomodate for the [breaking change in Gitlab 14.0](https://docs.gitlab.com/ee/update/removals.html#wip-merge-requests-renamed-draft-merge-requests). [#42024](https://github.com/sourcegraph/sourcegraph/pull/42024)
-- When updating the site configuration, the provided Last ID is now used to prevent race conditions when simultaneous config updates occur. [#42691](https://github.com/sourcegraph/sourcegraph/pull/42691)
-- When multiple auth providers of the same external service type is set up, there are now separate entries in the user's Account Security settings. [#42865](https://github.com/sourcegraph/sourcegraph/pull/42865)
-- Fixed a bug with GitHub code hosts that did not label archived repos correctly when using the "public" repositoryQuery keyword. [#41461](https://github.com/sourcegraph/sourcegraph/pull/41461)
-- Fixed a bug that would display the blank batch spec that a batch change is initialized with in the batch specs executions tab. [#42914](https://github.com/sourcegraph/sourcegraph/pull/42914)
-- Fixed a bug that would cause menu dropdowns to not open appropriately. [#42779](https://github.com/sourcegraph/sourcegraph/pull/42779)
-
-### Removed
-
--
-
-## 4.0.1
-
-### Fixed
-
-- Fixed a panic that can be caused by some tracing configurations. [#42027](https://github.com/sourcegraph/sourcegraph/pull/42027)
-- Fixed broken code navigation for Javascript. [#42055](https://github.com/sourcegraph/sourcegraph/pull/42055)
-- Fixed issue with empty code navigation popovers. [#41958](https://github.com/sourcegraph/sourcegraph/pull/41958)
-
-## 4.0.0
-
-### Added
-
-- A new look for Sourcegraph, previously in beta as "Simple UI", is now permanently enabled. [#41021](https://github.com/sourcegraph/sourcegraph/pull/41021)
-- A new [multi-version upgrade](https://docs.sourcegraph.com/admin/updates#multi-version-upgrades) process now allows Sourcegraph instances to upgrade more than a single minor version. Instances at version 3.20 or later can now jump directly to 4.0. [#40628](https://github.com/sourcegraph/sourcegraph/pull/40628)
-- Matching ranges in file paths are now highlighted for path results and content results. Matching paths in repository names are now highlighted for repository results. [#41296](https://github.com/sourcegraph/sourcegraph/pull/41296) [#41385](https://github.com/sourcegraph/sourcegraph/pull/41385) [#41470](https://github.com/sourcegraph/sourcegraph/pull/41470)
-- Aggregations by repository, file, author, and capture group are now provided for search results. [#39643](https://github.com/sourcegraph/sourcegraph/issues/39643)
-- Blob views and search results are now lazily syntax highlighted for better performance. [#39563](https://github.com/sourcegraph/sourcegraph/pull/39563) [#40263](https://github.com/sourcegraph/sourcegraph/pull/40263)
-- File links in both the search results and the blob sidebar and now prefetched on hover or focus. [#40354](https://github.com/sourcegraph/sourcegraph/pull/40354) [#41420](https://github.com/sourcegraph/sourcegraph/pull/41420)
-- Negation support for the search predicates `-repo:has.path()` and `-repo:has.content()`. [#40283](https://github.com/sourcegraph/sourcegraph/pull/40283)
-- Experimental clientside OpenTelemetry can now be enabled with `"observability.client": { "openTelemetry": "/-/debug/otlp" }`, which sends OpenTelemetry to the new [bundled OpenTelemetry Collector](https://docs.sourcegraph.com/admin/observability/opentelemetry). [#37907](https://github.com/sourcegraph/sourcegraph/issues/37907)
-- File diff stats are now characterized by 2 figures: lines added and lines removed. Previously, a 3rd figure for lines modified was also used. This is represented by the fields on the `DiffStat` type on the GraphQL API. [#40454](https://github.com/sourcegraph/sourcegraph/pull/40454)
-
-### Changed
-
-- [Sourcegraph with Kubernetes (without Helm)](https://docs.sourcegraph.com/admin/deploy/kubernetes): The `jaeger-agent` sidecar has been replaced by an [OpenTelemetry Collector](https://docs.sourcegraph.com/admin/observability/opentelemetry) DaemonSet + Deployment configuration. The bundled Jaeger instance is now disabled by default, instead of enabled. [#40456](https://github.com/sourcegraph/sourcegraph/issues/40456)
-- [Sourcegraph with Docker Compose](https://docs.sourcegraph.com/admin/deploy/docker-compose): The `jaeger` service has been replaced by an [OpenTelemetry Collector](https://docs.sourcegraph.com/admin/observability/opentelemetry) service. The bundled Jaeger instance is now disabled by default, instead of enabled. [#40455](https://github.com/sourcegraph/sourcegraph/issues/40455)
-- `"observability.tracing": { "type": "opentelemetry" }` is now the default tracer type. To revert to existing behaviour, set `"type": "jaeger"` instead. The legacy values `"type": "opentracing"` and `"type": "datadog"` have been removed. [#41242](https://github.com/sourcegraph/sourcegraph/pull/41242)
-- `"observability.tracing": { "urlTemplate": "" }` is now the default, and if `"urlTemplate"` is left empty, no trace URLs are generated. To revert to existing behaviour, set `"urlTemplate": "{{ .ExternalURL }}/-/debug/jaeger/trace/{{ .TraceID }}"` instead. [#41242](https://github.com/sourcegraph/sourcegraph/pull/41242)
-- Code host connection tokens are no longer supported as a fallback method for syncing changesets in Batch Changes. [#25394](https://github.com/sourcegraph/sourcegraph/issues/25394)
-- **IMPORTANT:** `repo:contains(file:foo content:bar)` has been renamed to `repo:contains.file(path:foo content:bar)`. `repo:contains.file(foo)` has been renamed to `repo:contains.path(foo)`. `repo:contains()` **is no longer a valid predicate. Saved searches using** `repo:contains()` **will need to be updated to use the new syntax.** [#40389](https://github.com/sourcegraph/sourcegraph/pull/40389)
-
-### Fixed
-
-- Fixed support for bare repositories using the src-cli and other codehost type. This requires the latest version of src-cli. [#40863](https://github.com/sourcegraph/sourcegraph/pull/40863)
-- The recommended [src-cli](https://github.com/sourcegraph/src-cli) version is now reported consistently. [#39468](https://github.com/sourcegraph/sourcegraph/issues/39468)
-- A performance issue affecting structural search causing results to not stream. It is much faster now. [#40872](https://github.com/sourcegraph/sourcegraph/pull/40872)
-- An issue where the saved search input box reports an invalid pattern type for `standard`, which is now valid. [#41068](https://github.com/sourcegraph/sourcegraph/pull/41068)
-- Git will now respect system certificate authorities when specifying `certificates` for the `tls.external` site configuration. [#38128](https://github.com/sourcegraph/sourcegraph/issues/38128)
-- Fixed a bug where setting `"observability.tracing": {}` would disable tracing, when the intended behaviour is to default to tracing with `"sampling": "selective"` enabled by default. [#41242](https://github.com/sourcegraph/sourcegraph/pull/41242)
-- The performance, stability, and latency of search predicates like `repo:has.file()`, `repo:has.content()`, and `file:has.content()` have been dramatically improved. [#418](https://github.com/sourcegraph/zoekt/pull/418), [#40239](https://github.com/sourcegraph/sourcegraph/pull/40239), [#38988](https://github.com/sourcegraph/sourcegraph/pull/38988), [#39501](https://github.com/sourcegraph/sourcegraph/pull/39501)
-- A search query issue where quoted patterns inside parenthesized expressions would be interpreted incorrectly. [#41455](https://github.com/sourcegraph/sourcegraph/pull/41455)
-
-### Removed
-
-- `CACHE_DIR` has been removed from the `sourcegraph-frontend` deployment. This required ephemeral storage which will no longer be needed. This variable (and corresponding filesystem mount) has been unused for many releases. [#38934](https://github.com/sourcegraph/sourcegraph/issues/38934)
-- Quick links will no longer be shown on the homepage or search sidebar. The `quicklink` setting is now marked as deprecated. [#40750](https://github.com/sourcegraph/sourcegraph/pull/40750)
-- Quick links will no longer be shown on the homepage or search sidebar if the "Simple UI" toggle is enabled and will be removed entirely in a future release. The `quicklink` setting is now marked as deprecated. [#40750](https://github.com/sourcegraph/sourcegraph/pull/40750)
-- `file:contains()` has been removed from the list of valid predicates. `file:has.content()` and `file:contains.content()` remain, both of which work the same as `file:contains()` and are valid aliases of each other.
-- The single-container `sourcegraph/server` deployment no longer bundles a Jaeger instance. [#41244](https://github.com/sourcegraph/sourcegraph/pull/41244)
-- The following previously-deprecated fields have been removed from the Batch Changes GraphQL API: `GitBranchChangesetDescription.headRepository`, `BatchChange.initialApplier`, `BatchChange.specCreator`, `Changeset.publicationState`, `Changeset.reconcilerState`, `Changeset.externalState`.
-
-## 3.43.2
-
-### Fixed
-
-- Fixed an issue causing context cancel error dumps when updating a code host config manually. [#40857](https://github.com/sourcegraph/sourcegraph/pull/41265)
-- Fixed non-critical errors stopping the repo-syncing process for Bitbucket projectKeys. [#40897](https://github.com/sourcegraph/sourcegraph/pull/40582)
-- Fixed an issue marking accounts as expired when the supplied Account ID list has no entries. [#40860](https://github.com/sourcegraph/sourcegraph/pull/40860)
-
-## 3.43.1
-
-### Fixed
-
-- Fixed an infinite render loop on the batch changes detail page, causing the page to become unusable. [#40857](https://github.com/sourcegraph/sourcegraph/pull/40857)
-- Unable to pick the correct GitLab OAuth for user authentication and repository permissions syncing when the instance configures more than one GitLab OAuth authentication providers. [#40897](https://github.com/sourcegraph/sourcegraph/pull/40897)
-
-## 3.43.0
-
-### Added
-
-- Enforce 5-changeset limit for batch changes run server-side on an unlicensed instance. [#37834](https://github.com/sourcegraph/sourcegraph/issues/37834)
-- Changesets that are not associated with any batch changes can have a retention period set using the site configuration `batchChanges.changesetsRetention`. [#36188](https://github.com/sourcegraph/sourcegraph/pull/36188)
-- Added experimental support for exporting traces to an OpenTelemetry collector with `"observability.tracing": { "type": "opentelemetry" }` [#37984](https://github.com/sourcegraph/sourcegraph/pull/37984)
-- Added `ROCKSKIP_MIN_REPO_SIZE_MB` to automatically use [Rockskip](https://docs.sourcegraph.com/code_intelligence/explanations/rockskip) for repositories over a certain size. [#38192](https://github.com/sourcegraph/sourcegraph/pull/38192)
-- `"observability.tracing": { "urlTemplate": "..." }` can now be set to configure generated trace URLs (for example those generated via `&trace=1`). [#39765](https://github.com/sourcegraph/sourcegraph/pull/39765)
-
-### Changed
-
-- **IMPORTANT: Search queries with patterns surrounded by** `/.../` **will now be interpreted as regular expressions.** Existing search links or code monitors are unaffected. In the rare event where older links rely on the literal meaning of `/.../`, the string will be automatically quoted it in a `content` filter, preserving the original meaning. If you happen to use an existing older link and want `/.../` to work as a regular expression, add `patterntype:standard` to the query. New queries and code monitors will interpret `/.../` as regular expressions. [#38141](https://github.com/sourcegraph/sourcegraph/pull/38141).
-- The password policy has been updated and is now part of the standard featureset configurable by site-admins. [#39213](https://github.com/sourcegraph/sourcegraph/pull/39213).
-- Replaced the `ALLOW_DECRYPT_MIGRATION` envvar with `ALLOW_DECRYPTION`. See [updated documentation](https://docs.sourcegraph.com/admin/config/encryption). [#39984](https://github.com/sourcegraph/sourcegraph/pull/39984)
-- Compute-powered insight now supports only one series custom colors for compute series bars [40038](https://github.com/sourcegraph/sourcegraph/pull/40038)
-
-### Fixed
-
-- Fix issue during code insight creation where selecting `"Run your insight over all your repositories"` reset the currently selected distance between data points. [#39261](https://github.com/sourcegraph/sourcegraph/pull/39261)
-- Fix issue where symbols in the side panel did not have file level permission filtering applied correctly. [#39592](https://github.com/sourcegraph/sourcegraph/pull/39592)
-
-### Removed
-
-- The experimental dependencies search feature has been removed, including the `repo:deps(...)` search predicate and the site configuration options `codeIntelLockfileIndexing.enabled` and `experimentalFeatures.dependenciesSearch`. [#39742](https://github.com/sourcegraph/sourcegraph/pull/39742)
-
-## 3.42.2
-
-### Fixed
-
-- Fix issue with capture group insights to fail immediately if they contain invalid queries. [#39842](https://github.com/sourcegraph/sourcegraph/pull/39842)
-- Fix issue during conversion of just in time code insights to start backfilling data from the current time instead of the date the insight was created. [#39923](https://github.com/sourcegraph/sourcegraph/pull/39923)
-
-## 3.42.1
-
-### Fixed
-
-- Reverted git version to avoid an issue with commit-graph that could cause repository corruptions [#39537](https://github.com/sourcegraph/sourcegraph/pull/39537)
-- Fixed an issue with symbols where they were not respecting sub-repository permissions [#39592](https://github.com/sourcegraph/sourcegraph/pull/39592)
-
-## 3.42.0
-
-### Added
-
-- Reattached changesets now display an action and factor into the stats when previewing batch changes. [#36359](https://github.com/sourcegraph/sourcegraph/issues/36359)
-- New site configuration option `"permissions.syncUsersMaxConcurrency"` to control the maximum number of user-centric permissions syncing jobs could be spawned concurrently. [#37918](https://github.com/sourcegraph/sourcegraph/issues/37918)
-- Added experimental support for exporting traces to an OpenTelemetry collector with `"observability.tracing": { "type": "opentelemetry" }` [#37984](https://github.com/sourcegraph/sourcegraph/pull/37984)
-- Code Insights over some repos now get 12 historic data points in addition to a current daily value and future points that align with the defined interval. [#37756](https://github.com/sourcegraph/sourcegraph/pull/37756)
-- A Kustomize overlay and Helm override file to apply envoy filter for networking error caused by service mesh. [#4150](https://github.com/sourcegraph/deploy-sourcegraph/pull/4150) & [#148](https://github.com/sourcegraph/deploy-sourcegraph-helm/pull/148)
-- Resource Estimator: Ability to export the estimated results as override file for Helm and Docker Compose. [#18](https://github.com/sourcegraph/resource-estimator/pull/18)
-- A toggle to enable/disable a beta simplified UI has been added to the user menu. This new UI is still actively in development and any changes visible with the toggle enabled may not be stable are subject to change. [#38763](https://github.com/sourcegraph/sourcegraph/pull/38763)
-- Search query inputs are now backed by the CodeMirror library instead of Monaco. Monaco can be re-enabled by setting `experimentalFeatures.editor` to `"monaco"`. [38584](https://github.com/sourcegraph/sourcegraph/pull/38584)
-- Better search-based code navigation for Python using tree-sitter [#38459](https://github.com/sourcegraph/sourcegraph/pull/38459)
-- Gitserver endpoint access logs can now be enabled by adding `"log": { "gitserver.accessLogs": true }` to the site config. [#38798](https://github.com/sourcegraph/sourcegraph/pull/38798)
-- Code Insights supports a new type of insight—compute-powered insight, currently under the experimental feature flag: `codeInsightsCompute` [#37857](https://github.com/sourcegraph/sourcegraph/issues/37857)
-- Cache execution result when mounting files in a batch spec. [sourcegraph/src-cli#795](https://github.com/sourcegraph/src-cli/pull/795)
-- Batch Changes changesets open on archived repositories will now move into a [Read-Only state](https://docs.sourcegraph.com/batch_changes/references/faq#why-is-my-changeset-read-only). [#26820](https://github.com/sourcegraph/sourcegraph/issues/26820)
-
-### Changed
-
-- Updated minimum required veresion of `git` to 2.35.2 in `gitserver` and `server` Docker image. This addresses [a few vulnerabilities announced by GitHub](https://github.blog/2022-04-12-git-security-vulnerability-announced/).
-- Search: Pasting a query with line breaks into the main search query input will now replace them with spaces instead of removing them. [#37674](https://github.com/sourcegraph/sourcegraph/pull/37674)
-- Rewrite resource estimator using the latest metrics [#37869](https://github.com/sourcegraph/sourcegraph/pull/37869)
-- Selecting a line multiple times in the file view will only add a single browser history entry [#38204](https://github.com/sourcegraph/sourcegraph/pull/38204)
-- The panels on the homepage (recent searches, etc) are now turned off by default. They can be re-enabled by setting `experimentalFeatures.showEnterpriseHomePanels` to true. [#38431](https://github.com/sourcegraph/sourcegraph/pull/38431)
-- Log sampling is now enabled by default for Sourcegraph components that use the [new internal logging library](https://github.com/sourcegraph/log)—the first 100 identical log entries per second will always be output, but thereafter only every 100th identical message will be output. It can be configured for each service using the environment variables `SRC_LOG_SAMPLING_INITIAL` and `SRC_LOG_SAMPLING_THEREAFTER`, and if `SRC_LOG_SAMPLING_INITIAL` is set to `0` or `-1` the sampling will be disabled entirely. [#38451](https://github.com/sourcegraph/sourcegraph/pull/38451)
-- Deprecated `experimentalFeatures.enableGitServerCommandExecFilter`. Setting this value has no effect on the code any longer and the code to guard against unknown commands is always enabled.
-- Zoekt now runs with GOGC=25 by default, helping to reduce the memory consumption of Sourcegraph. Previously it ran with GOGC=50, but we noticed a regression when we switched to go 1.18 which contained significant changes to the go garbage collector. [#38708](https://github.com/sourcegraph/sourcegraph/issues/38708)
-- Hide `Publish` action when working with imported changesets. [#37882](https://github.com/sourcegraph/sourcegraph/issues/37882)
-
-### Fixed
-
-- Fix an issue where updating the title or body of a Bitbucket Cloud pull request opened by a batch change could fail when the pull request was not on a fork of the target repository. [#37585](https://github.com/sourcegraph/sourcegraph/issues/37585)
-- A bug where some complex `repo:` regexes only returned a subset of repository results. [#37925](https://github.com/sourcegraph/sourcegraph/pull/37925)
-- Fix a bug when selecting all the changesets on the Preview Batch Change Page only selected the recently loaded changesets. [#38041](https://github.com/sourcegraph/sourcegraph/pull/38041)
-- Fix a bug with bad code insights chart data points links. [#38102](https://github.com/sourcegraph/sourcegraph/pull/38102)
-- Code Insights: the commit indexer no longer errors when fetching commits from empty repositories and marks them as successfully indexed. [#39081](https://github.com/sourcegraph/sourcegraph/pull/38091)
-- The file view does not jump to the first selected line anymore when selecting multiple lines and the first selected line was out of view. [#38175](https://github.com/sourcegraph/sourcegraph/pull/38175)
-- Fixed an issue where multiple activations of the back button are required to navigate back to a previously selected line in a file [#38193](https://github.com/sourcegraph/sourcegraph/pull/38193)
-- Support timestamps with numeric timezone format from Gitlab's Webhook payload [#38250](https://github.com/sourcegraph/sourcegraph/pull/38250)
-- Fix regression in 3.41 where search-based Code Insights could have their queries wrongly parsed into regex patterns when containing quotes or parentheses. [#38400](https://github.com/sourcegraph/sourcegraph/pull/38400)
-- Fixed regression of mismatched `From` address when render emails. [#38589](https://github.com/sourcegraph/sourcegraph/pull/38589)
-- Fixed a bug with GitHub code hosts using `"repositoryQuery":{"public"}` where it wasn't respecting exclude archived. [#38839](https://github.com/sourcegraph/sourcegraph/pull/38839)
-- Fixed a bug with GitHub code hosts using `repositoryQuery` with custom queries, where it could potentially stall out searching for repos. [#38839](https://github.com/sourcegraph/sourcegraph/pull/38839)
-- Fixed an issue in Code Insights were duplicate points were sometimes being returned when displaying series data. [#38903](https://github.com/sourcegraph/sourcegraph/pull/38903)
-- Fix issue with Bitbucket Projects repository permissions sync regarding granting pending permissions. [#39013](https://github.com/sourcegraph/sourcegraph/pull/39013)
-- Fix issue with Bitbucket Projects repository permissions sync when BindID is username. [#39035](https://github.com/sourcegraph/sourcegraph/pull/39035)
-- Improve keyboard navigation for batch changes server-side execution flow. [#38601](https://github.com/sourcegraph/sourcegraph/pull/38601)
-- Fixed a bug with the WorkspacePreview panel glitching when it's resized. [#36470](https://github.com/sourcegraph/sourcegraph/issues/36470)
-- Handle special characters in search query when creating a batch change from search. [#38772](https://github.com/sourcegraph/sourcegraph/pull/38772)
-- Fixed bug when parsing numeric timezone offset in Gitlab webhook payload. [#38250](https://github.com/sourcegraph/sourcegraph/pull/38250)
-- Fixed setting unrestricted status on a repository when using the explicit permissions API. If the repository had never had explicit permissions before, previously this call would fail. [#39141](https://github.com/sourcegraph/sourcegraph/pull/39141)
-
-### Removed
-
-- The direct DataDog trace export integration has been removed. ([#37654](https://github.com/sourcegraph/sourcegraph/pull/37654))
-- Removed the deprecated git exec forwarder. [#38092](https://github.com/sourcegraph/sourcegraph/pull/38092)
-- Browser and IDE extensions banners. [#38715](https://github.com/sourcegraph/sourcegraph/pull/38715)
-
-## 3.41.1
-
-### Fixed
-
-- Fix issue with Bitbucket Projects repository permissions sync when wrong repo IDs were used [#38637](https://github.com/sourcegraph/sourcegraph/pull/38637)
-- Fix perforce permissions interpretation for rules where there is a wildcard in the depot name [#37648](https://github.com/sourcegraph/sourcegraph/pull/37648)
-
-### Added
-
-- Allow directory read access for sub repo permissions [#38487](https://github.com/sourcegraph/sourcegraph/pull/38487)
-
-### Changed
-
-- p4-fusion version is upgraded to 1.10 [#38272](https://github.com/sourcegraph/sourcegraph/pull/38272)
-
-## 3.41.0
-
-### Added
-
-- Code Insights: Added toggle display of data series in line charts
-- Code Insights: Added dashboard pills for the standalone insight page [#36341](https://github.com/sourcegraph/sourcegraph/pull/36341)
-- Extensions: Added site config parameter `extensions.allowOnlySourcegraphAuthoredExtensions`. When enabled only extensions authored by Sourcegraph will be able to be viewed and installed. For more information check out the [docs](https://docs.sourcegraph.com/admin/extensions##allow-only-extensions-authored-by-sourcegraph). [#35054](https://github.com/sourcegraph/sourcegraph/pull/35054)
-- Batch Changes Credentials can now be manually validated. [#35948](https://github.com/sourcegraph/sourcegraph/pull/35948)
-- Zoekt-indexserver has a new debug landing page, `/debug`, which now exposes information about the queue, the list of indexed repositories, and the list of assigned repositories. Admins can reach the debug landing page by selecting Instrumentation > indexed-search-indexer from the site admin view. The debug page is linked at the top. [#346](https://github.com/sourcegraph/zoekt/pull/346)
-- Extensions: Added `enableExtensionsDecorationsColumnView` user setting as [experimental feature](https://docs.sourcegraph.com/admin/beta_and_experimental_features#experimental-features). When enabled decorations of the extensions supporting column decorations (currently only git-extras extension does: [sourcegraph-git-extras/pull/276](https://github.com/sourcegraph/sourcegraph-git-extras/pull/276)) will be displayed in separate columns on the blob page. [#36007](https://github.com/sourcegraph/sourcegraph/pull/36007)
-- SAML authentication provider has a new site configuration `allowGroups` that allows filtering users by group membership. [#36555](https://github.com/sourcegraph/sourcegraph/pull/36555)
-- A new [templating](https://docs.sourcegraph.com/batch_changes/references/batch_spec_templating) variable, `batch_change_link` has been added for more control over where the "Created by Sourcegraph batch change ..." message appears in the published changeset description. [#491](https://github.com/sourcegraph/sourcegraph/pull/35319)
-- Batch specs can now mount local files in the Docker container when using [Sourcegraph CLI](https://docs.sourcegraph.com/cli). [#31790](https://github.com/sourcegraph/sourcegraph/issues/31790)
-- Code Monitoring: Notifications via Slack and generic webhooks are now enabled for everyone by default as a beta feature. [#37037](https://github.com/sourcegraph/sourcegraph/pull/37037)
-- Code Insights: Sort and limit filters have been added to capture group insights. This gives users more control over which series are displayed. [#34611](https://github.com/sourcegraph/sourcegraph/pull/34611)
-- [Running batch changes server-side](https://docs.sourcegraph.com/batch_changes/explanations/server_side) is now in beta! In addition to using src-cli to run batch changes locally, you can now run them server-side as well. This requires installing executors. While running server-side unlocks a new and improved UI experience, you can still use src-cli just like before.
-- Code Monitoring: pings for new action types [#37288](https://github.com/sourcegraph/sourcegraph/pull/37288)
-- Better search-based code navigation for Java using tree-sitter [#34875](https://github.com/sourcegraph/sourcegraph/pull/34875)
-
-### Changed
-
-- Code Insights: Added warnings about adding `context:` and `repo:` filters in search query.
-- Batch Changes: The credentials of the last applying user will now be used to sync changesets when available. If unavailable, then the previous behaviour of using a site or code host configuration credential is retained. [#33413](https://github.com/sourcegraph/sourcegraph/issues/33413)
-- Gitserver: we disable automatic git-gc for invocations of git-fetch to avoid corruption of repositories by competing git-gc processes. [#36274](https://github.com/sourcegraph/sourcegraph/pull/36274)
-- Commit and diff search: The hard limit of 50 repositories has been removed, and long-running searches will continue running until the timeout is hit. [#36486](https://github.com/sourcegraph/sourcegraph/pull/36486)
-- The Postgres DBs `frontend` and `codeintel-db` are now given 1 hour to begin accepting connections before Kubernetes restarts the containers. [#4136](https://github.com/sourcegraph/deploy-sourcegraph/pull/4136)
-- The internal git command forwarder has been deprecated and will be removed in 3.42 [#37320](https://github.com/sourcegraph/sourcegraph/pull/37320)
-
-### Fixed
-
-- Unable to send emails through [Google SMTP relay](https://docs.sourcegraph.com/admin/config/email#configuring-sourcegraph-to-send-email-via-google-workspace-gmail) with mysterious error "EOF". [#35943](https://github.com/sourcegraph/sourcegraph/issues/35943)
-- A common source of searcher evictions on kubernetes when running large structural searches. [#34828](https://github.com/sourcegraph/sourcegraph/issues/34828)
-- An issue with permissions evaluation for saved searches
-- An authorization check while Redis is down will now result in an internal server error, instead of clearing a valid session from the user's cookies. [#37016](https://github.com/sourcegraph/sourcegraph/issues/37016)
-
-### Removed
-
--
-
-## 3.40.2
-
-### Fixed
-
-- Fix issue with OAuth login using a Github code host by reverting gologin dependency update [#36685](https://github.com/sourcegraph/sourcegraph/pull/36685)
-- Fix issue with single-container docker image where codeinsights-db was being incorrectly created [#36678](https://github.com/sourcegraph/sourcegraph/pull/36678)
-
-## 3.40.1
-
-### Fixed
-
-- Support expiring OAuth tokens for GitLab which became the default in version 15.0. [#36003](https://github.com/sourcegraph/sourcegraph/pull/36003)
-- Fix external service resolver erroring when webhooks not supported. [#35932](https://github.com/sourcegraph/sourcegraph/pull/35932)
-
-## 3.40.0
-
-### Added
-
-- Code Insights: Added fuzzy search filter for dashboard select drop down
-- Code Insights: You can share code insights through a shareable link. [#34965](https://github.com/sourcegraph/sourcegraph/pull/34965)
-- Search: `path:` is now a valid filter. It is an alias for the existing `file:` filter. [#34947](https://github.com/sourcegraph/sourcegraph/pull/34947)
-- Search: `-language` is a valid filter, but the web app displays it as invalid. The web app is fixed to reflect validity. [#34949](https://github.com/sourcegraph/sourcegraph/pull/34949)
-- Search-based code intelligence now recognizes local variables in Python, Java, JavaScript, TypeScript, C/C++, C#, Go, and Ruby. [#33689](https://github.com/sourcegraph/sourcegraph/pull/33689)
-- GraphQL API: Added support for async external service deletion. This should be used to delete an external service which cannot be deleted within 75 seconds timeout due to a large number of repos. Usage: add `async` boolean field to `deleteExternalService` mutation. Example: `mutation deleteExternalService(externalService: "id", async: true) { alwaysNil }`
-- [search.largeFiles](https://docs.sourcegraph.com/admin/config/site_config#search-largeFiles) now supports recursive globs. For example, it is now possible to specify a pattern like `**/*.lock` to match a lock file anywhere in a repository. [#35411](https://github.com/sourcegraph/sourcegraph/pull/35411)
-- Permissions: The `setRepositoryPermissionsUnrestricted` mutation was added, which allows explicitly marking a repo as available to all Sourcegraph users. [#35378](https://github.com/sourcegraph/sourcegraph/pull/35378)
-- The `repo:deps(...)` predicate can now search through the [Python dependencies of your repositories](https://docs.sourcegraph.com/code_search/how-to/dependencies_search). [#32659](https://github.com/sourcegraph/sourcegraph/issues/32659)
-- Batch Changes are now supported on [Bitbucket Cloud](https://bitbucket.org/). [#24199](https://github.com/sourcegraph/sourcegraph/issues/24199)
-- Pings for server-side batch changes [#34308](https://github.com/sourcegraph/sourcegraph/pull/34308)
-- Indexed search will detect when it is misconfigured and has multiple replicas writing to the same directory. [#35513](https://github.com/sourcegraph/sourcegraph/pull/35513)
-- A new token creation callback feature that sends a token back to a trusted program automatically after the user has signed in [#35339](https://github.com/sourcegraph/sourcegraph/pull/35339)
-- The Grafana dashboard now has a global container resource usage view to help site-admin quickly identify potential scaling issues. [#34808](https://github.com/sourcegraph/sourcegraph/pull/34808)
-
-### Changed
-
-- Sourcegraph's docker images are now based on Alpine Linux 3.14. [#34508](https://github.com/sourcegraph/sourcegraph/pull/34508)
-- Sourcegraph is now built with Go 1.18. [#34899](https://github.com/sourcegraph/sourcegraph/pull/34899)
-- Capture group Code Insights now use the Compute streaming endpoint. [#34905](https://github.com/sourcegraph/sourcegraph/pull/34905)
-- Code Insights will now automatically generate queries with a default value of `fork:no` and `archived:no` if these fields are not specified by the user. This removes the need to manually add these fields to have consistent behavior from historical to non-historical results. [#30204](https://github.com/sourcegraph/sourcegraph/issues/30204)
-- Search Code Insights now use the Search streaming endpoint. [#35286](https://github.com/sourcegraph/sourcegraph/pull/35286)
-- Deployment: Nginx ingress controller updated to v1.2.0
-
-### Fixed
-
-- Code Insights: Fixed line chart data series hover effect. Now the active line will be rendered on top of the others.
-- Code Insights: Fixed incorrect Line Chart size calculation in FireFox
-- Unverified primary emails no longer breaks the Emails-page for users and Users-page for Site Admin. [#34312](https://github.com/sourcegraph/sourcegraph/pull/34312)
-- Button to download raw file in blob page is now working correctly. [#34558](https://github.com/sourcegraph/sourcegraph/pull/34558)
-- Searches containing `or` expressions are now optimized to evaluate natively on the backends that support it ([#34382](https://github.com/sourcegraph/sourcegraph/pull/34382)), and both commit and diff search have been updated to run optimized `and`, `or`, and `not` queries. [#34595](https://github.com/sourcegraph/sourcegraph/pull/34595)
-- Carets in textareas in Firefox are now visible. [#34888](https://github.com/sourcegraph/sourcegraph/pull/34888)
-- Changesets to GitHub code hosts could fail with a confusing, non actionable error message. [#35048](https://github.com/sourcegraph/sourcegraph/pull/35048)
-- An issue causing search expressions to not work in conjunction with `type:symbol`. [#35126](https://github.com/sourcegraph/sourcegraph/pull/35126)
-- A non-descriptive error message that would be returned when using `on.repository` if it is not a valid repository path [#35023](https://github.com/sourcegraph/sourcegraph/pull/35023)
-- Reduced database load when viewing or previewing a batch change. [#35501](https://github.com/sourcegraph/sourcegraph/pull/35501)
-- Fixed a bug where Capture Group Code Insights generated just in time only returned data for the latest repository in the list. [#35624](https://github.com/sourcegraph/sourcegraph/pull/35624)
-
-### Removed
-
-- The experimental API Docs feature released on our Cloud instance since 3.30.0 has been removed from the product entirely. This product functionality is being superseded by [doctree](https://github.com/sourcegraph/doctree). [#34798](https://github.com/sourcegraph/sourcegraph/pull/34798)
-
-## 3.39.1
-
-### Fixed
-
-- Code Insights: Fixed bug that caused line rendering issues when series data is returned out of order by date.
-- Code Insights: Fixed bug that caused before and after parameters to be switched when clicking in to the diff view from an insight.
-- Fixed an issue with notebooks that caused the cursor to behave erratically in markdown blocks. [#34227](https://github.com/sourcegraph/sourcegraph/pull/34227)
-- Batch Changes on docker compose installations were failing due to a missing environment variable [#813](https://github.com/sourcegraph/deploy-sourcegraph-docker/pull/813).
-
-## 3.39.0
-
-### Added
-
-- Added support for LSIF upload authentication against GitLab.com on Sourcegraph Cloud. [#33254](https://github.com/sourcegraph/sourcegraph/pull/33254)
-- Add "getting started/quick start checklist for authenticated users" [#32882](https://github.com/sourcegraph/sourcegraph/pull/32882)
-- A redesigned repository page is now available under the `new-repo-page` feature flag. [#33319](https://github.com/sourcegraph/sourcegraph/pull/33319)
-- Pings now include notebooks usage metrics. [#30087](https://github.com/sourcegraph/sourcegraph/issues/30087)
-- Notebooks are now enabled by default. [#33706](https://github.com/sourcegraph/sourcegraph/pull/33706)
-- The Code Insights GraphQL API now accepts Search Contexts as a filter and will extract the expressions embedded the `repo` and `-repo` search query fields from the contexts to apply them as filters on the insight. [#33866](https://github.com/sourcegraph/sourcegraph/pull/33866)
-- The Code Insights commit indexer can now index commits in smaller batches. Set the number of days per batch in the site setting `insights.commit.indexer.windowDuration`. A value of 0 (default) will disable batching. [#33666](https://github.com/sourcegraph/sourcegraph/pull/33666)
-- Support account lockout after consecutive failed sign-in attempts for builtin authentication provider (i.e. username and password), new config options are added to the site configuration under `"auth.lockout"` to customize the threshold, length of lockout and consecutive periods. [#33999](https://github.com/sourcegraph/sourcegraph/pull/33999)
-- pgsql-exporter for Code Insights has been added to docker-compose and Kubernetes deployments to gather database-level metrics. [#780](https://github.com/sourcegraph/deploy-sourcegraph-docker/pull/780), [#4111](https://github.com/sourcegraph/deploy-sourcegraph/pull/4111)
-- `repo:dependencies(...)` predicate can now search through the [Go dependencies of your repositories](https://docs.sourcegraph.com/code_search/how-to/dependencies_search). [#32658](https://github.com/sourcegraph/sourcegraph/issues/32658)
-- Added a site config value `defaultRateLimit` to optionally configure a global default rate limit for external services.
-
-### Changed
-
-- Code Insights: Replaced native window confirmation dialog with branded modal. [#33637](https://github.com/sourcegraph/sourcegraph/pull/33637)
-- Code Insights: Series data is now sorted by semantic version then alphabetically.
-- Code Insights: Added locked insights overlays for frozen insights while in limited access mode. Restricted insight editing save change button for frozen insights. [#33062](https://github.com/sourcegraph/sourcegraph/pull/33062)
-- Code Insights: A global dashboard will now be automatically created while in limited access mode to provide consistent visibility for unlocked insights. This dashboard cannot be deleted or modified while in limited access mode. [#32992](https://github.com/sourcegraph/sourcegraph/pull/32992)
-- Update "getting started checklist for visitors" to a new design [TODO:]
-- Update "getting started/quick start checklist for visitors" to a new design [#32882](https://github.com/sourcegraph/sourcegraph/pull/32882)
-- Code Insights: Capture group values are now restricted to 100 characters. [#32828](https://github.com/sourcegraph/sourcegraph/pull/32828)
-- Repositories for which gitserver's janitor job "sg maintenance" fails will eventually be re-cloned if "DisableAutoGitUpdates" is set to false (default) in site configuration. [#33432](https://github.com/sourcegraph/sourcegraph/pull/33432)
-- The Code Insights database is now based on Postgres 12, removing the dependency on TimescaleDB. [#32697](https://github.com/sourcegraph/sourcegraph/pull/32697)
-
-### Fixed
-
-- Fixed create insight button being erroneously disabled.
-- Fixed an issue where a `Warning: Sourcegraph cannot send emails!` banner would appear for all users instead of just site admins (introduced in v3.38).
-- Fixed reading search pattern type from settings [#32989](https://github.com/sourcegraph/sourcegraph/issues/32989)
-- Display a tooltip and truncate the title of a search result when content overflows [#32904](https://github.com/sourcegraph/sourcegraph/pull/32904)
-- Search patterns containing `and` and `not` expressions are now optimized to evaluate natively on the Zoekt backend for indexed code content and symbol search wherever possible. These kinds of queries are now typically an order of magnitude faster. Previous cases where no results were returned for expensive search expressions should now work and return results quickly. [#33308](https://github.com/sourcegraph/sourcegraph/pull/33308)
-- Fail to log extension activation event will no longer block extension from activating [#33300][https://github.com/sourcegraph/sourcegraph/pull/33300]
-- Fixed out-ouf-memory events for gitserver's janitor job "sg maintenance". [#33353](https://github.com/sourcegraph/sourcegraph/issues/33353)
-- Setting the publication state for changesets when previewing a batch spec now works correctly if all changesets are selected and there is more than one page of changesets. [#33619](https://github.com/sourcegraph/sourcegraph/issues/33619)
-
-### Removed
-
--
-
-## 3.38.1
-
-### Fixed
-
-- An issue introduced in 3.38 that caused alerts to not be delivered [#33398](https://github.com/sourcegraph/sourcegraph/pull/33398)
-
-## 3.38.0
-
-### Added
-
-- Added new "Getting started onboarding tour" for not authenticated users on Sourcegraph.com instead of "Search onboarding tour" [#32263](https://github.com/sourcegraph/sourcegraph/pull/32263)
-- Pings now include code host integration usage metrics [#31379](https://github.com/sourcegraph/sourcegraph/pull/31379)
-- Added `PRECISE_CODE_INTEL_UPLOAD_AWS_USE_EC2_ROLE_CREDENTIALS` environment variable to enable EC2 metadata API authentication to an external S3 bucket storing precise code intelligence uploads. [#31820](https://github.com/sourcegraph/sourcegraph/pull/31820)
-- LSIF upload pages now include a section listing the reasons and retention policies resulting in an upload being retained and not expired. [#30864](https://github.com/sourcegraph/sourcegraph/pull/30864)
-- Timestamps in the history panel can now be formatted as absolute timestamps by using user setting `history.preferAbsoluteTimestamps`
-- Timestamps in the history panel can now be formatted as absolute timestamps by using user setting `history.preferAbsoluteTimestamps` [#31837](https://github.com/sourcegraph/sourcegraph/pull/31837)
-- Notebooks from private enterprise instances can now be embedded in external sites by enabling the `enable-embed-route` feature flag. [#31628](https://github.com/sourcegraph/sourcegraph/issues/31628)
-- Pings now include IDE extensions usage metrics [#32000](https://github.com/sourcegraph/sourcegraph/pull/32000)
-- New EventSource type: `IDEEXTENSION` for IDE extensions-related events [#32000](https://github.com/sourcegraph/sourcegraph/pull/32000)
-- Code Monitoring now has a Logs tab enabled as a [beta feature](https://docs.sourcegraph.com/admin/beta_and_experimental_features). This lets you see recent runs of your code monitors and determine if any notifications were sent or if there were any errors during the run. [#32292](https://github.com/sourcegraph/sourcegraph/pull/32292)
-- Code Monitoring creation and editing now supports syntax highlighting and autocomplete on the search box. [#32536](https://github.com/sourcegraph/sourcegraph/pull/32536)
-- New `repo:dependencies(...)` predicate allows you to [search through the dependencies of your repositories](https://docs.sourcegraph.com/code_search/how-to/dependencies_search). This feature is currently in beta and only npm package repositories are supported with dependencies from `package-lock.json` and `yarn.lock` files. [#32405](https://github.com/sourcegraph/sourcegraph/issues/32405)
-- Site config has a new _experimental_ feature called `gitServerPinnedRepos` that allows admins to pin specific repositories to particular gitserver instances. [#32831](https://github.com/sourcegraph/sourcegraph/pull/32831).
-- Added [Rockskip](https://docs.sourcegraph.com/code_intelligence/explanations/rockskip), a scalable symbol service backend for a fast symbol sidebar and search-based code intelligence on monorepos.
-- Code monitor email notifications can now optionally include the content of new search results. This is disabled by default but can be enabled by editing the code monitor's email action and toggling on "Include search results in sent message". [#32097](https://github.com/sourcegraph/sourcegraph/pull/32097)
-
-### Changed
-
-- Searching for the pattern `//` with regular expression search is now interpreted literally and will search for `//`. Previously, the `//` pattern was interpreted as our regular expression syntax `//` which would in turn be intrpreted as the empty string. Since searching for an empty string offers little practically utility, we now instead interpret `//` to search for its literal meaning in regular expression search. [#31520](https://github.com/sourcegraph/sourcegraph/pull/31520)
-- Timestamps in the webapp will now display local time on hover instead of UTC time [#31672](https://github.com/sourcegraph/sourcegraph/pull/31672)
-- Updated Postgres version from 12.6 to 12.7 [#31933](https://github.com/sourcegraph/sourcegraph/pull/31933)
-- Code Insights will now periodically clean up data series that are not in use. There is a 1 hour grace period where the series can be reattached to a view, after which all of the time series data and metadata will be deleted. [#32094](https://github.com/sourcegraph/sourcegraph/pull/32094)
-- Code Insights critical telemetry total count now only includes insights that are not frozen (limited by trial mode restrictions). [#32529](https://github.com/sourcegraph/sourcegraph/pull/32529)
-- The Phabricator integration with Gitolite code hosts has been deprecated, the fields have been kept to not break existing systems, but the integration does not work anymore
-- The SSH library used to push Batch Change branches to code hosts has been updated to prevent issues pushing to github.com or GitHub Enterprise releases after March 15, 2022. [#32641](https://github.com/sourcegraph/sourcegraph/issues/32641)
-- Bumped the minimum supported version of Docker Compose from `1.22.0` to `1.29.0`. [#32631](https://github.com/sourcegraph/sourcegraph/pull/32631)
-- [Code host API rate limit configuration](https://docs.sourcegraph.com/admin/repo/update_frequency#code-host-api-rate-limiting) no longer based on code host URLs but only takes effect on each individual external services. To enforce API rate limit, please add configuration to all external services that are intended to be rate limited. [#32768](https://github.com/sourcegraph/sourcegraph/pull/32768)
-
-### Fixed
-
-- Viewing or previewing a batch change is now more resilient when transient network or server errors occur. [#29859](https://github.com/sourcegraph/sourcegraph/issues/29859)
-- Search: `select:file` and `select:file.directory` now properly deduplicates results. [#32469](https://github.com/sourcegraph/sourcegraph/pull/32469)
-- Security: Patch container images against CVE 2022-0778 [#32679](https://github.com/sourcegraph/sourcegraph/issues/32679)
-- When closing a batch change, draft changesets that will be closed are now also shown. [#32481](https://github.com/sourcegraph/sourcegraph/pull/32481)
-
-### Removed
-
-- The deprecated GraphQL field `SearchResults.resultCount` has been removed in favor of its replacement, `matchCount`. [#31573](https://github.com/sourcegraph/sourcegraph/pull/31573)
-- The deprecated site-config field `UseJaeger` has been removed. Use `"observability.tracing": { "sampling": "all" }` instead [#31294](https://github.com/sourcegraph/sourcegraph/pull/31294/commits/6793220d6cf1200535a2610d79d2dd9e18c67dca)
-
-## 3.37.0
-
-### Added
-
-- Code in search results is now selectable (e.g. for copying). Just clicking on the code continues to open the corresponding file as it did before. [#30033](https://github.com/sourcegraph/sourcegraph/pull/30033)
-- Search Notebooks now support importing and exporting Markdown-formatted files. [#28586](https://github.com/sourcegraph/sourcegraph/issues/28586)
-- Added standalone migrator service that can be used to run database migrations independently of an upgrade. For more detail see the [standalone migrator docs](https://docs.sourcegraph.com/admin/how-to/manual_database_migrations) and the [docker-compose](https://docs.sourcegraph.com/admin/install/docker-compose/operations#database-migrations) or [kubernetes](https://docs.sourcegraph.com/admin/install/kubernetes/update#database-migrations) upgrade docs.
-
-### Changed
-
-- Syntax highlighting for JSON now uses a distinct color for strings in object key positions. [#30105](https://github.com/sourcegraph/sourcegraph/pull/30105)
-- GraphQL API: The order of events returned by `MonitorTriggerEventConnection` has been reversed so newer events are returned first. The `after` parameter has been modified accordingly to return events older the one specified, to allow for pagination. [31219](https://github.com/sourcegraph/sourcegraph/pull/31219)
-- [Query based search contexts](https://docs.sourcegraph.com/code_search/how-to/search_contexts#beta-query-based-search-contexts) are now enabled by default as a [beta feature](https://docs.sourcegraph.com/admin/beta_and_experimental_features). [#30888](https://github.com/sourcegraph/sourcegraph/pull/30888)
-- The symbols sidebar loads much faster on old commits (after processing it) when scoped to a subdirectory in a big repository. [#31300](https://github.com/sourcegraph/sourcegraph/pull/31300)
-
-### Fixed
-
-- Links generated by editor endpoint will render image preview correctly. [#30767](https://github.com/sourcegraph/sourcegraph/pull/30767)
-- Fixed a race condition in the precise code intel upload expirer process that prematurely expired new uploads. [#30546](https://github.com/sourcegraph/sourcegraph/pull/30546)
-- Pushing changesets from Batch Changes to code hosts with self-signed TLS certificates has been fixed. [#31010](https://github.com/sourcegraph/sourcegraph/issues/31010)
-- Fixed LSIF uploads not being expired according to retention policies when the repository contained tags and branches with the same name but pointing to different commits. [#31108](https://github.com/sourcegraph/sourcegraph/pull/31108)
-- Service discovery for the symbols service can transition from no endpoints to endpoints. Previously we always returned an error after the first empty state. [#31225](https://github.com/sourcegraph/sourcegraph/pull/31225)
-- Fixed performance issue in LSIF upload processing, reducing the latency between uploading an LSIF index and accessing precise code intel in the UI. ([#30978](https://github.com/sourcegraph/sourcegraph/pull/30978), [#31143](https://github.com/sourcegraph/sourcegraph/pull/31143))
-- Fixed symbols not appearing when no files changed between commits. [#31295](https://github.com/sourcegraph/sourcegraph/pull/31295)
-- Fixed symbols not appearing when too many files changed between commits. [#31110](https://github.com/sourcegraph/sourcegraph/pull/31110)
-- Fixed runaway disk usage in the `symbols` service. [#30647](https://github.com/sourcegraph/sourcegraph/pull/30647)
-
-### Removed
-
-- Removed `experimentalFeature.showCodeMonitoringTestEmailButton`. Test emails can still be sent by editing the code monitor and expanding the "Send email notification" section. [#29953](https://github.com/sourcegraph/sourcegraph/pull/29953)
-
-## 3.36.3
-
-### Fixed
-
-- Fix Code Monitor permissions. For more detail see our [security advisory](https://github.com/sourcegraph/sourcegraph/security/advisories/GHSA-xqv2-x6f2-w3pf) [#30547](https://github.com/sourcegraph/sourcegraph/pull/30547)
-
-## 3.36.2
-
-### Removed
-
-- The TOS consent screen which would appear for all users upon signing into Sourcegraph. We had some internal miscommunication on this onboarding flow and it didn’t turn out the way we intended, this effectively reverts that change. 
-
-## 3.36.1
-
-### Fixed
-
-- Fix broken 'src lsif upload' inside executor due to basic auth removal. [#30023](https://github.com/sourcegraph/sourcegraph/pull/30023)
-
-## 3.36.0
-
-### Added
-
-- Search contexts can now be defined with a restricted search query as an alternative to a specific list of repositories and revisions. This feature is _beta_ and may change in the following releases. Allowed filters: `repo`, `rev`, `file`, `lang`, `case`, `fork`, `visibility`. `OR`, `AND` expressions are also allowed. To enable this feature to all users, set `experimentalFeatures.searchContextsQuery` to true in global settings. You'll then see a "Create context" button from the search results page and a "Query" input field in the search contexts form. If you want revisions specified in these query based search contexts to be indexed, set `experimentalFeatures.search.index.query.contexts` to true in site configuration. [#29327](https://github.com/sourcegraph/sourcegraph/pull/29327)
-- More explicit Terms of Service and Privacy Policy consent has been added to Sourcegraph Server. [#28716](https://github.com/sourcegraph/sourcegraph/issues/28716)
-- Batch changes will be created on forks of the upstream repository if the new `batchChanges.enforceForks` site setting is enabled. [#17879](https://github.com/sourcegraph/sourcegraph/issues/17879)
-- Symbolic links are now searchable. Previously it was possible to navigate to symbolic links in the repository tree view, however the symbolic links were ignored during searches. [#29567](https://github.com/sourcegraph/sourcegraph/pull/29567), [#237](https://github.com/sourcegraph/zoekt/pull/237)
-- Maximum number of references/definitions shown in panel can be adjusted in settings with `codeIntelligence.maxPanelResults`. If not set, a hardcoded limit of 500 was used. [#29629](https://github.com/sourcegraph/sourcegraph/29629)
-- Search notebooks are now fully persistable. You can create notebooks through the WYSIWYG editor and share them via a unique URL. We support two visibility modes: private (only the creator can view the notebook) and public (everyone can view the notebook). This feature is _beta_ and may change in the following releases. [#27384](https://github.com/sourcegraph/sourcegraph/issues/27384)
-- Code Insights that are run over all repositories now have data points with links that lead to the search page. [#29587](https://github.com/sourcegraph/sourcegraph/pull/29587)
-- Code Insights creation UI query field now supports different syntax highlight modes based on `patterntype` filter. [#29733](https://github.com/sourcegraph/sourcegraph/pull/29733)
-- Code Insights creation UI query field now has live-preview button that leads to the search page with predefined query value. [#29698](https://github.com/sourcegraph/sourcegraph/pull/29698)
-- Code Insights creation UI detect and track patterns can now search across all repositories. [#29906](https://github.com/sourcegraph/sourcegraph/pull/29906)
-- Pings now contain aggregated CTA metrics. [#29966](https://github.com/sourcegraph/sourcegraph/pull/29966)
-- Pings now contain aggregated CTA metrics. [#29966](https://github.com/sourcegraph/sourcegraph/pull/29966) and [#31389](https://github.com/sourcegraph/sourcegraph/pull/31389)
-
-### Changed
-
-- Sourcegraph's API (streaming search, GraphQL, etc.) may now be used from any domain when using an access token for authentication, or with no authentication in the case of Sourcegraph.com. [#28775](https://github.com/sourcegraph/sourcegraph/pull/28775)
-- The endpoint `/search/stream` will be retired in favor of `/.api/search/stream`. This requires no action unless you have developed custom code against `/search/stream`. We will support both endpoints for a short period of time before removing `/search/stream`. Please refer to the [documentation](https://docs.sourcegraph.com/api/stream_api) for more information.
-- When displaying the content of symbolic links in the repository tree view, we will show the relative path to the link's target instead of the target's content. This behavior is consistent with how we display symbolic links in search results. [#29687](https://github.com/sourcegraph/sourcegraph/pull/29687)
-- A new janitor job, "sg maintenance" was added to gitserver. The new job replaces "garbage collect" with the goal to optimize the performance of git operations for large repositories. You can choose to enable "garbage collect" again by setting the environment variables "SRC_ENABLE_GC_AUTO" to "true" and "SRC_ENABLE_SG_MAINTENANCE" to "false" for gitserver. Note that you must not enable both options at the same time. [#28224](https://github.com/sourcegraph/sourcegraph/pull/28224).
-- Search results across repositories are now ordered by repository rank by default. By default the rank is the number of stars a repository has. An administrator can inflate the rank of a repository via `experimentalFeatures.ranking.repoScores`. If you notice increased latency in results, you can disable this feature by setting `experimentalFeatures.ranking.maxReorderQueueSize` to 0. [#29856](https://github.com/sourcegraph/sourcegraph/pull/29856)
-- Search results within the same file are now ordered by relevance instead of line number. To order by line number, update the setting `experimentalFeatures.clientSearchResultRanking: "by-line-number"`. [#29046](https://github.com/sourcegraph/sourcegraph/pull/29046)
-- Bumped the symbols processing timeout from 20 minutes to 2 hours and made it configurable. [#29891](https://github.com/sourcegraph/sourcegraph/pull/29891)
-
-### Fixed
-
-- Issue preventing searches from completing when certain patterns contain `@`. [#29489](https://github.com/sourcegraph/sourcegraph/pull/29489)
-- The grafana dashboard for "successful search request duration" reports the time for streaming search which is used by the browser. Previously it reported the GraphQL time which the browser no longer uses. [#29625](https://github.com/sourcegraph/sourcegraph/pull/29625)
-- A regression introduced in 3.35 causing Code Insights that are run over all repositories to not query against repositories that have permissions enabled. (Restricted repositories are and remain filtered based on user permissions when a user views a chart, not at query time.) This may cause global Insights to undercount for data points generated after upgrading to 3.35 and before upgrading to 3.36. [](https://github.com/sourcegraph/sourcegraph/pull/29725)
-- Renaming repositories now removes the old indexes on Zoekt's disks. This did not affect search results, only wasted disk space. This was a regression introduced in Sourcegraph 3.33. [#29685](https://github.com/sourcegraph/sourcegraph/issues/29685)
-
-### Removed
-
-- Removed unused backend service from Kubernetes deployments. [#4050](https://github.com/sourcegraph/deploy-sourcegraph/pull/4050)
-
-## 3.35.2
-
-### Fixed
-
-- Fix Code Monitor permissions. For more detail see our [security advisory](https://github.com/sourcegraph/sourcegraph/security/advisories/GHSA-xqv2-x6f2-w3pf) [#30547](https://github.com/sourcegraph/sourcegraph/pull/30547)
-
-## 3.35.1
-
-**⚠️ Due to issues related to Code Insights in the 3.35.0 release, users are advised to upgrade directly to 3.35.1.**
-
-### Fixed
-
-- Skipped migrations caused existing Code Insights to not appear. [#29395](https://github.com/sourcegraph/sourcegraph/pull/29395)
-- Enterprise-only out-of-band migrations failed to execute due to missing enterprise configuration flag. [#29426](https://github.com/sourcegraph/sourcegraph/pull/29426)
-
-## 3.35.0
-
-**⚠️ Due to issues related to Code Insights on this release, users are advised to upgrade directly to 3.35.1.**
-
-### Added
-
-- Individual batch changes can publish multiple changesets to the same repository by specifying multiple target branches using the [`on.branches`](https://docs.sourcegraph.com/batch_changes/references/batch_spec_yaml_reference#on-repository) attribute. [#25228](https://github.com/sourcegraph/sourcegraph/issues/25228)
-- Low resource overlay added. NOTE: this is designed for internal-use only. Customers can use the `minikube` overlay to achieve similar results.[#4012](https://github.com/sourcegraph/deploy-sourcegraph/pull/4012)
-- Code Insights has a new insight `Detect and Track` which will generate unique time series from the matches of a pattern specified as a regular expression capture group. This is currently limited to insights scoped to specific repositories. [docs](https://docs.sourcegraph.com/code_insights/explanations/automatically_generated_data_series)
-- Code Insights is persisted entirely in the `codeinsights-db` database. A migration will automatically be performed to move any defined insights and dashboards from your user, org, or global settings files.
-- The GraphQL API for Code Insights has entered beta. [docs](https://docs.sourcegraph.com/code_insights/references/code_insights_graphql_api)
-- The `SRC_GIT_SERVICE_MAX_EGRESS_BYTES_PER_SECOND` environment variable to control the egress throughput of gitserver's git service (e.g. used by zoekt-index-server to clone repos to index). Set to -1 for no limit. [#29197](https://github.com/sourcegraph/sourcegraph/pull/29197)
-- Search suggestions via the GraphQL API were deprecated last release and are now no longer available. Suggestions now work only with the search streaming API. [#29283](https://github.com/sourcegraph/sourcegraph/pull/29283)
-- Clicking on a token will now jump to its definition. [#28520](https://github.com/sourcegraph/sourcegraph/pull/28520)
-
-### Changed
-
-- The `ALLOW_DECRYPT_MIGRATION` environment variable is now read by the `worker` service, not the `frontend` service as in previous versions.
-- External services will stop syncing if they exceed the user / site level limit for total number of repositories added. It will only continue syncing if the extra repositories are removed or the corresponding limit is increased, otherwise it will stop syncing for the very first repository each time the syncer attempts to sync the external service again. [#28674](https://github.com/sourcegraph/sourcegraph/pull/28674)
-- Sourcegraph services now listen to SIGTERM signals. This allows smoother rollouts in kubernetes deployments. [#27958](https://github.com/sourcegraph/sourcegraph/pull/27958)
-- The sourcegraph-frontend ingress now uses the networking.k8s.io/v1 api. This adds support for k8s v1.22 and later, and deprecates support for versions older than v1.18.x [#4029](https://github.com/sourcegraph/deploy-sourcegraph/pull/4029)
-- Non-bare repositories found on gitserver will be removed by a janitor job. [#28895](https://github.com/sourcegraph/sourcegraph/pull/28895)
-- The search bar is no longer auto-focused when navigating between files. This change means that the keyboard shortcut Cmd+LeftArrow (or Ctrl-LeftArrow) now goes back to the browser's previous page instead of moving the cursor position to the first position of the search bar. [#28943](https://github.com/sourcegraph/sourcegraph/pull/28943)
-- Code Insights series over all repositories can now be edited
-- Code Insights series over all repositories now support a custom time interval and will calculate with 12 points starting at the moment the series is created and working backwards.
-- Minio service upgraded to RELEASE.2021-12-10T23-03-39Z. [#29188](https://github.com/sourcegraph/sourcegraph/pull/29188)
-- Code insights creation UI form query field now supports suggestions and syntax highlighting. [#28130](https://github.com/sourcegraph/sourcegraph/pull/28130)
-- Using `select:repo` in search queries will now stream results incrementally, greatly improving speed and reducing time-to-first-result. [#28920](https://github.com/sourcegraph/sourcegraph/pull/28920)
-- The fuzzy file finder is now enabled by default and can be activated with the shortcut `Cmd+K` on macOS and `Ctrl+K` on Linux/Windows. Change the user setting `experimentalFeatures.fuzzyFinder` to `false` to disable this feature. [#29010](https://github.com/sourcegraph/sourcegraph/pull/29010)
-- Search-based code intelligence and the symbol sidebar are much faster now that the symbols service incrementally processes files that changed. [#27932](https://github.com/sourcegraph/sourcegraph/pull/27932)
-
-### Fixed
-
-- Moving a changeset from draft state into published state was broken on GitLab code hosts. [#28239](https://github.com/sourcegraph/sourcegraph/pull/28239)
-- The shortcuts for toggling the History Panel and Line Wrap were not working on Mac. [#28574](https://github.com/sourcegraph/sourcegraph/pull/28574)
-- Suppresses docker-on-mac warning for Kubernetes, Docker Compose, and Pure Docker deployments. [#28405](https://github.com/sourcegraph/sourcegraph/pull/28821)
-- Fixed an issue where certain regexp syntax for repository searches caused the entire search, including non-repository searches, to fail with a parse error (issue affects only version 3.34). [#28826](https://github.com/sourcegraph/sourcegraph/pull/28826)
-- Modifying changesets on Bitbucket Server could previously fail if the local copy in Batch Changes was out of date. That has been fixed by retrying the operations in case of a 409 response. [#29100](https://github.com/sourcegraph/sourcegraph/pull/29100)
-
-### Removed
-
-- Settings files (user, org, global) as a persistence mechanism for Code Insights are now deprecated.
-- Query-runner deployment has been removed. You can safely remove the `query-runner` service from your installation.
-
-## 3.34.2
-
-### Fixed
-
-- A bug introduced in 3.34 and 3.34.1 that resulted in certain repositories being missed in search results. [#28624](https://github.com/sourcegraph/sourcegraph/pull/28624)
-
-## 3.34.1
-
-### Fixed
-
-- Fixed Redis alerting for docker-compose deployments [#28099](https://github.com/sourcegraph/sourcegraph/issues/28099)
-
-## 3.34.0
-
-### Added
-
-- Added documentation for merging site-config files. Available since 3.32 [#21220](https://github.com/sourcegraph/sourcegraph/issues/21220)
-- Added site config variable `cloneProgressLog` to optionally enable logging of clone progress to temporary files for debugging. Disabled by default. [#26568](https://github.com/sourcegraph/sourcegraph/pull/26568)
-- GNU's `wget` has been added to all `sourcegraph/*` Docker images that use `sourcegraph/alpine` as its base [#26823](https://github.com/sourcegraph/sourcegraph/pull/26823)
-- Added the "no results page", a help page shown if a search doesn't return any results [#26154](https://github.com/sourcegraph/sourcegraph/pull/26154)
-- Added monitoring page for Redis databases [#26967](https://github.com/sourcegraph/sourcegraph/issues/26967)
-- The search indexer only polls repositories that have been marked as changed. This reduces a large source of load in installations with a large number of repositories. If you notice index staleness, you can try disabling by setting the environment variable `SRC_SEARCH_INDEXER_EFFICIENT_POLLING_DISABLED` on `sourcegraph-frontend`. [#27058](https://github.com/sourcegraph/sourcegraph/issues/27058)
-- Pings include instance wide total counts of Code Insights grouped by presentation type, series type, and presentation-series type. [#27602](https://github.com/sourcegraph/sourcegraph/pull/27602)
-- Added logging of incoming Batch Changes webhooks, which can be viewed by site admins. By default, sites without encryption will log webhooks for three days, while sites with encryption will not log webhooks without explicit configuration. [See the documentation for more details](https://docs.sourcegraph.com/admin/config/batch_changes#incoming-webhooks). [#26669](https://github.com/sourcegraph/sourcegraph/issues/26669)
-- Added support for finding implementations of interfaces and methods. [#24854](https://github.com/sourcegraph/sourcegraph/pull/24854)
-
-### Changed
-
-- Removed liveness probes from Kubernetes Prometheus deployment [#2970](https://github.com/sourcegraph/deploy-sourcegraph/pull/2970)
-- Batch Changes now requests the `workflow` scope on GitHub personal access tokens to allow batch changes to write to the `.github` directory in repositories. If you have already configured a GitHub PAT for use with Batch Changes, we suggest adding the scope to the others already granted. [#26606](https://github.com/sourcegraph/sourcegraph/issues/26606)
-- Sourcegraph's Prometheus and Alertmanager dependency has been upgraded to v2.31.1 and v0.23.0 respectively. [#27336](https://github.com/sourcegraph/sourcegraph/pull/27336)
-- The search UI's repositories count as well as the GraphQL API's `search().repositories` and `search().repositoriesCount` have changed semantics from the set of searchable repositories to the set of repositories with matches. In a future release, we'll introduce separate fields for the set of searchable repositories backed by a [scalable implementation](https://github.com/sourcegraph/sourcegraph/issues/27274). [#26995](https://github.com/sourcegraph/sourcegraph/issues/26995)
-
-### Fixed
-
-- An issue that causes the server to panic when performing a structural search via the GQL API for a query that also
- matches missing repos (affected versions 3.33.0 and 3.32.0)
- . [#26630](https://github.com/sourcegraph/sourcegraph/pull/26630)
-- Improve detection for Docker running in non-linux
- environments. [#23477](https://github.com/sourcegraph/sourcegraph/issues/23477)
-- Fixed the cache size calculation used for Kubernetes deployments. Previously, the calculated value was too high and would exceed the ephemeral storage request limit. #[26283](https://github.com/sourcegraph/sourcegraph/issues/26283)
-- Fixed a regression that was introduced in 3.27 and broke SSH-based authentication for managing Batch Changes changesets on code hosts. SSH keys generated by Sourcegraph were not used for authentication and authenticating with the code host would fail if no SSH key with write-access had been added to `gitserver`. [#27491](https://github.com/sourcegraph/sourcegraph/pull/27491)
-- Private repositories matching `-repo:` expressions are now excluded. This was a regression introduced in 3.33.0. [#27044](https://github.com/sourcegraph/sourcegraph/issues/27044)
-
-### Removed
-
-- All version contexts functionality (deprecated in 3.33) is now removed. [#26267](https://github.com/sourcegraph/sourcegraph/issues/26267)
-- Query filter `repogroup` (deprecated in 3.33) is now removed. [#24277](https://github.com/sourcegraph/sourcegraph/issues/24277)
-- Sourcegraph no longer uses CSRF security tokens/cookies to prevent CSRF attacks. Instead, Sourcegraph now relies solely on browser's CORS policies (which were already in place.) In practice, this is just as safe and leads to a simpler CSRF threat model which reduces security risks associated with our threat model complexity. [#7658](https://github.com/sourcegraph/sourcegraph/pull/7658)
-- Notifications for saved searches (deprecated in v3.31.0) have been removed [#27912](https://github.com/sourcegraph/sourcegraph/pull/27912/files)
-
-## 3.33.2
-
-### Fixed
-
-- Fixed: backported saved search and code monitor notification fixes from 3.34.0 [#28019](https://github.com/sourcegraph/sourcegraph/pull/28019)
-
-## 3.33.1
-
-### Fixed
-
-- Private repositories matching `-repo:` expressions are now excluded. This was a regression introduced in 3.33.0. [#27044](https://github.com/sourcegraph/sourcegraph/issues/27044)
-- Fixed a regression that was introduced in 3.27 and broke SSH-based authentication for managing Batch Changes changesets on code hosts. SSH keys generated by Sourcegraph were not used for authentication and authenticating with the code host would fail if no SSH key with write-access had been added to `gitserver`. [#27491](https://github.com/sourcegraph/sourcegraph/pull/27491)
-
-## 3.33.0
-
-### Added
-
-- More rules have been added to the search query validation so that user get faster feedback on issues with their query. [#24747](https://github.com/sourcegraph/sourcegraph/pull/24747)
-- Bloom filters have been added to the zoekt indexing backend to accelerate queries with code fragments matching `\w{4,}`. [zoekt#126](https://github.com/sourcegraph/zoekt/pull/126)
-- For short search queries containing no filters but the name of a supported programming language we are now suggesting to run the query with a language filter. [#25792](https://github.com/sourcegraph/sourcegraph/pull/25792)
-- The API scope used by GitLab OAuth can now optionally be configured in the provider. [#26152](https://github.com/sourcegraph/sourcegraph/pull/26152)
-- Added Apex language support for syntax highlighting and search-based code intelligence. [#25268](https://github.com/sourcegraph/sourcegraph/pull/25268)
-
-### Changed
-
-- Search context management pages are now only available in the Sourcegraph enterprise version. Search context dropdown is disabled in the OSS version. [#25147](https://github.com/sourcegraph/sourcegraph/pull/25147)
-- Search contexts GQL API is now only available in the Sourcegraph enterprise version. [#25281](https://github.com/sourcegraph/sourcegraph/pull/25281)
-- When running a commit or diff query, the accepted values of `before` and `after` have changed from "whatever git accepts" to a [slightly more strict subset](https://docs.sourcegraph.com/code_search/reference/language#before) of that. [#25414](https://github.com/sourcegraph/sourcegraph/pull/25414)
-- Repogroups and version contexts are deprecated in favor of search contexts. Read more about the deprecation and how to migrate to search contexts in the [blog post](https://about.sourcegraph.com/blog/introducing-search-contexts). [#25676](https://github.com/sourcegraph/sourcegraph/pull/25676)
-- Search contexts are now enabled by default in the Sourcegraph enterprise version. [#25674](https://github.com/sourcegraph/sourcegraph/pull/25674)
-- Code Insights background queries will now retry a maximum of 10 times (down from 100). [#26057](https://github.com/sourcegraph/sourcegraph/pull/26057)
-- Our `sourcegraph/cadvisor` Docker image has been upgraded to cadvisor version `v0.42.0`. [#26126](https://github.com/sourcegraph/sourcegraph/pull/26126)
-- Our `jaeger` version in the `sourcegraph/sourcegraph` Docker image has been upgraded to `1.24.0`. [#26215](https://github.com/sourcegraph/sourcegraph/pull/26215)
-
-### Fixed
-
-- A search regression in 3.32.0 which caused instances with search indexing _disabled_ (very rare) via `"search.index.enabled": false,` in their site config to crash with a panic. [#25321](https://github.com/sourcegraph/sourcegraph/pull/25321)
-- An issue where the default `search.index.enabled` value on single-container Docker instances would incorrectly be computed as `false` in some situations. [#25321](https://github.com/sourcegraph/sourcegraph/pull/25321)
-- StatefulSet service discovery in Kubernetes correctly constructs pod hostnames in the case where the ServiceName is different from the StatefulSet name. [#25146](https://github.com/sourcegraph/sourcegraph/pull/25146)
-- An issue where clicking on a link in the 'Revisions' search sidebar section would result in an invalid query if the query didn't already contain a 'repo:' filter. [#25076](https://github.com/sourcegraph/sourcegraph/pull/25076)
-- An issue where links to jump to Bitbucket Cloud wouldn't render in the UI. [#25533](https://github.com/sourcegraph/sourcegraph/pull/25533)
-- Fixed some code insights pings being aggregated on `anonymous_user_id` instead of `user_id`. [#25926](https://github.com/sourcegraph/sourcegraph/pull/25926)
-- Code insights running over all repositories using a commit search (`type:commit` or `type:diff`) would fail to deserialize and produce no results. [#25928](https://github.com/sourcegraph/sourcegraph/pull/25928)
-- Fixed an issue where code insights queries could produce a panic on queued records that did not include a `record_time` [#25929](https://github.com/sourcegraph/sourcegraph/pull/25929)
-- Fixed an issue where Batch Change changeset diffs would sometimes render incorrectly when previewed from the UI if they contained deleted empty lines. [#25866](https://github.com/sourcegraph/sourcegraph/pull/25866)
-- An issue where `repo:contains.commit.after()` would fail on some malformed git repositories. [#25974](https://github.com/sourcegraph/sourcegraph/issues/25974)
-- Fixed primary email bug where users with no primary email set would break the email setting page when trying to add a new email. [#25008](https://github.com/sourcegraph/sourcegraph/pull/25008)
-- An issue where keywords like `and`, `or`, `not` would not be highlighted properly in the search bar due to the presence of quotes. [#26135](https://github.com/sourcegraph/sourcegraph/pull/26135)
-- An issue where frequent search indexing operations led to incoming search queries timing out. When these timeouts happened in quick succession, `zoekt-webserver` processes would shut themselves down via their `watchdog` routine. This should now only happen when a given `zoekt-webserver` is under-provisioned on CPUs. [#25872](https://github.com/sourcegraph/sourcegraph/issues/25872)
-- Since 3.28.0, Batch Changes webhooks would not update changesets opened in private repositories. This has been fixed. [#26380](https://github.com/sourcegraph/sourcegraph/issues/26380)
-- Reconciling batch changes could stall when updating the state of a changeset that already existed. This has been fixed. [#26386](https://github.com/sourcegraph/sourcegraph/issues/26386)
-
-### Removed
-
-- Batch Changes changeset specs stored the raw JSON used when creating them, which is no longer used and is not exposed in the API. This column has been removed, thereby saving space in the Sourcegraph database. [#25453](https://github.com/sourcegraph/sourcegraph/issues/25453)
-- The query builder page experimental feature, which was disabled in 3.21, is now removed. The setting `{ "experimentalFeatures": { "showQueryBuilder": true } }` now has no effect. [#26125](https://github.com/sourcegraph/sourcegraph/pull/26125)
-
-## 3.32.1
-
-### Fixed
-
-- Fixed a regression that was introduced in 3.27 and broke SSH-based authentication for managing Batch Changes changesets on code hosts. SSH keys generated by Sourcegraph were not used for authentication and authenticating with the code host would fail if no SSH key with write-access had been added to `gitserver`. [#27491](https://github.com/sourcegraph/sourcegraph/pull/27491)
-
-## 3.32.0
-
-### Added
-
-- The search sidebar shows a revisions section if all search results are from a single repository. This makes it easier to search in and switch between different revisions. [#23835](https://github.com/sourcegraph/sourcegraph/pull/23835)
-- The various alerts overview panels in Grafana can now be clicked to go directly to the relevant panels and dashboards. [#24920](https://github.com/sourcegraph/sourcegraph/pull/24920)
-- Added a `Documentation` tab to the Site Admin Maintenance panel that links to the official Sourcegraph documentation. [#24917](https://github.com/sourcegraph/sourcegraph/pull/24917)
-- Code Insights that run over all repositories now generate a moving daily snapshot between time points. [#24804](https://github.com/sourcegraph/sourcegraph/pull/24804)
-- The Code Insights GraphQL API now restricts the results to user, org, and globally scoped insights. Insights will be synced to the database with access associated to the user or org setting containing the insight definition. [#25017](https://github.com/sourcegraph/sourcegraph/pull/25017)
-- The timeout for long-running Git commands can be customized via `gitLongCommandTimeout` in the site config. [#25080](https://github.com/sourcegraph/sourcegraph/pull/25080)
-
-### Changed
-
-- `allowGroupsPermissionsSync` in the GitHub authorization provider is now required to enable the experimental GitHub teams and organization permissions caching. [#24561](https://github.com/sourcegraph/sourcegraph/pull/24561)
-- GitHub external code hosts now validate if a corresponding authorization provider is set, and emits a warning if not. [#24526](https://github.com/sourcegraph/sourcegraph/pull/24526)
-- Sourcegraph is now built with Go 1.17. [#24566](https://github.com/sourcegraph/sourcegraph/pull/24566)
-- Code Insights is now available only in the Sourcegraph enterprise. [#24741](https://github.com/sourcegraph/sourcegraph/pull/24741)
-- Prometheus in Sourcegraph with Docker Compose now scrapes Postgres and Redis instances for metrics. [deploy-sourcegraph-docker#580](https://github.com/sourcegraph/deploy-sourcegraph-docker/pull/580)
-- Symbol suggestions now leverage optimizations for global searches. [#24943](https://github.com/sourcegraph/sourcegraph/pull/24943)
-
-### Fixed
-
-- Fixed a number of issues where repository permissions sync may fail for instances with very large numbers of repositories. [#24852](https://github.com/sourcegraph/sourcegraph/pull/24852), [#24972](https://github.com/sourcegraph/sourcegraph/pull/24972)
-- Fixed excessive re-rendering of the whole web application on every keypress in the search query input. [#24844](https://github.com/sourcegraph/sourcegraph/pull/24844)
-- Code Insights line chart now supports different timelines for each data series (lines). [#25005](https://github.com/sourcegraph/sourcegraph/pull/25005)
-- Postgres exporter now exposes pg_stat_activity account to show the number of active DB connections. [#25086](https://github.com/sourcegraph/sourcegraph/pull/25086)
-
-### Removed
-
-- The `PRECISE_CODE_INTEL_DATA_TTL` environment variable is no longer read by the worker service. Instead, global and repository-specific data retention policies configurable in the UI by site-admins will control the length of time LSIF uploads are considered _fresh_. [#24793](https://github.com/sourcegraph/sourcegraph/pull/24793)
-- The `repo.cloned` column was removed as it was deprecated in 3.26. [#25066](https://github.com/sourcegraph/sourcegraph/pull/25066)
-
-## 3.31.2
-
-### Fixed
-
-- Fixed multiple CVEs for [libssl](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-3711) and [Python3](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-29921). [#24700](https://github.com/sourcegraph/sourcegraph/pull/24700) [#24620](https://github.com/sourcegraph/sourcegraph/pull/24620) [#24695](https://github.com/sourcegraph/sourcegraph/pull/24695)
-
-## 3.31.1
-
-### Added
-
-- The required authentication scopes required to enable caching behaviour for GitHub repository permissions can now be requested via `allowGroupsPermissionsSync` in GitHub `auth.providers`. [#24328](https://github.com/sourcegraph/sourcegraph/pull/24328)
-
-### Changed
-
-- Caching behaviour for GitHub repository permissions enabled via the `authorization.groupsCacheTTL` field in the code host config can now leverage additional caching of team and organization permissions for repository permissions syncing (on top of the caching for user permissions syncing introduced in 3.31). [#24328](https://github.com/sourcegraph/sourcegraph/pull/24328)
-
-## 3.31.0
-
-### Added
-
-- Backend Code Insights GraphQL queries now support arguments `includeRepoRegex` and `excludeRepoRegex` to filter on repository names. [#23256](https://github.com/sourcegraph/sourcegraph/pull/23256)
-- Code Insights background queries now process in a priority order backwards through time. This will allow insights to populate concurrently. [#23101](https://github.com/sourcegraph/sourcegraph/pull/23101)
-- Operator documentation has been added to the Search Reference sidebar section. [#23116](https://github.com/sourcegraph/sourcegraph/pull/23116)
-- Syntax highlighting support for the [Cue](https://cuelang.org) language.
-- Reintroduced a revised version of the Search Types sidebar section. [#23170](https://github.com/sourcegraph/sourcegraph/pull/23170)
-- Improved usability where filters followed by a space in the search query will warn users that the filter value is empty. [#23646](https://github.com/sourcegraph/sourcegraph/pull/23646)
-- Perforce: [`git p4`'s `--use-client-spec` option](https://git-scm.com/docs/git-p4#Documentation/git-p4.txt---use-client-spec) can now be enabled by configuring the `p4.client` field. [#23833](https://github.com/sourcegraph/sourcegraph/pull/23833), [#23845](https://github.com/sourcegraph/sourcegraph/pull/23845)
-- Code Insights will do a one-time reset of ephemeral insights specific database tables to clean up stale and invalid data. Insight data will regenerate automatically. [23791](https://github.com/sourcegraph/sourcegraph/pull/23791)
-- Perforce: added basic support for Perforce permission table path wildcards. [#23755](https://github.com/sourcegraph/sourcegraph/pull/23755)
-- Added autocompletion and search filtering of branch/tag/commit revisions to the repository compare page. [#23977](https://github.com/sourcegraph/sourcegraph/pull/23977)
-- Batch Changes changesets can now be [set to published when previewing new or updated batch changes](https://docs.sourcegraph.com/batch_changes/how-tos/publishing_changesets#within-the-ui). [#22912](https://github.com/sourcegraph/sourcegraph/issues/22912)
-- Added Python3 to server and gitserver images to enable git-p4 support. [#24204](https://github.com/sourcegraph/sourcegraph/pull/24204)
-- Code Insights drill-down filters now allow filtering insights data on the dashboard page using repo: filters. [#23186](https://github.com/sourcegraph/sourcegraph/issues/23186)
-- GitHub repository permissions can now leverage caching of team and organization permissions for user permissions syncing. Caching behaviour can be enabled via the `authorization.groupsCacheTTL` field in the code host config. This can significantly reduce the amount of time it takes to perform a full permissions sync due to reduced instances of being rate limited by the code host. [#23978](https://github.com/sourcegraph/sourcegraph/pull/23978)
-
-### Changed
-
-- Code Insights will now always backfill from the time the data series was created. [#23430](https://github.com/sourcegraph/sourcegraph/pull/23430)
-- Code Insights queries will now extract repository name out of the GraphQL response instead of going to the database. [#23388](https://github.com/sourcegraph/sourcegraph/pull/23388)
-- Code Insights backend has moved from the `repo-updater` service to the `worker` service. [#23050](https://github.com/sourcegraph/sourcegraph/pull/23050)
-- Code Insights feature flag `DISABLE_CODE_INSIGHTS` environment variable has moved from the `repo-updater` service to the `worker` service. Any users of this flag will need to update their `worker` service configuration to continue using it. [#23050](https://github.com/sourcegraph/sourcegraph/pull/23050)
-- Updated Docker-Compose Caddy Image to v2.0.0-alpine. [#468](https://github.com/sourcegraph/deploy-sourcegraph-docker/pull/468)
-- Code Insights historical samples will record using the timestamp of the commit that was searched. [#23520](https://github.com/sourcegraph/sourcegraph/pull/23520)
-- Authorization checks are now handled using role based permissions instead of manually altering SQL statements. [23398](https://github.com/sourcegraph/sourcegraph/pull/23398)
-- Docker Compose: the Jaeger container's `SAMPLING_STRATEGIES_FILE` now has a default value. If you are currently using a custom sampling strategies configuration, you may need to make sure your configuration is not overridden by the change when upgrading. [sourcegraph/deploy-sourcegraph#489](https://github.com/sourcegraph/deploy-sourcegraph-docker/pull/489)
-- Code Insights historical samples will record using the most recent commit to the start of the frame instead of the middle of the frame. [#23573](https://github.com/sourcegraph/sourcegraph/pull/23573)
-- The copy icon displayed next to files and repositories will now copy the file or repository path. Previously, this action copied the URL to clipboard. [#23390](https://github.com/sourcegraph/sourcegraph/pull/23390)
-- Sourcegraph's Prometheus dependency has been upgraded to v2.28.1. [23663](https://github.com/sourcegraph/sourcegraph/pull/23663)
-- Sourcegraph's Alertmanager dependency has been upgraded to v0.22.2. [23663](https://github.com/sourcegraph/sourcegraph/pull/23714)
-- Code Insights will now schedule sample recordings for the first of the next month after creation or a previous recording. [#23799](https://github.com/sourcegraph/sourcegraph/pull/23799)
-- Code Insights now stores data in a new format. Data points will store complete vectors for all repositories even if the underlying Sourcegraph queries were compressed. [#23768](https://github.com/sourcegraph/sourcegraph/pull/23768)
-- Code Insights rate limit values have been tuned for a more reasonable performance. [#23860](https://github.com/sourcegraph/sourcegraph/pull/23860)
-- Code Insights will now generate historical data once per month on the first of the month, up to the configured `insights.historical.frames` number of frames. [#23768](https://github.com/sourcegraph/sourcegraph/pull/23768)
-- Code Insights will now schedule recordings for the first of the next calendar month after an insight is created or recorded. [#23799](https://github.com/sourcegraph/sourcegraph/pull/23799)
-- Code Insights will attempt to sync insight definitions from settings to the database once every 10 minutes. [23805](https://github.com/sourcegraph/sourcegraph/pull/23805)
-- Code Insights exposes information about queries that are flagged `dirty` through the `insights` GraphQL query. [#23857](https://github.com/sourcegraph/sourcegraph/pull/23857/)
-- Code Insights GraphQL query `insights` will now fetch 12 months of data instead of 6 if a specific time range is not provided. [#23786](https://github.com/sourcegraph/sourcegraph/pull/23786)
-- Code Insights will now generate 12 months of historical data during a backfill instead of 6. [#23860](https://github.com/sourcegraph/sourcegraph/pull/23860)
-- The `sourcegraph-frontend.Role` in Kubernetes deployments was updated to permit statefulsets access in the Kubernetes API. This is needed to better support stable service discovery for stateful sets during deployments, which isn't currently possible by using service endpoints. [#3670](https://github.com/sourcegraph/deploy-sourcegraph/pull/3670) [#23889](https://github.com/sourcegraph/sourcegraph/pull/23889)
-- For Docker-Compose and Kubernetes users, the built-in main Postgres and codeintel databases have switched to an alpine Docker image. This requires re-indexing the entire database. This process can take up to a few hours on systems with large datasets. [#23697](https://github.com/sourcegraph/sourcegraph/pull/23697)
-- Results are now streamed from searcher by default, improving memory usage and latency for large, unindexed searches. [#23754](https://github.com/sourcegraph/sourcegraph/pull/23754)
-- [`deploy-sourcegraph` overlays](https://docs.sourcegraph.com/admin/install/kubernetes/configure#overlays) now use `resources:` instead of the [deprecated `bases:` field](https://kubectl.docs.kubernetes.io/references/kustomize/kustomization/bases/) for referencing Kustomize bases. [deploy-sourcegraph#3606](https://github.com/sourcegraph/deploy-sourcegraph/pull/3606)
-- The `deploy-sourcegraph-docker` Pure Docker deployment scripts and configuration has been moved to the `./pure-docker` subdirectory. [deploy-sourcegraph-docker#454](https://github.com/sourcegraph/deploy-sourcegraph-docker/pull/454)
-- In Kubernetes deployments, setting the `SRC_GIT_SERVERS` environment variable explicitly is no longer needed. Addresses of the gitserver pods will be discovered automatically and in the same numerical order as with the static list. Unset the env var in your `frontend.Deployment.yaml` to make use of this feature. [#24094](https://github.com/sourcegraph/sourcegraph/pull/24094)
-- The consistent hashing scheme used to distribute repositories across indexed-search replicas has changed to improve distribution and reduce load discrepancies. In the next upgrade, indexed-search pods will re-index the majority of repositories since the repo to replica assignments will change. This can take a few hours in large instances, but searches should succeed during that time since a replica will only delete a repo once it has been indexed in the new replica that owns it. You can monitor this process in the Zoekt Index Server Grafana dashboard—the "assigned" repos in "Total number of repos" will spike and then reduce until it becomes the same as "indexed". As a fail-safe, the old consistent hashing scheme can be enabled by setting the `SRC_ENDPOINTS_CONSISTENT_HASH` env var to `consistent(crc32ieee)` in the `sourcegraph-frontend` deployment. [#23921](https://github.com/sourcegraph/sourcegraph/pull/23921)
-- In Kubernetes deployments an emptyDir (`/dev/shm`) is now mounted in the `pgsql` deployment to allow Postgres to access more than 64KB shared memory. This value should be configured to match the `shared_buffers` value in your Postgres configuration. [deploy-sourcegraph#3784](https://github.com/sourcegraph/deploy-sourcegraph/pull/3784/)
-
-### Fixed
-
-- The search reference will now show matching entries when using the filter input. [#23224](https://github.com/sourcegraph/sourcegraph/pull/23224)
-- Graceful termination periods have been added to database deployments. [#3358](https://github.com/sourcegraph/deploy-sourcegraph/pull/3358) & [#477](https://github.com/sourcegraph/deploy-sourcegraph-docker/pull/477)
-- All commit search results for `and`-expressions are now highlighted. [#23336](https://github.com/sourcegraph/sourcegraph/pull/23336)
-- Email notifiers in `observability.alerts` now correctly respect the `email.smtp.noVerifyTLS` site configuration field. [#23636](https://github.com/sourcegraph/sourcegraph/issues/23636)
-- Alertmanager (Prometheus) now respects `SMTPServerConfig.noVerifyTLS` field. [#23636](https://github.com/sourcegraph/sourcegraph/issues/23636)
-- Clicking on symbols in the left search pane now renders hover tooltips for indexed repositories. [#23664](https://github.com/sourcegraph/sourcegraph/pull/23664)
-- Fixed a result streaming throttling issue that was causing significantly increased latency for some searches. [#23736](https://github.com/sourcegraph/sourcegraph/pull/23736)
-- GitCredentials passwords stored in AWS CodeCommit configuration is now redacted. [#23832](https://github.com/sourcegraph/sourcegraph/pull/23832)
-- Patched a vulnerability in `apk-tools`. [#23917](https://github.com/sourcegraph/sourcegraph/pull/23917)
-- Line content was being duplicated in unindexed search payloads, causing memory instability for some dense search queries. [#23918](https://github.com/sourcegraph/sourcegraph/pull/23918)
-- Updating draft merge requests on GitLab from batch changes no longer removes the draft status. [#23944](https://github.com/sourcegraph/sourcegraph/issues/23944)
-- Report highlight matches instead of line matches in search results. [#21443](https://github.com/sourcegraph/sourcegraph/issues/21443)
-- Force the `codeinsights-db` database to read from the `configMap` configuration file by explicitly setting the `POSTGRESQL_CONF_DIR` environment variable to the `configMap` mount path. [deploy-sourcegraph#3788](https://github.com/sourcegraph/deploy-sourcegraph/pull/3788)
-
-### Removed
-
-- The old batch repository syncer was removed and can no longer be activated by setting `ENABLE_STREAMING_REPOS_SYNCER=false`. [#22949](https://github.com/sourcegraph/sourcegraph/pull/22949)
-- Email notifications for saved searches are now deprecated in favor of Code Monitoring. Email notifications can no longer be enabled for saved searches. Saved searches that already have notifications enabled will continue to work, but there is now a button users can click to migrate to code monitors. Notifications for saved searches will be removed entirely in the future. [#23275](https://github.com/sourcegraph/sourcegraph/pull/23275)
-- The `sg_service` Postgres role and `sg_repo_access_policy` policy on the `repo` table have been removed due to performance concerns. [#23622](https://github.com/sourcegraph/sourcegraph/pull/23622)
-- Deprecated site configuration field `email.smtp.disableTLS` has been removed. [#23639](https://github.com/sourcegraph/sourcegraph/pull/23639)
-- Deprecated language servers have been removed from `deploy-sourcegraph`. [deploy-sourcegraph#3605](https://github.com/sourcegraph/deploy-sourcegraph/pull/3605)
-- The experimental `codeInsightsAllRepos` feature flag has been removed. [#23850](https://github.com/sourcegraph/sourcegraph/pull/23850)
-
-## 3.30.4
-
-### Added
-
-- Add a new environment variable `SRC_HTTP_CLI_EXTERNAL_TIMEOUT` to control the timeout for all external HTTP requests. [#23620](https://github.com/sourcegraph/sourcegraph/pull/23620)
-
-### Changed
-
-- Postgres has been upgraded to `12.8` in the single-server Sourcegraph image [#23999](https://github.com/sourcegraph/sourcegraph/pull/23999)
-
-## 3.30.3
-
-**⚠️ Users on 3.29.x are advised to upgrade directly to 3.30.3**. If you have already upgraded to 3.30.0, 3.30.1, or 3.30.2 please follow [this migration guide](https://docs.sourcegraph.com/admin/migration/3_30).
-
-### Fixed
-
-- Codeintel-db database images have been reverted back to debian due to corruption caused by glibc and alpine. [23324](https://github.com/sourcegraph/sourcegraph/pull/23324)
-
-## 3.30.2
-
-**⚠️ Users on 3.29.x are advised to upgrade directly to 3.30.3**. If you have already upgraded to 3.30.0, 3.30.1, or 3.30.2 please follow [this migration guide](https://docs.sourcegraph.com/admin/migration/3_30).
-
-### Fixed
-
-- Postgres database images have been reverted back to debian due to corruption caused by glibc and alpine. [23302](https://github.com/sourcegraph/sourcegraph/pull/23302)
-
-## 3.30.1
-
-**⚠️ Users on 3.29.x are advised to upgrade directly to 3.30.3**. If you have already upgraded to 3.30.0, 3.30.1, or 3.30.2 please follow [this migration guide](https://docs.sourcegraph.com/admin/migration/3_30).
-
-### Fixed
-
-- An issue where the UI would occasionally display `lsifStore.Ranges: ERROR: relation \"lsif_documentation_mappings\" does not exist (SQLSTATE 42P01)` [#23115](https://github.com/sourcegraph/sourcegraph/pull/23115)
-- Fixed a vulnerability in our Postgres Alpine image related to libgcrypt [#23174](https://github.com/sourcegraph/sourcegraph/pull/23174)
-- When syncing in streaming mode, repo-updater will now ensure a repo's transaction is committed before notifying gitserver to update that repo. [#23169](https://github.com/sourcegraph/sourcegraph/pull/23169)
-- When encountering spurious errors during streaming syncing (like temporary 500s from codehosts), repo-updater will no longer delete all associated repos that weren't seen. Deletion will happen only if there were no errors or if the error was one of "Unauthorized", "Forbidden" or "Account Suspended". [#23171](https://github.com/sourcegraph/sourcegraph/pull/23171)
-- External HTTP requests are now automatically retried when appropriate. [#23131](https://github.com/sourcegraph/sourcegraph/pull/23131)
-
-## 3.30.0
-
-**⚠️ Users on 3.29.x are advised to upgrade directly to 3.30.3**. If you have already upgraded to 3.30.0, 3.30.1, or 3.30.2 please follow [this migration guide](https://docs.sourcegraph.com/admin/migration/3_30).
-
-### Added
-
-- Added support for `select:file.directory` in search queries, which returns unique directory paths for results that satisfy the query. [#22449](https://github.com/sourcegraph/sourcegraph/pull/22449)
-- An `sg_service` Postgres role has been introduced, as well as an `sg_repo_access_policy` policy on the `repo` table that restricts access to that role. The role that owns the `repo` table will continue to get unrestricted access. [#22303](https://github.com/sourcegraph/sourcegraph/pull/22303)
-- Every service that connects to the database (i.e. Postgres) now has a "Database connections" monitoring section in its Grafana dashboard. [#22570](https://github.com/sourcegraph/sourcegraph/pull/22570)
-- A new bulk operation to close many changesets at once has been added to Batch Changes. [#22547](https://github.com/sourcegraph/sourcegraph/pull/22547)
-- Backend Code Insights will aggregate viewable repositories based on the authenticated user. [#22471](https://github.com/sourcegraph/sourcegraph/pull/22471)
-- Added support for highlighting .frugal files as Thrift syntax.
-- Added `file:contains.content(regexp)` predicate, which filters only to files that contain matches of the given pattern. [#22666](https://github.com/sourcegraph/sourcegraph/pull/22666)
-- Repository syncing is now done in streaming mode by default. Customers with many repositories should notice code host updates much faster, with repo-updater consuming less memory. Using the previous batch mode can be done by setting the `ENABLE_STREAMING_REPOS_SYNCER` environment variable to `false` in `repo-updater`. That environment variable will be deleted in the next release. [#22756](https://github.com/sourcegraph/sourcegraph/pull/22756)
-- Enabled the ability to query Batch Changes changesets, changesets stats, and file diff stats for an individual repository via the Sourcegraph GraphQL API. [#22744](https://github.com/sourcegraph/sourcegraph/pull/22744/)
-- Added "Groovy" to the initial `lang:` filter suggestions in the search bar. [#22755](https://github.com/sourcegraph/sourcegraph/pull/22755)
-- The `lang:` filter suggestions now show all supported, matching languages as the user types a language name. [#22765](https://github.com/sourcegraph/sourcegraph/pull/22765)
-- Code Insights can now be grouped into dashboards. [#22215](https://github.com/sourcegraph/sourcegraph/issues/22215)
-- Batch Changes changesets can now be [published from the Sourcegraph UI](https://docs.sourcegraph.com/batch_changes/how-tos/publishing_changesets#within-the-ui). [#18277](https://github.com/sourcegraph/sourcegraph/issues/18277)
-- The repository page now has a new button to view batch change changesets created in that specific repository, with a badge indicating how many changesets are currently open. [#22804](https://github.com/sourcegraph/sourcegraph/pull/22804)
-- Experimental: Search-based code insights can run over all repositories on the instance. To enable, use the feature flag `"experimentalFeatures": { "codeInsightsAllRepos": true }` and tick the checkbox in the insight creation/edit UI. [#22759](https://github.com/sourcegraph/sourcegraph/issues/22759)
-- Search References is a new search sidebar section to simplify learning about the available search filters directly where they are used. [#21539](https://github.com/sourcegraph/sourcegraph/issues/21539)
-
-### Changed
-
-- Backend Code Insights only fills historical data frames that have changed to reduce the number of searches required. [#22298](https://github.com/sourcegraph/sourcegraph/pull/22298)
-- Backend Code Insights displays data points for a fixed 6 months period in 2 week intervals, and will carry observations forward that are missing. [#22298](https://github.com/sourcegraph/sourcegraph/pull/22298)
-- Backend Code Insights now aggregate over 26 weeks instead of 6 months. [#22527](https://github.com/sourcegraph/sourcegraph/pull/22527)
-- Search queries now disallow specifying `rev:` without `repo:`. Note that to search across potentially multiple revisions, a query like `repo:.* rev:` remains valid. [#22705](https://github.com/sourcegraph/sourcegraph/pull/22705)
-- The extensions status bar on diff pages has been redesigned and now shows information for both the base and head commits. [#22123](https://github.com/sourcegraph/sourcegraph/pull/22123/files)
-- The `applyBatchChange` and `createBatchChange` mutations now accept an optional `publicationStates` argument to set the publication state of specific changesets within the batch change. [#22485](https://github.com/sourcegraph/sourcegraph/pull/22485) and [#22854](https://github.com/sourcegraph/sourcegraph/pull/22854)
-- Search queries now return up to 80 suggested filters. Previously we returned up to 24. [#22863](https://github.com/sourcegraph/sourcegraph/pull/22863)
-- GitHub code host connections can now include `repositoryQuery` entries that match more than 1000 repositories from the GitHub search API without requiring the previously documented work-around of splitting the query up with `created:` qualifiers, which is now done automatically. [#2562](https://github.com/sourcegraph/sourcegraph/issues/2562)
-
-### Fixed
-
-- The Batch Changes user and site credential encryption migrators added in Sourcegraph 3.28 could report zero progress when encryption was disabled, even though they had nothing to do. This has been fixed, and progress will now be correctly reported. [#22277](https://github.com/sourcegraph/sourcegraph/issues/22277)
-- Listing Github Entreprise org repos now returns internal repos as well. [#22339](https://github.com/sourcegraph/sourcegraph/pull/22339)
-- Jaeger works in Docker-compose deployments again. [#22691](https://github.com/sourcegraph/sourcegraph/pull/22691)
-- A bug where the pattern `)` makes the browser unresponsive. [#22738](https://github.com/sourcegraph/sourcegraph/pull/22738)
-- An issue where using `select:repo` in conjunction with `and` patterns did not yield expected repo results. [#22743](https://github.com/sourcegraph/sourcegraph/pull/22743)
-- The `isLocked` and `isDisabled` fields of GitHub repositories are now fetched correctly from the GraphQL API of GitHub Enterprise instances. Users that rely on the `repos` config in GitHub code host connections should update so that locked and disabled repositories defined in that list are actually skipped. [#22788](https://github.com/sourcegraph/sourcegraph/pull/22788)
-- Homepage no longer fails to load if there are invalid entries in user's search history. [#22857](https://github.com/sourcegraph/sourcegraph/pull/22857)
-- An issue where regexp query highlighting in the search bar would render incorrectly on Firefox. [#23043](https://github.com/sourcegraph/sourcegraph/pull/23043)
-- Code intelligence uploads and indexes are restricted to only site-admins. It was read-only for any user. [#22890](https://github.com/sourcegraph/sourcegraph/pull/22890)
-- Daily usage statistics are restricted to only site-admins. It was read-only for any user. [#23026](https://github.com/sourcegraph/sourcegraph/pull/23026)
-- Ephemeral storage requests now match their cache size requests for Kubernetes deployments. [#2953](https://github.com/sourcegraph/deploy-sourcegraph/pull/2953)
-
-### Removed
-
-- The experimental paginated search feature (the `stable:` keyword) has been removed, to be replaced with streaming search. [#22428](https://github.com/sourcegraph/sourcegraph/pull/22428)
-- The experimental extensions view page has been removed. [#22565](https://github.com/sourcegraph/sourcegraph/pull/22565)
-- A search query diagnostic that previously warned the user when quotes are interpreted literally has been removed. The literal meaning has been Sourcegraph's default search behavior for some time now. [#22892](https://github.com/sourcegraph/sourcegraph/pull/22892)
-- Non-root overlays were removed for `deploy-sourcegraph` in favor of using `non-privileged`. [#3404](https://github.com/sourcegraph/deploy-sourcegraph/pull/3404)
-
-### API docs (experimental)
-
-API docs is a new experimental feature of Sourcegraph ([learn more](https://docs.sourcegraph.com/code_intelligence/apidocs)). It is enabled by default in Sourcegraph 3.30.0.
-
-- API docs is enabled by default in Sourcegraph 3.30.0. It can be disabled by adding `"apiDocs": false` to the `experimentalFeatures` section of user settings.
-- The API docs landing page now indicates what API docs are and provide more info.
-- The API docs landing page now represents the code in the repository root, instead of an empty page.
-- Pages now correctly indicate it is an experimental feature, and include a feedback widget.
-- Subpages linked via the sidebar are now rendered much better, and have an expandable section.
-- Symbols in documentation now have distinct icons for e.g. functions/vars/consts/etc.
-- Symbols are now sorted in exported-first, alphabetical order.
-- Repositories without LSIF documentation data now show a friendly error page indicating what languages are supported, how to set it up, etc.
-- API docs can now distinguish between different types of symbols, tests, examples, benchmarks, etc. and whether symbols are public/private—to support filtering in the future.
-- Only public/exported symbols are included by default for now.
-- URL paths for Go packages are now friendlier, e.g. `/-/docs/cmd/frontend/auth` instead of `/-/docs/cmd-frontend-auth`.
-- URLs are now formatted by the language indexer, in a way that makes sense for the language, e.g. `#Mocks.CreateUserAndSave` instead of `#ypeMocksCreateUserAndSave` for a Go method `CreateUserAndSave` on type `Mocks`.
-- Go blank identifier assignments `var _ = ...` are no longer incorrectly included.
-- Go symbols defined within functions, e.g. a `var` inside a `func` scope are no longer incorrectly included.
-- `Functions`, `Variables`, and other top-level sections are no longer rendered empty if there are none in that section.
-- A new test suite for LSIF indexers implementing the Sourcegraph documentation extension to LSIF [is available](https://github.com/sourcegraph/lsif-static-doc).
-- We now emit the LSIF data needed to in the future support "Jump to API docs" from code views, "View code" from API docs, usage examples in API docs, and search indexing.
-- Various UI style issues, color contrast issues, etc. have been fixed.
-- Major improvements to the GraphQL APIs for API documentation.
-
-## 3.29.0
-
-### Added
-
-- Code Insights queries can now run concurrently up to a limit set by the `insights.query.worker.concurrency` site config. [#21219](https://github.com/sourcegraph/sourcegraph/pull/21219)
-- Code Insights workers now support a rate limit for query execution and historical data frame analysis using the `insights.query.worker.rateLimit` and `insights.historical.worker.rateLimit` site configurations. [#21533](https://github.com/sourcegraph/sourcegraph/pull/21533)
-- The GraphQL `Site` `SettingsSubject` type now has an `allowSiteSettingsEdits` field to allow clients to determine whether the instance uses the `GLOBAL_SETTINGS_FILE` environment variable. [#21827](https://github.com/sourcegraph/sourcegraph/pull/21827)
-- The Code Insights creation UI now remembers previously filled-in field values when returning to the form after having navigated away. [#21744](https://github.com/sourcegraph/sourcegraph/pull/21744)
-- The Code Insights creation UI now shows autosuggestions for the repository field. [#21699](https://github.com/sourcegraph/sourcegraph/pull/21699)
-- A new bulk operation to retry many changesets at once has been added to Batch Changes. [#21173](https://github.com/sourcegraph/sourcegraph/pull/21173)
-- A `security_event_logs` database table has been added in support of upcoming security-related efforts. [#21949](https://github.com/sourcegraph/sourcegraph/pull/21949)
-- Added featured Sourcegraph extensions query to the GraphQL API, as well as a section in the extension registry to display featured extensions. [#21665](https://github.com/sourcegraph/sourcegraph/pull/21665)
-- The search page now has a `create insight` button to create search-based insight based on your search query [#21943](https://github.com/sourcegraph/sourcegraph/pull/21943)
-- Added support for Terraform syntax highlighting. [#22040](https://github.com/sourcegraph/sourcegraph/pull/22040)
-- A new bulk operation to merge many changesets at once has been added to Batch Changes. [#21959](https://github.com/sourcegraph/sourcegraph/pull/21959)
-- Pings include aggregated usage for the Code Insights creation UI, organization visible insight count per insight type, and insight step size in days. [#21671](https://github.com/sourcegraph/sourcegraph/pull/21671)
-- Search-based insight creation UI now supports `count:` filter in data series query input. [#22049](https://github.com/sourcegraph/sourcegraph/pull/22049)
-- Code Insights background workers will now index commits in a new table `commit_index` for future optimization efforts. [#21994](https://github.com/sourcegraph/sourcegraph/pull/21994)
-- The creation UI for search-based insights now supports the `count:` filter in the data series query input. [#22049](https://github.com/sourcegraph/sourcegraph/pull/22049)
-- A new service, `worker`, has been introduced to run background jobs that were previously run in the frontend. See the [deployment documentation](https://docs.sourcegraph.com/admin/workers) for additional details. [#21768](https://github.com/sourcegraph/sourcegraph/pull/21768)
-
-### Changed
-
-- SSH public keys generated to access code hosts with batch changes now include a comment indicating they originated from Sourcegraph. [#20523](https://github.com/sourcegraph/sourcegraph/issues/20523)
-- The copy query button is now permanently enabled and `experimentalFeatures.copyQueryButton` setting has been deprecated. [#21364](https://github.com/sourcegraph/sourcegraph/pull/21364)
-- Search streaming is now permanently enabled and `experimentalFeatures.searchStreaming` setting has been deprecated. [#21522](https://github.com/sourcegraph/sourcegraph/pull/21522)
-- Pings removes the collection of aggregate search filter usage counts and adds a smaller set of aggregate usage counts for query operators, predicates, and pattern counts. [#21320](https://github.com/sourcegraph/sourcegraph/pull/21320)
-- Sourcegraph will now refuse to start if there are unfinished [out-of-band-migrations](https://docs.sourcegraph.com/admin/migrations) that are deprecated in the current version. See the [upgrade documentation](https://docs.sourcegraph.com/admin/updates) for changes to the upgrade process. [#20967](https://github.com/sourcegraph/sourcegraph/pull/20967)
-- Code Insight pages now have new URLs [#21856](https://github.com/sourcegraph/sourcegraph/pull/21856)
-- We are proud to bring you [an entirely new visual design for the Sourcegraph UI](https://about.sourcegraph.com/blog/introducing-sourcegraphs-new-ui/). We think you’ll find this new design improves your experience and sets the stage for some incredible features to come. Some of the highlights include:
-
- - **Refined search results:** The redesigned search bar provides more space for expressive queries, and the new results sidebar helps to discover search syntax without referencing documentation.
- - **Improved focus on code:** We’ve reduced non-essential UI elements to provide greater focus on the code itself, and positioned the most important items so they’re unobtrusive and located exactly where they are needed.
- - **Improved layouts:** We’ve improved pages like diff views to make them easier to use and to help find information quickly.
- - **New navigation:** A new global navigation provides immediate discoverability and access to current and future functionality.
- - **Promoting extensibility:** We've brought the extension registry back to the main navigation and improved its design and navigation.
-
- With bulk of the redesign complete, future releases will include more improvements and refinements.
-
-### Fixed
-
-- Stricter validation of structural search queries. The `type:` parameter is not supported for structural searches and returns an appropriate alert. [#21487](https://github.com/sourcegraph/sourcegraph/pull/21487)
-- Batch changeset specs that are not attached to changesets will no longer prematurely expire before the batch specs that they are associated with. [#21678](https://github.com/sourcegraph/sourcegraph/pull/21678)
-- The Y-axis of Code Insights line charts no longer start at a negative value. [#22018](https://github.com/sourcegraph/sourcegraph/pull/22018)
-- Correctly handle field aliases in the query (like `r:` versus `repo:`) when used with `contains` predicates. [#22105](https://github.com/sourcegraph/sourcegraph/pull/22105)
-- Running a code insight over a timeframe when the repository didn't yet exist doesn't break the entire insight anymore. [#21288](https://github.com/sourcegraph/sourcegraph/pull/21288)
-
-### Removed
-
-- The deprecated GraphQL `icon` field on CommitSearchResult and Repository was removed. [#21310](https://github.com/sourcegraph/sourcegraph/pull/21310)
-- The undocumented `index` filter was removed from search type-ahead suggestions. [#18806](https://github.com/sourcegraph/sourcegraph/issues/18806)
-- Code host connection tokens aren't used for creating changesets anymore when the user is site admin and no credential has been specified. [#16814](https://github.com/sourcegraph/sourcegraph/issues/16814)
-
-## 3.28.0
-
-### Added
-
-- Added `select:commit.diff.added` and `select:commit.diff.removed` for `type:diff` search queries. These selectors return commit diffs only if a pattern matches in `added` (respespectively, `removed`) lines. [#20328](https://github.com/sourcegraph/sourcegraph/pull/20328)
-- Additional language autocompletions for the `lang:` filter in the search bar. [#20535](https://github.com/sourcegraph/sourcegraph/pull/20535)
-- Steps in batch specs can now have an `if:` attribute to enable conditional execution of different steps. [#20701](https://github.com/sourcegraph/sourcegraph/pull/20701)
-- Extensions can now log messages through `sourcegraph.app.log` to aid debugging user issues. [#20474](https://github.com/sourcegraph/sourcegraph/pull/20474)
-- Bulk comments on many changesets are now available in Batch Changes. [#20361](https://github.com/sourcegraph/sourcegraph/pull/20361)
-- Batch specs are now viewable when previewing changesets. [#19534](https://github.com/sourcegraph/sourcegraph/issues/19534)
-- Added a new UI for creating code insights. [#20212](https://github.com/sourcegraph/sourcegraph/issues/20212)
-
-### Changed
-
-- User and site credentials used in Batch Changes are now encrypted in the database if encryption is enabled with the `encryption.keys` config. [#19570](https://github.com/sourcegraph/sourcegraph/issues/19570)
-- All Sourcegraph images within [deploy-sourcegraph](https://github.com/sourcegraph/deploy-sourcegraph) now specify the registry. Thanks! @k24dizzle [#2901](https://github.com/sourcegraph/deploy-sourcegraph/pull/2901).
-- Default reviewers are now added to Bitbucket Server PRs opened by Batch Changes. [#20551](https://github.com/sourcegraph/sourcegraph/pull/20551)
-- The default memory requirements for the `redis-*` containers have been raised by 1GB (to a new total of 7GB). This change allows Redis to properly run its key-eviction routines (when under memory pressure) without getting killed by the host machine. This affects both the docker-compose and Kubernetes deployments. [sourcegraph/deploy-sourcegraph-docker#373](https://github.com/sourcegraph/deploy-sourcegraph-docker/pull/373) and [sourcegraph/deploy-sourcegraph#2898](https://github.com/sourcegraph/deploy-sourcegraph/pull/2898)
-- Only site admins can now list users on an instance. [#20619](https://github.com/sourcegraph/sourcegraph/pull/20619)
-- Repository permissions can now be enabled for site admins via the `authz.enforceForSiteAdmins` setting. [#20674](https://github.com/sourcegraph/sourcegraph/pull/20674)
-- Site admins can no longer view user added code host configuration. [#20851](https://github.com/sourcegraph/sourcegraph/pull/20851)
-- Site admins cannot add access tokens for any user by default. [#20988](https://github.com/sourcegraph/sourcegraph/pull/20988)
-- Our namespaced overlays now only scrape container metrics within that namespace. [#2969](https://github.com/sourcegraph/deploy-sourcegraph/pull/2969)
-- The extension registry main page has a new visual design that better conveys the most useful information about extensions, and individual extension pages have better information architecture. [#20822](https://github.com/sourcegraph/sourcegraph/pull/20822)
-
-### Fixed
-
-- Search returned inconsistent result counts when a `count:` limit was not specified.
-- Indexed search failed when the `master` branch needed indexing but was not the default. [#20260](https://github.com/sourcegraph/sourcegraph/pull/20260)
-- `repo:contains(...)` built-in did not respect parameters that affect repo filtering (e.g., `repogroup`, `fork`). It now respects these. [#20339](https://github.com/sourcegraph/sourcegraph/pull/20339)
-- An issue where duplicate results would render for certain `or`-expressions. [#20480](https://github.com/sourcegraph/sourcegraph/pull/20480)
-- Issue where the search query bar suggests that some `lang` values are not valid. [#20534](https://github.com/sourcegraph/sourcegraph/pull/20534)
-- Pull request event webhooks received from GitHub with unexpected actions no longer cause panics. [#20571](https://github.com/sourcegraph/sourcegraph/pull/20571)
-- Repository search patterns like `^repo/(prefix-suffix|prefix)$` now correctly match both `repo/prefix-suffix` and `repo/prefix`. [#20389](https://github.com/sourcegraph/sourcegraph/issues/20389)
-- Ephemeral storage requests and limits now match the default cache size to avoid Symbols pods being evicted. The symbols pod now requires 10GB of ephemeral space as a minimum to scheduled. [#2369](https://github.com/sourcegraph/deploy-sourcegraph/pull/2369)
-- Minor query syntax highlighting bug for `repo:contains` predicate. [#21038](https://github.com/sourcegraph/sourcegraph/pull/21038)
-- An issue causing diff and commit results with file filters to return invalid results. [#21039](https://github.com/sourcegraph/sourcegraph/pull/21039)
-- All databases now have the Kubernetes Quality of Service class of 'Guaranteed' which should reduce the chance of them
- being evicted during NodePressure events. [#2900](https://github.com/sourcegraph/deploy-sourcegraph/pull/2900)
-- An issue causing diff views to display without syntax highlighting [#21160](https://github.com/sourcegraph/sourcegraph/pull/21160)
-
-### Removed
-
-- The deprecated `SetRepositoryEnabled` mutation was removed. [#21044](https://github.com/sourcegraph/sourcegraph/pull/21044)
-
-## 3.27.5
-
-### Fixed
-
-- Fix scp style VCS url parsing. [#20799](https://github.com/sourcegraph/sourcegraph/pull/20799)
-
-## 3.27.4
-
-### Fixed
-
-- Fixed an issue related to Gitolite repos with `@` being prepended with a `?`. [#20297](https://github.com/sourcegraph/sourcegraph/pull/20297)
-- Add missing return from handler when DisableAutoGitUpdates is true. [#20451](https://github.com/sourcegraph/sourcegraph/pull/20451)
-
-## 3.27.3
-
-### Fixed
-
-- Pushing batch changes to Bitbucket Server code hosts over SSH was broken in 3.27.0, and has been fixed. [#20324](https://github.com/sourcegraph/sourcegraph/issues/20324)
-
-## 3.27.2
-
-### Fixed
-
-- Fixed an issue with our release tooling that was preventing all images from being tagged with the correct version.
- All sourcegraph images have the proper release version now.
-
-## 3.27.1
-
-### Fixed
-
-- Indexed search failed when the `master` branch needed indexing but was not the default. [#20260](https://github.com/sourcegraph/sourcegraph/pull/20260)
-- Fixed a regression that caused "other" code hosts urls to not be built correctly which prevents code to be cloned / updated in 3.27.0. This change will provoke some cloning errors on repositories that are already sync'ed, until the next code host sync. [#20258](https://github.com/sourcegraph/sourcegraph/pull/20258)
-
-## 3.27.0
-
-### Added
-
-- `count:` now supports "all" as value. Queries with `count:all` will return up to 999999 results. [#19756](https://github.com/sourcegraph/sourcegraph/pull/19756)
-- Credentials for Batch Changes are now validated when adding them. [#19602](https://github.com/sourcegraph/sourcegraph/pull/19602)
-- Batch Changes now ignore repositories that contain a `.batchignore` file. [#19877](https://github.com/sourcegraph/sourcegraph/pull/19877) and [src-cli#509](https://github.com/sourcegraph/src-cli/pull/509)
-- Side-by-side diff for commit visualization. [#19553](https://github.com/sourcegraph/sourcegraph/pull/19553)
-- The site configuration now supports defining batch change rollout windows, which can be used to slow or disable pushing changesets at particular times of day or days of the week. [#19796](https://github.com/sourcegraph/sourcegraph/pull/19796), [#19797](https://github.com/sourcegraph/sourcegraph/pull/19797), and [#19951](https://github.com/sourcegraph/sourcegraph/pull/19951).
-- Search functionality via built-in `contains` predicate: `repo:contains(...)`, `repo:contains.file(...)`, `repo:contains.content(...)`, repo:contains.commit.after(...)`. [#18584](https://github.com/sourcegraph/sourcegraph/issues/18584)
-- Database encryption, external service config & user auth data can now be encrypted in the database using the `encryption.keys` config. See [the docs](https://docs.sourcegraph.com/admin/encryption) for more info.
-- Repositories that gitserver fails to clone or fetch are now gradually moved to the back of the background update queue instead of remaining at the front. [#20204](https://github.com/sourcegraph/sourcegraph/pull/20204)
-- The new `disableAutoCodeHostSyncs` setting allows site admins to disable any periodic background syncing of configured code host connections. That includes syncing of repository metadata (i.e. not git updates, use `disableAutoGitUpdates` for that), permissions and batch changes changesets, but may include other data we'd sync from the code host API in the future.
-
-### Changed
-
-- Bumped the minimum supported version of Postgres from `9.6` to `12`. The upgrade procedure is mostly automated for existing deployments, but may require action if using the single-container deployment or an external database. See the [upgrade documentation](https://docs.sourcegraph.com/admin/updates) for your deployment type for detailed instructions.
-- Changesets in batch changes will now be marked as archived instead of being detached when a new batch spec that doesn't include the changesets is applied. Once they're archived users can manually detach them in the UI. [#19527](https://github.com/sourcegraph/sourcegraph/pull/19527)
-- The default replica count on `sourcegraph-frontend` and `precise-code-intel-worker` for Kubernetes has changed from `1` -> `2`.
-- Changes to code monitor trigger search queries [#19680](https://github.com/sourcegraph/sourcegraph/pull/19680)
- - A `repo:` filter is now required. This is due to an existing limitations where only 50 repositories can be searched at a time, so using a `repo:` filter makes sure the right code is being searched. Any existing code monitor without `repo:` in the trigger query will continue to work (with the limitation that not all repositories will be searched) but will require a `repo:` filter to be added when making any changes to it.
- - A `patternType` filter is no longer required. `patternType:literal` will be added to a code monitor query if not specified.
- - Added a new checklist UI to make it more intuitive to create code monitor trigger queries.
-- Deprecated the GraphQL `icon` field on `GenericSearchResultInterface`. It will be removed in a future release. [#20028](https://github.com/sourcegraph/sourcegraph/pull/20028/files)
-- Creating changesets through Batch Changes as a site-admin without configured Batch Changes credentials has been deprecated. Please configure user or global credentials before Sourcegraph 3.29 to not experience any interruptions in changeset creation. [#20143](https://github.com/sourcegraph/sourcegraph/pull/20143)
-- Deprecated the GraphQL `limitHit` field on `LineMatch`. It will be removed in a future release. [#20164](https://github.com/sourcegraph/sourcegraph/pull/20164)
-
-### Fixed
-
-- A regression caused by search onboarding tour logic to never focus input in the search bar on the homepage. Input now focuses on the homepage if the search tour isn't in effect. [#19678](https://github.com/sourcegraph/sourcegraph/pull/19678)
-- New changes of a Perforce depot will now be reflected in `master` branch after the initial clone. [#19718](https://github.com/sourcegraph/sourcegraph/pull/19718)
-- Gitolite and Other type code host connection configuration can be correctly displayed. [#19976](https://github.com/sourcegraph/sourcegraph/pull/19976)
-- Fixed a regression that caused user and code host limits to be ignored. [#20089](https://github.com/sourcegraph/sourcegraph/pull/20089)
-- A regression where incorrect query highlighting happens for certain quoted values. [#20110](https://github.com/sourcegraph/sourcegraph/pull/20110)
-- We now respect the `disableAutoGitUpdates` setting when cloning or fetching repos on demand and during cleanup tasks that may re-clone old repos. [#20194](https://github.com/sourcegraph/sourcegraph/pull/20194)
-
-## 3.26.3
-
-### Fixed
-
-- Setting `gitMaxCodehostRequestsPerSecond` to `0` now actually blocks all Git operations happening on the gitserver. [#19716](https://github.com/sourcegraph/sourcegraph/pull/19716)
-
-## 3.26.2
-
-### Fixed
-
-- Our indexed search logic now correctly handles de-duplication of search results across multiple replicas. [#19743](https://github.com/sourcegraph/sourcegraph/pull/19743)
-
-## 3.26.1
-
-### Added
-
-- Experimental: Sync permissions of Perforce depots through the Sourcegraph UI. To enable, use the feature flag `"experimentalFeatures": { "perforce": "enabled" }`. For more information, see [how to enable permissions for your Perforce depots](https://docs.sourcegraph.com/admin/repo/perforce). [#16705](https://github.com/sourcegraph/sourcegraph/issues/16705)
-- Added support for user email headers in the HTTP auth proxy. See [HTTP Auth Proxy docs](https://docs.sourcegraph.com/admin/auth#http-authentication-proxies) for more information.
-- Ignore locked and disabled GitHub Enterprise repositories. [#19500](https://github.com/sourcegraph/sourcegraph/pull/19500)
-- Remote code host git operations (such as `clone` or `ls-remote`) can now be rate limited beyond concurrency (which was already possible with `gitMaxConcurrentClones`). Set `gitMaxCodehostRequestsPerSecond` in site config to control the maximum rate of these operations per git-server instance. [#19504](https://github.com/sourcegraph/sourcegraph/pull/19504)
-
-### Changed
-
--
-
-### Fixed
-
-- Commit search returning duplicate commits. [#19460](https://github.com/sourcegraph/sourcegraph/pull/19460)
-- Clicking the Code Monitoring tab tries to take users to a non-existent repo. [#19525](https://github.com/sourcegraph/sourcegraph/pull/19525)
-- Diff and commit search not highlighting search terms correctly for some files. [#19543](https://github.com/sourcegraph/sourcegraph/pull/19543), [#19639](https://github.com/sourcegraph/sourcegraph/pull/19639)
-- File actions weren't appearing on large window sizes in Firefox and Safari. [#19380](https://github.com/sourcegraph/sourcegraph/pull/19380)
-
-### Removed
-
--
-
-## 3.26.0
-
-### Added
-
-- Searches are streamed into Sourcegraph by default. [#19300](https://github.com/sourcegraph/sourcegraph/pull/19300)
- - This gives a faster time to first result.
- - Several heuristics around result limits have been improved. You should see more consistent result counts now.
- - Can be disabled with the setting `experimentalFeatures.streamingSearch`.
-- Opsgenie API keys can now be added via an environment variable. [#18662](https://github.com/sourcegraph/sourcegraph/pull/18662)
-- It's now possible to control where code insights are displayed through the boolean settings `insights.displayLocation.homepage`, `insights.displayLocation.insightsPage` and `insights.displayLocation.directory`. [#18979](https://github.com/sourcegraph/sourcegraph/pull/18979)
-- Users can now create changesets in batch changes on repositories that are cloned using SSH. [#16888](https://github.com/sourcegraph/sourcegraph/issues/16888)
-- Syntax highlighting for Elixir, Elm, REG, Julia, Move, Nix, Puppet, VimL, Coq. [#19282](https://github.com/sourcegraph/sourcegraph/pull/19282)
-- `BUILD.in` files are now highlighted as Bazel/Starlark build files. Thanks to @jjwon0 [#19282](https://github.com/sourcegraph/sourcegraph/pull/19282)
-- `*.pyst` and `*.pyst-include` are now highlighted as Python files. Thanks to @jjwon0 [#19282](https://github.com/sourcegraph/sourcegraph/pull/19282)
-- The code monitoring feature flag is now enabled by default. [#19295](https://github.com/sourcegraph/sourcegraph/pull/19295)
-- New query field `select` enables returning only results of the desired type. See [documentation](https://docs.sourcegraph.com/code_search/reference/language#select) for details. [#19236](https://github.com/sourcegraph/sourcegraph/pull/19236)
-- Syntax highlighting for Elixer, Elm, REG, Julia, Move, Nix, Puppet, VimL thanks to @rvantonder
-- `BUILD.in` files are now highlighted as Bazel/Starlark build files. Thanks to @jjwon0
-- `*.pyst` and `*.pyst-include` are now highlighted as Python files. Thanks to @jjwon0
-- Added a `search.defaultCaseSensitive` setting to configure whether query patterns should be treated case sensitivitely by default.
-
-### Changed
-
-- Campaigns have been renamed to Batch Changes! See [#18771](https://github.com/sourcegraph/sourcegraph/issues/18771) for a detailed log on what has been renamed.
- - A new [Sourcegraph CLI](https://docs.sourcegraph.com/cli) version will use `src batch [preview|apply]` commands, while keeping the old ones working to be used with older Sourcegraph versions.
- - Old URLs in the application and in the documentation will redirect.
- - GraphQL API entities with "campaign" in their name have been deprecated and have new Batch Changes counterparts:
- - Deprecated GraphQL entities: `CampaignState`, `Campaign`, `CampaignSpec`, `CampaignConnection`, `CampaignsCodeHostConnection`, `CampaignsCodeHost`, `CampaignsCredential`, `CampaignDescription`
- - Deprecated GraphQL mutations: `createCampaign`, `applyCampaign`, `moveCampaign`, `closeCampaign`, `deleteCampaign`, `createCampaignSpec`, `createCampaignsCredential`, `deleteCampaignsCredential`
- - Deprecated GraphQL queries: `Org.campaigns`, `User.campaigns`, `User.campaignsCodeHosts`, `camapigns`, `campaign`
- - Site settings with `campaigns` in their name have been replaced with equivalent `batchChanges` settings.
-- A repository's `remote.origin.url` is not stored on gitserver disk anymore. Note: if you use the experimental feature `customGitFetch` your setting may need to be updated to specify the remote URL. [#18535](https://github.com/sourcegraph/sourcegraph/pull/18535)
-- Repositories and files containing spaces will now render with escaped spaces in the query bar rather than being
- quoted. [#18642](https://github.com/sourcegraph/sourcegraph/pull/18642)
-- Sourcegraph is now built with Go 1.16. [#18447](https://github.com/sourcegraph/sourcegraph/pull/18447)
-- Cursor hover information in the search query bar will now display after 150ms (previously 0ms). [#18916](https://github.com/sourcegraph/sourcegraph/pull/18916)
-- The `repo.cloned` column is deprecated in favour of `gitserver_repos.clone_status`. It will be removed in a subsequent release.
-- Precision class indicators have been improved for code intelligence results in both the hover overlay as well as the definition and references locations panel. [#18843](https://github.com/sourcegraph/sourcegraph/pull/18843)
-- Pings now contain added, aggregated campaigns usage data: aggregate counts of unique monthly users and Weekly campaign and changesets counts for campaign cohorts created in the last 12 months. [#18604](https://github.com/sourcegraph/sourcegraph/pull/18604)
-
-### Fixed
-
-- Auto complete suggestions for repositories and files containing spaces will now be automatically escaped when accepting the suggestion. [#18635](https://github.com/sourcegraph/sourcegraph/issues/18635)
-- An issue causing repository results containing spaces to not be clickable in some cases. [#18668](https://github.com/sourcegraph/sourcegraph/pull/18668)
-- Closing a batch change now correctly closes the entailed changesets, when requested by the user. [#18957](https://github.com/sourcegraph/sourcegraph/pull/18957)
-- TypesScript highlighting bug. [#15930](https://github.com/sourcegraph/sourcegraph/issues/15930)
-- The number of shards is now reported accurately in Site Admin > Repository Status > Settings > Indexing. [#19265](https://github.com/sourcegraph/sourcegraph/pull/19265)
-
-### Removed
-
-- Removed the deprecated GraphQL fields `SearchResults.repositoriesSearched` and `SearchResults.indexedRepositoriesSearched`.
-- Removed the deprecated search field `max`
-- Removed the `experimentalFeatures.showBadgeAttachments` setting
-
-## 3.25.2
-
-### Fixed
-
-- A security vulnerability with in the authentication workflow has been fixed. [#18686](https://github.com/sourcegraph/sourcegraph/pull/18686)
-
-## 3.25.1
-
-### Added
-
-- Experimental: Sync Perforce depots directly through the Sourcegraph UI. To enable, use the feature flag `"experimentalFeatures": { "perforce": "enabled" }`. For more information, see [how to add your Perforce depots](https://docs.sourcegraph.com/admin/repo/perforce). [#16703](https://github.com/sourcegraph/sourcegraph/issues/16703)
-
-## 3.25.0
-
-**IMPORTANT** Sourcegraph now uses Go 1.15. This may break AWS RDS database connections with older x509 certificates. Please follow the Amazon [docs](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL-certificate-rotation.html) to rotate your certificate.
-
-### Added
-
-- New site config option `"log": { "sentry": { "backendDSN": "" } }` to use a separate Sentry project for backend errors. [#17363](https://github.com/sourcegraph/sourcegraph/pull/17363)
-- Structural search now supports searching indexed branches other than default. [#17726](https://github.com/sourcegraph/sourcegraph/pull/17726)
-- Structural search now supports searching unindexed revisions. [#17967](https://github.com/sourcegraph/sourcegraph/pull/17967)
-- New site config option `"allowSignup"` for SAML authentication to determine if automatically create new users is allowed. [#17989](https://github.com/sourcegraph/sourcegraph/pull/17989)
-- Experimental: The webapp can now stream search results to the client, improving search performance. To enable it, add `{ "experimentalFeatures": { "searchStreaming": true } }` in user settings. [#16097](https://github.com/sourcegraph/sourcegraph/pull/16097)
-- New product research sign-up page. This can be accessed by all users in their user settings. [#17945](https://github.com/sourcegraph/sourcegraph/pull/17945)
-- New site config option `productResearchPage.enabled` to disable access to the product research sign-up page. [#17945](https://github.com/sourcegraph/sourcegraph/pull/17945)
-- Pings now contain Sourcegraph extension activation statistics. [#16421](https://github.com/sourcegraph/sourcegraph/pull/16421)
-- Pings now contain aggregate Sourcegraph extension activation statistics: the number of users and number of activations per (public) extension per week, and the number of total extension users per week and average extensions activated per user. [#16421](https://github.com/sourcegraph/sourcegraph/pull/16421)
-- Pings now contain aggregate code insights usage data: total insight views, interactions, edits, creations, removals, and counts of unique users that view and create insights. [#16421](https://github.com/sourcegraph/sourcegraph/pull/17805)
-- When previewing a campaign spec, changesets can be filtered by current state or the action(s) to be performed. [#16960](https://github.com/sourcegraph/sourcegraph/issues/16960)
-
-### Changed
-
-- Alert solutions links included in [monitoring alerts](https://docs.sourcegraph.com/admin/observability/alerting) now link to the relevant documentation version. [#17828](https://github.com/sourcegraph/sourcegraph/pull/17828)
-- Secrets (such as access tokens and passwords) will now appear as REDACTED when editing external service config, and in graphql API responses. [#17261](https://github.com/sourcegraph/sourcegraph/issues/17261)
-- Sourcegraph is now built with Go 1.15
- - Go `1.15` introduced changes to SSL/TLS connection validation which requires certificates to include a `SAN`. This field was not included in older certificates and clients relied on the `CN` field. You might see an error like `x509: certificate relies on legacy Common Name field`. We recommend that customers using Sourcegraph with an external database and connecting to it using SSL/TLS check whether the certificate is up to date.
- - RDS Customers please reference [AWS' documentation on updating the SSL/TLS certificate](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL-certificate-rotation.html).
-- Search results on `.rs` files now recommend `lang:rust` instead of `lang:renderscript` as a filter. [#18316](https://github.com/sourcegraph/sourcegraph/pull/18316)
-- Campaigns users creating Personal Access Tokens on GitHub are now asked to request the `user:email` scope in addition to the [previous scopes](https://docs.sourcegraph.com/@3.24/admin/external_service/github#github-api-token-and-access). This will be used in a future Sourcegraph release to display more fine-grained information on the progress of pull requests. [#17555](https://github.com/sourcegraph/sourcegraph/issues/17555)
-
-### Fixed
-
-- Fixes an issue that prevented the hard deletion of a user if they had saved searches. [#17461](https://github.com/sourcegraph/sourcegraph/pull/17461)
-- Fixes an issue that caused some missing results for `type:commit` when a pattern was used instead of the `message` field. [#17490](https://github.com/sourcegraph/sourcegraph/pull/17490#issuecomment-764004758)
-- Fixes an issue where cAdvisor-based alerts would not fire correctly for services with multiple replicas. [#17600](https://github.com/sourcegraph/sourcegraph/pull/17600)
-- Significantly improved performance of structural search on monorepo deployments [#17846](https://github.com/sourcegraph/sourcegraph/pull/17846)
-- Fixes an issue where upgrades on Kubernetes may fail due to null environment variable lists in deployment manifests [#1781](https://github.com/sourcegraph/deploy-sourcegraph/pull/1781)
-- Fixes an issue where counts on search filters were inaccurate. [#18158](https://github.com/sourcegraph/sourcegraph/pull/18158)
-- Fixes services with emptyDir volumes being evicted from nodes. [#1852](https://github.com/sourcegraph/deploy-sourcegraph/pull/1852)
-
-### Removed
-
-- Removed the `search.migrateParser` setting. As of 3.20 and onward, a new parser processes search queries by default. Previously, `search.migrateParser` was available to enable the legacy parser. Enabling/disabling this setting now no longer has any effect. [#17344](https://github.com/sourcegraph/sourcegraph/pull/17344)
-
-## 3.24.1
-
-### Fixed
-
-- Fixes an issue that SAML is not able to proceed with the error `Expected Enveloped and C14N transforms`. [#13032](https://github.com/sourcegraph/sourcegraph/issues/13032)
-
-## 3.24.0
-
-### Added
-
-- Panels in the [Sourcegraph monitoring dashboards](https://docs.sourcegraph.com/admin/observability/metrics#grafana) now:
- - include links to relevant alerts documentation and the new [monitoring dashboards reference](/admin/observability/dashboards). [#16939](https://github.com/sourcegraph/sourcegraph/pull/16939)
- - include alert events and version changes annotations that can be enabled from the top of each service dashboard. [#17198](https://github.com/sourcegraph/sourcegraph/pull/17198)
-- Suggested filters in the search results page can now be scrolled. [#17097](https://github.com/sourcegraph/sourcegraph/pull/17097)
-- Structural search queries can now be used in saved searches by adding `patternType:structural`. [#17265](https://github.com/sourcegraph/sourcegraph/pull/17265)
-
-### Changed
-
-- Dashboard links included in [monitoring alerts](https://docs.sourcegraph.com/admin/observability/alerting) now:
- - link directly to the relevant Grafana panel, instead of just the service dashboard. [#17014](https://github.com/sourcegraph/sourcegraph/pull/17014)
- - link to a time frame relevant to the alert, instead of just the past few hours. [#17034](https://github.com/sourcegraph/sourcegraph/pull/17034)
-- Added `serviceKind` field of the `ExternalServiceKind` type to `Repository.externalURLs` GraphQL API, `serviceType` field is deprecated and will be removed in the future releases. [#14979](https://github.com/sourcegraph/sourcegraph/issues/14979)
-- Deprecated the GraphQL fields `SearchResults.repositoriesSearched` and `SearchResults.indexedRepositoriesSearched`.
-- The minimum Kubernetes version required to use the [Kubernetes deployment option](https://docs.sourcegraph.com/admin/install/kubernetes) is now [v1.15 (released June 2019)](https://kubernetes.io/blog/2019/06/19/kubernetes-1-15-release-announcement/).
-
-### Fixed
-
-- Imported changesets acquired an extra button to download the "generated diff", which did nothing, since imported changesets don't have a generated diff. This button has been removed. [#16778](https://github.com/sourcegraph/sourcegraph/issues/16778)
-- Quoted global filter values (case, patterntype) are now properly extracted and set in URL parameters. [#16186](https://github.com/sourcegraph/sourcegraph/issues/16186)
-- The endpoint for "Open in Sourcegraph" functionality in editor extensions now uses code host connection information to resolve the repository, which makes it more correct and respect the `repositoryPathPattern` setting. [#16846](https://github.com/sourcegraph/sourcegraph/pull/16846)
-- Fixed an issue that prevented search expressions of the form `repo:foo (rev:a or rev:b)` from evaluating all revisions [#16873](https://github.com/sourcegraph/sourcegraph/pull/16873)
-- Updated language detection library. Includes language detection for `lang:starlark`. [#16900](https://github.com/sourcegraph/sourcegraph/pull/16900)
-- Fixed retrieving status for indexed tags and deduplicated main branches in the indexing settings page. [#13787](https://github.com/sourcegraph/sourcegraph/issues/13787)
-- Specifying a ref that doesn't exist would show an alert, but still return results [#15576](https://github.com/sourcegraph/sourcegraph/issues/15576)
-- Fixed search highlighting the wrong line. [#10468](https://github.com/sourcegraph/sourcegraph/issues/10468)
-- Fixed an issue where searches of the form `foo type:file` returned results of type `path` too. [#17076](https://github.com/sourcegraph/sourcegraph/issues/17076)
-- Fixed queries like `(type:commit or type:diff)` so that if the query matches both the commit message and the diff, both are returned as results. [#16899](https://github.com/sourcegraph/sourcegraph/issues/16899)
-- Fixed container monitoring and provisioning dashboard panels not displaying metrics in certain deployment types and environments. If you continue to have issues with these panels not displaying any metrics after upgrading, please [open an issue](https://github.com/sourcegraph/sourcegraph/issues/new).
-- Fixed a nonexistent field in site configuration being marked as "required" when configuring PagerDuty alert notifications. [#17277](https://github.com/sourcegraph/sourcegraph/pull/17277)
-- Fixed cases of incorrect highlighting for symbol definitions in the definitions panel. [#17258](https://github.com/sourcegraph/sourcegraph/pull/17258)
-- Fixed a Cross-Site Scripting vulnerability where quick links created on the homepage were not sanitized and allowed arbitrary JavaScript execution. [#17099](https://github.com/sourcegraph/sourcegraph/pull/17099)
-
-### Removed
-
-- Interactive mode has now been removed. [#16868](https://github.com/sourcegraph/sourcegraph/pull/16868).
-
-## 3.23.0
-
-### Added
-
-- Password reset link expiration can be customized via `auth.passwordResetLinkExpiry` in the site config. [#13999](https://github.com/sourcegraph/sourcegraph/issues/13999)
-- Campaign steps may now include environment variables from outside of the campaign spec using [array syntax](http://docs.sourcegraph.com/campaigns/references/campaign_spec_yaml_reference#environment-array). [#15822](https://github.com/sourcegraph/sourcegraph/issues/15822)
-- The total size of all Git repositories and the lines of code for indexed branches are displayed in the site admin overview. [#15125](https://github.com/sourcegraph/sourcegraph/issues/15125)
-- Extensions can now add decorations to files on the sidebar tree view and tree page through the experimental `FileDecoration` API. [#15833](https://github.com/sourcegraph/sourcegraph/pull/15833)
-- Extensions can now easily query the Sourcegraph GraphQL API through a dedicated API method. [#15566](https://github.com/sourcegraph/sourcegraph/pull/15566)
-- Individual changesets can now be downloaded as a diff. [#16098](https://github.com/sourcegraph/sourcegraph/issues/16098)
-- The campaigns preview page is much more detailed now, especially when updating existing campaigns. [#16240](https://github.com/sourcegraph/sourcegraph/pull/16240)
-- When a newer version of a campaign spec is uploaded, a message is now displayed when viewing the campaign or an outdated campaign spec. [#14532](https://github.com/sourcegraph/sourcegraph/issues/14532)
-- Changesets in a campaign can now be searched by title and repository name. [#15781](https://github.com/sourcegraph/sourcegraph/issues/15781)
-- Experimental: [`transformChanges` in campaign specs](https://docs.sourcegraph.com/campaigns/references/campaign_spec_yaml_reference#transformchanges) is now available as a feature preview to allow users to create multiple changesets in a single repository. [#16235](https://github.com/sourcegraph/sourcegraph/pull/16235)
-- The `gitUpdateInterval` site setting was added to allow custom git update intervals based on repository names. [#16765](https://github.com/sourcegraph/sourcegraph/pull/16765)
-- Various additions to syntax highlighting and hover tooltips in the search query bar (e.g., regular expressions). Can be disabled with `{ "experimentalFeatures": { "enableSmartQuery": false } }` in case of unlikely adverse effects. [#16742](https://github.com/sourcegraph/sourcegraph/pull/16742)
-- Search queries may now scope subexpressions across repositories and files, and also allow greater freedom for combining search filters. See the updated documentation on [search subexpressions](https://docs.sourcegraph.com/code_search/tutorials/search_subexpressions) to learn more. [#16866](https://github.com/sourcegraph/sourcegraph/pull/16866)
-
-### Changed
-
-- Search indexer tuned to wait longer before assuming a deadlock has occurred. Previously if the indexserver had many cores (40+) and indexed a monorepo it could give up. [#16110](https://github.com/sourcegraph/sourcegraph/pull/16110)
-- The total size of all Git repositories and the lines of code for indexed branches will be sent back in pings as part of critical telemetry. [#16188](https://github.com/sourcegraph/sourcegraph/pull/16188)
-- The `gitserver` container now has a dependency on Postgres. This does not require any additional configuration unless access to Postgres requires a sidecar proxy / firewall rules. [#16121](https://github.com/sourcegraph/sourcegraph/pull/16121)
-- Licensing is now enforced for campaigns: creating a campaign with more than five changesets requires a valid license. Please [contact Sourcegraph with any licensing questions](https://about.sourcegraph.com/contact/sales/). [#15715](https://github.com/sourcegraph/sourcegraph/issues/15715)
-
-### Fixed
-
-- Syntax highlighting on files with mixed extension case (e.g. `.CPP` vs `.cpp`) now works as expected. [#11327](https://github.com/sourcegraph/sourcegraph/issues/11327)
-- After applying a campaign, some GitLab MRs might have had outdated state shown in the UI until the next sync with the code host. [#16100](https://github.com/sourcegraph/sourcegraph/pull/16100)
-- The web app no longer sends stale text document content to extensions. [#14965](https://github.com/sourcegraph/sourcegraph/issues/14965)
-- The blob viewer now supports multiple decorations per line as intended. [#15063](https://github.com/sourcegraph/sourcegraph/issues/15063)
-- Repositories with plus signs in their name can now be navigated to as expected. [#15079](https://github.com/sourcegraph/sourcegraph/issues/15079)
-
-### Removed
-
--
-
-## 3.22.1
-
-### Changed
-
-- Reduced memory and CPU required for updating the code intelligence commit graph [#16517](https://github.com/sourcegraph/sourcegraph/pull/16517)
-
-## 3.22.0
-
-### Added
-
-- GraphQL and TOML syntax highlighting is now back (special thanks to @rvantonder) [#13935](https://github.com/sourcegraph/sourcegraph/issues/13935)
-- Zig and DreamMaker syntax highlighting.
-- Campaigns now support publishing GitHub draft PRs and GitLab WIP MRs. [#7998](https://github.com/sourcegraph/sourcegraph/issues/7998)
-- `indexed-searcher`'s watchdog can be configured and has additional instrumentation. This is useful when diagnosing [zoekt-webserver is restarting due to watchdog](https://docs.sourcegraph.com/admin/observability/troubleshooting#scenario-zoekt-webserver-is-restarting-due-to-watchdog). [#15148](https://github.com/sourcegraph/sourcegraph/pull/15148)
-- Pings now contain Redis & Postgres server versions. [14405](https://github.com/sourcegraph/sourcegraph/14405)
-- Aggregated usage data of the search onboarding tour is now included in pings. The data tracked are: total number of views of the onboarding tour, total number of views of each step in the onboarding tour, total number of tours closed. [#15113](https://github.com/sourcegraph/sourcegraph/pull/15113)
-- Users can now specify credentials for code hosts to enable campaigns for non site-admin users. [#15506](https://github.com/sourcegraph/sourcegraph/pull/15506)
-- A `campaigns.restrictToAdmins` site configuration option has been added to prevent non site-admin users from using campaigns. [#15785](https://github.com/sourcegraph/sourcegraph/pull/15785)
-- Number of page views on campaign apply page, page views on campaign details page after create/update, closed campaigns, created campaign specs and changesets specs and the sum of changeset diff stats will be sent back in pings. [#15279](https://github.com/sourcegraph/sourcegraph/pull/15279)
-- Users can now explicitly set their primary email address. [#15683](https://github.com/sourcegraph/sourcegraph/pull/15683)
-- "[Why code search is still needed for monorepos](https://docs.sourcegraph.com/adopt/code_search_in_monorepos)" doc page
-
-### Changed
-
-- Improved contrast / visibility in comment syntax highlighting. [#14546](https://github.com/sourcegraph/sourcegraph/issues/14546)
-- Campaigns are no longer in beta. [#14900](https://github.com/sourcegraph/sourcegraph/pull/14900)
-- Campaigns now have a fancy new icon. [#14740](https://github.com/sourcegraph/sourcegraph/pull/14740)
-- Search queries with an unbalanced closing paren `)` are now invalid, since this likely indicates an error. Previously, patterns with dangling `)` were valid in some cases. Note that patterns with dangling `)` can still be searched, but should be quoted via `content:"foo)"`. [#15042](https://github.com/sourcegraph/sourcegraph/pull/15042)
-- Extension providers can now return AsyncIterables, enabling dynamic provider results without dependencies. [#15042](https://github.com/sourcegraph/sourcegraph/issues/15061)
-- Deprecated the `"email.smtp": { "disableTLS" }` site config option, this field has been replaced by `"email.smtp": { "noVerifyTLS" }`. [#15682](https://github.com/sourcegraph/sourcegraph/pull/15682)
-
-### Fixed
-
-- The `file:` added to the search field when navigating to a tree or file view will now behave correctly when the file path contains spaces. [#12296](https://github.com/sourcegraph/sourcegraph/issues/12296)
-- OAuth login now respects site configuration `experimentalFeatures: { "tls.external": {...} }` for custom certificates and skipping TLS verify. [#14144](https://github.com/sourcegraph/sourcegraph/issues/14144)
-- If the `HEAD` file in a cloned repo is absent or truncated, background cleanup activities will use a best-effort default to remedy the situation. [#14962](https://github.com/sourcegraph/sourcegraph/pull/14962)
-- Search input will always show suggestions. Previously we only showed suggestions for letters and some special characters. [#14982](https://github.com/sourcegraph/sourcegraph/pull/14982)
-- Fixed an issue where `not` keywords were not recognized inside expression groups, and treated incorrectly as patterns. [#15139](https://github.com/sourcegraph/sourcegraph/pull/15139)
-- Fixed an issue where hover pop-ups would not show on the first character of a valid hover range in search queries. [#15410](https://github.com/sourcegraph/sourcegraph/pull/15410)
-- Fixed an issue where submodules configured with a relative URL resulted in non-functional hyperlinks in the file tree UI. [#15286](https://github.com/sourcegraph/sourcegraph/issues/15286)
-- Pushing commits to public GitLab repositories with campaigns now works, since we use the configured token even if the repository is public. [#15536](https://github.com/sourcegraph/sourcegraph/pull/15536)
-- `.kts` is now highlighted properly as Kotlin code, fixed various other issues in Kotlin syntax highlighting.
-- Fixed an issue where the value of `content:` was treated literally when the regular expression toggle is active. [#15639](https://github.com/sourcegraph/sourcegraph/pull/15639)
-- Fixed an issue where non-site admins were prohibited from updating some of their other personal metadata when `auth.enableUsernameChanges` was `false`. [#15663](https://github.com/sourcegraph/sourcegraph/issues/15663)
-- Fixed the `url` fields of repositories and trees in GraphQL returning URLs that were not %-encoded (e.g. when the repository name contained spaces). [#15667](https://github.com/sourcegraph/sourcegraph/issues/15667)
-- Fixed "Find references" showing errors in the references panel in place of the syntax-highlighted code for repositories with spaces in their name. [#15618](https://github.com/sourcegraph/sourcegraph/issues/15618)
-- Fixed an issue where specifying the `repohasfile` filter did not return results as expected unless `repo` was specified. [#15894](https://github.com/sourcegraph/sourcegraph/pull/15894)
-- Fixed an issue causing user input in the search query field to be erased in some cases. [#15921](https://github.com/sourcegraph/sourcegraph/issues/15921).
-
-### Removed
-
--
-
-## 3.21.2
-
-:warning: WARNING :warning: For users of single-image Sourcegraph instance, please delete the secret key file `/var/lib/sourcegraph/token` inside the container before attempting to upgrade to 3.21.x.
-
-### Fixed
-
-- Fix externalURLs alert logic [#14980](https://github.com/sourcegraph/sourcegraph/pull/14980)
-
-## 3.21.1
-
-:warning: WARNING :warning: For users of single-image Sourcegraph instance, please delete the secret key file `/var/lib/sourcegraph/token` inside the container before attempting to upgrade to 3.21.x.
-
-### Fixed
-
-- Fix alerting for native integration condition [#14775](https://github.com/sourcegraph/sourcegraph/pull/14775)
-- Fix query with large repo count hanging [#14944](https://github.com/sourcegraph/sourcegraph/pull/14944)
-- Fix server upgrade where codeintel database does not exist [#14953](https://github.com/sourcegraph/sourcegraph/pull/14953)
-- CVE-2019-18218 in postgres docker image [#14954](https://github.com/sourcegraph/sourcegraph/pull/14954)
-- Fix an issue where .git/HEAD in invalid [#14962](https://github.com/sourcegraph/sourcegraph/pull/14962)
-- Repository syncing will not happen more frequently than the repoListUpdateInterval config value [#14901](https://github.com/sourcegraph/sourcegraph/pull/14901) [#14983](https://github.com/sourcegraph/sourcegraph/pull/14983)
-
-## 3.21.0
-
-:warning: WARNING :warning: For users of single-image Sourcegraph instance, please delete the secret key file `/var/lib/sourcegraph/token` inside the container before attempting to upgrade to 3.21.x.
-
-### Added
-
-- The new GraphQL API query field `namespaceByName(name: String!)` makes it easier to look up the user or organization with the given name. Previously callers needed to try looking up the user and organization separately.
-- Changesets created by campaigns will now include a link back to the campaign in their body text. [#14033](https://github.com/sourcegraph/sourcegraph/issues/14033)
-- Users can now preview commits that are going to be created in their repositories in the campaign preview UI. [#14181](https://github.com/sourcegraph/sourcegraph/pull/14181)
-- If emails are configured, the user will be sent an email when important account information is changed. This currently encompasses changing/resetting the password, adding/removing emails, and adding/removing access tokens. [#14320](https://github.com/sourcegraph/sourcegraph/pull/14320)
-- A subset of changesets can now be published by setting the `published` flag in campaign specs [to an array](https://docs.sourcegraph.com/@main/campaigns/campaign_spec_yaml_reference#publishing-only-specific-changesets), which allows only specific changesets within a campaign to be published based on the repository name. [#13476](https://github.com/sourcegraph/sourcegraph/pull/13476)
-- Homepage panels are now enabled by default. [#14287](https://github.com/sourcegraph/sourcegraph/issues/14287)
-- The most recent ping data is now available to site admins via the Site-admin > Pings page. [#13956](https://github.com/sourcegraph/sourcegraph/issues/13956)
-- Homepage panel engagement metrics will be sent back in pings. [#14589](https://github.com/sourcegraph/sourcegraph/pull/14589)
-- Homepage now has a footer with links to different extensibility features. [#14638](https://github.com/sourcegraph/sourcegraph/issues/14638)
-- Added an onboarding tour of Sourcegraph for new users. It can be enabled in user settings with `experimentalFeatures.showOnboardingTour` [#14636](https://github.com/sourcegraph/sourcegraph/pull/14636)
-- Added an onboarding tour of Sourcegraph for new users. [#14636](https://github.com/sourcegraph/sourcegraph/pull/14636)
-- Repository GraphQL queries now support an `after` parameter that permits cursor-based pagination. [#13715](https://github.com/sourcegraph/sourcegraph/issues/13715)
-- Searches in the Recent Searches panel and other places are now syntax highlighted. [#14443](https://github.com/sourcegraph/sourcegraph/issues/14443)
-
-### Changed
-
-- Interactive search mode is now disabled by default because the new plain text search input is smarter. To reenable it, add `{ "experimentalFeatures": { "splitSearchModes": true } }` in user settings.
-- The extension registry has been redesigned to make it easier to find non-default Sourcegraph extensions.
-- Tokens and similar sensitive information included in the userinfo portion of remote repository URLs will no longer be visible on the Mirroring settings page. [#14153](https://github.com/sourcegraph/sourcegraph/pull/14153)
-- The sign in and sign up forms have been redesigned with better input validation.
-- Kubernetes admins mounting [configuration files](https://docs.sourcegraph.com/admin/config/advanced_config_file#kubernetes-configmap) are encouraged to change how the ConfigMap is mounted. See the new documentation. Previously our documentation suggested using subPath. However, this lead to Kubernetes not automatically updating the files on configuration change. [#14297](https://github.com/sourcegraph/sourcegraph/pull/14297)
-- The precise code intel bundle manager will now expire any converted LSIF data that is older than `PRECISE_CODE_INTEL_MAX_DATA_AGE` (30 days by default) that is also not visible from the tip of the default branch.
-- `SRC_LOG_LEVEL=warn` is now the default in Docker Compose and Kubernetes deployments, reducing the amount of uninformative log spam. [#14458](https://github.com/sourcegraph/sourcegraph/pull/14458)
-- Permissions data that were stored in deprecated binary format are abandoned. Downgrade from 3.21 to 3.20 is OK, but to 3.19 or prior versions might experience missing/incomplete state of permissions for a short period of time. [#13740](https://github.com/sourcegraph/sourcegraph/issues/13740)
-- The query builder page is now disabled by default. To reenable it, add `{ "experimentalFeatures": { "showQueryBuilder": true } }` in user settings.
-- The GraphQL `updateUser` mutation now returns the updated user (instead of an empty response).
-
-### Fixed
-
-- Git clone URLs now validate their format correctly. [#14313](https://github.com/sourcegraph/sourcegraph/pull/14313)
-- Usernames set in Slack `observability.alerts` now apply correctly. [#14079](https://github.com/sourcegraph/sourcegraph/pull/14079)
-- Path segments in breadcrumbs get truncated correctly again on small screen sizes instead of inflating the header bar. [#14097](https://github.com/sourcegraph/sourcegraph/pull/14097)
-- GitLab pipelines are now parsed correctly and show their current status in campaign changesets. [#14129](https://github.com/sourcegraph/sourcegraph/pull/14129)
-- Fixed an issue where specifying any repogroups would effectively search all repositories for all repogroups. [#14190](https://github.com/sourcegraph/sourcegraph/pull/14190)
-- Changesets that were previously closed after being detached from a campaign are now reopened when being reattached. [#14099](https://github.com/sourcegraph/sourcegraph/pull/14099)
-- Previously large files that match the site configuration [search.largeFiles](https://docs.sourcegraph.com/admin/config/site_config#search-largeFiles) would not be indexed if they contained a large number of unique trigrams. We now index those files as well. Note: files matching the glob still need to be valid utf-8. [#12443](https://github.com/sourcegraph/sourcegraph/issues/12443)
-- Git tags without a `creatordate` value will no longer break tag search within a repository. [#5453](https://github.com/sourcegraph/sourcegraph/issues/5453)
-- Campaigns pages now work properly on small viewports. [#14292](https://github.com/sourcegraph/sourcegraph/pull/14292)
-- Fix an issue with viewing repositories that have spaces in the repository name [#2867](https://github.com/sourcegraph/sourcegraph/issues/2867)
-
-### Removed
-
-- Syntax highlighting for GraphQL, INI, TOML, and Perforce files has been removed [due to incompatible/absent licenses](https://github.com/sourcegraph/sourcegraph/issues/13933). We plan to [add it back in the future](https://github.com/sourcegraph/sourcegraph/issues?q=is%3Aissue+is%3Aopen+add+syntax+highlighting+for+develop+a+).
-- Search scope pages (`/search/scope/:id`) were removed.
-- User-defined search scopes are no longer shown below the search bar on the homepage. Use the [`quicklinks`](https://docs.sourcegraph.com/user/personalization/quick_links) setting instead to display links there.
-- The explore page (`/explore`) was removed.
-- The sign out page was removed.
-- The unused GraphQL types `DiffSearchResult` and `DeploymentConfiguration` were removed.
-- The deprecated GraphQL mutation `updateAllMirrorRepositories`.
-- The deprecated GraphQL field `Site.noRepositoriesEnabled`.
-- Total counts of users by product area have been removed from pings.
-- Aggregate daily, weekly, and monthly latencies (in ms) of code intelligence events (e.g., hover tooltips) have been removed from pings.
-
-## 3.20.1
-
-### Fixed
-
-- gomod: rollback go-diff to v0.5.3 (v0.6.0 causes panic in certain cases) [#13973](https://github.com/sourcegraph/sourcegraph/pull/13973).
-- Fixed an issue causing the scoped query in the search field to be erased when viewing files. [#13954](https://github.com/sourcegraph/sourcegraph/pull/13954).
-
-## 3.20.0
-
-### Added
-
-- Site admins can now force a specific user to re-authenticate on their next request or visit. [#13647](https://github.com/sourcegraph/sourcegraph/pull/13647)
-- Sourcegraph now watches its [configuration files](https://docs.sourcegraph.com/admin/config/advanced_config_file) (when using external files) and automatically applies the changes to Sourcegraph's configuration when they change. For example, this allows Sourcegraph to detect when a Kubernetes ConfigMap changes. [#13646](https://github.com/sourcegraph/sourcegraph/pull/13646)
-- To define repository groups (`search.repositoryGroups` in global, org, or user settings), you can now specify regular expressions in addition to single repository names. [#13730](https://github.com/sourcegraph/sourcegraph/pull/13730)
-- The new site configuration property `search.limits` configures the maximum search timeout and the maximum number of repositories to search for various types of searches. [#13448](https://github.com/sourcegraph/sourcegraph/pull/13448)
-- Files and directories can now be excluded from search by adding the file `.sourcegraph/ignore` to the root directory of a repository. Each line in the _ignore_ file is interpreted as a globbing pattern. [#13690](https://github.com/sourcegraph/sourcegraph/pull/13690)
-- Structural search syntax now allows regular expressions in patterns. Also, `...` can now be used in place of `:[_]`. See the [documentation](https://docs.sourcegraph.com/@main/code_search/reference/structural) for example syntax. [#13809](https://github.com/sourcegraph/sourcegraph/pull/13809)
-- The total size of all Git repositories and the lines of code for indexed branches will be sent back in pings. [#13764](https://github.com/sourcegraph/sourcegraph/pull/13764)
-- Experimental: A new homepage UI for Sourcegraph Server shows the user their recent searches, repositories, files, and saved searches. It can be enabled with `experimentalFeatures.showEnterpriseHomePanels`. [#13407](https://github.com/sourcegraph/sourcegraph/issues/13407)
-
-### Changed
-
-- Campaigns are enabled by default for all users. Site admins may view and create campaigns; everyone else may only view campaigns. The new site configuration property `campaigns.enabled` can be used to disable campaigns for all users. The properties `campaigns.readAccess`, `automation.readAccess.enabled`, and `"experimentalFeatures": { "automation": "enabled" }}` are deprecated and no longer have any effect.
-- Diff and commit searches are limited to 10,000 repositories (if `before:` or `after:` filters are used), or 50 repositories (if no time filters are used). You can configure this limit in the site configuration property `search.limits`. [#13386](https://github.com/sourcegraph/sourcegraph/pull/13386)
-- The site configuration `maxReposToSearch` has been deprecated in favor of the property `maxRepos` on `search.limits`. [#13439](https://github.com/sourcegraph/sourcegraph/pull/13439)
-- Search queries are now processed by a new parser that will always be enabled going forward. There should be no material difference in behavior. In case of adverse effects, the previous parser can be reenabled by setting `"search.migrateParser": false` in settings. [#13435](https://github.com/sourcegraph/sourcegraph/pull/13435)
-- It is now possible to search for file content that excludes a term using the `NOT` operator. [#12412](https://github.com/sourcegraph/sourcegraph/pull/12412)
-- `NOT` is available as an alternative syntax of `-` on supported keywords `repo`, `file`, `content`, `lang`, and `repohasfile`. [#12412](https://github.com/sourcegraph/sourcegraph/pull/12412)
-- Negated content search is now also supported for unindexed repositories. Previously it was only supported for indexed repositories [#13359](https://github.com/sourcegraph/sourcegraph/pull/13359).
-- The experimental feature flag `andOrQuery` is deprecated. [#13435](https://github.com/sourcegraph/sourcegraph/pull/13435)
-- After a user's password changes, they will be signed out on all devices and must sign in again. [#13647](https://github.com/sourcegraph/sourcegraph/pull/13647)
-- `rev:` is available as alternative syntax of `@` for searching revisions instead of the default branch [#13133](https://github.com/sourcegraph/sourcegraph/pull/13133)
-- Campaign URLs have changed to use the campaign name instead of an opaque ID. The old URLs no longer work. [#13368](https://github.com/sourcegraph/sourcegraph/pull/13368)
-- A new `external_service_repos` join table was added. The migration required to make this change may take a few minutes.
-
-### Fixed
-
-- User satisfaction/NPS surveys will now correctly provide a range from 0–10, rather than 0–9. [#13163](https://github.com/sourcegraph/sourcegraph/pull/13163)
-- Fixed a bug where we returned repositories with invalid revisions in the search results. Now, if a user specifies an invalid revision, we show an alert. [#13271](https://github.com/sourcegraph/sourcegraph/pull/13271)
-- Previously it wasn't possible to search for certain patterns containing `:` because they would not be considered valid filters. We made these checks less strict. [#10920](https://github.com/sourcegraph/sourcegraph/pull/10920)
-- When a user signs out of their account, all of their sessions will be invalidated, not just the session where they signed out. [#13647](https://github.com/sourcegraph/sourcegraph/pull/13647)
-- URL information will no longer be leaked by the HTTP referer header. This prevents the user's password reset code from being leaked. [#13804](https://github.com/sourcegraph/sourcegraph/pull/13804)
-- GitLab OAuth2 user authentication now respects `tls.external` site setting. [#13814](https://github.com/sourcegraph/sourcegraph/pull/13814)
-
-### Removed
-
-- The smartSearchField feature is now always enabled. The `experimentalFeatures.smartSearchField` settings option has been removed.
-
-## 3.19.2
-
-### Fixed
-
-- search: always limit commit and diff to less than 10,000 repos [a97f81b0f7](https://github.com/sourcegraph/sourcegraph/commit/a97f81b0f79535253bd7eae6c30d5c91d48da5ca)
-- search: configurable limits on commit/diff search [1c22d8ce1](https://github.com/sourcegraph/sourcegraph/commit/1c22d8ce13c149b3fa3a7a26f8cb96adc89fc556)
-- search: add site configuration for maxTimeout [d8d61b43c0f](https://github.com/sourcegraph/sourcegraph/commit/d8d61b43c0f0d229d46236f2f128ca0f93455172)
-
-## 3.19.1
-
-### Fixed
-
-- migrations: revert migration causing deadlocks in some deployments [#13194](https://github.com/sourcegraph/sourcegraph/pull/13194)
-
-## 3.19.0
-
-### Added
-
-- Emails can be now be sent to SMTP servers with self-signed certificates, using `email.smtp.disableTLS`. [#12243](https://github.com/sourcegraph/sourcegraph/pull/12243)
-- Saved search emails now include a link to the user's saved searches page. [#11651](https://github.com/sourcegraph/sourcegraph/pull/11651)
-- Campaigns can now be synced using GitLab webhooks. [#12139](https://github.com/sourcegraph/sourcegraph/pull/12139)
-- Configured `observability.alerts` can now be tested using a GraphQL endpoint, `triggerObservabilityTestAlert`. [#12532](https://github.com/sourcegraph/sourcegraph/pull/12532)
-- The Sourcegraph CLI can now serve local repositories for Sourcegraph to clone. This was previously in a command called `src-expose`. See [serving local repositories](https://docs.sourcegraph.com/admin/external_service/src_serve_git) in our documentation to find out more. [#12363](https://github.com/sourcegraph/sourcegraph/issues/12363)
-- The count of retained, churned, resurrected, new and deleted users will be sent back in pings. [#12136](https://github.com/sourcegraph/sourcegraph/pull/12136)
-- Saved search usage will be sent back in pings. [#12956](https://github.com/sourcegraph/sourcegraph/pull/12956)
-- Any request with `?trace=1` as a URL query parameter will enable Jaeger tracing (if Jaeger is enabled). [#12291](https://github.com/sourcegraph/sourcegraph/pull/12291)
-- Password reset emails will now be automatically sent to users created by a site admin if email sending is configured and password reset is enabled. Previously, site admins needed to manually send the user this password reset link. [#12803](https://github.com/sourcegraph/sourcegraph/pull/12803)
-- Syntax highlighting for `and` and `or` search operators. [#12694](https://github.com/sourcegraph/sourcegraph/pull/12694)
-- It is now possible to search for file content that excludes a term using the `NOT` operator. Negating pattern syntax requires setting `"search.migrateParser": true` in settings and is currently only supported for literal and regexp queries on indexed repositories. [#12412](https://github.com/sourcegraph/sourcegraph/pull/12412)
-- `NOT` is available as an alternative syntax of `-` on supported keywords `repo`, `file`, `content`, `lang`, and `repohasfile`. `NOT` requires setting `"search.migrateParser": true` option in settings. [#12520](https://github.com/sourcegraph/sourcegraph/pull/12520)
-
-### Changed
-
-- Repository permissions are now always checked and updated asynchronously ([background permissions syncing](https://docs.sourcegraph.com/admin/repo/permissions#background-permissions-syncing)) instead of blocking each operation. The site config option `permissions.backgroundSync` (which enabled this behavior in previous versions) is now a no-op and is deprecated.
-- [Background permissions syncing](https://docs.sourcegraph.com/admin/repo/permissions#background-permissions-syncing) (`permissions.backgroundSync`) has become the only option for mirroring repository permissions from code hosts. All relevant site configurations are deprecated.
-
-### Fixed
-
-- Fixed site admins are getting errors when visiting user settings page in OSS version. [#12313](https://github.com/sourcegraph/sourcegraph/pull/12313)
-- `github-proxy` now respects the environment variables `HTTP_PROXY`, `HTTPS_PROXY` and `NO_PROXY` (or the lowercase versions thereof). Other services already respect these variables, but this was missed. If you need a proxy to access github.com set the environment variable for the github-proxy container. [#12377](https://github.com/sourcegraph/sourcegraph/issues/12377)
-- `sourcegraph-frontend` now respects the `tls.external` experimental setting as well as the proxy environment variables. In proxy environments this allows Sourcegraph to fetch extensions. [#12633](https://github.com/sourcegraph/sourcegraph/issues/12633)
-- Fixed a bug that would sometimes cause trailing parentheses to be removed from search queries upon page load. [#12960](https://github.com/sourcegraph/sourcegraph/issues/12690)
-- Indexed search will no longer stall if a specific index job stalls. Additionally at scale many corner cases causing indexing to stall have been fixed. [#12502](https://github.com/sourcegraph/sourcegraph/pull/12502)
-- Indexed search will quickly recover from rebalancing / roll outs. When a indexed search shard goes down, its repositories are re-indexed by other shards. This takes a while and during a rollout leads to effectively re-indexing all repositories. We now avoid indexing the redistributed repositories once a shard comes back online. [#12474](https://github.com/sourcegraph/sourcegraph/pull/12474)
-- Indexed search has many improvements to observability. More detailed Jaeger traces, detailed logging during startup and more prometheus metrics.
-- The site admin repository needs-index page is significantly faster. Previously on large instances it would usually timeout. Now it should load within a second. [#12513](https://github.com/sourcegraph/sourcegraph/pull/12513)
-- User password reset page now respects the value of site config `auth.minPasswordLength`. [#12971](https://github.com/sourcegraph/sourcegraph/pull/12971)
-- Fixed an issue where duplicate search results would show for queries with `or`-expressions. [#12531](https://github.com/sourcegraph/sourcegraph/pull/12531)
-- Faster indexed search queries over a large number of repositories. Searching 100k+ repositories is now ~400ms faster and uses much less memory. [#12546](https://github.com/sourcegraph/sourcegraph/pull/12546)
-
-### Removed
-
-- Deprecated site settings `lightstepAccessToken` and `lightstepProject` have been removed. We now only support sending traces to Jaeger. Configure Jaeger with `observability.tracing` site setting.
-- Removed `CloneInProgress` option from GraphQL Repositories API. [#12560](https://github.com/sourcegraph/sourcegraph/pull/12560)
-
-## 3.18.0
-
-### Added
-
-- To search across multiple revisions of the same repository, list multiple branch names (or other revspecs) separated by `:` in your query, as in `repo:myrepo@branch1:branch2:branch2`. To search all branches, use `repo:myrepo@*refs/heads/`. Previously this was only supported for diff and commit searches and only available via the experimental site setting `searchMultipleRevisionsPerRepository`.
-- The "Add repositories" page (/site-admin/external-services/new) now displays a dismissible notification explaining how and why we access code host data. [#11789](https://github.com/sourcegraph/sourcegraph/pull/11789).
-- New `observability.alerts` features:
- - Notifications now provide more details about relevant alerts.
- - Support for email and OpsGenie notifications has been added. Note that to receive email alerts, `email.address` and `email.smtp` must be configured.
- - Some notifiers now have new options:
- - PagerDuty notifiers: `severity` and `apiUrl`
- - Webhook notifiers: `bearerToken`
- - A new `disableSendResolved` option disables notifications for when alerts resolve themselves.
-- Recently firing critical alerts can now be displayed to admins via site alerts, use the flag `{ "alerts.hideObservabilitySiteAlerts": false }` to enable these alerts in user configuration.
-- Specific alerts can now be silenced using `observability.silenceAlerts`. [#12087](https://github.com/sourcegraph/sourcegraph/pull/12087)
-- Revisions listed in `experimentalFeatures.versionContext` will be indexed for faster searching. This is the first support towards indexing non-default branches. [#6728](https://github.com/sourcegraph/sourcegraph/issues/6728)
-- Revisions listed in `experimentalFeatures.versionContext` or `experimentalFeatures.search.index.branches` will be indexed for faster searching. This is the first support towards indexing non-default branches. [#6728](https://github.com/sourcegraph/sourcegraph/issues/6728)
-- Campaigns are now supported on GitLab.
-- Campaigns now support GitLab and allow users to create, update and track merge requests on GitLab instances.
-- Added a new section on the search homepage on Sourcegraph.com. It is currently feature flagged behind `experimentalFeatures.showRepogroupHomepage` in settings.
-- Added new repository group pages.
-
-### Changed
-
-- Some monitoring alerts now have more useful descriptions. [#11542](https://github.com/sourcegraph/sourcegraph/pull/11542)
-- Searching `fork:true` or `archived:true` has the same behaviour as searching `fork:yes` or `archived:yes` respectively. Previously it incorrectly had the same behaviour as `fork:only` and `archived:only` respectively. [#11740](https://github.com/sourcegraph/sourcegraph/pull/11740)
-- Configuration for `observability.alerts` has changed and notifications are now provided by Prometheus Alertmanager. [#11832](https://github.com/sourcegraph/sourcegraph/pull/11832)
- - Removed: `observability.alerts.id`.
- - Removed: Slack notifiers no longer accept `mentionUsers`, `mentionGroups`, `mentionChannel`, and `token` options.
-
-### Fixed
-
-- The single-container `sourcegraph/server` image now correctly reports its version.
-- An issue where repositories would not clone and index in some edge cases where the clones were deleted or not successful on gitserver. [#11602](https://github.com/sourcegraph/sourcegraph/pull/11602)
-- An issue where repositories previously deleted on gitserver would not immediately reclone on system startup. [#11684](https://github.com/sourcegraph/sourcegraph/issues/11684)
-- An issue where the sourcegraph/server Jaeger config was invalid. [#11661](https://github.com/sourcegraph/sourcegraph/pull/11661)
-- An issue where valid search queries were improperly hinted as being invalid in the search field. [#11688](https://github.com/sourcegraph/sourcegraph/pull/11688)
-- Reduce frontend memory spikes by limiting the number of goroutines launched by our GraphQL resolvers. [#11736](https://github.com/sourcegraph/sourcegraph/pull/11736)
-- Fixed a bug affecting Sourcegraph icon display in our Phabricator native integration [#11825](https://github.com/sourcegraph/sourcegraph/pull/11825).
-- Improve performance of site-admin repositories status page. [#11932](https://github.com/sourcegraph/sourcegraph/pull/11932)
-- An issue where search autocomplete for files didn't add the right path. [#12241](https://github.com/sourcegraph/sourcegraph/pull/12241)
-
-### Removed
-
-- Backwards compatibility for "critical configuration" (a type of configuration that was deprecated in December 2019) was removed. All critical configuration now belongs in site configuration.
-- Experimental feature setting `{ "experimentalFeatures": { "searchMultipleRevisionsPerRepository": true } }` will be removed in 3.19. It is now always on. Please remove references to it.
-- Removed "Cloning" tab in site-admin Repository Status page. [#12043](https://github.com/sourcegraph/sourcegraph/pull/12043)
-- The `blacklist` configuration option for Gitolite that was deprecated in 3.17 has been removed in 3.19. Use `exclude.pattern` instead. [#12345](https://github.com/sourcegraph/sourcegraph/pull/12345)
-
-## 3.17.3
-
-### Fixed
-
-- git: Command retrying made a copy that was never used [#11807](https://github.com/sourcegraph/sourcegraph/pull/11807)
-- frontend: Allow opt out of EnsureRevision when making a comparison query [#11811](https://github.com/sourcegraph/sourcegraph/pull/11811)
-- Fix Phabricator icon class [#11825](https://github.com/sourcegraph/sourcegraph/pull/11825)
-
-## 3.17.2
-
-### Fixed
-
-- An issue where repositories previously deleted on gitserver would not immediately reclone on system startup. [#11684](https://github.com/sourcegraph/sourcegraph/issues/11684)
-
-## 3.17.1
-
-### Added
-
-- Improved search indexing metrics
-
-### Changed
-
-- Some monitoring alerts now have more useful descriptions. [#11542](https://github.com/sourcegraph/sourcegraph/pull/11542)
-
-### Fixed
-
-- The single-container `sourcegraph/server` image now correctly reports its version.
-- An issue where repositories would not clone and index in some edge cases where the clones were deleted or not successful on gitserver. [#11602](https://github.com/sourcegraph/sourcegraph/pull/11602)
-- An issue where the sourcegraph/server Jaeger config was invalid. [#11661](https://github.com/sourcegraph/sourcegraph/pull/11661)
-
-## 3.17.0
-
-### Added
-
-- The search results page now shows a small UI notification if either repository forks or archives are excluded, when `fork` or `archived` options are not explicitly set. [#10624](https://github.com/sourcegraph/sourcegraph/pull/10624)
-- Prometheus metric `src_gitserver_repos_removed_disk_pressure` which is incremented everytime we remove a repository due to disk pressure. [#10900](https://github.com/sourcegraph/sourcegraph/pull/10900)
-- `gitolite.exclude` setting in [Gitolite external service config](https://docs.sourcegraph.com/admin/external_service/gitolite#configuration) now supports a regular expression via the `pattern` field. This is consistent with how we exclude in other external services. Additionally this is a replacement for the deprecated `blacklist` configuration. [#11403](https://github.com/sourcegraph/sourcegraph/pull/11403)
-- Notifications about Sourcegraph being out of date will now be shown to site admins and users (depending on how out-of-date it is).
-- Alerts are now configured using `observability.alerts` in the site configuration, instead of via the Grafana web UI. This does not yet support all Grafana notification channel types, and is not yet supported on `sourcegraph/server` ([#11473](https://github.com/sourcegraph/sourcegraph/issues/11473)). For more details, please refer to the [Sourcegraph alerting guide](https://docs.sourcegraph.com/admin/observability/alerting).
-- Experimental basic support for detecting if your Sourcegraph instance is over or under-provisioned has been added through a set of dashboards and warning-level alerts based on container utilization.
-- Query [operators](https://docs.sourcegraph.com/code_search/reference/queries#boolean-operators) `and` and `or` are now enabled by default in all search modes for searching file content. [#11521](https://github.com/sourcegraph/sourcegraph/pull/11521)
-
-### Changed
-
-- Repository search within a version context will link to the revision in the version context. [#10860](https://github.com/sourcegraph/sourcegraph/pull/10860)
-- Background permissions syncing becomes the default method to sync permissions from code hosts. Please [read our documentation for things to keep in mind before upgrading](https://docs.sourcegraph.com/admin/repo/permissions#background-permissions-syncing). [#10972](https://github.com/sourcegraph/sourcegraph/pull/10972)
-- The styling of the hover overlay was overhauled to never have badges or the close button overlap content while also always indicating whether the overlay is currently pinned. The styling on code hosts was also improved. [#10956](https://github.com/sourcegraph/sourcegraph/pull/10956)
-- Previously, it was required to quote most patterns in structural search. This is no longer a restriction and single and double quotes in structural search patterns are interpreted literally. Note: you may still use `content:"structural-pattern"` if the pattern without quotes conflicts with other syntax. [#11481](https://github.com/sourcegraph/sourcegraph/pull/11481)
-
-### Fixed
-
-- Dynamic repo search filters on branches which contain special characters are correctly escaped now. [#10810](https://github.com/sourcegraph/sourcegraph/pull/10810)
-- Forks and archived repositories at a specific commit are searched without the need to specify "fork:yes" or "archived:yes" in the query. [#10864](https://github.com/sourcegraph/sourcegraph/pull/10864)
-- The git history for binary files is now correctly shown. [#11034](https://github.com/sourcegraph/sourcegraph/pull/11034)
-- Links to AWS Code Commit repositories have been fixed after the URL schema has been changed. [#11019](https://github.com/sourcegraph/sourcegraph/pull/11019)
-- A link to view all repositories will now always appear on the Explore page. [#11113](https://github.com/sourcegraph/sourcegraph/pull/11113)
-- The Site-admin > Pings page no longer incorrectly indicates that pings are disabled when they aren't. [#11229](https://github.com/sourcegraph/sourcegraph/pull/11229)
-- Match counts are now accurately reported for indexed search. [#11242](https://github.com/sourcegraph/sourcegraph/pull/11242)
-- When background permissions syncing is enabled, it is now possible to only enforce permissions for repositories from selected code hosts (instead of enforcing permissions for repositories from all code hosts). [#11336](https://github.com/sourcegraph/sourcegraph/pull/11336)
-- When more than 200+ repository revisions in a search are unindexed (very rare), the remaining repositories are reported as missing instead of Sourcegraph issuing e.g. several thousand unindexed search requests which causes system slowness and ultimately times out—ensuring searches are still fast even if there are indexing issues on a deployment of Sourcegraph. This does not apply if `index:no` is present in the query.
-
-### Removed
-
-- Automatic syncing of Campaign webhooks for Bitbucket Server. [#10962](https://github.com/sourcegraph/sourcegraph/pull/10962)
-- The `blacklist` configuration option for Gitolite is DEPRECATED and will be removed in 3.19. Use `exclude.pattern` instead.
-
-## 3.16.2
-
-### Fixed
-
-- Search: fix indexed search match count [#7fc96](https://github.com/sourcegraph/sourcegraph/commit/7fc96d319f49f55da46a7649ccf261aa7e8327c3)
-- Sort detected languages properly [#e7750](https://github.com/sourcegraph/sourcegraph/commit/e77507d060a40355e7b86fb093d21a7149ea03ac)
-
-## 3.16.1
-
-### Fixed
-
-- Fix repo not found error for patches [#11021](https://github.com/sourcegraph/sourcegraph/pull/11021).
-- Show expired license screen [#10951](https://github.com/sourcegraph/sourcegraph/pull/10951).
-- Sourcegraph is now built with Go 1.14.3, fixing issues running Sourcegraph onUbuntu 19 and 20. [#10447](https://github.com/sourcegraph/sourcegraph/issues/10447)
-
-## 3.16.0
-
-### Added
-
-- Autocompletion for `repogroup` filters in search queries. [#10141](https://github.com/sourcegraph/sourcegraph/pull/10286)
-- If the experimental feature flag `codeInsights` is enabled, extensions can contribute content to directory pages through the experimental `ViewProvider` API. [#10236](https://github.com/sourcegraph/sourcegraph/pull/10236)
- - Directory pages are then represented as an experimental `DirectoryViewer` in the `visibleViewComponents` of the extension API. **Note: This may break extensions that were assuming `visibleViewComponents` were always `CodeEditor`s and did not check the `type` property.** Extensions checking the `type` property will continue to work. [#10236](https://github.com/sourcegraph/sourcegraph/pull/10236)
-- [Major syntax highlighting improvements](https://github.com/sourcegraph/syntect_server/pull/29), including:
- - 228 commits / 1 year of improvements to the syntax highlighter library Sourcegraph uses ([syntect](https://github.com/trishume/syntect)).
- - 432 commits / 1 year of improvements to the base syntax definitions for ~36 languages Sourcegraph uses ([sublimehq/Packages](https://github.com/sublimehq/Packages)).
- - 30 new file extensions/names now detected.
- - Likely fixes other major instability and language support issues. #9557
- - Added [Smarty](#2885), [Ethereum / Solidity / Vyper)](#2440), [Cuda](#5907), [COBOL](#10154), [vb.NET](#4901), and [ASP.NET](#4262) syntax highlighting.
- - Fixed OCaml syntax highlighting #3545
- - Bazel/Starlark support improved (.star, BUILD, and many more extensions now properly highlighted). #8123
-- New permissions page in both user and repository settings when background permissions syncing is enabled (`"permissions.backgroundSync": {"enabled": true}`). [#10473](https://github.com/sourcegraph/sourcegraph/pull/10473) [#10655](https://github.com/sourcegraph/sourcegraph/pull/10655)
-- A new dropdown for choosing version contexts appears on the left of the query input when version contexts are specified in `experimentalFeatures.versionContext` in site configuration. Version contexts allow you to scope your search to specific sets of repos at revisions.
-- Campaign changeset usage counts including changesets created, added and merged will be sent back in pings. [#10591](https://github.com/sourcegraph/sourcegraph/pull/10591)
-- Diff views now feature syntax highlighting and can be properly copy-pasted. [#10437](https://github.com/sourcegraph/sourcegraph/pull/10437)
-- Admins can now download an anonymized usage statistics ZIP archive in the **Site admin > Usage stats**. Opting to share this archive with the Sourcegraph team helps us make the product even better. [#10475](https://github.com/sourcegraph/sourcegraph/pull/10475)
-- Extension API: There is now a field `versionContext` and subscribable `versionContextChanges` in `Workspace` to allow extensions to respect the instance's version context.
-- The smart search field, providing syntax highlighting, hover tooltips, and validation on filters in search queries, is now activated by default. It can be disabled by setting `{ "experimentalFeatures": { "smartSearchField": false } }` in global settings.
-
-### Changed
-
-- The `userID` and `orgID` fields in the SavedSearch type in the GraphQL API have been replaced with a `namespace` field. To get the ID of the user or org that owns the saved search, use `namespace.id`. [#5327](https://github.com/sourcegraph/sourcegraph/pull/5327)
-- Tree pages now redirect to blob pages if the path is not a tree and vice versa. [#10193](https://github.com/sourcegraph/sourcegraph/pull/10193)
-- Files and directories that are not found now return a 404 status code. [#10193](https://github.com/sourcegraph/sourcegraph/pull/10193)
-- The site admin flag `disableNonCriticalTelemetry` now allows Sourcegraph admins to disable most anonymous telemetry. Visit https://docs.sourcegraph.com/admin/pings to learn more. [#10402](https://github.com/sourcegraph/sourcegraph/pull/10402)
-
-### Fixed
-
-- In the OSS version of Sourcegraph, authorization providers are properly initialized and GraphQL APIs are no longer blocked. [#3487](https://github.com/sourcegraph/sourcegraph/issues/3487)
-- Previously, GitLab repository paths containing certain characters could not be excluded (slashes and periods in parts of the paths). These characters are now allowed, so the repository paths can be excluded. [#10096](https://github.com/sourcegraph/sourcegraph/issues/10096)
-- Symbols for indexed commits in languages Haskell, JSONNet, Kotlin, Scala, Swift, Thrift, and TypeScript will show up again. Previously our symbol indexer would not know how to extract symbols for those languages even though our unindexed symbol service did. [#10357](https://github.com/sourcegraph/sourcegraph/issues/10357)
-- When periodically re-cloning a repository it will still be available. [#10663](https://github.com/sourcegraph/sourcegraph/pull/10663)
-
-### Removed
-
-- The deprecated feature discussions has been removed. [#9649](https://github.com/sourcegraph/sourcegraph/issues/9649)
-
-## 3.15.2
-
-### Fixed
-
-- Fix repo not found error for patches [#11021](https://github.com/sourcegraph/sourcegraph/pull/11021).
-- Show expired license screen [#10951](https://github.com/sourcegraph/sourcegraph/pull/10951).
-
-## 3.15.1
-
-### Fixed
-
-- A potential security vulnerability with in the authentication workflow has been fixed. [#10167](https://github.com/sourcegraph/sourcegraph/pull/10167)
-- An issue where `sourcegraph/postgres-11.4:3.15.0` was incorrectly an older version of the image incompatible with non-root Kubernetes deployments. `sourcegraph/postgres-11.4:3.15.1` now matches the same image version found in Sourcegraph 3.14.3 (`20-04-07_56b20163`).
-- An issue that caused the search result type tabs to be overlapped in Safari. [#10191](https://github.com/sourcegraph/sourcegraph/pull/10191)
-
-## 3.15.0
-
-### Added
-
-- Users and site administrators can now view a log of their actions/events in the user settings. [#9141](https://github.com/sourcegraph/sourcegraph/pull/9141)
-- With the new `visibility:` filter search results can now be filtered based on a repository's visibility (possible filter values: `any`, `public` or `private`). [#8344](https://github.com/sourcegraph/sourcegraph/issues/8344)
-- [`sourcegraph/git-extras`](https://sourcegraph.com/extensions/sourcegraph/git-extras) is now enabled by default on new instances [#3501](https://github.com/sourcegraph/sourcegraph/issues/3501)
-- The Sourcegraph Docker image will now copy `/etc/sourcegraph/gitconfig` to `$HOME/.gitconfig`. This is a convenience similiar to what we provide for [repositories that need HTTP(S) or SSH authentication](https://docs.sourcegraph.com/admin/repo/auth). [#658](https://github.com/sourcegraph/sourcegraph/issues/658)
-- Permissions background syncing is now supported for GitHub via site configuration `"permissions.backgroundSync": {"enabled": true}`. [#8890](https://github.com/sourcegraph/sourcegraph/issues/8890)
-- Search: Adding `stable:true` to a query ensures a deterministic search result order. This is an experimental parameter. It applies only to file contents, and is limited to at max 5,000 results (consider using [the paginated search API](https://docs.sourcegraph.com/api/graphql/search#sourcegraph-3-9-experimental-paginated-search) if you need more than that.). [#9681](https://github.com/sourcegraph/sourcegraph/pull/9681).
-- After completing the Sourcegraph user feedback survey, a button may appear for tweeting this feedback at [@sourcegraph](https://twitter.com/sourcegraph). [#9728](https://github.com/sourcegraph/sourcegraph/pull/9728)
-- `git fetch` and `git clone` now inherit the parent process environment variables. This allows site admins to set `HTTPS_PROXY` or [git http configurations](https://git-scm.com/docs/git-config/2.26.0#Documentation/git-config.txt-httpproxy) via environment variables. For cluster environments site admins should set this on the gitserver container. [#250](https://github.com/sourcegraph/sourcegraph/issues/250)
-- Experimental: Search for file contents using `and`- and `or`-expressions in queries. Enabled via the global settings value `{"experimentalFeatures": {"andOrQuery": "enabled"}}`. [#8567](https://github.com/sourcegraph/sourcegraph/issues/8567)
-- Always include forks or archived repositories in searches via the global/org/user settings with `"search.includeForks": true` or `"search.includeArchived": true` respectively. [#9927](https://github.com/sourcegraph/sourcegraph/issues/9927)
-- observability (debugging): It is now possible to log all Search and GraphQL requests slower than N milliseconds, using the new site configuration options `observability.logSlowGraphQLRequests` and `observability.logSlowSearches`.
-- observability (monitoring): **More metrics monitored and alerted on, more legible dashboards**
- - Dashboard panels now show an orange/red background color when the defined warning/critical alert threshold has been met, making it even easier to see on a dashboard what is in a bad state.
- - Symbols: failing `symbols` -> `frontend-internal` requests are now monitored. [#9732](https://github.com/sourcegraph/sourcegraph/issues/9732)
- - Frontend dasbhoard: Search error types are now broken into distinct panels for improved visibility/legibility.
- - **IMPORTANT**: If you have previously configured alerting on any of these panels or on "hard search errors", you will need to reconfigure it after upgrading.
- - Frontend dasbhoard: Search error and latency are now broken down by type: Browser requests, search-based code intel requests, and API requests.
-- observability (debugging): **Distributed tracing is a powerful tool for investigating performance issues.** The following changes have been made with the goal of making it easier to use distributed tracing with Sourcegraph:
-
- - The site configuration field `"observability.tracing": { "sampling": "..." }` allows a site admin to control which requests generate tracing data.
- - `"all"` will trace all requests.
- - `"selective"` (recommended) will trace all requests initiated from an end-user URL with `?trace=1`. Non-end-user-initiated requests can set a HTTP header `X-Sourcegraph-Should-Trace: true`. This is the recommended setting, as `"all"` can generate large amounts of tracing data that may cause network and memory resource contention in the Sourcegraph instance.
- - `"none"` (default) turns off tracing.
- - Jaeger is now the officially supported distributed tracer. The following is the recommended site configuration to connect Sourcegraph to a Jaeger agent (which must be deployed on the same host and listening on the default ports):
-
- ```
- "observability.tracing": {
- "sampling": "selective"
- }
- ```
-
- - Jaeger is now included in the Sourcegraph deployment configuration by default if you are using Kubernetes, Docker Compose, or the pure Docker cluster deployment model. (It is not yet included in the single Docker container distribution.) It will be included as part of upgrading to 3.15 in these deployment models, unless disabled.
- - The site configuration field, `useJaeger`, is deprecated in favor of `observability.tracing`.
- - Support for configuring Lightstep as a distributed tracer is deprecated and will be removed in a subsequent release. Instances that use Lightstep with Sourcegraph are encouraged to migrate to Jaeger (directions for running Jaeger alongside Sourcegraph are included in the installation instructions).
-
-### Changed
-
-- Multiple backwards-incompatible changes in the parts of the GraphQL API related to Campaigns [#9106](https://github.com/sourcegraph/sourcegraph/issues/9106):
- - `CampaignPlan.status` has been removed, since we don't need it anymore after moving execution of campaigns to src CLI in [#8008](https://github.com/sourcegraph/sourcegraph/pull/8008).
- - `CampaignPlan` has been renamed to `PatchSet`.
- - `ChangesetPlan`/`ChangesetPlanConnection` has been renamed to `Patch`/`PatchConnection`.
- - `CampaignPlanPatch` has been renamed to `PatchInput`.
- - `Campaign.plan` has been renamed to `Campaign.patchSet`.
- - `Campaign.changesetPlans` has been renamed to `campaign.changesetPlan`.
- - `createCampaignPlanFromPatches` mutation has been renamed to `createPatchSetFromPatches`.
-- Removed the scoped search field on tree pages. When browsing code, the global search query will now get scoped to the current tree or file. [#9225](https://github.com/sourcegraph/sourcegraph/pull/9225)
-- Instances without a license key that exceed the published user limit will now display a notice to all users.
-
-### Fixed
-
-- `.*` in the filter pattern were ignored and led to missing search results. [#9152](https://github.com/sourcegraph/sourcegraph/pull/9152)
-- The Phabricator integration no longer makes duplicate requests to Phabricator's API on diff views. [#8849](https://github.com/sourcegraph/sourcegraph/issues/8849)
-- Changesets on repositories that aren't available on the instance anymore are now hidden instead of failing. [#9656](https://github.com/sourcegraph/sourcegraph/pull/9656)
-- observability (monitoring):
- - **Dashboard and alerting bug fixes**
- - Syntect Server dashboard: "Worker timeouts" can no longer appear to go negative. [#9523](https://github.com/sourcegraph/sourcegraph/issues/9523)
- - Symbols dashboard: "Store fetch queue size" can no longer appear to go negative. [#9731](https://github.com/sourcegraph/sourcegraph/issues/9731)
- - Syntect Server dashboard: "Worker timeouts" no longer incorrectly shows multiple values. [#9524](https://github.com/sourcegraph/sourcegraph/issues/9524)
- - Searcher dashboard: "Search errors on unindexed repositories" no longer includes cancelled search requests (which are expected).
- - Fixed an issue where NaN could leak into the `alert_count` metric. [#9832](https://github.com/sourcegraph/sourcegraph/issues/9832)
- - Gitserver: "resolve_revision_duration_slow" alert is no longer flaky / non-deterministic. [#9751](https://github.com/sourcegraph/sourcegraph/issues/9751)
- - Git Server dashboard: there is now a panel to show concurrent command executions to match the defined alerts. [#9354](https://github.com/sourcegraph/sourcegraph/issues/9354)
- - Git Server dashboard: adjusted the critical disk space alert to 15% so it can now fire. [#9351](https://github.com/sourcegraph/sourcegraph/issues/9351)
- - **Dashboard visiblity and legibility improvements**
- - all: "frontend internal errors" are now broken down just by route, which makes reading the graph easier. [#9668](https://github.com/sourcegraph/sourcegraph/issues/9668)
- - Frontend dashboard: panels no longer show misleading duplicate labels. [#9660](https://github.com/sourcegraph/sourcegraph/issues/9660)
- - Syntect Server dashboard: panels are no longer compacted, for improved visibility. [#9525](https://github.com/sourcegraph/sourcegraph/issues/9525)
- - Frontend dashboard: panels are no longer compacted, for improved visibility. [#9356](https://github.com/sourcegraph/sourcegraph/issues/9356)
- - Searcher dashboard: "Search errors on unindexed repositories" is now broken down by code instead of instance for improved readability. [#9670](https://github.com/sourcegraph/sourcegraph/issues/9670)
- - Symbols dashboard: metrics are now aggregated instead of per-instance, for improved visibility. [#9730](https://github.com/sourcegraph/sourcegraph/issues/9730)
- - Firing alerts are now correctly sorted at the top of dashboards by default. [#9766](https://github.com/sourcegraph/sourcegraph/issues/9766)
- - Panels at the bottom of the home dashboard no longer appear clipped / cut off. [#9768](https://github.com/sourcegraph/sourcegraph/issues/9768)
- - Git Server dashboard: disk usage now shown in percentages to match the alerts that can fire. [#9352](https://github.com/sourcegraph/sourcegraph/issues/9352)
- - Git Server dashboard: the 'echo command duration test' panel now properly displays units in seconds. [#7628](https://github.com/sourcegraph/sourcegraph/issues/7628)
- - Dashboard panels showing firing alerts no longer over-count firing alerts due to the number of service replicas. [#9353](https://github.com/sourcegraph/sourcegraph/issues/9353)
-
-### Removed
-
-- The experimental feature discussions is marked as deprecated. GraphQL and configuration fields related to it will be removed in 3.16. [#9649](https://github.com/sourcegraph/sourcegraph/issues/9649)
-
-## 3.14.4
-
-### Fixed
-
-- A potential security vulnerability with in the authentication workflow has been fixed. [#10167](https://github.com/sourcegraph/sourcegraph/pull/10167)
-
-## 3.14.3
-
-### Fixed
-
-- phabricator: Duplicate requests to phabricator API from sourcegraph extensions. [#8849](https://github.com/sourcegraph/sourcegraph/issues/8849)
-
-## 3.14.2
-
-### Fixed
-
-- campaigns: Ignore changesets where repo does not exist anymore. [#9656](https://github.com/sourcegraph/sourcegraph/pull/9656)
-
-## 3.14.1
-
-### Added
-
-- monitoring: new Permissions dashboard to show stats of repository permissions.
-
-### Changed
-
-- Site-Admin/Instrumentation in the Kubernetes cluster deployment now includes indexed-search.
-
-## 3.14.0
-
-### Added
-
-- Site-Admin/Instrumentation is now available in the Kubernetes cluster deployment [8805](https://github.com/sourcegraph/sourcegraph/pull/8805).
-- Extensions can now specify a `baseUri` in the `DocumentFilter` when registering providers.
-- Admins can now exclude GitHub forks and/or archived repositories from the set of repositories being mirrored in Sourcegraph with the `"exclude": [{"forks": true}]` or `"exclude": [{"archived": true}]` GitHub external service configuration. [#8974](https://github.com/sourcegraph/sourcegraph/pull/8974)
-- Campaign changesets can be filtered by State, Review State and Check State. [#8848](https://github.com/sourcegraph/sourcegraph/pull/8848)
-- Counts of users of and searches conducted with interactive and plain text search modes will be sent back in pings, aggregated daily, weekly, and monthly.
-- Aggregated counts of daily, weekly, and monthly active users of search will be sent back in pings.
-- Counts of number of searches conducted using each filter will be sent back in pings, aggregated daily, weekly, and monthly.
-- Counts of number of users conducting searches containing each filter will be sent back in pings, aggregated daily, weekly, and monthly.
-- Added more entries (Bash, Erlang, Julia, OCaml, Scala) to the list of suggested languages for the `lang:` filter.
-- Permissions background sync is now supported for GitLab and Bitbucket Server via site configuration `"permissions.backgroundSync": {"enabled": true}`.
-- Indexed search exports more prometheus metrics and debug logs to aid debugging performance issues. [#9111](https://github.com/sourcegraph/sourcegraph/issues/9111)
-- monitoring: the Frontend dashboard now shows in excellent detail how search is behaving overall and at a glance.
-- monitoring: added alerts for when hard search errors (both timeouts and general errors) are high.
-- monitoring: added alerts for when partial search timeouts are high.
-- monitoring: added alerts for when search 90th and 99th percentile request duration is high.
-- monitoring: added alerts for when users are being shown an abnormally large amount of search alert user suggestions and no results.
-- monitoring: added alerts for when the internal indexed and unindexed search services are returning bad responses.
-- monitoring: added alerts for when gitserver may be under heavy load due to many concurrent command executions or under-provisioning.
-
-### Changed
-
-- The "automation" feature was renamed to "campaigns".
- - `campaigns.readAccess.enabled` replaces the deprecated site configuration property `automation.readAccess.enabled`.
- - The experimental feature flag was not renamed (because it will go away soon) and remains `{"experimentalFeatures": {"automation": "enabled"}}`.
-- The [Kubernetes deployment](https://github.com/sourcegraph/deploy-sourcegraph) for **existing** installations requires a
- [migration step](https://github.com/sourcegraph/deploy-sourcegraph/blob/master/docs/migrate) when upgrading
- past commit [821032e2ee45f21f701](https://github.com/sourcegraph/deploy-sourcegraph/commit/821032e2ee45f21f701caac624e4f090c59fd259) or when upgrading to 3.14.
- New installations starting with the mentioned commit or with 3.14 do not need this migration step.
-- Aggregated search latencies (in ms) of search queries are now included in [pings](https://docs.sourcegraph.com/admin/pings).
-- The [Kubernetes deployment](https://github.com/sourcegraph/deploy-sourcegraph) frontend role has added services as a resource to watch/listen/get.
- This change does not affect the newly-introduced, restricted Kubernetes config files.
-- Archived repositories are excluded from search by default. Adding `archived:yes` includes archived repositories.
-- Forked repositories are excluded from search by default. Adding `fork:yes` includes forked repositories.
-- CSRF and session cookies now set `SameSite=None` when Sourcegraph is running behind HTTPS and `SameSite=Lax` when Sourcegraph is running behind HTTP in order to comply with a [recent IETF proposal](https://web.dev/samesite-cookies-explained/#samesitenone-must-be-secure). As a side effect, the Sourcegraph browser extension and GitLab/Bitbucket native integrations can only connect to private instances that have HTTPS configured. If your private instance is only running behind HTTP, please configure your instance to use HTTPS in order to continue using these.
-- The Bitbucket Server rate limit that Sourcegraph self-imposes has been raised from 120 req/min to 480 req/min to account for Sourcegraph instances that make use of Sourcegraphs' Bitbucket Server repository permissions and campaigns at the same time (which require a larger number of API requests against Bitbucket Server). The new number is based on Sourcegraph consuming roughly 8% the average API request rate of a large customers' Bitbucket Server instance. [#9048](https://github.com/sourcegraph/sourcegraph/pull/9048/files)
-- If a single, unambiguous commit SHA is used in a search query (e.g., `repo@c98f56`) and a search index exists at this commit (i.e., it is the `HEAD` commit), then the query is searched using the index. Prior to this change, unindexed search was performed for any query containing an `@commit` specifier.
-
-### Fixed
-
-- Zoekt's watchdog ensures the service is down upto 3 times before exiting. The watchdog would misfire on startup on resource constrained systems, with the retries this should make a false positive far less likely. [#7867](https://github.com/sourcegraph/sourcegraph/issues/7867)
-- A regression in repo-updater was fixed that lead to every repository's git clone being updated every time the list of repositories was synced from the code host. [#8501](https://github.com/sourcegraph/sourcegraph/issues/8501)
-- The default timeout of indexed search has been increased. Previously indexed search would always return within 3s. This lead to broken behaviour on new instances which had yet to tune resource allocations. [#8720](https://github.com/sourcegraph/sourcegraph/pull/8720)
-- Bitbucket Server older than 5.13 failed to sync since Sourcegraph 3.12. This was due to us querying for the `archived` label, but Bitbucket Server 5.13 does not support labels. [#8883](https://github.com/sourcegraph/sourcegraph/issues/8883)
-- monitoring: firing alerts are now ordered at the top of the list in dashboards by default for better visibility.
-- monitoring: fixed an issue where some alerts would fail to report in for the "Total alerts defined" panel in the overview dashboard.
-
-### Removed
-
-- The v3.11 migration to merge critical and site configuration has been removed. If you are still making use of the deprecated `CRITICAL_CONFIG_FILE`, your instance may not start up. See the [migration notes for Sourcegraph 3.11](https://docs.sourcegraph.com/admin/migration/3_11) for more information.
-
-## 3.13.2
-
-### Fixed
-
-- The default timeout of indexed search has been increased. Previously indexed search would always return within 3s. This lead to broken behaviour on new instances which had yet to tune resource allocations. [#8720](https://github.com/sourcegraph/sourcegraph/pull/8720)
-- Bitbucket Server older than 5.13 failed to sync since Sourcegraph 3.12. This was due to us querying for the `archived` label, but Bitbucket Server 5.13 does not support labels. [#8883](https://github.com/sourcegraph/sourcegraph/issues/8883)
-- A regression in repo-updater was fixed that lead to every repository's git clone being updated every time the list of repositories was synced from the code host. [#8501](https://github.com/sourcegraph/sourcegraph/issues/8501)
-
-## 3.13.1
-
-### Fixed
-
-- To reduce the chance of users running into "502 Bad Gateway" errors an internal timeout has been increased from 60 seconds to 10 minutes so that long running requests are cut short by the proxy in front of `sourcegraph-frontend` and correctly reported as "504 Gateway Timeout". [#8606](https://github.com/sourcegraph/sourcegraph/pull/8606)
-- Sourcegraph instances that are not connected to the internet will no longer display errors when users submit NPS survey responses (the responses will continue to be stored locally). Rather, an error will be printed to the frontend logs. [#8598](https://github.com/sourcegraph/sourcegraph/issues/8598)
-- Showing `head>` in the search results if the first line of the file is shown [#8619](https://github.com/sourcegraph/sourcegraph/issues/8619)
-
-## 3.13.0
-
-### Added
-
-- Experimental: Added new field `experimentalFeatures.customGitFetch` that allows defining custom git fetch commands for code hosts and repositories with special settings. [#8435](https://github.com/sourcegraph/sourcegraph/pull/8435)
-- Experimental: the search query input now provides syntax highlighting, hover tooltips, and diagnostics on filters in search queries. Requires the global settings value `{ "experimentalFeatures": { "smartSearchField": true } }`.
-- Added a setting `search.hideSuggestions`, which when set to `true`, will hide search suggestions in the search bar. [#8059](https://github.com/sourcegraph/sourcegraph/pull/8059)
-- Experimental: A tool, [src-expose](https://docs.sourcegraph.com/admin/external_service/other#experimental-src-expose), can be used to import code from any code host.
-- Experimental: Added new field `certificates` as in `{ "experimentalFeatures" { "tls.external": { "certificates": [""] } } }`. This allows you to add certificates to trust when communicating with a code host (via API or git+http). We expect this to be useful for adding internal certificate authorities/self-signed certificates. [#71](https://github.com/sourcegraph/sourcegraph/issues/71)
-- Added a setting `auth.minPasswordLength`, which when set, causes a minimum password length to be enforced when users sign up or change passwords. [#7521](https://github.com/sourcegraph/sourcegraph/issues/7521)
-- GitHub labels associated with code change campaigns are now displayed. [#8115](https://github.com/sourcegraph/sourcegraph/pull/8115)
-- GitHub labels associated with campaigns are now displayed. [#8115](https://github.com/sourcegraph/sourcegraph/pull/8115)
-- When creating a campaign, users can now specify the branch name that will be used on code host. This is also a breaking change for users of the GraphQL API since the `branch` attribute is now required in `CreateCampaignInput` when a `plan` is also specified. [#7646](https://github.com/sourcegraph/sourcegraph/issues/7646)
-- Added an optional `content:` parameter for specifying a search pattern. This parameter overrides any other search patterns in a query. Useful for unambiguously specifying what to search for when search strings clash with other query syntax. [#6490](https://github.com/sourcegraph/sourcegraph/issues/6490)
-- Interactive search mode, which helps users construct queries using UI elements, is now made available to users by default. A dropdown to the left of the search bar allows users to toggle between interactive and plain text modes. The option to use interactive search mode can be disabled by adding `{ "experimentalFeatures": { "splitSearchModes": false } }` in global settings. [#8461](https://github.com/sourcegraph/sourcegraph/pull/8461)
-- Our [upgrade policy](https://docs.sourcegraph.com/#upgrading-sourcegraph) is now enforced by the `sourcegraph-frontend` on startup to prevent admins from mistakenly jumping too many versions. [#8157](https://github.com/sourcegraph/sourcegraph/pull/8157) [#7702](https://github.com/sourcegraph/sourcegraph/issues/7702)
-- Repositories with bad object packs or bad objects are automatically repaired. We now detect suspect output of git commands to mark a repository for repair. [#6676](https://github.com/sourcegraph/sourcegraph/issues/6676)
-- Hover tooltips for Scala and Perl files now have syntax highlighting. [#8456](https://github.com/sourcegraph/sourcegraph/pull/8456) [#8307](https://github.com/sourcegraph/sourcegraph/issues/8307)
-
-### Changed
-
-- `experimentalFeatures.splitSearchModes` was removed as a site configuration option. It should be set in global/org/user settings.
-- Sourcegraph now waits for `90s` instead of `5s` for Redis to be available before quitting. This duration is configurable with the new `SRC_REDIS_WAIT_FOR` environment variable.
-- Code intelligence usage statistics will be sent back via pings by default. Aggregated event counts can be disabled via the site admin flag `disableNonCriticalTelemetry`.
-- The Sourcegraph Docker image optimized its use of Redis to make start-up significantly faster in certain scenarios (e.g when container restarts were frequent). ([#3300](https://github.com/sourcegraph/sourcegraph/issues/3300), [#2904](https://github.com/sourcegraph/sourcegraph/issues/2904))
-- Upgrading Sourcegraph is officially supported for one minor version increment (e.g., 3.12 -> 3.13). Previously, upgrades from 2 minor versions previous were supported. Please reach out to support@sourcegraph.com if you would like assistance upgrading from a much older version of Sourcegraph.
-- The GraphQL mutation `previewCampaignPlan` has been renamed to `createCampaignPlan`. This mutation is part of campaigns, which is still in beta and behind a feature flag and thus subject to possible breaking changes while we still work on it.
-- The GraphQL mutation `previewCampaignPlan` has been renamed to `createCampaignPlan`. This mutation is part of the campaigns feature, which is still in beta and behind a feature flag and thus subject to possible breaking changes while we still work on it.
-- The GraphQL field `CampaignPlan.changesets` has been deprecated and will be removed in 3.15. A new field called `CampaignPlan.changesetPlans` has been introduced to make the naming more consistent with the `Campaign.changesetPlans` field. Please use that instead. [#7966](https://github.com/sourcegraph/sourcegraph/pull/7966)
-- Long lines (>2000 bytes) are no longer highlighted, in order to prevent performance issues in browser rendering. [#6489](https://github.com/sourcegraph/sourcegraph/issues/6489)
-- No longer requires `read:org` permissions for GitHub OAuth if `allowOrgs` is not enabled in the site configuration. [#8163](https://github.com/sourcegraph/sourcegraph/issues/8163)
-- [Documentation](https://github.com/sourcegraph/deploy-sourcegraph/blob/master/configure/jaeger/README) in github.com/sourcegraph/deploy-sourcegraph for deploying Jaeger in Kubernetes clusters running Sourcegraph has been updated to use the [Jaeger Operator](https://www.jaegertracing.io/docs/1.16/operator/), the recommended standard way of deploying Jaeger in a Kubernetes cluster. We recommend existing customers that use Jaeger adopt this new method of deployment. Please reach out to support@sourcegraph.com if you'd like assistance updating.
-
-### Fixed
-
-- The syntax highlighter (syntect-server) no longer fails when run in environments without IPv6 support. [#8463](https://github.com/sourcegraph/sourcegraph/pull/8463)
-- After adding/removing a gitserver replica the admin interface will correctly report that repositories that need to move replicas as cloning. [#7970](https://github.com/sourcegraph/sourcegraph/issues/7970)
-- Show download button for images. [#7924](https://github.com/sourcegraph/sourcegraph/issues/7924)
-- gitserver backoffs trying to re-clone repositories if they fail to clone. In the case of large monorepos that failed this lead to gitserver constantly cloning them and using many resources. [#7804](https://github.com/sourcegraph/sourcegraph/issues/7804)
-- It is now possible to escape spaces using `\` in the search queries when using regexp. [#7604](https://github.com/sourcegraph/sourcegraph/issues/7604)
-- Clicking filter chips containing whitespace is now correctly quoted in the web UI. [#6498](https://github.com/sourcegraph/sourcegraph/issues/6498)
-- **Monitoring:** Fixed an issue with the **Frontend** -> **Search responses by status** panel which caused search response types to not be aggregated as expected. [#7627](https://github.com/sourcegraph/sourcegraph/issues/7627)
-- **Monitoring:** Fixed an issue with the **Replacer**, **Repo Updater**, and **Searcher** dashboards would incorrectly report on a metric from the unrelated query-runner service. [#7531](https://github.com/sourcegraph/sourcegraph/issues/7531)
-- Deterministic ordering of results from indexed search. Previously when refreshing a page with many results some results may come and go.
-- Spread out periodic git reclones. Previously we would reclone all git repositories every 45 days. We now add in a jitter of 12 days to spread out the load for larger installations. [#8259](https://github.com/sourcegraph/sourcegraph/issues/8259)
-- Fixed an issue with missing commit information in graphql search results. [#8343](https://github.com/sourcegraph/sourcegraph/pull/8343)
-
-### Removed
-
-- All repository fields related to `enabled` and `disabled` have been removed from the GraphQL API. These fields have been deprecated since 3.4. [#3971](https://github.com/sourcegraph/sourcegraph/pull/3971)
-- The deprecated extension API `Hover.__backcompatContents` was removed.
-
-## 3.12.10
-
-This release backports the fixes released in `3.13.2` for customers still on `3.12`.
-
-### Fixed
-
-- The default timeout of indexed search has been increased. Previously indexed search would always return within 3s. This lead to broken behaviour on new instances which had yet to tune resource allocations. [#8720](https://github.com/sourcegraph/sourcegraph/pull/8720)
-- Bitbucket Server older than 5.13 failed to sync since Sourcegraph 3.12. This was due to us querying for the `archived` label, but Bitbucket Server 5.13 does not support labels. [#8883](https://github.com/sourcegraph/sourcegraph/issues/8883)
-- A regression in repo-updater was fixed that lead to every repository's git clone being updated every time the list of repositories was synced from the code host. [#8501](https://github.com/sourcegraph/sourcegraph/issues/8501)
-
-## 3.12.9
-
-This is `3.12.8` release with internal infrastructure fixes to publish the docker images.
-
-## 3.12.8
-
-### Fixed
-
-- Extension API showInputBox and other Window methods now work on search results pages [#8519](https://github.com/sourcegraph/sourcegraph/issues/8519)
-- Extension error notification styling is clearer [#8521](https://github.com/sourcegraph/sourcegraph/issues/8521)
-
-## 3.12.7
-
-### Fixed
-
-- Campaigns now gracefully handle GitHub review dismissals when rendering the burndown chart.
-
-## 3.12.6
-
-### Changed
-
-- When GitLab permissions are turned on using GitLab OAuth authentication, GitLab project visibility is fetched in batches, which is generally more efficient than fetching them individually. The `minBatchingThreshold` and `maxBatchRequests` fields of the `authorization.identityProvider` object in the GitLab repositories configuration control when such batch fetching is used. [#8171](https://github.com/sourcegraph/sourcegraph/pull/8171)
-
-## 3.12.5
-
-### Fixed
-
-- Fixed an internal race condition in our Docker build process. The previous patch version 3.12.4 contained an lsif-server version that was newer than expected. The affected artifacts have since been removed from the Docker registry.
-
-## 3.12.4
-
-### Added
-
-- New optional `apiURL` configuration option for Bitbucket Cloud code host connection [#8082](https://github.com/sourcegraph/sourcegraph/pull/8082)
-
-## 3.12.3
-
-### Fixed
-
-- Fixed an issue in `sourcegraph/*` Docker images where data folders were either not created or had incorrect permissions—preventing the use of Docker volumes. [#7991](https://github.com/sourcegraph/sourcegraph/pull/7991)
-
-## 3.12.2
-
-### Added
-
-- Experimental: The site configuration field `campaigns.readAccess.enabled` allows site-admins to give read-only access for code change campaigns to non-site-admins. This is a setting for the experimental feature campaigns and will only have an effect when campaigns are enabled under `experimentalFeatures`. [#8013](https://github.com/sourcegraph/sourcegraph/issues/8013)
-
-### Fixed
-
-- A regression in 3.12.0 which caused [find-leaked-credentials campaigns](https://docs.sourcegraph.com/user/campaigns#finding-leaked-credentials) to not return any results for private repositories. [#7914](https://github.com/sourcegraph/sourcegraph/issues/7914)
-- Experimental: The site configuration field `campaigns.readAccess.enabled` allows site-admins to give read-only access for campaigns to non-site-admins. This is a setting for the experimental campaigns feature and will only have an effect when campaigns is enabled under `experimentalFeatures`. [#8013](https://github.com/sourcegraph/sourcegraph/issues/8013)
-
-### Fixed
-
-- A regression in 3.12.0 which caused find-leaked-credentials campaigns to not return any results for private repositories. [#7914](https://github.com/sourcegraph/sourcegraph/issues/7914)
-- A regression in 3.12.0 which removed the horizontal bar between search result matches.
-- Manual campaigns were wrongly displayed as being in draft mode. [#8009](https://github.com/sourcegraph/sourcegraph/issues/8009)
-- Manual campaigns could be published and create the wrong changesets on code hosts, even though the campaign was never in draft mode (see line above). [#8012](https://github.com/sourcegraph/sourcegraph/pull/8012)
-- A regression in 3.12.0 which caused manual campaigns to not properly update the UI after adding a changeset. [#8023](https://github.com/sourcegraph/sourcegraph/pull/8023)
-- Minor improvements to manual campaign form fields. [#8033](https://github.com/sourcegraph/sourcegraph/pull/8033)
-
-## 3.12.1
-
-### Fixed
-
-- The ephemeral `/site-config.json` escape-hatch config file has moved to `$HOME/site-config.json`, to support non-root container environments. [#7873](https://github.com/sourcegraph/sourcegraph/issues/7873)
-- Fixed an issue where repository permissions would sometimes not be cached, due to improper Redis nil value handling. [#7912](https://github.com/sourcegraph/sourcegraph/issues/7912)
-
-## 3.12.0
-
-### Added
-
-- Bitbucket Server repositories with the label `archived` can be excluded from search with `archived:no` [syntax](https://docs.sourcegraph.com/code_search/reference/queries). [#5494](https://github.com/sourcegraph/sourcegraph/issues/5494)
-- Add button to download file in code view. [#5478](https://github.com/sourcegraph/sourcegraph/issues/5478)
-- The new `allowOrgs` site config setting in GitHub `auth.providers` enables admins to restrict GitHub logins to members of specific GitHub organizations. [#4195](https://github.com/sourcegraph/sourcegraph/issues/4195)
-- Support case field in repository search. [#7671](https://github.com/sourcegraph/sourcegraph/issues/7671)
-- Skip LFS content when cloning git repositories. [#7322](https://github.com/sourcegraph/sourcegraph/issues/7322)
-- Hover tooltips and _Find Reference_ results now display a badge to indicate when a result is search-based. These indicators can be disabled by adding `{ "experimentalFeatures": { "showBadgeAttachments": false } }` in global settings.
-- Campaigns can now be created as drafts, which can be shared and updated without creating changesets (pull requests) on code hosts. When ready, a draft can then be published, either completely or changeset by changeset, to create changesets on the code host. [#7659](https://github.com/sourcegraph/sourcegraph/pull/7659)
-- Experimental: feature flag `BitbucketServerFastPerm` can be enabled to speed up fetching ACL data from Bitbucket Server instances. This requires [Bitbucket Server Sourcegraph plugin](https://github.com/sourcegraph/bitbucket-server-plugin) to be installed.
-- Experimental: A site configuration field `{ "experimentalFeatures" { "tls.external": { "insecureSkipVerify": true } } }` which allows you to configure SSL/TLS settings for Sourcegraph contacting your code hosts. Currently just supports turning off TLS/SSL verification. [#71](https://github.com/sourcegraph/sourcegraph/issues/71)
-- Experimental: To search across multiple revisions of the same repository, list multiple branch names (or other revspecs) separated by `:` in your query, as in `repo:myrepo@branch1:branch2:branch2`. To search all branches, use `repo:myrepo@*refs/heads/`. Requires the site configuration value `{ "experimentalFeatures": { "searchMultipleRevisionsPerRepository": true } }`. Previously this was only supported for diff and commit searches.
-- Experimental: interactive search mode, which helps users construct queries using UI elements. Requires the site configuration value `{ "experimentalFeatures": { "splitSearchModes": true } }`. The existing plain text search format is still available via the dropdown menu on the left of the search bar.
-- A case sensitivity toggle now appears in the search bar.
-- Add explicit repository permissions support with site configuration field `{ "permissions.userMapping" { "enabled": true, "bindID": "email" } }`.
-
-### Changed
-
-- The "Files" tab in the search results page has been renamed to "Filenames" for clarity.
-- The search query builder now lives on its own page at `/search/query-builder`. The home search page has a link to it.
-- User passwords when using builtin auth are limited to 256 characters. Existing passwords longer than 256 characters will continue to work.
-- GraphQL API: Campaign.changesetCreationStatus has been renamed to Campaign.status to be aligned with CampaignPlan. [#7654](https://github.com/sourcegraph/sourcegraph/pull/7654)
-- When using GitHub as an authentication provider, `read:org` scope is now required. This is used to support the new `allowOrgs` site config setting in the GitHub `auth.providers` configuration, which enables site admins to restrict GitHub logins to members of a specific GitHub organization. This for example allows having a Sourcegraph instance with GitHub sign in configured be exposed to the public internet without allowing everyone with a GitHub account access to your Sourcegraph instance.
-
-### Fixed
-
-- The experimental search pagination API no longer times out when large repositories are encountered. [#6384](https://github.com/sourcegraph/sourcegraph/issues/6384)
-- We resolve relative symbolic links from the directory of the symlink, rather than the root of the repository. [#6034](https://github.com/sourcegraph/sourcegraph/issues/6034)
-- Show errors on repository settings page when repo-updater is down. [#3593](https://github.com/sourcegraph/sourcegraph/issues/3593)
-- Remove benign warning that verifying config took more than 10s when updating or saving an external service. [#7176](https://github.com/sourcegraph/sourcegraph/issues/7176)
-- repohasfile search filter works again (regressed in 3.10). [#7380](https://github.com/sourcegraph/sourcegraph/issues/7380)
-- Structural search can now run on very large repositories containing any number of files. [#7133](https://github.com/sourcegraph/sourcegraph/issues/7133)
-
-### Removed
-
-- The deprecated GraphQL mutation `setAllRepositoriesEnabled` has been removed. [#7478](https://github.com/sourcegraph/sourcegraph/pull/7478)
-- The deprecated GraphQL mutation `deleteRepository` has been removed. [#7483](https://github.com/sourcegraph/sourcegraph/pull/7483)
-
-## 3.11.4
-
-### Fixed
-
-- The `/.auth/saml/metadata` endpoint has been fixed. Previously it panicked if no encryption key was set.
-- The version updating logic has been fixed for `sourcegraph/server`. Users running `sourcegraph/server:3.11.1` will need to manually modify their `docker run` command to use `sourcegraph/server:3.11.4` or higher. [#7442](https://github.com/sourcegraph/sourcegraph/issues/7442)
-
-## 3.11.1
-
-### Fixed
-
-- The syncing process for newly created campaign changesets has been fixed again after they have erroneously been marked as deleted in the database. [#7522](https://github.com/sourcegraph/sourcegraph/pull/7522)
-- The syncing process for newly created changesets (in campaigns) has been fixed again after they have erroneously been marked as deleted in the database. [#7522](https://github.com/sourcegraph/sourcegraph/pull/7522)
-
-## 3.11.0
-
-**Important:** If you use `SITE_CONFIG_FILE` or `CRITICAL_CONFIG_FILE`, please be sure to follow the steps in: [migration notes for Sourcegraph v3.11+](https://docs.sourcegraph.com/admin/migration/3_11) after upgrading.
-
-### Added
-
-- Language statistics by commit are available via the API. [#6737](https://github.com/sourcegraph/sourcegraph/pull/6737)
-- Added a new page that shows [language statistics for the results of a search query](https://docs.sourcegraph.com/user/search#statistics).
-- Global settings can be configured from a local file using the environment variable `GLOBAL_SETTINGS_FILE`.
-- High-level health metrics and dashboards have been added to Sourcegraph's monitoring (found under the **Site admin** -> **Monitoring** area). [#7216](https://github.com/sourcegraph/sourcegraph/pull/7216)
-- Logging for GraphQL API requests not issued by Sourcegraph is now much more verbose, allowing for easier debugging of problematic queries and where they originate from. [#5706](https://github.com/sourcegraph/sourcegraph/issues/5706)
-- A new campaign type finds and removes leaked npm credentials. [#6893](https://github.com/sourcegraph/sourcegraph/pull/6893)
-- Campaigns can now be retried to create failed changesets due to ephemeral errors (e.g. network problems when creating a pull request on GitHub). [#6718](https://github.com/sourcegraph/sourcegraph/issues/6718)
-- The initial release of [structural code search](https://docs.sourcegraph.com/code_search/reference/structural).
-
-### Changed
-
-- `repohascommitafter:` search filter uses a more efficient git command to determine inclusion. [#6739](https://github.com/sourcegraph/sourcegraph/pull/6739)
-- `NODE_NAME` can be specified instead of `HOSTNAME` for zoekt-indexserver. `HOSTNAME` was a confusing configuration to use in [Pure-Docker Sourcegraph deployments](https://github.com/sourcegraph/deploy-sourcegraph-docker). [#6846](https://github.com/sourcegraph/sourcegraph/issues/6846)
-- The feedback toast now requests feedback every 60 days of usage (was previously only once on the 3rd day of use). [#7165](https://github.com/sourcegraph/sourcegraph/pull/7165)
-- The lsif-server container now only has a dependency on Postgres, whereas before it also relied on Redis. [#6880](https://github.com/sourcegraph/sourcegraph/pull/6880)
-- Renamed the GraphQL API `LanguageStatistics` fields to `name`, `totalBytes`, and `totalLines` (previously the field names started with an uppercase letter, which was inconsistent).
-- Detecting a file's language uses a more accurate but slower algorithm. To revert to the old (faster and less accurate) algorithm, set the `USE_ENHANCED_LANGUAGE_DETECTION` env var to the string `false` (on the `sourcegraph/server` container, or if using the cluster deployment, on the `sourcegraph-frontend` pod).
-- Diff and commit searches that make use of `before:` and `after:` filters to narrow their search area are now no longer subject to the 50-repository limit. This allows for creating saved searches on more than 50 repositories as before. [#7215](https://github.com/sourcegraph/sourcegraph/issues/7215)
-
-### Fixed
-
-- Changes to external service configurations are reflected much faster. [#6058](https://github.com/sourcegraph/sourcegraph/issues/6058)
-- Deleting an external service will not show warnings for the non-existent service. [#5617](https://github.com/sourcegraph/sourcegraph/issues/5617)
-- Suggested search filter chips are quoted if necessary. [#6498](https://github.com/sourcegraph/sourcegraph/issues/6498)
-- Remove potential panic in gitserver if heavily loaded. [#6710](https://github.com/sourcegraph/sourcegraph/issues/6710)
-- Multiple fixes to make the preview and creation of campaigns more robust and a smoother user experience. [#6682](https://github.com/sourcegraph/sourcegraph/pull/6682) [#6625](https://github.com/sourcegraph/sourcegraph/issues/6625) [#6658](https://github.com/sourcegraph/sourcegraph/issues/6658) [#7088](https://github.com/sourcegraph/sourcegraph/issues/7088) [#6766](https://github.com/sourcegraph/sourcegraph/issues/6766) [#6717](https://github.com/sourcegraph/sourcegraph/issues/6717) [#6659](https://github.com/sourcegraph/sourcegraph/issues/6659)
-- Repositories referenced in campaigns that are removed in an external service configuration change won't lead to problems with the syncing process anymore. [#7015](https://github.com/sourcegraph/sourcegraph/pull/7015)
-- The Searcher dashboard (and the `src_graphql_search_response` Prometheus metric) now properly account for search alerts instead of them being incorrectly added to the `timeout` category. [#7214](https://github.com/sourcegraph/sourcegraph/issues/7214)
-- In the experimental search pagination API, the `cloning`, `missing`, and other repository fields now return a well-defined set of results. [#6000](https://github.com/sourcegraph/sourcegraph/issues/6000)
-
-### Removed
-
-- The management console has been removed. All critical configuration previously stored in the management console will be automatically migrated to your site configuration. For more information about this change, or if you use `SITE_CONFIG_FILE` / `CRITICAL_CONFIG_FILE`, please see the [migration notes for Sourcegraph v3.11+](https://docs.sourcegraph.com/admin/migration/3_11).
-
-## 3.10.4
-
-### Fixed
-
-- An issue where diff/commit searches that would run over more than 50 repositories would incorrectly display a timeout error instead of the correct error suggesting users scope their query to less repositories. [#7090](https://github.com/sourcegraph/sourcegraph/issues/7090)
-
-## 3.10.3
-
-### Fixed
-
-- A critical regression in 3.10.2 which caused diff, commit, and repository searches to timeout. [#7090](https://github.com/sourcegraph/sourcegraph/issues/7090)
-- A critical regression in 3.10.2 which caused "No results" to appear frequently on pages with search results. [#7095](https://github.com/sourcegraph/sourcegraph/pull/7095)
-- An issue where the built-in Grafana Searcher dashboard would show duplicate success/error metrics. [#7078](https://github.com/sourcegraph/sourcegraph/pull/7078)
-
-## 3.10.2
-
-### Added
-
-- Site admins can now use the built-in Grafana Searcher dashboard to observe how many search requests are successful, or resulting in errors or timeouts. [#6756](https://github.com/sourcegraph/sourcegraph/issues/6756)
-
-### Fixed
-
-- When searches timeout, a consistent UI with clear actions like a button to increase the timeout is now returned. [#6754](https://github.com/sourcegraph/sourcegraph/issues/6754)
-- To reduce the chance of search timeouts in some cases, the default indexed search timeout has been raised from 1.5s to 3s. [#6754](https://github.com/sourcegraph/sourcegraph/issues/6754)
-- We now correctly inform users of the limitations of diff/commit search. If a diff/commit search would run over more than 50 repositories, users will be shown an error suggesting they scope their search to less repositories using the `repo:` filter. Global diff/commit search support is being tracked in [#6826](https://github.com/sourcegraph/sourcegraph/issues/6826). [#5519](https://github.com/sourcegraph/sourcegraph/issues/5519)
-
-## 3.10.1
-
-### Added
-
-- Syntax highlighting for Starlark (Bazel) files. [#6827](https://github.com/sourcegraph/sourcegraph/issues/6827)
-
-### Fixed
-
-- The experimental search pagination API no longer times out when large repositories are encountered. [#6384](https://github.com/sourcegraph/sourcegraph/issues/6384) [#6383](https://github.com/sourcegraph/sourcegraph/issues/6383)
-- In single-container deployments, the builtin `postgres_exporter` now correctly respects externally configured databases. This previously caused PostgreSQL metrics to not show up in Grafana when an external DB was in use. [#6735](https://github.com/sourcegraph/sourcegraph/issues/6735)
-
-## 3.10.0
-
-### Added
-
-- Indexed Search supports horizontally scaling. Instances with large number of repositories can update the `replica` field of the `indexed-search` StatefulSet. See [configure indexed-search replica count](https://github.com/sourcegraph/deploy-sourcegraph/blob/master/docs/configure#configure-indexed-search-replica-count). [#5725](https://github.com/sourcegraph/sourcegraph/issues/5725)
-- Bitbucket Cloud external service supports `exclude` config option. [#6035](https://github.com/sourcegraph/sourcegraph/issues/6035)
-- `sourcegraph/server` Docker deployments now support the environment variable `IGNORE_PROCESS_DEATH`. If set to true the container will keep running, even if a subprocess has died. This is useful when manually fixing problems in the container which the container refuses to start. For example a bad database migration.
-- Search input now offers filter type suggestions [#6105](https://github.com/sourcegraph/sourcegraph/pull/6105).
-- The keyboard shortcut Ctrl +Space in the search input shows a list of available filter types.
-- Sourcegraph Kubernetes cluster site admins can configure PostgreSQL by specifying `postgresql.conf` via ConfigMap. [sourcegraph/deploy-sourcegraph#447](https://github.com/sourcegraph/deploy-sourcegraph/pull/447)
-
-### Changed
-
-- **Required Kubernetes Migration:** The [Kubernetes deployment](https://github.com/sourcegraph/deploy-sourcegraph) manifest for indexed-search services has changed from a Normal Service to a Headless Service. This is to enable Sourcegraph to individually resolve indexed-search pods. Services are immutable, so please follow the [migration guide](https://github.com/sourcegraph/deploy-sourcegraph/blob/master/docs/migrate#310).
-- Fields of type `String` in our GraphQL API that contain [JSONC](https://komkom.github.io/) now have the custom scalar type `JSONCString`. [#6209](https://github.com/sourcegraph/sourcegraph/pull/6209)
-- `ZOEKT_HOST` environment variable has been deprecated. Please use `INDEXED_SEARCH_SERVERS` instead. `ZOEKT_HOST` will be removed in 3.12.
-- Directory names on the repository tree page are now shown in bold to improve readability.
-- Added support for Bitbucket Server pull request activity to the [campaign](https://about.sourcegraph.com/product/code-change-management/) burndown chart. When used, this feature leads to more requests being sent to Bitbucket Server, since Sourcegraph needs to keep track of how a pull request's state changes over time. With [the instance scoped webhooks](https://docs.google.com/document/d/1I3Aq1WSUh42BP8KvKr6AlmuCfo8tXYtJu40WzdNT6go/edit) in our [Bitbucket Server plugin](https://github.com/sourcegraph/bitbucket-server-plugin/pull/10) as well as up-coming [heuristical syncing changes](#6389), this additional load will be significantly reduced in the future.
-- Added support for Bitbucket Server pull request activity to the campaign burndown chart. When used, this feature leads to more requests being sent to Bitbucket Server, since Sourcegraph needs to keep track of how a pull request's state changes over time. With [the instance scoped webhooks](https://docs.google.com/document/d/1I3Aq1WSUh42BP8KvKr6AlmuCfo8tXYtJu40WzdNT6go/edit) in our [Bitbucket Server plugin](https://github.com/sourcegraph/bitbucket-server-plugin/pull/10) as well as up-coming [heuristical syncing changes](#6389), this additional load will be significantly reduced in the future.
-
-### Fixed
-
-- Support hyphens in Bitbucket Cloud team names. [#6154](https://github.com/sourcegraph/sourcegraph/issues/6154)
-- Server will run `redis-check-aof --fix` on startup to fix corrupted AOF files. [#651](https://github.com/sourcegraph/sourcegraph/issues/651)
-- Authorization provider configuration errors in external services will be shown as site alerts. [#6061](https://github.com/sourcegraph/sourcegraph/issues/6061)
-
-### Removed
-
-## 3.9.4
-
-### Changed
-
-- The experimental search pagination API's `PageInfo` object now returns a `String` instead of an `ID` for its `endCursor`, and likewise for the `after` search field. Experimental paginated search API users may need to update their usages to replace `ID` cursor types with `String` ones.
-
-### Fixed
-
-- The experimental search pagination API no longer omits a single repository worth of results at the end of the result set. [#6286](https://github.com/sourcegraph/sourcegraph/issues/6286)
-- The experimental search pagination API no longer produces search cursors that can get "stuck". [#6287](https://github.com/sourcegraph/sourcegraph/issues/6287)
-- In literal search mode, searching for quoted strings now works as expected. [#6255](https://github.com/sourcegraph/sourcegraph/issues/6255)
-- In literal search mode, quoted field values now work as expected. [#6271](https://github.com/sourcegraph/sourcegraph/pull/6271)
-- `type:path` search queries now correctly work in indexed search again. [#6220](https://github.com/sourcegraph/sourcegraph/issues/6220)
-
-## 3.9.3
-
-### Changed
-
-- Sourcegraph is now built using Go 1.13.3 [#6200](https://github.com/sourcegraph/sourcegraph/pull/6200).
-
-## 3.9.2
-
-### Fixed
-
-- URI-decode the username, password, and pathname when constructing Postgres connection paramers in lsif-server [#6174](https://github.com/sourcegraph/sourcegraph/pull/6174). Fixes a crashing lsif-server process for users with passwords containing special characters.
-
-## 3.9.1
-
-### Changed
-
-- Reverted [#6094](https://github.com/sourcegraph/sourcegraph/pull/6094) because it introduced a minor security hole involving only Grafana.
- [#6075](https://github.com/sourcegraph/sourcegraph/issues/6075) will be fixed with a different approach.
-
-## 3.9.0
-
-### Added
-
-- Our external service syncing model will stream in new repositories to Sourcegraph. Previously we could only add a repository to our database and clone it once we had synced all information from all external services (to detect deletions and renames). Now adding a repository to an external service configuration should be reflected much sooner, even on large instances. [#5145](https://github.com/sourcegraph/sourcegraph/issues/5145)
-- There is now an easy way for site admins to view and export settings and configuration when reporting a bug. The page for doing so is at /site-admin/report-bug, linked to from the site admin side panel under "Report a bug".
-- An experimental search pagination API to enable better programmatic consumption of search results is now available to try. For more details and known limitations see [the documentation](https://docs.sourcegraph.com/api/graphql/search).
-- Search queries can now be interpreted literally.
- - There is now a dot-star icon in the search input bar to toggle the pattern type of a query between regexp and literal.
- - There is a new `search.defaultPatternType` setting to configure the default pattern type, regexp or literal, for searches.
- - There is a new `patternType:` search token which overrides the `search.defaultPatternType` setting, and the active state of the dot-star icon in determining the pattern type of the query.
- - Old URLs without a patternType URL parameter will be redirected to the same URL with
- patternType=regexp appended to preserve intended behavior.
-- Added support for GitHub organization webhooks to enable faster updates of metadata used by [campaigns](https://about.sourcegraph.com/product/code-change-management/), such as pull requests or issue comments. See the [GitHub webhook documentation](https://docs.sourcegraph.com/admin/external_service/github#webhooks) for instructions on how to enable webhooks.
-- Added support for GitHub organization webhooks to enable faster updates of changeset metadata used by campaigns. See the [GitHub webhook documentation](https://docs.sourcegraph.com/admin/external_service/github#webhooks) for instructions on how to enable webhooks.
-- Added burndown chart to visualize progress of campaigns.
-- Added ability to edit campaign titles and descriptions.
-
-### Changed
-
-- **Recommended Kubernetes Migration:** The [Kubernetes deployment](https://github.com/sourcegraph/deploy-sourcegraph) manifest for indexed-search pods has changed from a Deployment to a StatefulSet. This is to enable future work on horizontally scaling indexed search. To retain your existing indexes there is a [migration guide](https://github.com/sourcegraph/deploy-sourcegraph/blob/master/docs/migrate#39).
-- Allow single trailing hyphen in usernames and org names [#5680](https://github.com/sourcegraph/sourcegraph/pull/5680)
-- Indexed search won't spam the logs on startup if the frontend API is not yet available. [zoekt#30](https://github.com/sourcegraph/zoekt/pull/30), [#5866](https://github.com/sourcegraph/sourcegraph/pull/5866)
-- Search query fields are now case insensitive. For example `repoHasFile:` will now be recognized, not just `repohasfile:`. [#5168](https://github.com/sourcegraph/sourcegraph/issues/5168)
-- Search queries are now interpreted literally by default, rather than as regular expressions. [#5899](https://github.com/sourcegraph/sourcegraph/pull/5899)
-- The `search` GraphQL API field now takes a two new optional parameters: `version` and `patternType`. `version` determines the search syntax version to use, and `patternType` determines the pattern type to use for the query. `version` defaults to "V1", which is regular expression searches by default, if not explicitly passed in. `patternType` overrides the pattern type determined by version.
-- Saved searches have been updated to support the new patternType filter. All existing saved searches have been updated to append `patternType:regexp` to the end of queries to ensure deterministic results regardless of the patternType configurations on an instance. All new saved searches are required to have a `patternType:` field in the query.
-- Allow text selection in search result headers (to allow for e.g. copying filenames)
-
-### Fixed
-
-- Web app: Fix paths with special characters (#6050)
-- Fixed an issue that rendered the search filter `repohascommitafter` unusable in the presence of an empty repository. [#5149](https://github.com/sourcegraph/sourcegraph/issues/5149)
-- An issue where `externalURL` not being configured in the management console could go unnoticed. [#3899](https://github.com/sourcegraph/sourcegraph/issues/3899)
-- Listing branches and refs now falls back to a fast path if there are a large number of branches. Previously we would time out. [#4581](https://github.com/sourcegraph/sourcegraph/issues/4581)
-- Sourcegraph will now ignore the ambiguous ref HEAD if a repository contains it. [#5291](https://github.com/sourcegraph/sourcegraph/issues/5291)
-
-### Removed
-
-## 3.8.2
-
-### Fixed
-
-- Sourcegraph cluster deployments now run a more stable syntax highlighting server which can self-recover from rarer failure cases such as getting stuck at high CPU usage when highlighting some specific files. [#5406](https://github.com/sourcegraph/sourcegraph/issues/5406) This will be ported to single-container deployments [at a later date](https://github.com/sourcegraph/sourcegraph/issues/5841).
-
-## 3.8.1
-
-### Added
-
-- Add `nameTransformations` setting to GitLab external service to help transform repository name that shows up in the Sourcegraph UI.
-
-## 3.8.0
-
-### Added
-
-- A toggle button for browser extension to quickly enable/disable the core functionality without actually enable/disable the entire extension in the browser extension manager.
-- Tabs to easily toggle between the different search result types on the search results page.
-
-### Changed
-
-- A `hardTTL` setting was added to the [Bitbucket Server `authorization` config](https://docs.sourcegraph.com/admin/external_service/bitbucketserver#configuration). This setting specifies a duration after which a user's cached permissions must be updated before any user action is authorized. This contrasts with the already existing `ttl` setting which defines a duration after which a user's cached permissions will get updated in the background, but the previously cached (and now stale) permissions are used to authorize any user action occuring before the update concludes. If your previous `ttl` value is larger than the default of the new `hardTTL` setting (i.e. **3 days**), you must change the `ttl` to be smaller or, `hardTTL` to be larger.
-
-### Fixed
-
-### Removed
-
-- The `statusIndicator` feature flag has been removed from the site configuration's `experimentalFeatures` section. The status indicator has been enabled by default since 3.6.0 and you can now safely remove the feature flag from your configuration.
-- Public usage is now only available on Sourcegraph.com. Because many core features rely on persisted user settings, anonymous usage leads to a degraded experience for most users. As a result, for self-hosted private instances it is preferable for all users to have accounts. But on sourcegraph.com, users will continue to have to opt-in to accounts, despite the degraded UX.
-
-## 3.7.2
-
-### Added
-
-- A [migration guide for Sourcegraph v3.7+](https://docs.sourcegraph.com/admin/migration/3_7).
-
-### Fixed
-
-- Fixed an issue where some repositories with very long symbol names would fail to index after v3.7.
-- We now retain one prior search index version after an upgrade, meaning upgrading AND downgrading from v3.6.2 to v3.7.2 is now 100% seamless and involves no downtime or negated search performance while repositories reindex. Please refer to the [v3.7+ migration guide](https://docs.sourcegraph.com/admin/migration/3_7) for details.
-
-## 3.7.1
-
-### Fixed
-
-- When re-indexing repositories, we now continue to serve from the old index in the meantime. Thus, you can upgrade to 3.7.1 without downtime.
-- Indexed symbol search is now faster, as we've fixed a performance issue that occurred when many repositories without any symbols existed.
-- Indexed symbol search now uses less disk space when upgrading directly to v3.7.1 as we properly remove old indexes.
-
-## 3.7.0
-
-### Added
-
-- Indexed search now supports symbol queries. This feature will require re-indexing all repositories. This will increase the disk and memory usage of indexed search by roughly 10%. You can disable the feature with the configuration `search.index.symbols.enabled`. [#3534](https://github.com/sourcegraph/sourcegraph/issues/3534)
-- Multi-line search now works for non-indexed search. [#4518](https://github.com/sourcegraph/sourcegraph/issues/4518)
-- When using `SITE_CONFIG_FILE` and `EXTSVC_CONFIG_FILE`, you [may now also specify e.g. `SITE_CONFIG_ALLOW_EDITS=true`](https://docs.sourcegraph.com/admin/config/advanced_config_file) to allow edits to be made to the config in the application which will be overwritten on the next process restart. [#4912](https://github.com/sourcegraph/sourcegraph/issues/4912)
-
-### Changed
-
-- In the [GitHub external service config](https://docs.sourcegraph.com/admin/external_service/github#configuration) it's now possible to specify `orgs` without specifying `repositoryQuery` or `repos` too.
-- Out-of-the-box TypeScript code intelligence is much better with an updated ctags version with a built-in TypeScript parser.
-- Sourcegraph uses Git protocol version 2 for increased efficiency and performance when fetching data from compatible code hosts.
-- Searches with `repohasfile:` are faster at finding repository matches. [#4833](https://github.com/sourcegraph/sourcegraph/issues/4833).
-- Zoekt now runs with GOGC=50 by default, helping to reduce the memory consumption of Sourcegraph. [#3792](https://github.com/sourcegraph/sourcegraph/issues/3792)
-- Upgraded the version of Go in use, which improves security for publicly accessible Sourcegraph instances.
-
-### Fixed
-
-- Disk cleanup in gitserver is now done in terms of percentages to fix [#5059](https://github.com/sourcegraph/sourcegraph/issues/5059).
-- Search results now correctly show highlighting of matches with runes like 'İ' that lowercase to runes with a different number of bytes in UTF-8 [#4791](https://github.com/sourcegraph/sourcegraph/issues/4791).
-- Fixed an issue where search would sometimes crash with a panic due to a nil pointer. [#5246](https://github.com/sourcegraph/sourcegraph/issues/5246)
-
-### Removed
-
-## 3.6.2
-
-### Fixed
-
-- Fixed Phabricator external services so they won't stop the syncing process for repositories when Phabricator doesn't return clone URLs. [#5101](https://github.com/sourcegraph/sourcegraph/pull/5101)
-
-## 3.6.1
-
-### Added
-
-- New site config option `branding.brandName` configures the brand name to display in the Sourcegraph \ element.
-- `repositoryPathPattern` option added to the "Other" external service type for repository name customization.
-
-## 3.6.0
-
-### Added
-
-- The `github.exclude` setting in [GitHub external service config](https://docs.sourcegraph.com/admin/external_service/github#configuration) additionally allows you to specify regular expressions with `{"pattern": "regex"}`.
-- A new [`quicklinks` setting](https://docs.sourcegraph.com/user/personalization/quick_links) allows adding links to be displayed on the homepage and search page for all users (or users in an organization).
-- Compatibility with the [Sourcegraph for Bitbucket Server](https://github.com/sourcegraph/bitbucket-server-plugin) plugin.
-- Support for [Bitbucket Cloud](https://bitbucket.org) as an external service.
-
-### Changed
-
-- Updating or creating an external service will no longer block until the service is synced.
-- The GraphQL fields `Repository.createdAt` and `Repository.updatedAt` are deprecated and will be removed in 3.8. Now `createdAt` is always the current time and updatedAt is always null.
-- In the [GitHub external service config](https://docs.sourcegraph.com/admin/external_service/github#configuration) and [Bitbucket Server external service config](https://docs.sourcegraph.com/admin/external_service/bitbucket_server#permissions) `repositoryQuery` is now only required if `repos` is not set.
-- Log messages from query-runner when saved searches fail now include the raw query as part of the message.
-- The status indicator in the navigation bar is now enabled by default
-- Usernames and org names can now contain the `.` character. [#4674](https://github.com/sourcegraph/sourcegraph/issues/4674)
-
-### Fixed
-
-- Commit searches now correctly highlight unicode characters, for example 加. [#4512](https://github.com/sourcegraph/sourcegraph/issues/4512)
-- Symbol searches now show the number of symbol matches rather than the number of file matches found. [#4578](https://github.com/sourcegraph/sourcegraph/issues/4578)
-- Symbol searches with truncated results now show a `+` on the results page to signal that some results have been omitted. [#4579](https://github.com/sourcegraph/sourcegraph/issues/4579)
-
-## 3.5.4
-
-### Fixed
-
-- Fixed Phabricator external services so they won't stop the syncing process for repositories when Phabricator doesn't return clone URLs. [#5101](https://github.com/sourcegraph/sourcegraph/pull/5101)
-
-## 3.5.2
-
-### Changed
-
-- Usernames and org names can now contain the `.` character. [#4674](https://github.com/sourcegraph/sourcegraph/issues/4674)
-
-### Added
-
-- Syntax highlighting requests that fail are now logged and traced. A new Prometheus metric `src_syntax_highlighting_requests` allows monitoring and alerting. [#4877](https://github.com/sourcegraph/sourcegraph/issues/4877).
-- Sourcegraph's SAML authentication now supports RSA PKCS#1 v1.5. [#4869](https://github.com/sourcegraph/sourcegraph/pull/4869)
-
-### Fixed
-
-- Increased nginx proxy buffer size to fix issue where login failed when SAML AuthnRequest was too large. [#4849](https://github.com/sourcegraph/sourcegraph/pull/4849)
-- A regression in 3.3.8 where `"corsOrigin": "*"` was improperly forbidden. [#4424](https://github.com/sourcegraph/sourcegraph/issues/4424)
-
-## 3.5.1
-
-### Added
-
-- A new [`quicklinks` setting](https://docs.sourcegraph.com/user/personalization/quick_links) allows adding links to be displayed on the homepage and search page for all users (or users in an organization).
-- Site admins can prevent the icon in the top-left corner of the screen from spinning on hovers by setting `"branding": { "disableSymbolSpin": true }` in their site configuration.
-
-### Fixed
-
-- Fix `repository.language` GraphQL field (previously returned empty for most repositories).
-
-## 3.5.0
-
-### Added
-
-- Indexed search now supports matching consecutive literal newlines, with queries like e.g. `foo\nbar.*` to search over multiple lines. [#4138](https://github.com/sourcegraph/sourcegraph/issues/4138)
-- The `orgs` setting in [GitHub external service config](https://docs.sourcegraph.com/admin/external_service/github) allows admins to select all repositories from the specified organizations to be synced.
-- A new experimental search filter `repohascommitafter:"30 days ago"` allows users to exclude stale repositories that don't contain commits (to the branch being searched over) past a specified date from their search query.
-- The `authorization` setting in the [Bitbucket Server external service config](https://docs.sourcegraph.com/admin/external_service/bitbucket_server#permissions) enables Sourcegraph to enforce the repository permissions defined in Bitbucket Server.
-- A new, experimental status indicator in the navigation bar allows admins to quickly see whether the configured repositories are up to date or how many are currently being updated in the background. You can enable the status indicator with the following site configuration: `"experimentalFeatures": { "statusIndicator": "enabled" }`.
-- A new search filter `repohasfile` allows users to filter results to just repositories containing a matching file. For example `ubuntu file:Dockerfile repohasfile:\.py$` would find Dockerfiles mentioning Ubuntu in repositories that contain Python files. [#4501](https://github.com/sourcegraph/sourcegraph/pull/4501)
-
-### Changed
-
-- The saved searches UI has changed. There is now a Saved searches page in the user and organizations settings area. A saved search appears in the settings area of the user or organization it is associated with.
-
-### Removed
-
-### Fixed
-
-- Fixed repository search patterns which contain `.*`. Previously our optimizer would ignore `.*`, which in some cases would lead to our repository search excluding some repositories from the results.
-- Fixed an issue where the Phabricator native integration would be broken on recent Phabricator versions. This fix depends on v1.2 of the [Phabricator extension](https://github.com/sourcegraph/phabricator-extension).
-- Fixed an issue where the "Empty repository" banner would be shown on a repository page when starting to clone a repository.
-- Prevent data inconsistency on cached archives due to restarts. [#4366](https://github.com/sourcegraph/sourcegraph/pull/4366)
-- On the /extensions page, the UI is now less ambiguous when an extension has not been activated. [#4446](https://github.com/sourcegraph/sourcegraph/issues/4446)
-
-## 3.4.5
-
-### Fixed
-
-- Fixed an issue where syntax highlighting taking too long would result in errors or wait long amounts of time without properly falling back to plaintext rendering after a few seconds. [#4267](https://github.com/sourcegraph/sourcegraph/issues/4267) [#4268](https://github.com/sourcegraph/sourcegraph/issues/4268) (this fix was intended to be in 3.4.3, but was in fact left out by accident)
-- Fixed an issue with `sourcegraph/server` Docker deployments where syntax highlighting could produce `server closed idle connection` errors. [#4269](https://github.com/sourcegraph/sourcegraph/issues/4269) (this fix was intended to be in 3.4.3, but was in fact left out by accident)
-- Fix `repository.language` GraphQL field (previously returned empty for most repositories).
-
-## 3.4.4
-
-### Fixed
-
-- Fixed an out of bounds error in the GraphQL repository query. [#4426](https://github.com/sourcegraph/sourcegraph/issues/4426)
-
-## 3.4.3
-
-### Fixed
-
-- Improved performance of the /site-admin/repositories page significantly (prevents timeouts). [#4063](https://github.com/sourcegraph/sourcegraph/issues/4063)
-- Fixed an issue where Gitolite repositories would be inaccessible to non-admin users after upgrading to 3.3.0+ from an older version. [#4263](https://github.com/sourcegraph/sourcegraph/issues/4263)
-- Repository names are now treated as case-sensitive, fixing an issue where users saw `pq: duplicate key value violates unique constraint \"repo_name_unique\"` [#4283](https://github.com/sourcegraph/sourcegraph/issues/4283)
-- Repositories containing submodules not on Sourcegraph will now load without error [#2947](https://github.com/sourcegraph/sourcegraph/issues/2947)
-- HTTP metrics in Prometheus/Grafana now distinguish between different types of GraphQL requests.
-
-## 3.4.2
-
-### Fixed
-
-- Fixed incorrect wording in site-admin onboarding. [#4127](https://github.com/sourcegraph/sourcegraph/issues/4127)
-
-## 3.4.1
-
-### Added
-
-- You may now specify `DISABLE_CONFIG_UPDATES=true` on the management console to prevent updates to the critical configuration. This is useful when loading critical config via a file using `CRITICAL_CONFIG_FILE` on the frontend.
-
-### Changed
-
-- When `EXTSVC_CONFIG_FILE` or `SITE_CONFIG_FILE` are specified, updates to external services and the site config are now prevented.
-- Site admins will now see a warning if creating or updating an external service was successful but the process could not complete entirely due to an ephemeral error (such as GitHub API search queries running into timeouts and returning incomplete results).
-
-### Removed
-
-### Fixed
-
-- Fixed an issue where `EXTSVC_CONFIG_FILE` being specified would incorrectly cause a panic.
-- Fixed an issue where user/org/global settings from old Sourcegraph versions (2.x) could incorrectly be null, leading to various errors.
-- Fixed an issue where an ephemeral infrastructure error (`tar/archive: invalid tar header`) would fail a search.
-
-## 3.4.0
-
-### Added
-
-- When `repositoryPathPattern` is configured, paths from the full long name will redirect to the configured name. Extensions will function with the configured name. `repositoryPathPattern` allows administrators to configure "nice names". For example `sourcegraph.example.com/github.com/foo/bar` can configured to be `sourcegraph.example.com/gh/foo/bar` with `"repositoryPathPattern": "gh/{nameWithOwner}"`. (#462)
-- Admins can now turn off site alerts for patch version release updates using the `alerts.showPatchUpdates` setting. Alerts will still be shown for major and minor version updates.
-- The new `gitolite.exclude` setting in [Gitolite external service config](https://docs.sourcegraph.com/admin/external_service/gitolite#configuration) allows you to exclude specific repositories by their Gitolite name so that they won't be mirrored. Upon upgrading, previously "disabled" repositories will be automatically migrated to this exclusion list.
-- The new `aws_codecommit.exclude` setting in [AWS CodeCommit external service config](https://docs.sourcegraph.com/admin/external_service/aws_codecommit#configuration) allows you to exclude specific repositories by their AWS name or ID so that they won't be synced. Upon upgrading, previously "disabled" repositories will be automatically migrated to this exclusion list.
-- Added a new, _required_ `aws_codecommit.gitCredentials` setting to the [AWS CodeCommit external service config](https://docs.sourcegraph.com/admin/external_service/aws_codecommit#configuration). These Git credentials are required to create long-lived authenticated clone URLs for AWS CodeCommit repositories. For more information about Git credentials, see the AWS CodeCommit documentation: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_ssh-keys.html#git-credentials-code-commit. For detailed instructions on how to create the credentials in IAM, see this page: https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-gc.html
-- Added support for specifying a URL formatted `gitolite.host` setting in [Gitolite external service config](https://docs.sourcegraph.com/admin/external_service/gitolite#configuration) (e.g. `ssh://git@gitolite.example.org:2222/`), in addition to the already supported SCP like format (e.g `git@gitolite.example.org`)
-- Added support for overriding critical, site, and external service configurations via files. Specify `CRITICAL_CONFIG_FILE=critical.json`, `SITE_CONFIG_FILE=site.json`, and/or `EXTSVC_CONFIG_FILE=extsvc.json` on the `frontend` container to do this.
-
-### Changed
-
-- Kinds of external services in use are now included in [server pings](https://docs.sourcegraph.com/admin/pings).
-- Bitbucket Server: An actual Bitbucket icon is now used for the jump-to-bitbucket action on repository pages instead of the previously generic icon.
-- Default config for GitHub, GitHub Enterprise, GitLab, Bitbucket Server, and AWS Code Commit external services has been revised to make it easier for first time admins.
-
-### Removed
-
-- Fields related to Repository enablement have been deprecated. Mutations are now NOOPs, and for repositories returned the value is always true for Enabled. The enabled field and mutations will be removed in 3.6. Mutations: `setRepositoryEnabled`, `setAllRepositoriesEnabled`, `updateAllMirrorRepositories`, `deleteRepository`. Query parameters: `repositories.enabled`, `repositories.disabled`. Field: `Repository.enabled`.
-- Global saved searches are now deprecated. Any existing global saved searches have been assigned to the Sourcegraph instance's first site admin's user account.
-- The `search.savedQueries` configuration option is now deprecated. Existing entries remain in user and org settings for backward compatibility, but are unused as saved searches are now stored in the database.
-
-### Fixed
-
-- Fixed a bug where submitting a saved query without selecting the location would fail for non-site admins (#3628).
-- Fixed settings editors only having a few pixels height.
-- Fixed a bug where browser extension and code review integration usage stats were not being captured on the site-admin Usage Stats page.
-- Fixed an issue where in some rare cases PostgreSQL starting up slowly could incorrectly trigger a panic in the `frontend` service.
-- Fixed an issue where the management console password would incorrectly reset to a new secure one after a user account was created.
-- Fixed a bug where gitserver would leak file descriptors when performing common operations.
-- Substantially improved the performance of updating Bitbucket Server external service configurations on instances with thousands of repositories, going from e.g. several minutes to about a minute for ~20k repositories (#4037).
-- Fully resolved the search performance regression in v3.2.0, restoring performance of search back to the same levels it was before changes made in v3.2.0.
-- Fix a bug where using a repo search filter with the prefix `github.com` only searched for repos whose name starts with `github.com`, even though no `^` was specified in the search filter. (#4103)
-- Fixed an issue where files that fail syntax highlighting would incorrectly render an error instead of gracefully falling back to their plaintext form.
-
-## 3.3.9
-
-### Added
-
-- Syntax highlighting requests that fail are now logged and traced. A new Prometheus metric `src_syntax_highlighting_requests` allows monitoring and alerting. [#4877](https://github.com/sourcegraph/sourcegraph/issues/4877).
-
-## 3.3.8
-
-### Fixed
-
-- Fully resolved the search performance regression in v3.2.0, restoring performance of search back to the same levels it was before changes made in v3.2.0.
-- Fixed an issue where files that fail syntax highlighting would incorrectly render an error instead of gracefully falling back to their plaintext form.
-- Fixed an issue introduced in v3.3 where Sourcegraph would under specific circumstances incorrectly have to re-clone and re-index repositories from Bitbucket Server and AWS CodeCommit.
-
-## 3.3.7
-
-### Added
-
-- The `bitbucketserver.exclude` setting in [Bitbucket Server external service config](https://docs.sourcegraph.com/admin/external_service/bitbucketserver#configuration) additionally allows you to exclude repositories matched by a regular expression (so that they won't be synced).
-
-### Changed
-
-### Removed
-
-### Fixed
-
-- Fixed a major indexed search performance regression that occurred in v3.2.0. (#3685)
-- Fixed an issue where Sourcegraph would fail to update repositories on some instances (`pq: duplicate key value violates unique constraint "repo_external_service_unique_idx"`) (#3680)
-- Fixed an issue where Sourcegraph would not exclude unavailable Bitbucket Server repositories. (#3772)
-
-## 3.3.6
-
-## Changed
-
-- All 24 language extensions are enabled by default.
-
-## 3.3.5
-
-## Changed
-
-- Indexed search is now enabled by default for new Docker deployments. (#3540)
-
-### Removed
-
-- Removed smart-casing behavior from search.
-
-### Fixed
-
-- Removes corrupted archives in the searcher cache and tries to populate the cache again instead of returning an error.
-- Fixed a bug where search scopes would not get merged, and only the lowest-level list of search scopes would appear.
-- Fixed an issue where repo-updater was slower in performing its work which could sometimes cause other performance issues. https://github.com/sourcegraph/sourcegraph/pull/3633
-
-## 3.3.4
-
-### Fixed
-
-- Fixed bundling of the Phabricator integration assets in the Sourcegraph docker image.
-
-## 3.3.3
-
-### Fixed
-
-- Fixed bug that prevented "Find references" action from being completed in the activation checklist.
-
-## 3.3.2
-
-### Fixed
-
-- Fixed an issue where the default `bitbucketserver.repositoryQuery` would not be created on migration from older Sourcegraph versions. https://github.com/sourcegraph/sourcegraph/issues/3591
-- Fixed an issue where Sourcegraph would add deleted repositories to the external service configuration. https://github.com/sourcegraph/sourcegraph/issues/3588
-- Fixed an issue where a repo-updater migration would hit code host rate limits. https://github.com/sourcegraph/sourcegraph/issues/3582
-- The required `bitbucketserver.username` field of a [Bitbucket Server external service configuration](https://docs.sourcegraph.com/admin/external_service/bitbucketserver#configuration), if unset or empty, is automatically migrated to match the user part of the `url` (if defined). https://github.com/sourcegraph/sourcegraph/issues/3592
-- Fixed a panic that would occur in indexed search / the frontend when a search error ocurred. https://github.com/sourcegraph/sourcegraph/issues/3579
-- Fixed an issue where the repo-updater service could become deadlocked while performing a migration. https://github.com/sourcegraph/sourcegraph/issues/3590
-
-## 3.3.1
-
-### Fixed
-
-- Fixed a bug that prevented external service configurations specifying client certificates from working (#3523)
-
-## 3.3.0
-
-### Added
-
-- In search queries, treat `foo(` as `foo\(` and `bar[` as `bar\[` rather than failing with an error message.
-- Enterprise admins can now customize the appearance of the homepage and search icon.
-- A new settings property `notices` allows showing custom informational messages on the homepage and at the top of each page. The `motd` property is deprecated and its value is automatically migrated to the new `notices` property.
-- The new `gitlab.exclude` setting in [GitLab external service config](https://docs.sourcegraph.com/admin/external_service/gitlab#configuration) allows you to exclude specific repositories matched by `gitlab.projectQuery` and `gitlab.projects` (so that they won't be synced). Upon upgrading, previously "disabled" repositories will be automatically migrated to this exclusion list.
-- The new `gitlab.projects` setting in [GitLab external service config](https://docs.sourcegraph.com/admin/external_service/gitlab#configuration) allows you to select specific repositories to be synced.
-- The new `bitbucketserver.exclude` setting in [Bitbucket Server external service config](https://docs.sourcegraph.com/admin/external_service/bitbucketserver#configuration) allows you to exclude specific repositories matched by `bitbucketserver.repositoryQuery` and `bitbucketserver.repos` (so that they won't be synced). Upon upgrading, previously "disabled" repositories will be automatically migrated to this exclusion list.
-- The new `bitbucketserver.repos` setting in [Bitbucket Server external service config](https://docs.sourcegraph.com/admin/external_service/bitbucketserver#configuration) allows you to select specific repositories to be synced.
-- The new required `bitbucketserver.repositoryQuery` setting in [Bitbucket Server external service configuration](https://docs.sourcegraph.com/admin/external_service/bitbucketserver#configuration) allows you to use Bitbucket API repository search queries to select repos to be synced. Existing configurations will be migrate to have it set to `["?visibility=public", "?visibility=private"]` which is equivalent to the previous implicit behaviour that this setting supersedes.
-- "Quick configure" buttons for common actions have been added to the config editor for all external services.
-- "Quick configure" buttons for common actions have been added to the management console.
-- Site-admins now receive an alert every day for the seven days before their license key expires.
-- The user menu (in global nav) now lists the user's organizations.
-- All users on an instance now see a non-dismissible alert when when there's no license key in use and the limit of free user accounts is exceeded.
-- All users will see a dismissible warning about limited search performance and accuracy on when using the sourcegraph/server Docker image with more than 100 repositories enabled.
-
-### Changed
-
-- Indexed searches that time out more consistently report a timeout instead of erroneously saying "No results."
-- The symbols sidebar now only shows symbols defined in the current file or directory.
-- The dynamic filters on search results pages will now display `lang:` instead of `file:` filters for language/file-extension filter suggestions.
-- The default `github.repositoryQuery` of a [GitHub external service configuration](https://docs.sourcegraph.com/admin/external_service/github#configuration) has been changed to `["none"]`. Existing configurations that had this field unset will be migrated to have the previous default explicitly set (`["affiliated", "public"]`).
-- The default `gitlab.projectQuery` of a [GitLab external service configuration](https://docs.sourcegraph.com/admin/external_service/gitlab#configuration) has been changed to `["none"]`. Existing configurations that had this field unset will be migrated to have the previous default explicitly set (`["?membership=true"]`).
-- The default value of `maxReposToSearch` is now unlimited (was 500).
-- The default `github.repositoryQuery` of a [GitHub external service configuration](https://docs.sourcegraph.com/admin/external_service/github#configuration) has been changed to `["none"]` and is now a required field. Existing configurations that had this field unset will be migrated to have the previous default explicitly set (`["affiliated", "public"]`).
-- The default `gitlab.projectQuery` of a [GitLab external service configuration](https://docs.sourcegraph.com/admin/external_service/gitlab#configuration) has been changed to `["none"]` and is now a required field. Existing configurations that had this field unset will be migrated to have the previous default explicitly set (`["?membership=true"]`).
-- The `bitbucketserver.username` field of a [Bitbucket Server external service configuration](https://docs.sourcegraph.com/admin/external_service/bitbucketserver#configuration) is now **required**. This field is necessary to authenticate with the Bitbucket Server API with either `password` or `token`.
-- The settings and account pages for users and organizations are now combined into a single tab.
-
-### Removed
-
-- Removed the option to show saved searches on the Sourcegraph homepage.
-
-### Fixed
-
-- Fixed an issue where the site-admin repositories page `Cloning`, `Not Cloned`, `Needs Index` tabs were very slow on instances with thousands of repositories.
-- Fixed an issue where failing to syntax highlight a single file would take down the entire syntax highlighting service.
-
-## 3.2.6
-
-### Fixed
-
-- Fully resolved the search performance regression in v3.2.0, restoring performance of search back to the same levels it was before changes made in v3.2.0.
-
-## 3.2.5
-
-### Fixed
-
-- Fixed a major indexed search performance regression that occurred in v3.2.0. (#3685)
-
-## 3.2.4
-
-### Fixed
-
-- Fixed bundling of the Phabricator integration assets in the Sourcegraph docker image.
-
-## 3.2.3
-
-### Fixed
-
-- Fixed https://github.com/sourcegraph/sourcegraph/issues/3336.
-- Clearer error message when a repository sync fails due to the inability to clone a repository.
-- Rewrite '@' character in Gitolite repository names to '-', which permits them to be viewable in the UI.
-
-## 3.2.2
-
-### Changed
-
-- When using an external Zoekt instance (specified via the `ZOEKT_HOST` environment variable), sourcegraph/server no longer spins up a redundant internal Zoekt instance.
-
-## 3.2.1
-
-### Fixed
-
-- Jaeger tracing, once enabled, can now be configured via standard [environment variables](https://github.com/jaegertracing/jaeger-client-go/blob/v2.14.0/README#environment-variables).
-- Fixed an issue where some search and zoekt errors would not be logged.
-
-## 3.2.0
-
-### Added
-
-- Sourcegraph can now automatically use the system's theme.
- To enable, open the user menu in the top right and make sure the theme dropdown is set to "System".
- This is currently supported on macOS Mojave with Safari Technology Preview 68 and later.
-- The `github.exclude` setting was added to the [GitHub external service config](https://docs.sourcegraph.com/admin/external_service/github#configuration) to allow excluding repositories yielded by `github.repos` or `github.repositoryQuery` from being synced.
-
-### Changed
-
-- Symbols search is much faster now. After the initial indexing, you can expect code intelligence to be nearly instant no matter the size of your repository.
-- Massively reduced the number of code host API requests Sourcegraph performs, which caused rate limiting issues such as slow search result loading to appear.
-- The [`corsOrigin`](https://docs.sourcegraph.com/admin/config/site_config) site config property is no longer needed for integration with GitHub, GitLab, etc., via the [Sourcegraph browser extension](https://docs.sourcegraph.com/integration/browser_extension). Only the [Phabricator extension](https://github.com/sourcegraph/phabricator-extension) requires it.
-
-### Fixed
-
-- Fixed a bug where adding a search scope that adds a `repogroup` filter would cause invalid queries if `repogroup:sample` was already part of the query.
-- An issue where errors during displaying search results would not be displayed.
-
-### Removed
-
-- The `"updateScheduler2"` experiment is now the default and it's no longer possible to configure.
-
-## 3.1.2
-
-### Added
-
-- The `search.contextLines` setting was added to allow configuration of the number of lines of context to be displayed around search results.
-
-### Changed
-
-- Massively reduced the number of code host API requests Sourcegraph performs, which caused rate limiting issues such as slow search result loading to appear.
-- Improved logging in various situations where Sourcegraph would potentially hit code host API rate limits.
-
-### Fixed
-
-- Fixed an issue where search results loading slowly would display a `Cannot read property "lastChild" of undefined` error.
-
-## 3.1.1
-
-### Added
-
-- Query builder toggle (open/closed) state is now retained.
-
-### Fixed
-
-- Fixed an issue where single-term values entered into the "Exact match" field in the query builder were not getting wrapped in quotes.
-
-## 3.1.0
-
-### Added
-
-- Added Docker-specific help text when running the Sourcegraph docker image in an environment with an sufficient open file descriptor limit.
-- Added syntax highlighting for Kotlin and Dart.
-- Added a management console environment variable to disable HTTPS, see [the docs](https://docs.sourcegraph.com/admin/management_console#can-i-disable-https-on-the-management-console) for more information.
-- Added `auth.disableUsernameChanges` to critical configuration to prevent users from changing their usernames.
-- Site admins can query a user by email address or username from the GraphQL API.
-- Added a search query builder to the main search page. Click "Use search query builder" to open the query builder, which is a form with separate inputs for commonly used search keywords.
-
-### Changed
-
-- File match search results now show full repository name if there are results from mirrors on different code hosts (e.g. github.com/sourcegraph/sourcegraph and gitlab.com/sourcegraph/sourcegraph)
-- Search queries now use "smart case" by default. Searches are case insensitive unless you use uppercase letters. To explicitly set the case, you can still use the `case` field (e.g. `case:yes`, `case:no`). To explicitly set smart case, use `case:auto`.
-
-### Fixed
-
-- Fixed an issue where the management console would improperly regenerate the TLS cert/key unless `CUSTOM_TLS=true` was set. See the documentation for [how to use your own TLS certificate with the management console](https://docs.sourcegraph.com/admin/management_console#how-can-i-use-my-own-tls-certificates-with-the-management-console).
-
-## 3.0.1
-
-### Added
-
-- Symbol search now supports Elixir, Haskell, Kotlin, Scala, and Swift
-
-### Changed
-
-- Significantly optimized how file search suggestions are provided when using indexed search (cluster deployments).
-- Both the `sourcegraph/server` image and the [Kubernetes deployment](https://github.com/sourcegraph/deploy-sourcegraph) manifests ship with Postgres `11.1`. For maximum compatibility, however, the minimum supported version remains `9.6`. The upgrade procedure is mostly automated for existing deployments. Please refer to [this page](https://docs.sourcegraph.com/admin/postgres) for detailed instructions.
-
-### Removed
-
-- The deprecated `auth.disableAccessTokens` site config property was removed. Use `auth.accessTokens` instead.
-- The `disableBrowserExtension` site config property was removed. [Configure nginx](https://docs.sourcegraph.com/admin/nginx) instead to block clients (if needed).
-
-## 3.0.0
-
-See the changelog entries for 3.0.0 beta releases and our [3.0](https://docs.sourcegraph.com/admin/migration/3_0) upgrade guide if you are upgrading from 2.x.
-
-## 3.0.0-beta.4
-
-### Added
-
-- Basic code intelligence for the top 10 programming languages works out of the box without any configuration. [TypeScript/JavaScript](https://sourcegraph.com/extensions/sourcegraph/typescript), [Python](https://sourcegraph.com/extensions/sourcegraph/python), [Java](https://sourcegraph.com/extensions/sourcegraph/java), [Go](https://sourcegraph.com/extensions/sourcegraph/go), [C/C++](https://sourcegraph.com/extensions/sourcegraph/cpp), [Ruby](https://sourcegraph.com/extensions/sourcegraph/ruby), [PHP](https://sourcegraph.com/extensions/sourcegraph/php), [C#](https://sourcegraph.com/extensions/sourcegraph/csharp), [Shell](https://sourcegraph.com/extensions/sourcegraph/shell), and [Scala](https://sourcegraph.com/extensions/sourcegraph/scala) are enabled by default, and you can find more in the [extension registry](https://sourcegraph.com/extensions?query=category%3A"Programming+languages").
-
-## 3.0.0-beta.3
-
-- Fixed an issue where the site admin is redirected to the start page instead of being redirected to the repositories overview page after deleting a repo.
-
-## 3.0.0-beta
-
-### Added
-
-- Repositories can now be queried by a git clone URL through the GraphQL API.
-- A new Explore area is linked from the top navigation bar (when the `localStorage.explore=true;location.reload()` feature flag is enabled).
-- Authentication via GitHub is now supported. To enable, add an item to the `auth.providers` list with `type: "github"`. By default, GitHub identities must be linked to an existing Sourcegraph user account. To enable new account creation via GitHub, use the `allowSignup` option in the `GitHubConnection` config.
-- Authentication via GitLab is now supported. To enable, add an item to the `auth.providers` list with `type: "gitlab"`.
-- GitHub repository permissions are supported if authentication via GitHub is enabled. See the
- documentation for the `authorization` field of the `GitHubConnection` configuration.
-- The repository settings mirroring page now shows when a repo is next scheduled for an update (requires experiment `"updateScheduler2": "enabled"`).
-- Configured repositories are periodically scheduled for updates using a new algorithm. You can disable the new algorithm with the following site configuration: `"experimentalFeatures": { "updateScheduler2": "disabled" }`. If you do so, please file a public issue to describe why you needed to disable it.
-- When using HTTP header authentication, [`stripUsernameHeaderPrefix`](https://docs.sourcegraph.com/admin/auth/#username-header-prefixes) field lets an admin specify a prefix to strip from the HTTP auth header when converting the header value to a username.
-- Sourcegraph extensions whose package.json contains `"wip": true` are considered [work-in-progress extensions](https://docs.sourcegraph.com/extensions/authoring/publishing#wip-extensions) and are indicated as such to avoid users accidentally using them.
-- Information about user survey submissions and a chart showing weekly active users is now displayed on the site admin Overview page.
-- A new GraphQL API field `UserEmail.isPrimary` was added that indicates whether an email is the user's primary email.
-- The filters bar in the search results page can now display filters from extensions.
-- Extensions' `activate` functions now receive a `sourcegraph.ExtensionContext` parameter (i.e., `export function activate(ctx: sourcegraph.ExtensionContext): void { ... }`) to support deactivation and running multiple extensions in the same process.
-- Users can now request an Enterprise trial license from the site init page.
-- When searching, a filter button `case:yes` will now appear when relevant. This helps discovery and makes it easier to use our case-sensitive search syntax.
-- Extensions can now report progress in the UI through the `withProgress()` extension API.
-- When calling `editor.setDecorations()`, extensions must now provide an instance of `TextDocumentDecorationType` as first argument. This helps gracefully displaying decorations from several extensions.
-
-### Changed
-
-- The Postgres database backing Sourcegraph has been upgraded from 9.4 to 11.1. Existing Sourcegraph users must conduct an [upgrade procedure](https://docs.sourcegraph.com/admin/postgres_upgrade)
-- Code host configuration has moved out of the site config JSON into the "External services" area of the site admin web UI. Sourcegraph instances will automatically perform a one time migration of existing data in the site config JSON. After the migration these keys can be safely deleted from the site config JSON: `awsCodeCommit`, `bitbucketServer`, `github`, `gitlab`, `gitolite`, and `phabricator`.
-- Site and user usage statistics are now visible to all users. Previously only site admins (and users, for their own usage statistics) could view this information. The information consists of aggregate counts of actions such as searches, page views, etc.
-- The Git blame information shown at the end of a line is now provided by the [Git extras extension](https://sourcegraph.com/extensions/sourcegraph/git-extras). You must add that extension to continue using this feature.
-- The `appURL` site configuration option was renamed to `externalURL`.
-- The repository and directory pages now show all entries together instead of showing files and (sub)directories separately.
-- Extensions no longer can specify titles (in the `title` property in the `package.json` extension manifest). Their extension ID (such as `alice/myextension`) is used.
-
-### Fixed
-
-- Fixed an issue where the site admin License page showed a count of current users, rather than the max number of users over the life of the license.
-- Fixed number formatting issues on site admin Overview and Survey Response pages.
-- Fixed resolving of git clone URLs with `git+` prefix through the GraphQL API
-- Fixed an issue where the graphql Repositories endpoint would order by a field which was not indexed. Times on Sourcegraph.com went from 10s to 200ms.
-- Fixed an issue where whitespace was not handled properly in environment variable lists (`SYMBOLS_URL`, `SEARCHER_URL`).
-- Fixed an issue where clicking inside the repository popover or clicking "Show more" would dismiss the popover.
-
-### Removed
-
-- The `siteID` site configuration option was removed because it is no longer needed. If you previously specified this in site configuration, a new, random site ID will be generated upon server startup. You can safely remove the existing `siteID` value from your site configuration after upgrading.
-- The **Info** panel was removed. The information it presented can be viewed in the hover.
-- The top-level `repos.list` site configuration was removed in favour of each code-host's equivalent options,
- now configured via the new _External Services UI_ available at `/site-admin/external-services`. Equivalent options in code hosts configuration:
- - GitHub via [`github.repos`](https://docs.sourcegraph.com/admin/site_config/all#repos-array)
- - Gitlab via [`gitlab.projectQuery`](https://docs.sourcegraph.com/admin/site_config/all#projectquery-array)
- - Phabricator via [`phabricator.repos`](https://docs.sourcegraph.com/admin/site_config/all#phabricator-array)
- - [Other external services](https://docs.sourcegraph.com/admin/repo/add_from_other_external_services)
-- Removed the `httpStrictTransportSecurity` site configuration option. Use [nginx configuration](https://docs.sourcegraph.com/admin/nginx) for this instead.
-- Removed the `tls.letsencrypt` site configuration option. Use [nginx configuration](https://docs.sourcegraph.com/admin/nginx) for this instead.
-- Removed the `tls.cert` and `tls.key` site configuration options. Use [nginx configuration](https://docs.sourcegraph.com/admin/nginx) for this instead.
-- Removed the `httpToHttpsRedirect` and `experimentalFeatures.canonicalURLRedireect` site configuration options. Use [nginx configuration](https://docs.sourcegraph.com/admin/nginx) for these instead.
-- Sourcegraph no longer requires access to `/var/run/docker.sock`.
-
-## 2.13.6
-
-### Added
-
-- The `/-/editor` endpoint now accepts a `hostname_patterns` URL parameter, which specifies a JSON
- object mapping from hostname to repository name pattern. This serves as a hint to Sourcegraph when
- resolving git clone URLs to repository names. The name pattern is the same style as is used in
- code host configurations. The default value is `{hostname}/{path}`.
-
-## 2.13.5
-
-### Fixed
-
-- Fixed another issue where Sourcegraph would try to fetch more than the allowed number of repositories from AWS CodeCommit.
-
-## 2.13.4
-
-### Changed
-
-- The default for `experimentalFeatures.canonicalURLRedirect` in site config was changed back to `disabled` (to avoid [#807](https://github.com/sourcegraph/sourcegraph/issues/807)).
-
-## 2.13.3
-
-### Fixed
-
-- Fixed an issue that would cause the frontend health check endpoint `/healthz` to not respond. This only impacts Kubernetes deployments.
-- Fixed a CORS policy issue that caused requests to be rejected when they come from origins not in our [manifest.json](https://sourcegraph.com/github.com/sourcegraph/sourcegraph/-/blob/browser/src/extension/manifest.spec.json#L72) (i.e. requested via optional permissions by the user).
-- Fixed an issue that prevented `repositoryQuery` from working correctly on GitHub enterprise instances.
-
-## 2.13.2
-
-### Fixed
-
-- Fixed an issue where Sourcegraph would try to fetch more than the allowed number of repositories from AWS CodeCommit.
-
-## 2.13.1
-
-### Changed
-
-- The timeout when running `git ls-remote` to determine if a remote url is cloneable has been increased from 5s to 30s.
-- Git commands now use [version 2 of the Git wire protocol](https://opensource.googleblog.com/2018/05/introducing-git-protocol-version-2.html), which should speed up certain operations (e.g. `git ls-remote`, `git fetch`) when communicating with a v2 enabled server.
-
-## 2.13.0
-
-### Added
-
-- A new site config option `search.index.enabled` allows toggling on indexed search.
-- Search now uses [Sourcegraph extensions](https://docs.sourcegraph.com/extensions) that register `queryTransformer`s.
-- GitLab repository permissions are now supported. To enable this, you will need to set the `authz`
- field in the `GitLabConnection` configuration object and ensure that the access token set in the
- `token` field has both `sudo` and `api` scope.
-
-### Changed
-
-- When the `DEPLOY_TYPE` environment variable is incorrectly specified, Sourcegraph now shuts down and logs an error message.
-- The `experimentalFeatures.canonicalURLRedirect` site config property now defaults to `enabled`. Set it to `disabled` to disable redirection to the `appURL` from other hosts.
-- Updating `maxReposToSearch` site config no longer requires a server restart to take effect.
-- The update check page no longer shows an error if you are using an insiders build. Insiders builds will now notify site administrators that updates are available 40 days after the release date of the installed build.
-- The `github.repositoryQuery` site config property now accepts arbitrary GitHub repository searches.
-
-### Fixed
-
-- The user account sidebar "Password" link (to the change-password form) is now shown correctly.
-- Fixed an issue where GitHub rate limits were underutilized if the remaining
- rate limit dropped below 150.
-- Fixed an issue where GraphQL field `elapsedMilliseconds` returned invalid value on empty searches
-- Editor extensions now properly search the selection as a literal string, instead of incorrectly using regexp.
-- Fixed a bug where editing and deleting global saved searches was not possible.
-- In index search, if the search regex produces multiline matches, search results are still processed per line and highlighted correctly.
-- Go-To-GitHub and Go-To-GitLab buttons now link to the right branch, line and commit range.
-- Go-to-GitHub button links to default branch when no rev is given.
-- The close button in the panel header stays located on the top.
-- The Phabricator icon is now displayed correctly.
-- The view mode button in the BlobPage now shows the correct view mode to switch to.
-
-### Removed
-
-- The experimental feature flag to disable the new repo update scheduler has been removed.
-- The `experimentalFeatures.configVars` feature flag was removed.
-- The `experimentalFeatures.multipleAuthProviders` feature flag was removed because the feature is now always enabled.
-- The following deprecated auth provider configuration properties were removed: `auth.provider`, `auth.saml`, `auth.openIDConnect`, `auth.userIdentityHTTPHeader`, and `auth.allowSignup`. Use `auth.providers` for all auth provider configuration. (If you were still using the deprecated properties and had no `auth.providers` set, all access to your instance will be rejected until you manually set `auth.providers`.)
-- The deprecated site configuration properties `search.scopes` and `settings` were removed. Define search scopes and settings in global settings in the site admin area instead of in site configuration.
-- The `pendingContents` property has been removed from our GraphQL schema.
-- The **Explore** page was replaced with a **Repositories** search link in the top navigation bar.
-
-## 2.12.3
-
-### Fixed
-
-- Fixed an error that prevented users without emails from submitting satisfaction surveys.
-
-## 2.12.2
-
-### Fixed
-
-- Fixed an issue where private GitHub Enterprise repositories were not fetched.
-
-## 2.12.1
-
-### Fixed
-
-- We use GitHub's REST API to query affliated repositories. This API has wider support on older GitHub enterprise versions.
-- Fixed an issue that prevented users without email addresses from signing in (https://github.com/sourcegraph/sourcegraph/issues/426).
-
-## 2.12.0
-
-### Changed
-
-- Reduced the size of in-memory data structured used for storing search results. This should reduce the backend memory usage of large result sets.
-- Code intelligence is now provided by [Sourcegraph extensions](https://docs.sourcegraph.com/extensions). The extension for each language in the site configuration `langservers` property is automatically enabled.
-- Support for multiple authentication providers is now enabled by default. To disable it, set the `experimentalFeatures.multipleAuthProviders` site config option to `"disabled"`. This only applies to Sourcegraph Enterprise.
-- When using the `http-header` auth provider, valid auth cookies (from other auth providers that are currently configured or were previously configured) are now respected and will be used for authentication. These auth cookies also take precedence over the `http-header` auth. Previously, the `http-header` auth took precedence.
-- Bitbucket Server username configuration is now used to clone repositories if the Bitbucket Server API does not set a username.
-- Code discussions: On Sourcegraph.com / when `discussions.abuseProtection` is enabled in the site config, rate limits to thread creation, comment creation, and @mentions are now applied.
-
-### Added
-
-- Search syntax for filtering archived repositories. `archived:no` will exclude archived repositories from search results, `archived:only` will search over archived repositories only. This applies for GitHub and GitLab repositories.
-- A Bitbucket Server option to exclude personal repositories in the event that you decide to give an admin-level Bitbucket access token to Sourcegraph and do not want to create a bot account. See https://docs.sourcegraph.com/integration/bitbucket_server#excluding-personal-repositories for more information.
-- Site admins can now see when users of their Sourcegraph instance last used it via a code host integration (e.g. Sourcegraph browser extensions). Visit the site admin Analytics page (e.g. https://sourcegraph.example.com/site-admin/analytics) to view this information.
-- A new site config option `extensions.allowRemoteExtensions` lets you explicitly specify the remote extensions (from, e.g., Sourcegraph.com) that are allowed.
-- Pings now include a total count of user accounts.
-
-### Fixed
-
-- Files with the gitattribute `export-ignore` are no longer excluded for language analysis and search.
-- "Discard changes?" confirmation popup doesn't pop up every single time you try to navigate to a new page after editting something in the site settings page anymore.
-- Fixed an issue where Git repository URLs would sometimes be logged, potentially containing e.g. basic auth tokens.
-- Fixed date formatting on the site admin Analytics page.
-- File names of binary and large files are included in search results.
-
-### Removed
-
-- The deprecated environment variables `SRC_SESSION_STORE_REDIS` and `REDIS_MASTER_ENDPOINT` are no longer used to configure alternative redis endpoints. For more information, see "[using external services with Sourcegraph](https://docs.sourcegraph.com/admin/external_services)".
-
-## 2.11.1
-
-### Added
-
-- A new site config option `git.cloneURLToRepositoryName` specifies manual mapping from Git clone URLs to Sourcegraph repository names. This is useful, for example, for Git submodules that have local clone URLs.
-
-### Fixed
-
-- Slack notifications for saved searches have been fixed.
-
-## 2.11.0
-
-### Changed
-
-### Added
-
-- Support for ACME "tls-alpn-01" challenges to obtain LetsEncrypt certificates. Previously Sourcegraph only supported ACME "http-01" challenges which required port 80 to be accessible.
-- gitserver periodically removes stale lock files that git can leave behind.
-- Commits with empty trees no longer return 404.
-- Clients (browser/editor extensions) can now query configuration details from the `ClientConfiguration` GraphQL API.
-- The config field `auth.accessTokens.allow` allows or restricts use of access tokens. It can be set to one of three values: "all-users-create" (the default), "none" (all access tokens are disabled), and "site-admin-create" (access tokens are enabled, but only site admins can create new access tokens). The field `auth.disableAccessTokens` is now deprecated in favor of this new field.
-- A webhook endpoint now exists to trigger repository updates. For example, `curl -XPOST -H 'Authorization: token $ACCESS_TOKEN' $SOURCEGRAPH_ORIGIN/.api/repos/$REPO_URI/-/refresh`.
-- Git submodules entries in the file tree now link to the submodule repository.
-
-### Fixed
-
-- An issue / edge case where the Code Intelligence management admin page would incorrectly show language servers as `Running` when they had been removed from Docker.
-- Log level is respected in lsp-proxy logs.
-- Fixed an error where text searches could be routed to a faulty search worker.
-- Gitolite integration should correctly detect names which Gitolite would consider to be patterns, and not treat them as repositories.
-- repo-updater backs off fetches on a repo that's failing to fetch.
-- Attempts to add a repo with an empty string for the name are checked for and ignored.
-- Fixed an issue where non-site-admin authenticated users could modify global settings (not site configuration), other organizations' settings, and other users' settings.
-- Search results are rendered more eagerly, resulting in fewer blank file previews
-- An issue where automatic code intelligence would fail to connect to the underlying `lsp` network, leading to `dial tcp: lookup lang on 0.0.0.0:53: no such host` errors.
-- More useful error messages from lsp-proxy when a language server can't get a requested revision of a repository.
-- Creation of a new user with the same name as an existing organization (and vice versa) is prevented.
-
-### Removed
-
-## 2.10.5
-
-### Fixed
-
-- Slack notifications for saved searches have been fixed.
-
-## 2.10.4
-
-### Fixed
-
-- Fixed an issue that caused the frontend to return a HTTP 500 and log an error message like:
- ```
- lvl=eror msg="ui HTTP handler error response" method=GET status_code=500 error="Post http://127.0.0.1:3182/repo-lookup: context canceled"
- ```
-
-## 2.10.3
-
-### Fixed
-
-- The SAML AuthnRequest signature when using HTTP redirect binding is now computed using a URL query string with correct ordering of parameters. Previously, the ordering was incorrect and caused errors when the IdP was configured to check the signature in the AuthnRequest.
-
-## 2.10.2
-
-### Fixed
-
-- SAML IdP-initiated login previously failed with the IdP set a RelayState value. This now works.
-
-## 2.10.1
-
-### Changed
-
-- Most `experimentalFeatures` in the site configuration now respond to configuration changes live, without requiring a server restart. As usual, you will be prompted for a restart after saving your configuration changes if one is required.
-- Gravatar image avatars are no longer displayed for committers.
-
-## 2.10.0
-
-### Changed
-
-- In the file tree, if a directory that contains only a single directory is expanded, its child directory is now expanded automatically.
-
-### Fixed
-
-- Fixed an issue where `sourcegraph/server` would not start code intelligence containers properly when the `sourcegraph/server` container was shut down non-gracefully.
-- Fixed an issue where the file tree would return an error when navigating between repositories.
-
-## 2.9.4
-
-### Changed
-
-- Repo-updater has a new and improved scheduler for periodic repo fetches. If you have problems with it, you can revert to the old behavior by adding `"experimentalFeatures": { "updateScheduler": "disabled" }` to your `config.json`.
-- A once-off migration will run changing the layout of cloned repos on disk. This should only affect installations created January 2018 or before. There should be no user visible changes.
-- Experimental feature flag "updateScheduler" enables a smarter and less spammy algorithm for automatic repository updates.
-- It is no longer possible to disable code intelligence by unsetting the LSP_PROXY environment variable. Instead, code intelligence can be disabled per language on the site admin page (e.g. https://sourcegraph.example.com/site-admin/code-intelligence).
-- Bitbucket API requests made by Sourcegraph are now under a self-enforced API rate limit (since Bitbucket Server does not have a concept of rate limiting yet). This will reduce any chance of Sourcegraph slowing down or causing trouble for Bitbucket Server instances connected to it. The limits are: 7,200 total requests/hr, with a bucket size / maximum burst size of 500 requests.
-- Global, org, and user settings are now validated against the schema, so invalid settings will be shown in the settings editor with a red squiggly line.
-- The `http-header` auth provider now supports being used with other auth providers (still only when `experimentalFeatures.multipleAuthProviders` is `true`).
-- Periodic fetches of Gitolite-hosted repositories are now handled internally by repo-updater.
-
-### Added
-
-- The `log.sentry.dsn` field in the site config makes Sourcegraph log application errors to a Sentry instance.
-- Two new repository page hotkeys were added: r to open the repositories menu and v to open the revision selector.
-- Repositories are periodically (~45 days) recloned from the codehost. The codehost can be relied on to give an efficient packing. This is an alternative to running a memory and CPU intensive git gc and git prune.
-- The `auth.sessionExpiry` field sets the session expiration age in seconds (defaults to 90 days).
-
-### Fixed
-
-- Fixed a bug in the API console that caused it to display as a blank page in some cases.
-- Fixed cases where GitHub rate limit wasn't being respected.
-- Fixed a bug where scrolling in references, history, etc. file panels was not possible in Firefox.
-- Fixed cases where gitserver directory structure migration could fail/crash.
-- Fixed "Generate access token" link on user settings page. Previously, this link would 404.
-- Fixed a bug where the search query was not updated in the search bar when searching from the homepage.
-- Fixed a possible crash in github-proxy.
-- Fixed a bug where file matching for diff search was case sensitive by default.
-
-### Removed
-
-- `SOURCEGRAPH_CONFIG` environment variable has been removed. Site configuration is always read from and written to disk. You can configure the location by providing `SOURCEGRAPH_CONFIG_FILE`. The default path is `/etc/sourcegraph/config.json`.
-
-## 2.9.3
-
-### Changed
-
-- The search results page will merge duplicated lines of context.
-- The following deprecated site configuration properties have been removed: `github[].preemptivelyClone`, `gitOriginMap`, `phabricatorURL`, `githubPersonalAccessToken`, `githubEnterpriseURL`, `githubEnterpriseCert`, and `githubEnterpriseAccessToken`.
-- The `settings` field in the site config file is deprecated and will not be supported in a future release. Site admins should move those settings (if any) to global settings (in the site admin UI). Global settings are preferred to site config file settings because the former can be applied without needing to restart/redeploy the Sourcegraph server or cluster.
-
-### Fixed
-
-- Fixed a goroutine leak which occurs when search requests are canceled.
-- Console output should have fewer spurious line breaks.
-- Fixed an issue where it was not possible to override the `StrictHostKeyChecking` SSH option in the SSH configuration.
-- Cross-repository code intelligence indexing for non-Go languages is now working again (originally broken in 2.9.2).
-
-## 2.9.1
-
-### Fixed
-
-- Fixed an issue where saving an organization's configuration would hang indefinitely.
-
-## 2.9.0
-
-### Changed
-
-- Hover tooltips were rewritten to fix a couple of issues and are now much more robust, received a new design and show more information.
-- The `max:` search flag was renamed to `count:` in 2.8.8, but for backward compatibility `max:` has been added back as a deprecated alias for `count:`.
-- Drastically improved the performance / load time of the Code Intelligence site admin page.
-
-### Added
-
-- The site admin code intelligence page now displays an error or reason whenever language servers are unable to be managed from the UI or Sourcegraph API.
-- The ability to directly specify the root import path of a repository via `.sourcegraph/config.json` in the repo root, instead of relying on the heuristics of the Go language server to detect it.
-
-### Fixed
-
-- Configuring Bitbucket Server now correctly suppresses the the toast message "Configure repositories and code hosts to add to Sourcegraph."
-- A bug where canonical import path comments would not be detected by the Go language server's heuristics under `cmd/` folders.
-- Fixed an issue where a repository would only be refreshed on demand by certain user actions (such as a page reload) and would otherwise not be updated when expected.
-- If a code host returned a repository-not-found or unauthorized error (to `repo-updater`) for a repository that previously was known to Sourcegraph, then in some cases a misleading "Empty repository" screen was shown. Now the repository is displayed as though it still existed, using cached data; site admins must explicitly delete repositories on Sourcegraph after they have been deleted on the code host.
-- Improved handling of GitHub API rate limit exhaustion cases. Cached repository metadata and Git data will be used to provide full functionality during this time, and log messages are more informative. Previously, in some cases, repositories would become inaccessible.
-- Fixed an issue where indexed search would sometimes not indicate that there were more results to show for a given file.
-- Fixed an issue where the code intelligence admin page would never finish loading language servers.
-
-## 2.9.0-pre0
-
-### Changed
-
-- Search scopes have been consolidated into the "Filters" bar on the search results page.
-- Usernames and organization names of up to 255 characters are allowed. Previously the max length was 38.
-
-### Fixed
-
-- The target commit ID of a Git tag object (i.e., not lightweight Git tag refs) is now dereferenced correctly. Previously the tag object's OID was given.
-- Fixed an issue where AWS Code Commit would hit the rate limit.
-- Fixed an issue where dismissing the search suggestions dropdown did not unfocus previously highlighted suggestions.
-- Fixed an issue where search suggestions would appear twice.
-- Indexed searches now return partial results if they timeout.
-- Git repositories with files whose paths contain `.git` path components are now usable (via indexed and non-indexed search and code intelligence). These corrupt repositories are rare and generally were created by converting some other VCS repository to Git (the Git CLI will forbid creation of such paths).
-- Various diff search performance improvements and bug fixes.
-- New Phabricator extension versions would used cached stylesheets instead of the upgraded version.
-- Fixed an issue where hovers would show an error for Rust and C/C++ files.
-
-### Added
-
-- The `sourcegraph/server` container now emits the most recent log message when redis terminates to make it easier to debug why redis stopped.
-- Organization invites (which allow users to invite other users to join organizations) are significantly improved. A new accept-invitation page was added.
-- The new help popover allows users to easily file issues in the Sourcegraph public issue tracker and view documentation.
-- An issue where Java files would be highlighted incorrectly if they contained JavaDoc blocks with an uneven number of opening/closing `*`s.
-
-### Removed
-
-- The `secretKey` site configuration value is no longer needed. It was only used for generating tokens for inviting a user to an organization. The invitation is now stored in the database associated with the recipient, so a secret token is no longer needed.
-- The `experimentalFeatures.searchTimeoutParameter` site configuration value has been removed. It defaulted to `enabled` in 2.8 and it is no longer possible to disable.
-
-### Added
-
-- Syntax highlighting for:
- - TOML files (including Go `Gopkg.lock` and Rust `Cargo.lock` files).
- - Rust files.
- - GraphQL files.
- - Protobuf files.
- - `.editorconfig` files.
-
-## 2.8.9
-
-### Changed
-
-- The "invite user" site admin page was moved to a sub-page of the users page (`/site-admin/users/new`).
-- It is now possible for a site admin to create a new user without providing an email address.
-
-### Fixed
-
-- Checks for whether a repo is cloned will no longer exhaust open file pools over time.
-
-### Added
-
-- The Phabricator extension shows code intelligence status and supports enabling / disabling code intelligence for files.
-
-## 2.8.8
-
-### Changed
-
-- Queries for repositories (in the explore, site admin repositories, and repository header dropdown) are matched on case-insensitive substrings, not using fuzzy matching logic.
-- HTTP Authorization headers with an unrecognized scheme are ignored; they no longer cause the HTTP request to be rejected with HTTP 401 Unauthorized and an "Invalid Authorization header." error.
-- Renamed the `max` search flag to `count`. Searches that specify `count:` will fetch at least that number of results, or the full result set.
-- Bumped `lsp-proxy`'s `initialize` timeout to 3 minutes for every language.
-- Search results are now sorted by repository and file name.
-- More easily accessible "Show more" button at the top of the search results page.
-- Results from user satisfaction surveys are now always hosted locally and visible to admins. The `"experimentalFeatures": { "hostSurveysLocally" }` config option has been deprecated.
-- If the OpenID Connect authentication provider reports that a user's email address is not verified, the authentication attempt will fail.
-
-### Fixed
-
-- Fixed an issue where the search results page would not update its title.
-- The session cookie name is now `sgs` (not `sg-session`) so that Sourcegraph 2.7 and Sourcegraph 2.8 can be run side-by-side temporarily during a rolling update without clearing each other's session cookies.
-- Fixed the default hostnames of the C# and R language servers
-- Fixed an issue where deleting an organization prevented the creation of organizations with the name of the deleted organization.
-- Non-UTF8 encoded files (e.g. ISO-8859-1/Latin1, UTF16, etc) are now displayed as text properly rather than being detected as binary files.
-- Improved error message when lsp-proxy's initalize timeout occurs
-- Fixed compatibility issues and added [instructions for using Microsoft ADFS 2.1 and 3.0 for SAML authentication](https://docs.sourcegraph.com/admin/auth/saml_with_microsoft_adfs).
-- Fixed an issue where external accounts associated with deleted user accounts would still be returned by the GraphQL API. This caused the site admin external accounts page to fail to render in some cases.
-- Significantly reduced the number of code host requests for non github.com or gitlab.com repositories.
-
-### Added
-
-- The repository revisions popover now shows the target commit's last-committed/authored date for branches and tags.
-- Setting the env var `INSECURE_SAML_LOG_TRACES=1` on the server (or the `sourcegraph-frontend` pod in Kubernetes) causes all SAML requests and responses to be logged, which helps with debugging SAML.
-- Site admins can now view user satisfaction surveys grouped by user, in addition to chronological order, and aggregate summary values (including the average score and the net promoter score over the last 30 days) are now displayed.
-- The site admin overview page displays the site ID, the primary admin email, and premium feature usage information.
-- Added Haskell as an experimental language server on the code intelligence admin page.
-
-## 2.8.0
-
-### Changed
-
-- `gitMaxConcurrentClones` now also limits the concurrency of updates to repos in addition to the initial clone.
-- In the GraphQL API, `site.users` has been renamed to `users`, `site.orgs` has been renamed to `organizations`, and `site.repositories` has been renamed to `repositories`.
-- An authentication provider must be set in site configuration (see [authentication provider documentation](https://docs.sourcegraph.com/admin/auth)). Previously the server defaulted to builtin auth if none was set.
-- If a process dies inside the Sourcegraph container the whole container will shut down. We suggest operators configure a [Docker Restart Policy](https://docs.docker.com/config/containers/start-containers-automatically/#restart-policy-details) or a [Kubernetes Restart Policy](https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy). Previously the container would operate in a degraded mode if a process died.
-- Changes to the `auth.public` site config are applied immediately in `sourcegraph/server` (no restart needed).
-- The new search timeout behavior is now enabled by default. Set `"experimentalFeatures": {"searchTimeoutParameter": "disabled"}` in site config to disable it.
-- Search includes files up to 1MB (previous limit was 512KB for unindexed search and 128KB for indexed search).
-- Usernames and email addresses reported by OpenID Connect and SAML auth providers are now trusted, and users will sign into existing Sourcegraph accounts that match on the auth provider's reported username or email.
-- The repository sidebar file tree is much, much faster on massive repositories (200,000+ files)
-- The SAML authentication provider was significantly improved. Users who were signed in using SAML previously will need to reauthenticate via SAML next time they visit Sourcegraph.
-- The SAML `serviceProviderCertificate` and `serviceProviderPrivateKey` site config properties are now optional.
-
-### Fixed
-
-- Fixed an issue where Index Search status page failed to render.
-- User data on the site admin Analytics page is now paginated, filterable by a user's recent activity, and searchable.
-- The link to the root of a repository in the repository header now preserves the revision you're currently viewing.
-- When using the `http-header` auth provider, signin/signup/signout links are now hidden.
-- Repository paths beginning with `go/` are no longer reservered by Sourcegraph.
-- Interpret `X-Forwarded-Proto` HTTP header when `httpToHttpsRedirect` is set to `load-balanced`.
-- Deleting a user account no longer prevents the creation of a new user account with the same username and/or association with authentication provider account (SAML/OpenID/etc.)
-- It is now possible for a user to verify an email address that was previously associated with now-deleted user account.
-- Diff searches over empty repositories no longer fail (this was not an issue for Sourcegraph cluster deployments).
-- Stray `tmp_pack_*` files from interrupted fetches should now go away.
-- When multiple `repo:` tokens match the same repo, process @revspec requirements from all of them, not just the first one in the search.
-
-### Removed
-
-- The `ssoUserHeader` site config property (deprecated since January 2018) has been removed. The functionality was moved to the `http-header` authentication provider.
-- The experiment flag `showMissingReposEnabled`, which defaulted to enabled, has been removed so it is no longer possible to disable this feature.
-- Event-level telemetry has been completely removed from self-hosted Sourcegraph instances. As a result, the `disableTelemetry` site configuration option has been deprecated. The new site-admin Pings page clarifies the only high-level telemetry being sent to Sourcegraph.com.
-- The deprecated `adminUsernames` site config property (deprecated since January 2018) has been removed because it is no longer necessary. Site admins can designate other users as site admins in the site admin area, and the first user to sign into a new instance always becomes a site admin (even when using an external authentication provider).
-
-### Added
-
-- The new repository contributors page (linked from the repository homepage) displays the top Git commit authors in a repository, with filtering options.
-- Custom language servers in the site config may now specify a `metadata` property containing things like homepage/docs/issues URLs for the language server project, as well as whether or not the language server should be considered experimental (not ready for prime-time). This `metadata` will be displayed in the UI to better communicate the status of a language server project.
-- Access tokens now have scopes (which define the set of operations they permit). All access tokens still provide full control of all resources associated with the user account (the `user:all` scope, which is now explicitly displayed).
-- The new access token scope `site-admin:sudo` allows the holder to perform any action as any other user. Only site admins may create this token.
-- Links to Sourcegraph's changelog have been added to the site admin Updates page and update alert.
-- If the site configuration is invalid or uses deprecated properties, a global alert will be shown to all site admins.
-- There is now a code intelligence status indicator when viewing files. It contains information about the capabailities of the language server that is providing code intelligence for the file.
-- Java code intelligence can now be enabled for repositories that aren't automatically supported using a
- `javaconfig.json` file. For Gradle plugins, this file can be generated using
- the [Javaconfig Gradle plugin](https://docs.sourcegraph.com/extensions/language_servers/java#gradle-execution).
-- The new `auth.providers` site config is an array of authentication provider objects. Currently only 1 auth provider is supported. The singular `auth.provider` is deprecated.
-- Users authenticated with OpenID Connect are now able to sign out of Sourcegraph (if the provider supports token revocation or the end-session endpoint).
-- Users can now specify the number of days, weeks, and months of site activity to query through the GraphQL API.
-- Added 14 new experimental language servers on the code intelligence admin page.
-- Added `httpStrictTransportSecurity` site configuration option to customize the Strict-Transport-Security HTTP header. It defaults to `max-age=31536000` (one year).
-- Added `nameIDFormat` in the `saml` auth provider to set the SAML NameID format. The default changed from transient to persistent.
-- (This feature has been removed.) Experimental env var expansion in site config JSON: set `SOURCEGRAPH_EXPAND_CONFIG_VARS=1` to replace `${var}` or `$var` (based on environment variables) in any string value in site config JSON (except for JSON object property names).
-- The new (optional) SAML `serviceProviderIssuer` site config property (in an `auth.providers` array entry with `{"type":"saml", ...}`) allows customizing the SAML Service Provider issuer name.
-- The site admin area now has an "Auth" section that shows the enabled authentication provider(s) and users' external accounts.
-
-## 2.7.6
-
-### Fixed
-
-- If a user's account is deleted, session cookies for that user are no longer considered valid.
-
-## 2.7.5
-
-### Changed
-
-- When deploying Sourcegraph to Kubernetes, RBAC is now used by default. Most Kubernetes clusters require it. See the Kubernetes installation instructions for more information (including disabling if needed).
-- Increased git ssh connection timeout to 30s from 7s.
-- The Phabricator integration no longer requires staging areas, but using them is still recommended because it improves performance.
-
-### Fixed
-
-- Fixed an issue where language servers that were not enabled would display the "Restart" button in the Code Intelligence management panel.
-- Fixed an issue where the "Update" button in the Code Intelligence management panel would be displayed inconsistently.
-- Fixed an issue where toggling a dynamic search scope would not also remove `@rev` (if specified)
-- Fixed an issue where where modes that can only be determined by the full filename (not just the file extension) of a path weren't supported (Dockerfiles are the first example of this).
-- Fixed an issue where the GraphiQL console failed when variables are specified.
-- Indexed search no longer maintains its own git clones. For Kubernetes cluster deployments, this significantly reduces disk size requirements for the indexed-search pod.
-- Fixed an issue where language server Docker containers would not be automatically restarted if they crashed (`sourcegraph/server` only).
-- Fixed an issue where if the first user on a site authenticated via SSO, the site would remain stuck in uninitialized mode.
-
-### Added
-
-- More detailed progress information is displayed on pages that are waiting for repositories to clone.
-- Admins can now see charts with daily, weekly, and monthly unique user counts by visiting the site-admin Analytics page.
-- Admins can now host and see results from Sourcegraph user satisfaction surveys locally by setting the `"experimentalFeatures": { "hostSurveysLocally": "enabled"}` site config option. This feature will be enabled for all instances once stable.
-- Access tokens are now supported for all authentication providers (including OpenID Connect and SAML, which were previously not supported).
-- The new `motd` setting (in global, organization, and user settings) displays specified messages at the top of all pages.
-- Site admins may now view all access tokens site-wide (for all users) and revoke tokens from the new access tokens page in the site admin area.
-
-## 2.7.0
-
-### Changed
-
-- Missing repositories no longer appear as search results. Instead, a count of repositories that were not found is displayed above the search results. Hovering over the count will reveal the names of the missing repositories.
-- "Show more" on the search results page will now reveal results that have already been fetched (if such results exist) without needing to do a new query.
-- The bottom panel (on a file) now shows more tabs, including docstrings, multiple definitions, references (as before), external references grouped by repository, implementations (if supported by the language server), and file history.
-- The repository sidebar file tree is much faster on massive repositories (200,000+ files)
-
-### Fixed
-
-- Searches no longer block if the index is unavailable (e.g. after the index pod restarts). Instead, it respects the normal search timeout and reports the situation to the user if the index is not yet available.
-- Repository results are no longer returned for filters that are not supported (e.g. if `file:` is part of the search query)
-- Fixed an issue where file tree elements may be scrolled out of view on page load.
-- Fixed an issue that caused "Could not ensure repository updated" log messages when trying to update a large number of repositories from gitolite.
-- When using an HTTP authentication proxy (`"auth.provider": "http-header"`), usernames are now properly normalized (special characters including `.` replaced with `-`). This fixes an issue preventing users from signing in if their username contained these special characters.
-- Fixed an issue where the site-admin Updates page would incorrectly report that update checking was turned off when `telemetryDisabled` was set, even as it continued to report new updates.
-- `repo:` filters that match multiple repositories and contain a revision specifier now correctly return partial results even if some of the matching repositories don't have a matching revision.
-- Removed hardcoded list of supported languages for code intelligence. Any language can work now and support is determined from the server response.
-- Fixed an issue where modifying `config.json` on disk would not correctly mark the server as needing a restart.
-- Fixed an issue where certain diff searches (with very sparse matches in a repository's history) would incorrectly report no results found.
-- Fixed an issue where the `langservers` field in the site-configuration didn't require both the `language` and `address` field to be specified for each entry
-
-### Added
-
-- Users (and site admins) may now create and manage access tokens to authenticate API clients. The site config `auth.disableAccessTokens` (renamed to `auth.accessTokens` in 2.11) disables this new feature. Access tokens are currently only supported when using the `builtin` and `http-header` authentication providers (not OpenID Connect or SAML).
-- User and site admin management capabilities for user email addresses are improved.
-- The user and organization management UI has been greatly improved. Site admins may now administer all organizations (even those they aren't a member of) and may edit profile info and configuration for all users.
-- If SSO is enabled (via OpenID Connect or SAML) and the SSO system provides user avatar images and/or display names, those are now used by Sourcegraph.
-- Enable new search timeout behavior by setting `"experimentalFeatures": { "searchTimeoutParameter": "enabled"}` in your site config.
- - Adds a new `timeout:` parameter to customize the timeout for searches. It defaults to 10s and may not be set higher than 1m.
- - The value of the `timeout:` parameter is a string that can be parsed by [time.Duration](https://golang.org/pkg/time/#ParseDuration) (e.g. "100ms", "2s").
- - When `timeout:` is not provided, search optimizes for retuning results as soon as possible and will include slower kinds of results (e.g. symbols) only if they are found quickly.
- - When `timeout:` is provided, all result kinds are given the full timeout to complete.
-- A new user settings tokens page was added that allows users to obtain a token that they can use to authenticate to the Sourcegraph API.
-- Code intelligence indexes are now built for all repositories in the background, regardless of whether or not they are visited directly by a user.
-- Language servers are now automatically enabled when visiting a repository. For example, visiting a Go repository will now automatically download and run the relevant Docker container for Go code intelligence.
- - This change only affects when Sourcegraph is deployed using the `sourcegraph/server` Docker image (not using Kubernetes).
- - You will need to use the new `docker run` command at https://docs.sourcegraph.com/#quick-install in order for this feature to be enabled. Otherwise, you will receive errors in the log about `/var/run/docker.sock` and things will work just as they did before. See https://docs.sourcegraph.com/extensions/language_servers for more information.
-- The site admin Analytics page will now display the number of "Code Intelligence" actions each user has made, including hovers, jump to definitions, and find references, on the Sourcegraph webapp or in a code host integration or extension.
-- An experimental cross repository jump to definition which consults the OSS index on Sourcegraph.com. This is disabled by default; use `"experimentalFeatures": { "jumpToDefOSSIndex": "enabled" }` in your site configuration to enable it.
-- Users can now view Git branches, tags, and commits, and compare Git branches and revisions on Sourcegraph. (The code host icon in the header takes you to the commit on the code host.)
-- A new admin panel allows you to view and manage language servers. For Docker deployments, it allows you to enable/disable/update/restart language servers at the click of a button. For cluster deployments, it shows the current status of language servers.
-- Users can now tweet their feedback about Sourcegraph when clicking on the feedback smiley located in the navbar and filling out a Twitter feedback form.
-- A new button in the repository header toggles on/off the Git history panel for the current file.
-
-## 2.6.8
-
-### Bug fixes
-
-- Searches of `type:repo` now work correctly with "Show more" and the `max` parameter.
-- Fixes an issue where the server would crash if the DB was not available upon startup.
-
-## 2.6.7
-
-### Added
-
-- The duration that the frontend waits for the PostgreSQL database to become available is now configurable with the `DB_STARTUP_TIMEOUT` env var (the value is any valid Go duration string).
-- Dynamic search filters now suggest exclusions of Go test files, vendored files and node_modules files.
-
-## 2.6.6
-
-### Added
-
-- Authentication to Bitbucket Server using username-password credentials is now supported (in the `bitbucketServer` site config `username`/`password` options), for servers running Bitbucket Server version 2.4 and older (which don't support personal access tokens).
-
-## 2.6.5
-
-### Added
-
-- The externally accessible URL path `/healthz` performs a basic application health check, returning HTTP 200 on success and HTTP 500 on failure.
-
-### Behavior changes
-
-- Read-only forks on GitHub are no longer synced by default. If you want to add a readonly fork, navigate directly to the repository page on Sourcegraph to add it (e.g. https://sourcegraph.mycompany.internal/github.com/owner/repo). This prevents your repositories list from being cluttered with a large number of private forks of a private repository that you have access to. One notable example is https://github.com/EpicGames/UnrealEngine.
-- SAML cookies now expire after 90 days. The previous behavior was every 1 hour, which was unintentionally low.
-
-## 2.6.4
-
-### Added
-
-- Improve search timeout error messages
-- Performance improvements for searching regular expressions that do not start with a literal.
-
-## 2.6.3
-
-### Bug fixes
-
-- Symbol results are now only returned for searches that contain `type:symbol`
-
-## 2.6.2
-
-### Added
-
-- More detailed logging to help diagnose errors with third-party authentication providers.
-- Anchors (such as `#my-section`) in rendered Markdown files are now supported.
-- Instrumentation section for admins. For each service we expose pprof, prometheus metrics and traces.
-
-### Bug fixes
-
-- Applies a 1s timeout to symbol search if invoked without specifying `type:` to not block plain text results. No change of behaviour if `type:symbol` is given explicitly.
-- Only show line wrap toggle for code-view-rendered files.
-
-## 2.6.1
-
-### Bug fixes
-
-- Fixes a bug where typing in the search query field would modify the expanded state of file search results.
-- Fixes a bug where new logins via OpenID Connect would fail with the error `SSO error: ID Token verification failed`.
-
-## 2.6.0
-
-### Added
-
-- Support for [Bitbucket Server](https://www.atlassian.com/software/bitbucket/server) as a codehost. Configure via the `bitbucketServer` site config field.
-- Prometheus gauges for git clone queue depth (`src_gitserver_clone_queue`) and git ls-remote queue depth (`src_gitserver_lsremote_queue`).
-- Slack notifications for saved searches may now be added for individual users (not just organizations).
-- The new search filter `lang:` filters results by programming language (example: `foo lang:go` or `foo -lang:clojure`).
-- Dynamic filters: filters generated from your search results to help refine your results.
-- Search queries that consist only of `file:` now show files whose path matches the filters (instead of no results).
-- Sourcegraph now automatically detects basic `$GOPATH` configurations found in `.envrc` files in the root of repositories.
-- You can now configure the effective `$GOPATH`s of a repository by adding a `.sourcegraph/config.json` file to your repository with the contents `{"go": {"GOPATH": ["mygopath"]}}`.
-- A new `"blacklistGoGet": ["mydomain.org,myseconddomain.com"]` offers users a quick escape hatch in the event that Sourcegraph is making unwanted `go get` or `git clone` requests to their website due to incorrectly-configured monorepos. Most users will never use this option.
-- Search suggestions and results now include symbol results. The new filter `type:symbol` causes only symbol results to be shown.
- Additionally, symbols for a repository can be browsed in the new symbols sidebar.
-- You can now expand and collapse all items on a search results page or selectively expand and collapse individual items.
-
-### Configuration changes
-
-- Reduced the `gitMaxConcurrentClones` site config option's default value from 100 to 5, to help prevent too many concurrent clones from causing issues on code hosts.
-- Changes to some site configuration options are now automatically detected and no longer require a server restart. After hitting Save in the UI, you will be informed if a server restart is required, per usual.
-- Saved search notifications are now only sent to the owner of a saved search (all of an organization's members for an organization-level saved search, or a single user for a user-level saved search). The `notifyUsers` and `notifyOrganizations` properties underneath `search.savedQueries` have been removed.
-- Slack webhook URLs are now defined in user/organization JSON settings, not on the organization profile page. Previously defined organization Slack webhook URLs are automatically migrated to the organization's JSON settings.
-- The "unlimited" value for `maxReposToSearch` is now `-1` instead of `0`, and `0` now means to use the default.
-- `auth.provider` must be set (`builtin`, `openidconnect`, `saml`, `http-header`, etc.) to configure an authentication provider. Previously you could just set the detailed configuration property (`"auth.openIDConnect": {...}`, etc.) and it would implicitly enable that authentication provider.
-- The `autoRepoAdd` site configuration property was removed. Site admins can add repositories via site configuration.
-
-### Bug fixes
-
-- Only cross reference index enabled repositories.
-- Fixed an issue where search would return results with empty file contents for matches in submodules with indexing enabled. Searching over submodules is not supported yet, so these (empty) results have been removed.
-- Fixed an issue where match highlighting would be incorrect on lines that contained multibyte characters.
-- Fixed an issue where search suggestions would always link to master (and 404) even if the file only existed on a branch. Now suggestions always link to the revision that is being searched over.
-- Fixed an issue where all file and repository links on the search results page (for all search results types) would always link to master branch, even if the results only existed in another branch. Now search results links always link to the revision that is being searched over.
-- The first user to sign up for a (not-yet-initialized) server is made the site admin, even if they signed up using SSO. Previously if the first user signed up using SSO, they would not be a site admin and no site admin could be created.
-- Fixed an issue where our code intelligence archive cache (in `lsp-proxy`) would not evict items from the disk. This would lead to disks running out of free space.
-
-## 2.5.16, 2.5.17
-
-- Version bump to keep deployment variants in sync.
-
-## 2.5.15
-
-### Bug fixes
-
-- Fixed issue where a Sourcegraph cluster would incorrectly show "An update is available".
-- Fixed Phabricator links to repositories
-- Searches over a single repository are now less likely to immediately time out the first time they are searched.
-- Fixed a bug where `auth.provider == "http-header"` would incorrectly require builtin authentication / block site access when `auth.public == "false"`.
-
-### Phabricator Integration Changes
-
-We now display a "View on Phabricator" link rather than a "View on other code host" link if you are using Phabricator and hosting on GitHub or another code host with a UI. Commit links also will point to Phabricator.
-
-### Improvements to SAML authentication
-
-You may now optionally provide the SAML Identity Provider metadata XML file contents directly, with the `auth.saml` `identityProviderMetadata` site configuration property. (Previously, you needed to specify the URL where that XML file was available; that is still possible and is more common.) The new option is useful for organizations whose SAML metadata is not web-accessible or while testing SAML metadata configuration changes.
-
-## 2.5.13
-
-### Improvements to builtin authentication
-
-When using `auth.provider == "builtin"`, two new important changes mean that a Sourcegraph server will be locked down and only accessible to users who are invited by an admin user (previously, we advised users to place their own auth proxy in front of Sourcegraph servers).
-
-1. When `auth.provider == "builtin"` Sourcegraph will now by default require an admin to invite users instead of allowing anyone who can visit the site to sign up. Set `auth.allowSignup == true` to retain the old behavior of allowing anyone who can access the site to signup.
-2. When `auth.provider == "builtin"`, Sourcegraph will now respects a new `auth.public` site configuration option (default value: `false`). When `auth.public == false`, Sourcegraph will not allow anyone to access the site unless they have an account and are signed in.
-
-## 2.4.3
-
-### Added
-
-- Code Intelligence support
-- Custom links to code hosts with the `links:` config options in `repos.list`
-
-### Changed
-
-- Search by file path enabled by default
-
-## 2.4.2
-
-### Added
-
-- Repository settings mirror/cloning diagnostics page
-
-### Changed
-
-- Repositories added from GitHub are no longer enabled by default. The site admin UI for enabling/disabling repositories is improved.
-
-## 2.4.0
-
-### Added
-
-- Search files by name by including `type:path` in a search query
-- Global alerts for configuration-needed and cloning-in-progress
-- Better list interfaces for repositories, users, organizations, and threads
-- Users can change their own password in settings
-- Repository groups can now be specified in settings by site admins, organizations, and users. Then `repogroup:foo` in a search query will search over only those repositories specified for the `foo` repository group.
-
-### Changed
-
-- Log messages are much quieter by default
-
-## 2.3.11
-
-### Added
-
-- Added site admin updates page and update checking
-- Added site admin telemetry page
-
-### Changed
-
-- Enhanced site admin panel
-- Changed repo- and SSO-related site config property names to be consistent, updated documentation
-
-## 2.3.10
-
-### Added
-
-- Online site configuration editing and reloading
-
-### Changed
-
-- Site admins are now configured in the site admin area instead of in the `adminUsernames` config key or `ADMIN_USERNAMES` env var. Users specified in those deprecated configs will be designated as site admins in the database upon server startup until those configs are removed in a future release.
-
-## 2.3.9
-
-### Fixed
-
-- An issue that prevented creation and deletion of saved queries
-
-## 2.3.8
-
-### Added
-
-- Built-in authentication: you can now sign up without an SSO provider.
-- Faster default branch code search via indexing.
-
-### Fixed
-
-- Many performance improvements to search.
-- Much log spam has been eliminated.
-
-### Changed
-
-- We optionally read `SOURCEGRAPH_CONFIG` from `$DATA_DIR/config.json`.
-- SSH key required to clone repositories from GitHub Enterprise when using a self-signed certificate.
-
-## 0.3 - 13 December 2017
-
-The last version without a CHANGELOG.
diff --git a/docs/versioned/5.2/admin/access_control/batch_changes.mdx b/docs/versioned/5.2/admin/access_control/batch_changes.mdx
deleted file mode 100644
index 3e9710b17..000000000
--- a/docs/versioned/5.2/admin/access_control/batch_changes.mdx
+++ /dev/null
@@ -1,8 +0,0 @@
-# Access control for Batch Changes
-
-Granular controls for who can access [Batch Changes](/batch_changes/) can be configured by site admins by tuning the roles assigned to users and the permissions granted to those roles. This page describes the permission types available for Batch Changes, and whether they are granted by default to the **User** [system role](/admin/access_control#system-roles). All permissions are granted to the **Site Administrator** system role by default.
-
- Name | Description | Granted to **User** by default?
---------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-----------------------------:
-`batch_changes:read` | **_Coming soon!_** | ✓
-`batch_changes:write` | User can create, update, close, or delete batch changes. User can create, execute, and apply batch specs. User can perform bulk operations on changesets such as publishing, commenting on, closing, or merging them. | ✓
diff --git a/docs/versioned/5.2/admin/access_control/index.mdx b/docs/versioned/5.2/admin/access_control/index.mdx
deleted file mode 100644
index b773bed12..000000000
--- a/docs/versioned/5.2/admin/access_control/index.mdx
+++ /dev/null
@@ -1,59 +0,0 @@
-# Access control
-
-This feature is in Beta stage.
-
-> NOTE: This page refers to in-product permissions, which determine who can, for example, create a batch change, or who is a site admin. This is *not* the same as [repository permissions](/admin/permissions/), which enforces the same repository access on Sourcegraph as your code host.
-
-> NOTE: Feature supported on Sourcegraph versions 5.0+
-
-Sourcegraph uses [Role-Based Access Control (RBAC)](https://en.wikipedia.org/wiki/Role-based_access_control) to enable fine-grained control over different features and abilities of Sourcegraph, without having to modify permissions for each user individually. Currently, the scope of permissions control is limited to [Batch Changes](/admin/access_control/batch_changes) functionality, but it will be expanded to other areas in the future.
-
-## Managing roles and permissions
-
-
-
-Site admins can control which features each type of user has access to by creating custom roles and assigning permissions to them. You can see all available roles and create new ones under **Site admin > Users & auth > Roles**.
-
-### System roles
-
-Every Sourcegraph instance ships with two built-in system roles:
-
-- **Site Administrator**: This role is granted to any user who is promoted to site admin. It always has all features and permissions of Sourcegraph granted to it and the set of permissions cannot be modified.
-- **User:** This role is granted to every user of the Sourcegraph instance and cannot be unassigned. By default, it has all features and permissions of Sourcegraph granted to it, but _the set of permissions can be modified_.
-
-### Creating a new role and assigning it permissions
-
-To create a new role, click the **+ Create role** button. Give the role a unique, descriptive name, then select which permissions to associate with it using the checkboxes. Then click **Create**.
-
-### Editing permissions for an existing role
-
-> NOTE: The **Site Administrator** role cannot be modified.
-
-To edit the permissions granted to a role, click the role to expand it, then select the new set of permissions you want to grant to it. Then click **Update** to save your changes.
-
-You can read about the specific permission types available for each RBAC-enabled product area below:
-
-- [Batch Changes](/admin/access_control/batch_changes)
-- [Ownership](/admin/access_control/ownership)
-
-> NOTE: While Batch Changes is the only RBAC-enabled product area today, we will be working on migrating other product areas in future releases of Sourcegraph. Please reach out to our [support team](mailto:support@sourcegraph.com) if you have further questions.
-
-### Deleting a role
-
-> NOTE: Built-in system roles cannot be deleted.
-
-To delete a role, click the **Delete** button on it. You will be prompted to confirm your choice. Once deleted, all users previously assigned that role will lose all permissions associated with it. Be aware, though, that the same permissions could still be granted by their other roles.
-
-## Managing user roles
-
-> NOTE: Built-in system roles cannot be assigned this way.
-
-Site admins can manage which roles are assigned to which users from **Site admin > Users & auth > Users**. To view or edit a user's roles, click the triple dots to open the context menu for that user, then click **Manage roles**. This will open a modal dialog where you can see the user's current roles, assign new ones, or unassign current ones. You can type in the input field to search roles by name. Click **Update** to save any changes, or **Cancel** to discard. Note that system roles cannot be revoked or assigned via this modal.
-
-To assign the **Site Administrator** system role to a user, open the same context menu from the triple dots, then click **Promote to site admin**. To unassign the **Site Administrator** role, open the same context menu from the triple dots, then click **Revoke site admin**.
-
-The **User** system role is automatically assigned to all users and cannot be revoked.
-
-
-
-
diff --git a/docs/versioned/5.2/admin/access_control/ownership.mdx b/docs/versioned/5.2/admin/access_control/ownership.mdx
deleted file mode 100644
index 468744d11..000000000
--- a/docs/versioned/5.2/admin/access_control/ownership.mdx
+++ /dev/null
@@ -1,7 +0,0 @@
-# Access control for Ownership
-
-Granular controls for who can assign [Ownership](/own/) can be configured by site admins by tuning the roles assigned to users and the permissions granted to those roles. This page describes the permission types available for Ownership, and whether they are granted by default to the **User** [system role](/admin/access_control/#system-roles). All permissions are granted to the **Site Administrator** system role by default.
-
-Name | Description | Granted to **User** by default?
---------- | ----------- | :-:
-`ownerships:assign` | Assign ownership to users and teams on repository, directory and file levels | ✗
diff --git a/docs/versioned/5.2/admin/analytics.mdx b/docs/versioned/5.2/admin/analytics.mdx
deleted file mode 100644
index de1e15da5..000000000
--- a/docs/versioned/5.2/admin/analytics.mdx
+++ /dev/null
@@ -1,43 +0,0 @@
-# Analytics
-
-The analytics section helps Sourcegraph administrators understand user engagement across the various Sourcegraph features, identify power users, and convey value to internal leaders. Introduced in version 3.42, the section includes analytics breakdowns for our most common features such as Batch Changes, Search Notebooks and search, while also providing basic user-level analytics.
-
-## Data Visualizations
-
-The goal of these pages is to help administrators answer any question they might have about how features are being used within their Sourcegraph instance. So far, we have introduced pages for Search, Batch Changes, Code Intel, Search, and Search Notebooks, as well as a general users page.
-
-Each page can visualize the past one week, the past one month, or the path three months of data. For graphs that show user data, the graph can toggle between total users or unique users.
-
-These graphs pull directly from the event log table within the Sourcegraph instance they are running. There should not be an increase to the storage on disk of these tables due to these new features. Further, no data beyond published ping data is sent back to Sourcegraph.
-
-## Value Calculators
-
-Each page also includes a total time saved value which can be used to measure the value Sourcegraph is bringing to your organization. This metric is derived from the configurable calculators below the total time saved value. Each calculator multiplies event log data (ex: number of precise code intel events such as a go-to-definition) by a configurable number of minutes saved per event to arrive at a time saved by the feature.
-
-We designed this to be configurable by you because we want to...
-- help admins understand the value that is being seen by their organization today.
-- be customizable so admins can explore what changes will best increase developer time saved.
-
-These calculators exist on the Search, Code Intel, Batch Changes, and Notebooks analytics pages. Each calculator looks different as they include metrics specifically designed for that part of the application. Please note that the calculator configuration does not save and will return to the default if you navigate away from the page.
-
-If you have questions about how this works or about how to convey this value to leaders within your organization, please do not hesitate to reach out to your customer engineer.
-
-## FAQ
-
-**Who has access to see these improved analytics? Where can I find it?**
-
-To see these new visualizations, you must be a site admin. You can find these under Site Admin section, under the Analytics section of the left-nav bar.
-
-**Do these improved analytics require sending data to Sourcegraph?**
-
-No! The processing happens entirely within a your instance so no data is sent in or out of your instance. Further, these improved analytics leverage data already being captured within the event log table of your instance so there is no additional storage or processing required for this change. Basically, customers should notice no perceivable difference to their infrastructure.
-
-**How often is the data updated?**
-
-The data is updated approximately every 24 hours.
-
-**How does this work with the existing usage stats page?**
-
-This new analytics experience has been redesigned from the ground up to provide the most value to administrators. In the future, we plan to deprecate the legacy usage stats page and statistics section once this functionality moved from experimental to generally available.
-
-Note: The new analytics experience is experimental. For billing information, use [usage stats](/admin/usage_statistics).
diff --git a/docs/versioned/5.2/admin/audit_log.mdx b/docs/versioned/5.2/admin/audit_log.mdx
deleted file mode 100644
index 2fe26b0bc..000000000
--- a/docs/versioned/5.2/admin/audit_log.mdx
+++ /dev/null
@@ -1,164 +0,0 @@
-# Audit Log
-
-## Philosophy
-
-The audit log will capture all critical events that affect entities of interest within Sourcegraph services. The audit log is built on top of our [logging standard](https://sourcegraph.com/docs/dev/how-to/add_logging), using structured logs as the base building block. Every captured entry is aligned with the following design mantra:
-
-> Actor takes action on an entity within a context
-
-Here's a sample audit log entry:
-
-```
-{
- "SeverityText": "INFO",
- "Timestamp": 1667210919544146000,
- "InstrumentationScope": "server.SecurityEvents",
- "Caller": "audit/audit.go:43",
- "Function": "github.com/sourcegraph/sourcegraph/internal/audit.Log",
- "Body": "AccessGranted (sampling immunity token: 7aacf0e8-d001-4aec-8b7d-20e46d34c8db)",
- "Resource": {
- "service.name": "frontend",
- "service.version": "0.0.0+dev",
- "service.instance.id": "Michals-MacBook-Pro-2.local"
- },
- "Attributes": {
- "audit": {
- "auditId": "7aacf0e8-d001-4aec-8b7d-20e46d34c8db",
- "entity": "security events",
- "actor": {
- "actorUID": "1",
- "ip": "127.0.0.1",
- "X-Forwarded-For": "127.0.0.1, 127.0.0.1"
- }
- },
- "event": {
- "URL": "",
- "source": "BACKEND",
- "argument": "{\"resource\":\"db.repo\",\"service\":\"frontend\",\"repo_ids\":[9]}",
- "version": "0.0.0+dev",
- "timestamp": "2022-10-31 10:08:39.542876 +0000 UTC"
- }
- }
-}
-```
-
-Here's a word-by-word breakout to demonstrate how the captured entry aligns with the design mantra:
-
-- **Actor** - `Attributes.audit.actor` field carries essential information about the actor who performed the action.
-- **Action** - `Body` field carries the action description. This action is suffixed with a "sampling immunity token," which carries the unique audit log entry ID. The audit entry ID must be present in the `Body` so that the message is always unique and never gets dropped by the sampling mechanism (hence the sampling immunity token string).
-- **Entity** - `Attributes.audit.entity` describes the audited entity. `Resource` field contains additional information about the audited resource as well.
-- **Context** - Any non-`audit` child node of `Attributes`. This is represented by the `event` node in the example above.
-
-### What is audited?
-
-- [Security events](./security_event_logs)
-- [Gitserver access](https://sourcegraph.com/github.com/sourcegraph/sourcegraph/-/blob/cmd/gitserver/internal/accesslog/accesslog.go?L100-104)
-- [GraphQL requests](https://sourcegraph.com/github.com/sourcegraph/sourcegraph/-/blob/cmd/frontend/internal/httpapi/graphql.go?L226-244)
-
-This list is expected to grow in the future.
-
-### Target audience
-
-Security specialists. We expect these to ingest the logs into their SIEM tools and define alert policies as they see fit. Site admins are currently not the target audience, but we'll likely offer an easy-to-use in-app audit log.
-
-## Configuring
-
-The audit log is currently configured using the site config. Here's the corresponding entry:
-
-```
- "log": {
- "auditLog": {
- "internalTraffic": false,
- "graphQL": false,
- "gitserverAccess": false,
- "severityLevel": "INFO" // DEPRECATED, defaults to SRC_LOG_LEVEL
- }
- "securityEventLog": {
- "location": "auditlog" // option to set "database" or "all" as well, default to outputing as an audit log
- }
-```
-
-We believe the individual settings are self-explanatory, but here are a couple of notes:
-
-- `securityEventLog` configures the destination of security events, logging to the database may result in performance issues
-- `internalTraffic` is disabled by default and will result in security events from internal traffic not being logged
-
-## Using
-
-Audit logs are structured logs. As long as one can ingest logs, we assume one can also ingest audit logs.
-
-### On Premises
-
-There are two easy approaches to filtering the audit logs:
-
-- JSON-based: look for the presence of the `Attributes.audit` node. Do not depend on the log level, as it can change based on `SRC_LOG_LEVEL`.
-- Message-based: we recommend going the JSON route, but if there's no easy way of parsing JSON using your SIEM or data processing stack, you can filter based on the following string: `auditId`.
-
-### Cloud
-[Cloud](/cloud/#audit-logs)
-
-
-Audit Logs are a default feature for Cloud instances, with a standard retention policy of 30 days. Should you wish to
-extend this period, please be aware that additional charges will apply. To request an extension, please contact
-your assigned Customer Engineer (CE) or send an email to Sourcegraph Support at support@sourcegraph.com.
-
-For requesting audit logs, please follow the above steps and contact your assigned Sourcegraph representative or our support team.
-
-
-## Developing
-
-The single entry point to the audit logging API is made via the [`audit.Log`](https://sourcegraph.com/github.com/sourcegraph/sourcegraph/-/blob/internal/audit/audit.go?L19) function. This internal function can be used from any place in the app, and nothing else needs to be done for the logged entry to appear in the audit log.
-
-Example call:
-```
-audit.Log(ctx, logger, audit.Record{
- Entity: "security events",
- Action: string(event.Name),
- Fields: []log.Field{
- log.Object("event",
- log.String("URL", event.URL),
- ),
- },
-})
-```
-- audit log checks the current settings via the cached `schema.SiteConfiguration`
-- `ctx` parameter is required for acquiring `actor.Actor` and `requestclient.Client`
-- `logger` parameter is used for performing the actual log call
-- `audit.Record` carries all the information required for constructing a valid audit log entry
-
-## FAQ
-
-**How do I map actor ID to the Sourcegraph user?**
-
-The `audit.actor` node carries ID of the user who performed the action (`actorUID`), but it’s not mapped into a full Sourcegraph user right now. You can, however, obtain the user details by following these steps:
-
-1. Grab the user ID from the audit log
-1. Base64 [encode](https://www.base64encode.org) the ID with a "User:" prefix. For example, for Actor with ID 71 use `User:71`, which encodes to `VXNlcjo3MQ==`
-1. Navigate to Site Admin -> API Console and run the query below
-1. Find the corresponding user by searching the query results for the encoded ID from above
-
-GraphQL query:
-```
-{
- users {
- nodes {
- id
- username
- }
- }
-}
-```
-
-### Excessive audit logging
-
-If you are seeing a large number of logs in the format `frontend.SecurityEvents` or similar, these are securityEventLogs.
-
-To disable them, in the site config set `log.securityEventLog.location` to `none`.
-
-```json
- "log": {
- "securityEventLog": {
- "location": "none"
- }
-}
-```
diff --git a/docs/versioned/5.2/admin/auth/index.mdx b/docs/versioned/5.2/admin/auth/index.mdx
deleted file mode 100644
index e3fef06e0..000000000
--- a/docs/versioned/5.2/admin/auth/index.mdx
+++ /dev/null
@@ -1,570 +0,0 @@
-# User authentication
-
-Sourcegraph supports the following ways for users to sign in:
-
-- [Builtin password authentication](#builtin-password-authentication)
-- [GitHub](#github)
-- [GitLab](#gitlab)
-- [Bitbucket Cloud](#bitbucket-cloud)
-- [Gerrit](#gerrit) (Beta)
-- [SAML](/admin/auth/saml)
-- [OpenID Connect](#openid-connect)
- - [Google Workspace (Google accounts)](#google-workspace-google-accounts)
-- [HTTP authentication proxies](#http-authentication-proxies)
- - [Username header prefixes](#username-header-prefixes)
-- [Username normalization](#username-normalization)
-- [Troubleshooting](#troubleshooting)
-
-The authentication providers are configured in the [`auth.providers`](/admin/config/site_config#authentication-providers) site configuration option.
-
-## Login form configuration
-
-To configure the presentation of the login form, see the [login form configuration page](/admin/auth/login_form).
-
-## Recommendations
-
-If you are unsure which auth provider is right for you, we recommend applying the following rules in
-order:
-
-- If you have no external identity providers (i.e., not SSO) or are just trying to spin Sourcegraph
- up as quickly as possible to try, use [`builtin`](#builtin-password-authentication) authentication. You can
- always change the auth configuration later, and user identities from external providers will be
- linked automatically to existing Sourcegraph accounts using verified email addresses.
-- If you are deploying Sourcegraph behind a HTTP authentication proxy service, use the
- [`http-header`](#http-authentication-proxies) provider type. The proxy service should handle
- authentication and session management and, in turn, set a HTTP header that indicates the user
- identity to Sourcegraph.
-- If you are configuring Sourcegraph to index a GitHub or GitLab instance, we recommend using the
- OAuth provider for that code host. This applies even if the code host itself uses an external
- identity provider (e.g., SAML, OpenID Connect, LDAP, etc.). Sourcegraph will redirect to your code
- host on sign-in and the code host will perform the required sign-in flow before redirecting to
- Sourcegraph on success.
-- If you are using an identity provider that supports SAML, use the [SAML auth provider](/admin/auth/saml).
-- If you are using an identity provider that supports OpenID Connect (including Google accounts),
- use the [OpenID Connect provider](#openid-connect).
-- If you wish to use LDAP and cannot use the GitHub/GitLab OAuth provider as described above, or if
- you wish to use another authentication mechanism that is not yet supported, please [contact
- us](https://github.com/sourcegraph/sourcegraph/issues/new?template=feature_request) (we respond
- promptly).
-
-Most users will use only one auth provider, but you can use multiple auth providers if desired to
-enable sign-in via multiple services. Identities from different providers will be mapped to a
-Sourcegraph user by comparing the user's verified email address to the email address from the
-external identity provider.
-
-> NOTE: If OAuth is the only sign-in method available on sign-out, a new OAuth sign-in will be attempted immediately upon a redirect to the sign-in page. If it is necessary to sign-out and have persistent access to the sign-in page, enable `builtin` sign-in in addition to your OAuth sign-in.
-
-## Builtin password authentication
-
-The [`builtin` auth provider](/admin/config/site_config#builtin-password-authentication) manages user accounts internally in its own database. It supports user signup, login, and password reset (via email if configured, or else via a site admin).
-
-Password reset links expire after 4 hours by default - this can be configured in site configuration with the [`auth.passwordResetLinkExpiry`](/admin/config/site_config#auth-passwordResetLinkExpiry) field.
-
-### Creating builtin authentication users
-
-Users can be created with builtin password authentication in several ways:
-
-- through the site admin page `/site-admin/users/new`
-- through users [signing up](#how-to-control-user-sign-up)
-- through the `createUser` mutation in the GraphQL API
-- through [`src users create`](/cli/references/users/create)
-
-When [SMTP is enabled](/admin/config/email), special behaviours apply to whether a builtin authentication user's email is marked as verified by default - refer to [email verification](/admin/config/email#user-email-verification) for more details.
-
-### How to control user sign-up
-
-You can use the filter `allowSignup`, available in the builtin configuration, to control who can create an account in your Sourcegraph instance.
-
-**allowSignup**
-
- If set to `true`, users will see a sign-up link under the login form and will have access to the sign-up page, where they can create their accounts without restriction.
-
- When not set, it will default to `false` -- in this case, users will see request account link. Unauthenticated users can submit request account forms and admins will get notification on the instance which they can approve or reject. Account request feature can be disabled by setting `auth.accessRequest: {enabled: false}`, and in this case new user accounts should be created by the site admin manually.
-
- If you choose to block sign-ups by using the `allowSignup` filter available in another auth provider (eg., [GitHub](#how-to-control-user-sign-up-and-sign-in-with-github-auth-provider) or [GitLab](#how-to-control-user-sign-up-and-sign-in-with-gitlab-auth-provider)), make sure this builtin filter is removed or set to `false`. Otherwise, users will have a way to bypass the restriction.
-
- During the initial setup, the builtin sign-up will be available for the first user so they can create an account and become admin.
-
- ```json
- {
- // ...,
- "auth.providers": [{ "type": "builtin", "allowSignup": true }]
- }
-```
-> NOTE: If Sourcegraph is running on a free license all users will be created as site admins. Learn more about license settings on our [pricing page](https://about.sourcegraph.com/pricing).
-
-
-
-### Account lockout
-
-Sourcegraph 3.39+
-
-Account will be locked out for 30 minutes after 5 consecutive failed sign-in attempts within one hour for the builtin authentication provider. The threshold and duration of lockout and consecutive periods can be customized via `"auth.lockout"` in the site configuration:
-
-```json
-{
- // ...
- "auth.lockout": {
- // The number of seconds to be considered as a consecutive period
- "consecutivePeriod": 3600,
- // The threshold of failed sign-in attempts in a consecutive period
- "failedAttemptThreshold": 5,
- // The number of seconds for the lockout period
- "lockoutPeriod": 1800
- }
-}
-```
-
-To enabled self-serve account unlock through emails, add the following lines to your site configuration:
-
-```json
-{
- // Validity expressed in minutes of the unlock account token
- "auth.unlockAccountLinkExpiry": 30,
- // Base64-encoded HMAC signing key to sign the JWT token for account unlock URLs
- "auth.unlockAccountLinkSigningKey": "your-signing-key",
-}
-```
-
-The `ssh-keygen` command can be used to generate and encode the signing key, for example:
-
-```bash
-$ ssh-keygen -t ed25519 -a 128 -f auth.unlockAccountLinkSigningKey
-$ base64 auth.unlockAccountLinkSigningKey | tr -d '\n'
-LS0tLS1CRUdJTiBPUEVOU1NIIFBSSVZBVEUgS0VZLS0tLS0KYjNCbGJu...
-```
-
-Copy the result of the `base64` command as the value of the `"auth.unlockAccountLinkSigningKey"`.
-
-## GitHub
-
-[Create a GitHub OAuth
-application](https://developer.github.com/apps/building-oauth-apps/creating-an-oauth-app/) (if using
-GitHub Enterprise, create one on your instance, not GitHub.com). Set the following values, replacing
-`sourcegraph.example.com` with the IP or hostname of your Sourcegraph instance:
-
-- Homepage URL: `https://sourcegraph.example.com`
-- Authorization callback URL: `https://sourcegraph.example.com/.auth/github/callback`
-
-> NOTE: If you want to enable repository permissions, you should grant your OAuth app permission to
-> your GitHub organization(s). You can do that either by creating the OAuth app under your GitHub
-> organization (rather than your personal account) or by [following these
-> instructions](https://help.github.com/articles/approving-oauth-apps-for-your-organization/).
-
-Then add the following lines to your site configuration:
-
-```json
-{
- // ...
- "auth.providers": [
- {
- "type": "github",
- "url": "https://github.example.com", // URL of your GitHub instance; can leave empty for github.com
- "displayName": "GitHub",
- "clientID": "replace-with-the-oauth-client-id",
- "clientSecret": "replace-with-the-oauth-client-secret",
- "allowSignup": false, // CAUTION: Set to true to enable signup. If nothing is specified in `allowOrgs` or `allowOrgsMap`, any GitHub user can sign up.
- "allowOrgs": ["your-org-name"], // Restrict logins and sign-ups if enabled to members of these orgs.
- "allowOrgsMap": { "orgName": ["your-team-name"]} // Restrict logins and sign-ups if enabled to members of teams that belong to a given org.
- }
- ]
-}
-```
-
-Replace the `clientID` and `clientSecret` values with the values from your GitHub OAuth app
-configuration.
-
-Leave the `url` field empty for GitHub.com.
-
-Once you've configured GitHub as a sign-on provider, you may also want to [add GitHub repositories to Sourcegraph](/admin/external_service/github#repository-syncing).
-
-
-### How to control user sign-up and sign-in with GitHub auth provider
-
-You can use the following filters to control how users will create accounts and sign in to your Sourcegraph instance via the GitHub auth provider.
-
-**allowSignup**
-
-Set `allowSignup` to `true` to enable anyone with a GitHub account to sign up without invitation (typically done only for GitHub Enterprise).
-
-If set to `false` or not set, sign-up will be blocked. In this case, new users will only be able to sign in after an admin creates their account on Sourcegraph.
-The new user email, during their account creation, should match one of their GitHub verified emails.
-
-> WARNING: If `allowSignup` is set to `true`, anyone with internet access to both your Sourcegraph instance and your GitHub url are able to sign up and login to your instance. In particular, if url is set to `https://github.com`, this means that anyone with a Github account could log in to your Sourcegraph instance and search your indexed code. Make sure to also configure the `allowOrgs` field described below to limit sign-ups to your org, or limit public access to your Sourcegraph instance via IP restrictions / VPN. For assistance, contact support.
-
-
-```json
- {
- "type": "github",
- ...
- "allowSignup": false
- }
-```
-
-**allowOrgs**
-
-Restricts sign-ins to members of the listed organizations. If empty or unset, no restriction will be applied.
-
-If combined with `"allowSignup": true`, only members of the allowed orgs can create their accounts in Sourcegraph via GitHub authentitcation.
-
-When combined with `"allowSignup": false` or unset, an admin should first create the user account so that the user can sign in with GitHub if they belong to the allowed orgs.
-
- ```json
- {
- "type": "github",
- // ...
- "allowSignup": true,
- "allowOrgs": ["org1", "org2"]
- },
- ```
-
-**allowOrgsMap**
-
- Restricts sign-ups and new logins to members of the listed teams or subteams mapped to the organizations they belong to. If empty or unset, no restrictions will be applied.
-
- When combined with `"allowSignup": true`, only members of the allowed teams can create their accounts in Sourcegraph via GitHub authentication.
-
- If set with `"allowSignup": false` or if `allowSignup` is unset, an admin should first create the new users accounts so that they can login with GitHub.
-
- In case both `allowOrgs` and `allowOrgsMap` filters are configured, org membership (`allowOrgs`) will be checked first. Only if the user doesn't belong to any of the listed organizations then team membership (`allowOrgsMap`) will be checked.
-
- Note that subteams inheritance is not supported — the name of child teams (subteams) should be informed so their members can be granted access to Sourcegraph.
-
- ```json
- {
- "type": "github",
- // ...
- "allowOrgsMap": {
- "org1": [
- "team1", "subteam1"
- ],
- "org2": [
- "subteam2"
- ]
- }
- }
- ```
-
-
-## GitLab
-
-[Create a GitLab OAuth application](https://docs.gitlab.com/ee/integration/oauth_provider.html). Set the following values, replacing `sourcegraph.example.com` with the IP or hostname of your
-Sourcegraph instance:
-
-- Authorization callback URL: `https://sourcegraph.example.com/.auth/gitlab/callback`
-- Scopes: `read_user`, `read_api` (be sure to set `"apiScope": "read_api"` in the `auth.providers` config, as indicated below)
-
-Then add the following lines to your site configuration:
-
-```json
-{
- // ...
- "auth.providers": [
- {
- "type": "gitlab",
- "displayName": "GitLab",
- "clientID": "replace-with-the-oauth-application-id",
- "clientSecret": "replace-with-the-oauth-secret",
- "url": "https://gitlab.example.com",
- "apiScope": "read_api", // If not set, it defaults to "api" and the OAuth application will have to be adjusted accordingly.
- "allowSignup": false, // If not set, it defaults to true allowing any GitLab user with access to your instance to sign up.
- "allowGroups": ["group", "group/subgroup", "group/subgroup/subgroup"], // Restrict logins and sign-ups to members of groups or subgroups based on the full-path provided.
- }
- ]
-```
-
-Replace the `clientID` and `clientSecret` values with the values from your GitLab OAuth app
-configuration.
-
-Once you've configured GitLab as a sign-on provider, you may also want to [add GitLab repositories to Sourcegraph](/admin/external_service/gitlab#repository-syncing).
-
-> NOTE: Administrators on the GitLab instance who then sign in to Sourcegraph will not have access to all of the repositories on Sourcegraph as well. Administrators will only have access to repositories on GitLab for which they are assigned the Reporter role and above.
-
-### How to control user sign-up and sign-in with GitLab auth provider
-
-You can use the following filters to control how users can create accounts and sign in to your Sourcegraph instance via the GitLab auth provider.
-
-**allowSignup**
-
- Allows anyone with a GitLab account to create their accounts.
-
- When `false`, sign-up with GitLab will be blocked. In this case, new users can only sign in after an admin creates their account on Sourcegraph. The user account email should match their primary emails on GitLab (which are always verified).
-
- *If not set, unliked with GitHub, it defaults to `true`, allowing any GitLab user with access to your instance to sign up*.
-
-
- ```json
- {
- "type": "gitlab",
- // ...
- "allowSignup": false
- }
- ```
-
-**allowGroups**
-
- Restricts new sign-ins to members of the listed groups or subgroups.
-
- Instead of informing the groups or subgroups names, use their full path that can be copied from the URL.
-
- Example: for a parent group, the full path can be simple as `group`. For nested groups it can look like `group/subgroup/subsubgroup`.
-
- When empty or unset, no restrictions will be applied.
-
- If combined with `"allowSignup": false`, an admin should first create the user account so that the user can sign in with GitLab.
-
- If combined with `"allowSignup": true` or with `allowSignup` unset, only members of the allowed groups or subgroups can create their accounts in Sourcegraph via GitLab authentitcation.
-
-> WARNING: Users will require a minimum access level of `Guest` in at least one of the specified groups in order to gain access to Sourcegraph. GitLab offers a lower user permission level, [Minimal Access](https://docs.gitlab.com/ee/user/permissions.html#users-with-minimal-access), for Premium and Ultimate tier customers, which is often used to configure SAML SSO on GitLab. Sourcegraph does not currently support the `Minimal Access` access level, and users with this access level will not be allowed to sign in. In these cases it is recommended to create a subgroup and add all users that require access to Sourcegraph to that subgroup with a minimum access level of `Guest`, and then add that subgroup to the `allowGroups` list.
-
- ```json
- {
- "type": "gitlab",
- // ...
- "allowSignup": true,
- "allowGroups": [
- "group/subgroup/subsubgroup"
- ]
- }
- ```
-
-### How to set up GitLab auth provider for use with GitLab group SAML/SSO
-
-GitLab groups can require SAML/SSO sign-in to have access to the group. The regular OAuth sign-in won't work in this case, as users will be redirected to the normal GitLab sign-in page, requesting a username/password. In this scenario, add a `ssoURL` to your GitLab auth provider configuration:
-
- ```json
- {
- "type": "gitlab",
- // ...
- "ssoURL": "https://gitlab.com/groups/your-group/-/saml/sso?token=xxxxxxxx"
- ]
- }
- ```
-
-The `token` parameter can be found on the **Settings > SAML SSO** page on GitLab.
-
-### Don't sync user permissions for internal repositories
-
-If your organization has a lot of internal repositories that should be accessible to everyone on GitLab, you may want to [mark internal repositories as public](/admin/external_service/gitlab#internal-repositories), and then configure your auth provider to not sync user permissions for internal repositories:
-
- ```json
- {
- "type": "gitlab",
- // ...
- "syncInternalRepoPermissions": false
- }
- ```
-
-## Bitbucket Cloud
-
-[Create a Bitbucket Cloud OAuth consumer](https://support.atlassian.com/bitbucket-cloud/docs/use-oauth-on-bitbucket-cloud/). Set the following values, replacing `sourcegraph.example.com` with the IP or hostname of your
-Sourcegraph instance:
-
-- Callback URL: `https://sourcegraph.example.com/.auth/bitbucketcloud/callback`
-- Permissions:
- - `Account`: `Read`
- - `Repositories`: `Read` (more information in [repository permissions section](/admin/permissions/index))
-
-After the consumer is created, you will need the `Key` and the `Secret`, which can be found by expanding OAuth consumer in the list.
-Then add the following lines to your [site configuration](/admin/config/site_config):
-
-```json
-{
- // ...
- "auth.providers": [
- {
- "type": "bitbucketcloud",
- "displayName": "Bitbucket Cloud",
- "clientKey": "replace-with-the-oauth-consumer-key",
- "clientSecret": "replace-with-the-oauth-consumer-secret",
- "allowSignup": false // If not set, it defaults to true allowing any Bitbucket Cloud user with access to your instance to sign up.
- }
- ]
-```
-Replace the `clientKey` and `clientSecret` values with the values from your Bitbucket Cloud OAuth consumer.
-
-## Gerrit
-Beta
-
-To enable users to add Gerrit credentials and verify their access to repositories on Sourcegraph,
-add the following lines to your [site configuration](/admin/config/site_config):
-
-```json
-{
- // ...
- "auth.providers": [
- {
- "type": "gerrit",
- "displayName": "Gerrit",
- "url": "https://example.gerrit.com" // Must match the URL of the code host connection for which authorization is required
- }
- ]
-```
-
-Users can then add Gerrit credentials by visiting their **Settings** > **Account security**.
-
-## OpenID Connect
-
-The [`openidconnect` auth provider](/admin/config/site_config#openid-connect-including-google-workspace) authenticates users via OpenID Connect, which is supported by many external services, including:
-
-- [Google Workspace (Google accounts)](#google-workspace-google-accounts)
-- [Okta](https://developer.okta.com/docs/api/resources/oidc.html)
-- [Ping Identity](https://www.pingidentity.com/en/resources/client-library/articles/openid-connect.html)
-- [Auth0](https://auth0.com/docs/protocols/oidc)
-- [Salesforce Identity](https://developer.salesforce.com/page/Inside_OpenID_Connect_on_Force.com)
-- [Microsoft Azure Active Directory](https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-protocols-openid-connect-code)
-- [Google Identity Platform](https://developers.google.com/identity/)
-- Known issue: [OneLogin](https://www.onelogin.com/openid-connect) OpenID Connect is not supported (use SAML for OneLogin instead)
-
-To configure Sourcegraph to authenticate users via OpenID Connect:
-
-1. Create a new OpenID Connect client in the external service (such as one of those listed above).
- - **Redirect/callback URI:** `https://sourcegraph.example.com/.auth/callback` (replace `https://sourcegraph.example.com` with the value of the `externalURL` property in your config)
-1. Provide the OpenID Connect client's issuer, client ID, and client secret in the Sourcegraph site configuration shown below.
-1. (Optional) Require users to have a specific email domain name to authenticate (e.g., to limit users to only those from your organization).
-
-Example [`openidconnect` auth provider](/admin/config/site_config#openid-connect-including-google-workspace) configuration:
-
-```json
-{
- // ...
- "externalURL": "https://sourcegraph.example.com",
- "auth.providers": [
- {
- "type": "openidconnect",
- "issuer": "https://oidc.example.com",
- "clientID": "my-client-id",
- "configID":"my-config-id", //An arbitrary value that will be used to reference to this auth provider within the site config
- "clientSecret": "my-client-secret",
- "requireEmailDomain": "example.com"
- }
- ]
-}
-```
-
-Sourcegraph supports the OpenID Connect Discovery standard for configuring the auth provider (using the document at, e.g., `https://oidc.example.com/.well-known/openid-configuration`).
-
-See the [`openid` auth provider documentation](/admin/config/site_config#openid-connect-including-google-workspace) for the full set of configuration options.
-
-### How to control user sign-up with OpenID auth provider
-
-**allowSignup**
-
- If true or not set, it allows new users to creating their Sourcegraph accounts via OpenID.
- When `false`, sign-up won't be available and a site admin should create new users accounts.
-
- ```json
- {
- "type": "openidconnect",
- // ...
- "allowSignup": false
- }
- ```
-
-### Google Workspace (Google accounts)
-
-Google's Workspace (formerly known as G Suite) supports OpenID Connect, which is the best way to enable Sourcegraph authentication using Google accounts. To set it up:
-
-1. Create an **OAuth client ID** and client secret in the [Google API credentials console](https://console.developers.google.com/apis/credentials). [Google's interactive OpenID Connect documentation page](https://developers.google.com/identity/protocols/OpenIDConnect#getcredentials):
- - **Application type:** Web application
- - **Name:** Sourcegraph (or any other name your users will recognize)
- - **Authorized JavaScript origins:** (leave blank)
- - **Authorized redirect URIs:** `https://sourcegraph.example.com/.auth/callback` (replace `https://sourcegraph.example.com` with the value of the `externalURL` property in your config)
-1. Use the **client ID** and **client secret** values in Sourcegraph site configuration (as shown in the example below).
-1. Set your Google Workspace domain in `requireEmailDomain` to prevent users outside your organization from signing in.
-
-Example [`openidconnect` auth provider](/admin/config/site_config#openid-connect-including-google-workspace) configuration for Google Workspace:
-
-```json
-{
- // ...
- "externalURL": "https://sourcegraph.example.com",
- "auth.providers": [
- {
- "type": "openidconnect",
- "issuer": "https://accounts.google.com", // All Google Workspace domains use this issuer URI.
- "clientID": "my-client-id",
- "clientSecret": "my-client-secret",
- "requireEmailDomain": "example.com"
- }
- ]
-}
-```
-
-## HTTP authentication proxies
-
-You can wrap Sourcegraph in an authentication proxy that authenticates the user and passes the user's username or email (or both) to Sourcegraph via HTTP headers. The most popular such authentication proxy is [pusher/oauth2_proxy](https://github.com/pusher/oauth2_proxy). Another example is [Google Identity-Aware Proxy (IAP)](https://cloud.google.com/iap/). Both work well with Sourcegraph.
-
-To use an authentication proxy to authenticate users to Sourcegraph, add the following lines to your site configuration:
-
-```json
-{
- // ...
- "auth.providers": [
- {
- "type": "http-header",
- "usernameHeader": "X-Forwarded-User",
- "emailHeader": "X-Forwarded-Email"
- }
- ]
-}
-```
-
-Replace `X-Forwarded-User` with the name of the HTTP header added by the authentication proxy that contains the user's username.
-
-Ensure that the HTTP proxy is not setting its own `Authorization` header on the request. Sourcegraph rejects requests with unrecognized `Authorization` headers and prints the error log `lvl=eror msg="Invalid Authorization header." err="unrecognized HTTP Authorization request header scheme (supported values: token, token-sudo)"`.
-
-For pusher/oauth2_proxy, use the `-pass-basic-auth false` option to prevent it from sending the `Authorization` header.
-
-### Username header prefixes
-
-Some proxies add a prefix to the username header value. For example, Google IAP sets the `x-goog-authenticated-user-id` to a value like `accounts.google.com:alice` rather than just `alice`. If this is the case, use the `stripUsernameHeaderPrefix` field. If using Google IAP, for example, add the following lines to your site configuration:
-
-```json
-{
- // ...
- "auth.providers": [
- {
- "type": "http-header",
- "usernameHeader": "x-goog-authenticated-user-email",
- "stripUsernameHeaderPrefix": "accounts.google.com:"
- }
- ]
-}
-```
-
-## Linking a Sourcegraph account to an auth provider
-
-In most cases, the link between a Sourcegraph account and an authentication provider account happens via email.
-
-Consequently, you can only sign in via an auth provider if your email on Sourcegraph matches the one configured in the auth provider.
-
-Let's say the email field in your Sourcegraph account was kept blank when a site admin created the account for you, but the username matches your username on GitHub or GitLab. Will this work? If you try to sign in to SG with GitHub or GitLab, it won't work, and you will see an error informing you that a verified email is missing.
-
-Exceptions to this rule are [HTTP Proxies](#http-authentication-proxies), where there's an option to make the link via username only.
-For [Bitbucket](/admin/config/authorization_and_authentication#bitbucket-server-bitbucket-data-center-authorization), we don't support OAuth. Still, the match between the chosen auth provider used with Bitbucket and a user's Bitbucket account happens via username.
-
-Using only a username to match a Sourcegraph account to an auth provider account is not recommended, as you can see [here](/admin/external_service/gitlab#username), for example.
-Usernames in Sourcegraph are mutable, so a malicious user could change a username, elevating their privileges.
-
-## Linking accounts from multiple auth providers
-Sourcegraph will automatically link accounts from multiple external auth providers, resulting in a single user account on Sourcegraph. That way a user can login with multiple auth methods and end up being logged in with the same Sourcegraph account. In general, to link accounts, the following condition needs to be met:
-
-At the time of signing in with the new account, any of the email addresses configured on the user account on the auth provider must match any of the **verified** email addresses on the user account on the Sourcegraph side. If there is a match, the accounts are linked, [otherwise a new user account is created if auth provider is configured to support user sign ups](#how-to-control-user-sign-up).
-
-## Username normalization
-
-Usernames on Sourcegraph are normalized according to the following rules.
-
-- Any characters not in `[a-zA-Z0-9-._]` are replaced with `-`
-- Usernames with exactly one `@` character are interpreted as an email address, so the username will be extracted by truncating at the `@` character.
-- Usernames with two or more `@` characters are not considered an email address, so the `@` will be treated as a non-standard character and be replaced with `-`
-- Usernames with consecutive `-` or `.` characters are not allowed, so they are replaced with a single `-` or `.`
-- Usernames that start with `.` or `-` are not allowed, starting periods and dashes are removed
-- Usernames that end with `.` are not allowed, ending periods are removed
-
-Usernames from authentication providers are normalized before being used in Sourcegraph. Usernames chosen by users are rejected if they do not meet these criteria.
-
-For example, a user whose external username (according the authentication provider) is `alice_smith@example.com` would have the Sourcegraph username `alice-smith`.
-
-If multiple accounts normalize into the same username, only the first user account is created. Other users won't be able to sign in. This is a rare occurrence; contact support if this is a blocker.
diff --git a/docs/versioned/5.2/admin/auth/login_form.mdx b/docs/versioned/5.2/admin/auth/login_form.mdx
deleted file mode 100644
index 0c75eaa95..000000000
--- a/docs/versioned/5.2/admin/auth/login_form.mdx
+++ /dev/null
@@ -1,126 +0,0 @@
-# Login form
-
-The login form allows users to sign in to Sourcegraph using [configured auth providers](/admin/auth/).
-
-
-
-## Configuration
-
-Supported for Sourcegraph versions 5.1 or more.
-
-These options do not apply to [`builtin`](/admin/auth/#builtin-password-authentication) and
-[`http-header`](/admin/auth/#http-authentication-proxies) auth providers.
-- The builtin auth provider has its own login form.
-- The HTTP header auth provider does not appear on the login form as it is applied on every request if configured.
-
-### Change order of auth providers
-
-When multiple auth providers are configured, the login form displays a login button for each of them. Default order
-of auth providers is hardcoded in the application.
-
-The default order can be overriden with an optional `order` parameter. It is an integer and items
-will be sorted in natural order (1, 2, 3, ...).
-
-Example [site configuration](/admin/config/site_config):
-```json
-{
- "auth.providers": {
- "builtin": {
- {
- "type": "builtin",
- "allowSignup": false
- },
- },
- {
- "type": "github",
- "order": 2
- },
- {
- "type": "gitlab",
- "order": 1
- }
- }
-}
-```
-
-In this case, the GitLab auth provider will be shown above the GitHub auth provider on the login page.
-
-
-
-Auth providers without `order` parameter will be put at the end of the auth providers list.
-
-### Limit count of login options
-
-By default, the login form shows up to 5 primary auth provider buttons on the page. Other auth providers can be reached
-with the `Other login methods` button.
-
-This default can be changed, e.g. in case there are 1 or 2 preferred methods for users to login with.
-For example there might be a different auth provider setup for regular engineers and a different one for site admins.
-It makes sense to only show the default one to engineers to reduce confusion of regular users.
-
-There is a [site configuration](/admin/config/site_config) parameter `auth.primaryLoginProvidersCount`:
-```json
-{
- "auth.primaryLoginProvidersCount": 1,
- // ...
-}
-```
-
-In the example above, there will be only 1 primary provider, all the other providers will be shown on the next screen,
-when the `Other login methods` button is clicked.
-
-
-
-### Change label of auth provider button
-
-By default Sourcegraph shows a button for each auth provider, such as `Continue with GitHub`. The text label for the button
-is created from 2 parts: `Continue with` prefix and `Github`. These can be controlled with `displayPrefix` and `displayName`
-optional parameters of auth provider in [site configuration](/admin/config/site_config):
-
-Example [site configuration](/admin/config/site_config):
-```json
-{
- "auth.providers": [
- {
- "type": "github",
- "displayName": "GitHub Enterprise",
- "displayPrefix": "Login with"
- },
- {
- "type": "gitlab",
- "displayName": "GitLab",
- "displayPrefix": "Login with"
- }
- ]
-}
-```
-
-The example configuration above will render 2 buttons, `Login with GitHub Enterprise` and `Login with GitLab`.
-
-
-
-By default, the `displayPrefix` will be `Continue with` and `displayName` will be infered from the auth provider type.
-
-### Hide auth provider
-
-> NOTE: Hiding an auth provider is mostly useful for development purposes and special cases.
-
-It is also possible to hide the auth provider from the login form completely. Auth providers have a `hidden` boolean property.
-See the [site configuration](/admin/config/site_config) example below:
-```json
-{
- "auth.providers": [
- {
- "type": "github",
- "hidden": true,
- // ...
- },
- {
- "type": "gitlab",
- // ...
- }
- ]
-}
-```
-
-In this example, the GitHub auth provider will not be shown on the login form at all. Only the GitLab auth provider will be shown.
diff --git a/docs/versioned/5.2/admin/auth/saml/azure_ad.mdx b/docs/versioned/5.2/admin/auth/saml/azure_ad.mdx
deleted file mode 100644
index 331851a9e..000000000
--- a/docs/versioned/5.2/admin/auth/saml/azure_ad.mdx
+++ /dev/null
@@ -1,36 +0,0 @@
-# Configuring SAML with Azure Active Directory (Azure AD)
-
-## 1. Add an unlisted (non-gallery) application to your Azure AD organization
-
-1. In Azure AD, create an unlisted (non-gallery) application [following the official documentation](https://docs.microsoft.com/en-us/azure/active-directory/manage-apps/add-non-gallery-app).
-1. Once the application is created, follow [these instructions to enable SAML SSO](https://docs.microsoft.com/en-us/azure/active-directory/manage-apps/configure-single-sign-on-non-gallery-applications). Use these configuration values (replacing "sourcegraph.example.com" with your Sourcegraph instance URL):
- * **Identifier (Entity ID):** `https://sourcegraph.example.com/.auth/saml/metadata`
- * **Reply URL (Assertion Consumer Service URL):** `https://sourcegraph.example.com/.auth/saml/acs`
- * **Sign-on URL, Relay State, and Logout URL** can be left empty.
- * **User Attributes & Claims:** Add the following attributes.
- - `emailaddress`: user.mail (required)
- - `name`: user.userprincipalname (optional)
- - `login`: user.userprincipalname (optional)
- * **Name ID**: `email`
- * You can leave the other configuration values set to their defaults.
-1. Record the value of the "App Federation Metadata Url". You'll need this in the next section.
-
-## 2. Add the SAML auth provider to Sourcegraph site config
-
-[Add a SAML auth provider](/admin/auth/#add-a-saml-provider) with `identityProviderMetadataURL` set to the "App Federation Metadata Url" you recorded in the previous section. Here is an example of what your site configuration should look like:
-
-```json
-{
- // ...
- "externalURL": "https://sourcegraph.example.com",
- "auth.providers": [
- {
- "type": "saml",
- "configID": "azure",
- "identityProviderMetadataURL": "https://login.microsoftonline.com/7d2a00ed-73e8-4920-bbfa-ef68effe2d1e/federationmetadata/2007-06/federationmetadata.xml?appid=eff20ae4-145b-4bd3-ff3f-21edab43fe99"
- }
- ]
-}
-```
-
-> NOTE: Optional, but recommended: [add automatic provisioning of users with SCIM](/admin/scim).
diff --git a/docs/versioned/5.2/admin/auth/saml/generic.mdx b/docs/versioned/5.2/admin/auth/saml/generic.mdx
deleted file mode 100644
index 5a5893573..000000000
--- a/docs/versioned/5.2/admin/auth/saml/generic.mdx
+++ /dev/null
@@ -1,32 +0,0 @@
-# Configuring SAML
-
-To configure Sourcegraph to use SAML authentication, you'll need to do 2 things:
-
-1. Add application configuration to your identity provider (e.g., Auth0) describing Sourcegraph.
-1. Add configuration to Sourcegraph describing your identity provider.
-
-## 1. Add application configuration to your identity provider
-
-Your identity provider should provide documentation on how to register a new SAML application. Here are links to docs for common identity providers:
-
-* [Auth0](https://auth0.com/docs/protocols/saml/saml-idp-generic)
-* [Ping Identity](https://learning.getpostman.com/docs/postman-enterprise/sso/saml-ping/)
-* [Salesforce Identity](https://help.salesforce.com/articleView?id=identity_provider_enable.htm)
-* We have vendor-specific instructions for [Okta](/admin/auth/saml/okta), [Azure AD](/admin/auth/saml/azure_ad), and [Microsoft ADFS](/admin/auth/saml/microsoft_adfs)
-
-If you do not see your identity provider in the list above or otherwise have trouble with SAML configuration, please reach out to [support@sourcegraph.com](mailto:support@sourcegraph.com?subject=SAML%20help&body=I%20am%20trying%20to%20configure%20Sourcegraph%20with%20SAML%20authentication%20with%20%3Cfill%20in%20your%20auth%20provider%3E%2C%20but%20am%20running%20into%20issues%3A%20%3Cplease%20describe%3E).
-
-
-Ensure the following values are set for the application configuration in the identity provider. (Note: the exact names and labels may vary slightly for different identity providers)
-
-- **Assertion Consumer Service URL, Recipient URL, Destination URL, Single sign-on URL:** `https://sourcegraph.example.com/.auth/saml/acs` (substituting the `externalURL` from your [site configuration](/admin/config/site_config))
-- **Service Provider (issuer, entity ID, audience URI, metadata URL):** `https://sourcegraph.example.com/.auth/saml/metadata` (substituting the `externalURL` from your [site configuration](/admin/config/site_config)). Some identity providers require you to input these metadata values manually, instead of fetching everything from one URL. In that case, navigate to `https://sourcegraph.example.com/.auth/saml/metadata` and transcribe the values in the XML to the identity provider configuration.
-- **Attribute statements (claims):** Sourcegraph *requires* that an attribute `email` be set with the value of the user's verified email address. This is used to uniquely identify users to Sourcegraph. Other attributes such as `login` and `displayName` are optional.
- - `email` (required): the user's email
- - `login` (optional): the user's username
- - `displayName` (optional): the full name of the user
-- **Name ID**: `email`
-
-## 2. Add a SAML auth provider to Sourcegraph site configuration
-
-[Add a SAML auth provider](/admin/auth/saml/#add-a-saml-provider).
diff --git a/docs/versioned/5.2/admin/auth/saml/index.mdx b/docs/versioned/5.2/admin/auth/saml/index.mdx
deleted file mode 100644
index 0695d16e2..000000000
--- a/docs/versioned/5.2/admin/auth/saml/index.mdx
+++ /dev/null
@@ -1,186 +0,0 @@
-# SAML
-
-Security Assertion Markup Language (SAML) is a common web protocol used to pass authorized credentials between two web applications, a service provider (SP)—Sourcegraph in this instance and an Identity Provider (IdP). This communication is conducted via XML assertions.
-
-## Identity Providers
-
-Select your SAML identity provider for setup instructions:
-
-- [Okta](/admin/auth/saml/okta)
-- [Azure Active Directory (Azure AD)](/admin/auth/saml/azure_ad)
-- [Microsoft Active Directory Federation Services (ADFS)](/admin/auth/saml/microsoft_adfs)
-- [Auth0](/admin/auth/saml/generic)
-- [OneLogin](/admin/auth/saml/one_login)
-- [Ping Identity](/admin/auth/saml/generic)
-- [Salesforce Identity](/admin/auth/saml/generic)
-- [JumpCloud](/admin/auth/saml/jump_cloud)
-- [Other](/admin/auth/saml/generic)
-
-For advanced SAML configuration options, see the [`saml` auth provider documentation](/admin/config/site_config#saml).
-
-> NOTE: Sourcegraph currently supports at most 1 SAML auth provider at a time (but you can configure additional auth providers of other types). This should not be an issue for 99% of customers.
-
-## Add a SAML provider
-
-1. In Sourcegraph [site config](/admin/config/site_config), ensure `externalURL` is set to a value consistent with the URL you used in the previous section in the identity provider configuration.
-
- > NOTE: Make sure to use the exact same scheme (`http` or `https`), and there should be no trailing slash.
-
-2. Add an item to `auth.providers` with `type` "saml" and *either* `identityProviderMetadataURL` or `identityProviderMetadata` set. The former is preferred, but not all identity providers support it (it is sometimes called "App Federation Metadata URL" or just "SAML metadata URL").
-
- > WARNING: There can only be at most 1 element of type `saml` in `auth.providers`. Otherwise behavior is undefined. If you have another SAML auth provider configured, remove it from `auth.providers` before proceeding.
-
-Here are some examples of what your site config might look like:
-
-- Example 1:
-
- ```json
- {
- // ...
- "externalURL": "https://sourcegraph.example.com",
- "auth.providers": [
- {
- "type": "saml",
- "configID": "generic",
- "identityProviderMetadataURL": "https://example.com/saml-metadata"
- }
- ]
- }
- ```
-
-- Example 2:
-
- ```json
- {
- // ...
- "externalURL": "https://sourcegraph.example.com",
- "auth.providers": [
- {
- "type": "saml",
- "configID": "generic",
-
- // This is a long XML string you download from your identity provider.
- // You can escape it to a JSON string using a tool like
- // https://json-escape-text.now.sh.
- "identityProviderMetadata": " ..."
- }
- ]
- }
- ```
-
-Then, confirm that there are no error messages in:
-
-- The `sourcegraph-frontend` deployment logs for instances using [Docker Compose](/admin/deploy/docker-compose/index) and [Kubernetes](/admin/deploy/kubernetes/index)
-- The `sourcegraph/server` container logs for instances using a [single docker container](/admin/deploy/docker-single-container/index)
-
-The most likely error message indicating a problem is:
-
-```
-Error prefetching SAML service provider metadata
-```
-
-> NOTE: Email or NameID changes in the identity provider are not automatically reflected in Sourcegraph. Admins may manually update a users email via the admin interface at `https://example-sourcegraph.com/users//settings/emails`, or remove the user and recreate a new account.
->
-> Work is planned to support SCIM on SAML auth providers, which should automate this process. ([tracking issue](https://github.com/sourcegraph/sourcegraph/issues/22732))
-
-### How to control user sign-up and sign-in
-
-Use the following filters to restrict how users can create accounts and sign in to your Sourcegraph instance via SAML auth provider.
-
-**allowSignup**
-
- Allows new users to creating their accounts via SAML authentication, or blocks the sign-up when set to `false`.
-
- If `false`, users signing in via SAML must have an existing Sourcegraph account, which will be linked to their SAML identity after the sign-in.
-
- If not set, it will default to `true`.
-
- ```json
- {
- "type": "saml",
- // ...
- "allowSignup": false
- }
- ```
-
- > NOTE: If Sourcegraph is running on a free license all users will be created as site admins. Learn more about license settings on our [pricing page](https://about.sourcegraph.com/pricing).
-
-**allowGroups**
-
- Restricts login to members of the allowed SAML groups. By groups we understand any SAML assertion by which we can determine if a user should be allowed to sign-in or sign-up to a sourcegraph account. This SAML assertion attribute needs to return a list of strings.
-
- When not configured or set to`true`, sign-in will be allowed.
- If the list of allowed groups is empty, sign-in is not allowed.
-
- The `groupsAttributeName` is an optional parameter that can be used to set a different name for the SAML attribute assertion that contains a list of groups the user belongs to. It defaults to `"groups"` when not provided.
-
- If combined with `"allowSignup": true` or if `allowSignup` is not set, only members of the allowed groups can create their accounts in Sourcegraph via SAML authentication.
- When set with `"allowSignup": false`, an admin should first create the user account so that the user can login with SAML.
-
- ```json
- {
- "type": "saml",
- // ...
- "allowSignup": false,
- "allowGroups": ["sourcegraph"],
- "groupsAttributeName": "mySAMLgroup"
- }
- ```
-
- * Group names with special characters
-
- Special characters such as the `&` (ampersand) will be encoded in the XML document, the format used by SAML. For example, if you have a group `Dogs & cats` set in your Identity Provider, it will be shown as `Dogs & cats` in the XML assertions.
-
- This is expected—just avoid using the encoded character when adding a group name to the `allowGroups` array.
-
- _Instead of_
- ```json
- {
- "allowGroups":
- [
- "Dogs & cats", // wrong
- "Dogs > cats", // wrong
- "Cats < dogs" // wrong
- ]
- }
- ```
-
- _Use_
- ```json
- {
- "allowGroups":
- [
- "Dogs & cats", // correct
- "Dogs > cats", // correct
- "Cats < dogs" // correct
- ]
- }
- ```
-
-See [SAML troubleshooting](#troubleshooting) for more tips.
-
-## Troubleshooting
-
-### Enable logging in Sourcegraph containers
-Set the env var `INSECURE_SAML_LOG_TRACES=1` to log all SAML requests and responses on:
-
-- The `sourcegraph-frontend` deployment for instances using [Docker Compose](/admin/deploy/docker-compose/index) and [Kubernetes](/admin/deploy/kubernetes/index)
-- The `sourcegraph/server` container for instances using a [single docker container](/admin/deploy/docker-single-container/index)
-
-### Debugging with your browser
-When debugging a problem with SAML its often helpful to use the browser's developer tools to directly observe the XML assertions and their contents. Below are some general pointers on how to collect SAML communications:
-
-1. Navigate to Sourcegraph in the browser and prepare to attempt a login via SAML
-2. Open the developer tools and navigate to the `Network` tab and enable the option to preserve logs if it is available
-3. Clear the collection of network logs in the the `Network` tab and attempt a SAML login
-4. Look for a network request in the `Network` tab that indicates a SAML request response communication (this might be labeled ACS, or Authn)
-5. Select the network request and observe its headers
-
-You should see something like the image below from a Sourcegraph Okta login, observed via Safari devTools:
-
-
-The above example does not contain any sensitive information. In a real network response you will often find that the header info in the `Network` tab has a `SAMLResponse` field containing XML that has been encoded and/or encrypted.
-
-There are a variety of ways to decompress and decrypt XML. For an easy to use tools we recommend [samltool.com](https://www.samltool.com/), which provides a user friendly UI to accomplish these tasks.
-
-If you're not sure why your SAML isn't working and you've collected the network request and response from your login attempts, please feel free to reach out to our support team at [support@sourcegraph.com](mailto:support@sourcegraph.com), **please redact any secret keys that may be present in your site configuration or SAML assertions before sharing with us at Sourcegraph.**
diff --git a/docs/versioned/5.2/admin/auth/saml/jump_cloud.mdx b/docs/versioned/5.2/admin/auth/saml/jump_cloud.mdx
deleted file mode 100644
index a93df05c7..000000000
--- a/docs/versioned/5.2/admin/auth/saml/jump_cloud.mdx
+++ /dev/null
@@ -1,46 +0,0 @@
-# Configuring SAML with JumpCloud
-
-> NOTE: Please substitute `https://sourcegraph.example.com` with the actual value of `externalURL` in your [site configuration](/admin/config/site_config)).
-
-## 1. Configure SAML 2.0 application on JumpCloud
-
-Configure a new **SAML 2.0** application with the following settings:
-
-- **Display Label**: Recommend `Sourcegraph`, but could be anything you prefer.
-- **IdP Entity ID**: Recommend `JumpCloud`, but could be anything you prefer.
-- **SP Entity ID**: `Sourcegraph`
-- **ACS URL**: `https://sourcegraph.example.com/.auth/saml/acs`
-- **SP Certificate**: (remain unset)
-- **SAMLSubject NameID**: `email`
-- **SAMLSubject NameID Format**: `urn:oasis:names:tc:SAML:2.0:nameid-format:persistent`
-- **Signature Algorithm**: `RSA-SHA256`
-- **Sign Assertion**: `true` (checked)
-- **Default RelayState**: (remain unset)
-- **IdP-Initiated URL**: (remain unset)
-- **Declare Redirect Endpoint**: `false` (unchecked)
-- **IdP URL**: Recommend `https://sso.jumpcloud.com/saml2/sourcegraph`, but could be anything you prefer.
-- **Attributes**: (remain unset)
-
-Once the application is created, look for a tiny link called **export metadata** on the bottom-right of the page. Click on the link and save the metadata file which will be used later.
-
-## 2. Configure SAML authentication provider in Sourcegraph
-
-[Add a SAML auth provider](/admin/auth/saml/#add-a-saml-provider) with `configID` set to the **SP Entity ID**, and `identityProviderMetadata` set to the content of the metadata you saved in the previous section. Here is an example of what your site configuration should look like:
-
-```json
-{
- // ...
- "externalURL": "https://sourcegraph.example.com",
- "auth.providers": [
- {
- "type": "saml",
- // This value must match the "SP Entity ID" of your JumpCloud application.
- "configID": "Sourcegraph",
- "serviceProviderIssuer": "Sourcegraph",
- // You can escape the metadata to a JSON string using a tool like https://json-escape-text.now.sh.
- // Please be noted it is an online tool and could leak or record your confidential information.
- "identityProviderMetadata": "..."
- }
- ]
-}
-```
diff --git a/docs/versioned/5.2/admin/auth/saml/microsoft_adfs.mdx b/docs/versioned/5.2/admin/auth/saml/microsoft_adfs.mdx
deleted file mode 100644
index 9444e874e..000000000
--- a/docs/versioned/5.2/admin/auth/saml/microsoft_adfs.mdx
+++ /dev/null
@@ -1,194 +0,0 @@
-# Configuring SAML with Microsoft Active Directory Federation Services (ADFS)
-
-This document applies to the following versions of [Microsoft Active Directory Federation Services (ADFS)](https://docs.microsoft.com/en-us/windows-server/identity/active-directory-federation-services):
-
-- ADFS 2.1 (Windows Server 2012)
-- ADFS 3.0 (Windows Server 2012 R2)
-- ADFS 4.0 (Windows Server 2016)
-
-These instructions guide you through configuring Sourcegraph as a relying party (RP) of ADFS, which enables users to authenticate to Sourcegraph using their Active Directory credentials.
-
-## Pre-requisites
-
-* Active Directory instance where all users have email and username attributes.
-* An instance of ADFS running on Windows Server, joined to your Active Directory domain.
-* Sourcegraph should be [configured to use HTTPS](/admin/http_https_configuration#nginx-ssl-https-configuration).
-* Ensure that `externalURL` in [site config](/admin/config/site_config) meets the following
- criteria:
- * It is the URL used by end users (no trailing slash).
- * It is HTTPS.
-
-## 1. Add Sourcegraph as a relying party (RP) to ADFS
-
-These steps should be completed on the Windows Server instance with ADFS installed.
-
-1. Open **Server Manager**.
-1. In the upper right corner, click **Tools > AD FS Management**. This should open the AD FS
- Management tool in a new window.
-1. In the sidebar of the AD FS Management tool, right-click **Relying Party Trusts > Add Relying
- Party Trust...** This should open the **Add Relying Party Trust Wizard**.
-1. Proceed through the Add Relying Party Trust Wizard as follows:
- - Welcome (Page 1): Leave as is and click **Start**.
- - Select Data Source (Page 2)
- - Select "Import data about the relying party published online or on a local network" and set
- the Federation metadata address: `https://sourcegraph.example.com/.auth/saml/metadata`.
- - If this step fails, see [Troubleshooting: Add Relying Party Trust fails on Select Data
- Source](#add-relying-party-trust-fails-on-select-data-source-page).
- - Specify Display Name (Page 3)
- - Enter "Sourcegraph" as the display name (any value will do) and click **Next**.
- - Choose Issuance Authorization Rules (Page 4)
- - Ensure **Permit everyone** is selected (the default) and click **Next**.
- - Ready to Add Trust (Page 5)
- - Click **Next**.
- - Finish (Page 6)
- - Click **Close**.
-
-If the last step did NOT open the **Edit Claim Issuance Policy** or **Edit Claim Rules** window,
-right-click the item ("Sourcegraph" or whatever you set as the display name) in the Relying Party
-Trusts list and click **Edit Claim Issuance Policy**. In the "Issuance Transform Rules" tab of this
-window, add the 2 following rules:
-
-#### Claim Rule 1: Send User Info
-
-Click **Add Rule...** and proceed through the "Add Transform Claim Rule Wizard" as follows:
-
-- Choose Rule Type (Page 1)
- - Claim rule template: `Send LDAP Attributes as Claims`
- - Click **Next**
-- Configure Claim Rule (Page 2)
- - Claim rule name: `Send User Info` (any value is OK)
- - Attribute store: `Active Directory`
- - Mapping of LDAP attributes to outgoing claim types:
- - `E-Mail-Addresses` -> `E-Mail Address`
- - `Display-Name` -> `Common Name`
- - `SAM-Account-Name` -> `Name` (optional, username will be derived from email if omitted)
- - Click **Finish**.
-
-#### Claim Rule 2: Email to NameID
-
-Click **Add Rule...** and proceed through the "Add Transform Claim Rule Wizard" as follows:
-
-- Choose Rule Type (Page 1)
- - Claim rule template: `Transform an Incoming Claim`
- - Click **Next**.
-- Configure Claim Rule (Page 2):
- - Claim rule name: `Email to NameID`
- - Incoming claim type: `E-Mail Address`
- - Outgoing claim type: `Name ID`
- - Outgoing name ID format: `Persistent identifier`
- - Select **Pass through all claim values**.
- - Click **Finish**.
-
-Click **OK** to apply the new claim rules and close the window.
-
-## 2. Add the SAML auth provider to Sourcegraph site config
-
-[Add a SAML auth provider](/admin/auth/saml/#add-a-saml-provider) that points to your ADFS server's SAML metadata URL. This
-typically contains the path `/federationmetadata/2007-06/federationmetadata.xml`. Example:
-
-```
-{
- // ...
- "externalURL": "https://sourcegraph.example.com",
- "auth.providers": [
- {
- "type": "saml",
- "configID": "ms_adfs"
- "identityProviderMetadataURL": "https://adfs.example.com/federationmetadata/2007-06/federationmetadata.xml"
- }
- ]
-}
-```
-
-## Authenticate to Sourcegraph using ADFS
-
-All configuration is now complete. Let's test that it works.
-
-1. Visit `https://sourcegraph.example.com`. (If you were already signed in, sign out of
- Sourcegraph before doing so.)
-1. Sign into Sourcegraph using ADFS. If ADFS is the only `auth.provider` entry, you should be
- automatically redirected to the sign-in page. Otherwise, click on the SAML sign-in button.
-1. After signing into ADFS, you should be redirected back to Sourcegraph and signed in.
-
-## Troubleshooting
-
-When troubleshooting, we recommend setting the env var `INSECURE_SAML_LOG_TRACES=1` on the
-`sourcegraph/server` Docker container (or the `sourcegraph-frontend` pod if Sourcegraph is deployed
-to a Kubernetes cluster). This logs all SAML requests and responses.
-
-### Add Relying Party Trust fails on Select Data Source page
-
-This section covers troubleshooting options if the "Import data about the relying party published
-online or a local network" option fails on the **Select Data Source** page of the **Add Relying
-Party Trust Wizard**.
-
-First, check that the Federation metadata address value (which should look like
-`https://sourcegraph.example.com/.auth/saml/metadata`) is accessible by navigating to it in your web
-browser. If this fails, then something is likely misconfigured in Sourcegraph. Check that you have
-at most 1 SAML auth provider configured (`auth.providers` in [site
-config](/admin/config/site_config)) or contact support for further guidance.
-
-If the endpoint works in your browser, it downloads a `metadata` XML file. This indicates the
-endpoint is working, but is inaccessible from ADFS (likely due to a firewall issue or ADFS not
-respecting Sourcegraph's TLS certificate due to it being self-signed or from an unrecognized
-Certificate Authority). If this is the case, you have a few options:
-
-* Select "Import data about the relying party from a file" on the "Select Data Source" page and
- upload the `metadata` XML file manually.
-* Select "Enter data about the relying party manually" on the "Select Data Source" page. Do the
- following on the subsequent pages of the wizard:
- * Specify Display Name: Sourcegraph
- * Configure Certificate: Leave as is
- * Configure URL: Check "Enable support for the SAML 2.0 WebSSO protocol". Set the "Relying party
- SAML 2.0 SSO service URL" to: https://sourcegraph.example.com/.auth/saml/acs
- * Configure Identifiers: Add https://sourcegraph.example.com/.auth/saml/metadata as a relying
- party trust identifier.
- - **IMPORTANT:** ensure your `externalURL` is set to exactly the root URL of the relying party
- trust identifier, (including the URL scheme)
- * For the remaining pages in the wizard, follow the normal steps.
-* Fix the connectivity issue from ADFS to Sourcegraph by adding the appropriate firewall rule or by
- authorizing Sourcegraph's TLS certificate on the Windows Server host running ADFS.
-
-### Error prefetching SAML service provider metadata
-
-If you notice `Error prefetching SAML service provider metadata` errors in the Sourcegraph logs,
-this indicates that Sourcegraph cannot fetch the URL specified in the `identityProviderMetadataURL`
-field of the ADFS SAML auth provider config. Navigate to this URL in your web browser. If it errors,
-check the URL for typos, or there might be an issue with the accessibility of ADFS.
-
-If it succeeds, it should download a `federationmetadata.xml` file. This indicates that ADFS is
-accessible from your browser, but not from the container running Sourcegraph (probably due to a
-firewall rule or due to Sourcegraph's host not respecting the TLS certificate of ADFS). You have two
-options:
-
-* Open the `federationmetadata.xml` file, transform it into a JSON string (using a tool like
- https://json-escape-text.now.sh), and set it in the `identityProviderMetadata` field of the
- `auth.provider` SAML config. You can then delete the `identityProviderMetadataURL` field.
-* Fix the connectivity issue from Sourcegraph to ADFS by adding the appropriate firewall rule, or
- authorizing the ADFS TLS certificate on the container running Sourcegraph.
-
-### Error on ADFS login page
-
-This section covers troubleshooting tips if the following is true:
-
-* You have completed the requisite SAML config on both ADFS and Sourcegraph without errors.
-* On sign-in, users arrive at an ADFS error page that says something like "An error occurred".
-
-1. On Windows Server, open **Event Viewer**.
-1. In the lefthand sidebar, click **Application and Services Logs** > AD FS > Admin.
-1. Find the event corresponding to the failed login. This should have Level "Error".
-
-The error log message will indicate something about the root cause of the error. A common error
-message is `The requested relying party trust '' is unspecified or unsupported`. If this is the
-error, double-check the relying party identifiers of the Relying Party Trust entry in ADFS:
-
-* Open **AD FS Management**.
-* In the sidebar, click **Relying Party Trusts**.
-* Right-click the row corresponding to Sourcegraph, click "Properties".
-* In the properties editor popup, click the "Identifiers" tab. Examine the list of relying party
- identifiers to ensure there is an entry that matches the relying party trust URL from the Event
- Viewer error.
-
-### Other troubleshooting
-
-See [SAML troubleshooting](/admin/auth/saml/#saml-troubleshooting) for more tips.
diff --git a/docs/versioned/5.2/admin/auth/saml/okta.mdx b/docs/versioned/5.2/admin/auth/saml/okta.mdx
deleted file mode 100644
index 8d48daf07..000000000
--- a/docs/versioned/5.2/admin/auth/saml/okta.mdx
+++ /dev/null
@@ -1,55 +0,0 @@
-# Configuring SAML with Okta
-
-## 1. Add a SAML application in Okta
-
-1. Login to your Okta account.
-2. On the left hand side, click on the “Applications” menu, and then select the “Applications” item.
-3. Click on “Create App Integration”. Another screen should pop-up, listing sign-in methods. Choose “SAML 2.0”. Click "Next".
-4. You should now see “Create SAML Integration” on this page, and you will be on “General Settings”. Specify a name for “App name” (example: “Sourcegraph”) and the [logo](https://sourcegraphstatic.com/sourcegraph-logo-asterisk-color-1024px.png). Click “Next”.
-5. Now you should be on “Configure SAML”. On this page, you will need your Sourcegraph URL (Ex: `https://sourcegraph.example.com`). Follow along with the following instructions, replacing `` with your Sourcegraph URL:
- - In section A ("SAML Settings"), under "General":
- - For “Single sign on URL”, set the value to ``/.auth/saml/acs
- - Under this box, there should be a checkbox labeled “Use this for Recipient URL and Destination URL”. Check the box if it is not already selected.
- - For “Audience URI (SP Entity ID)”, set the value to ``/.auth/saml/metadata
- - For "Name ID format", choose "EmailAddress"
- - In the section titled “Attribute Statements (optional)”:
- - Set the following Name and Values, leaving the Name format to “Unspecified”
- - Email: user.email (This one is required)
- - Login: user.login (This one is optional)
- - displayName: user.firstName (This one is optional)
-6. Click Next.
-7. Now you should be on the “Feedback” step. Select the radio button for “I’m an Okta customer adding an internal app”, and provide feedback if you wish. Click "Finish".
-8. You should now be on the Application page for Sourcegraph, where you can view the settings and configurations you have just set. You will want to grant users or groups sign-in access before moving on.
- - To grant access to your own user:
- - Go to the “Assignments” tab, where you should see a table of People and Groups. Click the “Assign” dropdown, and then “Assign to People”.
- - A new window should pop-up. Find your account, and click “Assign”, “Save and Go Back”, and then “Done”.
-9. You have now finished configuring the settings in Okta. Before moving to step #2, make sure you have granted access to users/groups and copy the metadata URL to your clipboard:
- - Go into the “Sign On” tab
- - Scroll down to the section "SAML Signing Certificates"
- - Click the "Actions" dropdown in the active certificate and then "View IdP Metadata"
- - Copy the URL from the new browser tab that will open. It will have the following format:
-
- ```sh
- https://.okta.com/app//sso/saml/metadata
- ```
-
-## 2. Add the SAML auth provider to Sourcegraph site config
-
-[Add a SAML auth provider](/admin/auth/saml/#add-a-saml-provider) with `identityProviderMetadataURL` set to the URL you copied from the "View IdP Metadata" link in the previous section. Here is an example of what your site configuration should look like:
-
-```json
-{
- // ...
- "externalURL": "https://sourcegraph.example.com",
- "auth.providers": [
- {
- "type": "saml",
- "configID": "okta",
- "identityProviderMetadataURL": "https://okta.example.com/app/8VglnckX0yyhdkp0bk00/sso/saml/metadata",
- "allowSignup": true
- }
- ]
-}
-```
-
-> NOTE: Optional, but recommended: [add automatic provisioning of users with SCIM](/admin/scim).
diff --git a/docs/versioned/5.2/admin/auth/saml/one_login.mdx b/docs/versioned/5.2/admin/auth/saml/one_login.mdx
deleted file mode 100644
index 66cfce6de..000000000
--- a/docs/versioned/5.2/admin/auth/saml/one_login.mdx
+++ /dev/null
@@ -1,39 +0,0 @@
-# Configuring SAML with One Login
-
-## 1. Create a SAML app in OneLogin
-
-1. Go to https://mycompany.onelogin.com/apps/find (replace "mycompany" with your company's OneLogin
- ID).
-1. Type "saml" in the search field and select `SAML Custom Connector (Advanced)`, which uses the SAML 2.0 version. Click "Save".
-1. Under the "Configuration" tab, set the following properties (replacing `https://sourcegraph.example.com` with your Sourcegraph URL):
- * `Audience`: `https://sourcegraph.example.com/.auth/saml/metadata`
- * `Recipient`: `https://sourcegraph.example.com/.auth/saml/acs`
- * `ACS (Consumer) URL Validator`: https://sourcegraph\\.example\\.com\\/\\.auth\\/saml\\/acs
- - (This is regular expression that matches the URL `https://sourcegraph.example.com/.auth/saml/acs`)
- * `ACS (Consumer) URL`: `https://sourcegraph.example.com/.auth/saml/acs`
-2. Under the "Parameters" tab, ensure the following parameters exist:
- - * Email (NameID): Email
- - * DisplayName: First Name Include in SAML Assertion: ✓
- - * login: AD user name Include in SAML Assertion: ✓
-3. Save the app in OneLogin.
-4. Find the Issuer URL in the OneLogin app configuration page, under the "SSO" tab, under "Issuer
- URL". It should look something like `https://mycompany.onelogin.com/saml/metadata/123456` or
- `https://app.onelogin.com/saml/metadata/123456`. Record this for the next section.
-
-## 2. Add the SAML auth provider to Sourcegraph site config
-
-[Add a SAML auth provider](/admin/auth/saml/#add-a-saml-provider) with `identityProviderMetadataURL` set to the Issuer URL recorded from the previous section. Here is an example:
-
-```json
-{
- // ...
- "externalURL": "https://sourcegraph.example.com",
- "auth.providers": [
- {
- "type": "saml",
- "configID": "onelogin",
- "identityProviderMetadataURL": ""
- }
- ]
-}
-```
diff --git a/docs/versioned/5.2/admin/auth/troubleshooting.mdx b/docs/versioned/5.2/admin/auth/troubleshooting.mdx
deleted file mode 100644
index 5f7d65f23..000000000
--- a/docs/versioned/5.2/admin/auth/troubleshooting.mdx
+++ /dev/null
@@ -1,124 +0,0 @@
-# Troubleshooting user authentication (SSO)
-
-## Basic principles
-
-As of 3.20, Sourcegraph supports 6 authentication methods as listed in our [User authentication (SSO)](https://docs.sourcegraph.com/admin/auth) page, details about how to configure those methods should refer to the relevant document pages.
-
-Among these authentication methods, there are 4 that require Sourcegraph to send requests to the authentication provider, including GitHub OAuth, GitLab OAuth, OpenID Connect and SAML.
-
-If a GitHub OAuth method is configured in Sourcegraph, users should be redirected to the GitHub instance (GitHub.com, GitHub Enterprise, etc.) to authorize the Sourcegraph OAuth application upon sign in. Once the user is authenticated on the GitHub instance and has authorized the application, the GitHub instance should redirect the user directly back to the Sourcegraph instance.
-
-This redirection contains critical and confidential information that Sourcegraph consumes (as an OAuth consumer), and information may be stripped or expired if there is a third-party in the way.
-
-Therefore, the **Callback URL/Single Sign On URL** is very important to get right on the authentication provider side. Here is an example of callback URL in a GitHub OAuth application settings:
-
-
-
-For an OAuth application against GitHub.com (GitHub OAuth), the authentication flow should look like this (-> indicates a browser redirection):
-
-```
- Sourcegraph (choose to sign in with GitHub.com)
--> GitHub.com (authorize the application)
--> Sourcegraph
-```
-
-### The authentication provider always redirects back to its direct consumer
-
-GitHub OAuth, GitLab OAuth, OpenID Connect and SAML all require the admin to configure a **Callback URL/Single Sign On URL** on the authentication provider side, which means the redirection back to the Sourcegraph (the consumer) is critical to make the user authentication work (as explained in the last section).
-
-In a complex authentication set up, there is a chain of authentication. For example, Sourcegraph syncs users from the GitHub instance via GitHub OAuth, and the GitHub instance in turn syncs users from a company central SSO (such as Okta) via SAML.
-
-In such a setup, the Sourcegraph instance only talks to the GitHub instance, and is not aware of the existence of the central SSO. The central SSO, in turn, does not know that the Sourcegraph is syncing users from the central SSO (through GitHub).
-
-Therefore, it makes no sense to have the central SSO redirect users directly back to Sourcegraph, which effectively bypasses the GitHub instance. The authentication provider should always redirect the user to its direct consumer. Thus, *the central SSO should only redirect users back to the GitHub instance, and the GitHub instance should redirect the user back to Sourcegraph with any information needed for the consumer.*
-
-## Debugging playbook
-
-### Enable oAuth log traces
-
-Set the env var `INSECURE_OAUTH2_LOG_TRACES=1` to log all OAuth2 requests and responses on:
-
-* [Docker Compose](/admin/deploy/docker-compose/index) and [Kubernetes](/admin/deploy/kubernetes/index): the `sourcegraph-frontend` deployment
-* [Single-container](/admin/deploy/docker-single-container/index): the `sourcegraph/server` container
-
-### Make sure the client ID and client secret are actually correct
-
-Invalid client ID and client secret pair does not prevent the user from completing the OAuth flow until a confusing error, which may mislead the user into thinking the client ID and client secret pair are correct.
-
-### Make sure provider permissions are correct
-
-If you are unable to use OAuth to login, perhaps after an upgrade, and receive the following error:
-
-```
-An error has occurred
-The requested scope is invalid, unknown, or malformed.
-```
-
-This could be related to the scopes granted on your `clientID` and `clientSecret` on the `auth.providers` section in your site configuration.
-
-For example, for the GitLab oAuth integratio, check the [GitLab scopes](https://gitlab.com/-/profile/applications) granted to ensure that you have the following configured:
-
-* `api`
-* `read_user`
-* `read_api`
-
-### Test in incognito mode
-
-It is possible that a user's browser extension modifies or strips a HTTP header or cookie needed for the authentication. Ask the user to perform the test in incognito mode without any browser extensions. The incognito mode also helps ensure that the user is logged out from all involved parties.
-
-### Preserve log in DevTools
-
-To keep a record of redirection in a user's browser is very helpful to audit the auth flow. Here is how to do it in Chrome:
-
-
-
-It's easier to spot problems if the user “clears logs” before running tests:
-
-
-
-### Configure SAML in Okta
-
-Things to note:
-
-1. Okta has a weird UX that many options (e.g. SAML templates) are not available in the so-called **Developer Console** UI. Make sure to first change to the **Classic UI** on the top left.
-
- 
-
-2. The Okta docs must be opened directly from the application settings because of a special URL parameter `baseAdminUrl` used to display confidential information in the docs:
-
- 
- 
-
- Without the URL parameter `baseAdminUrl`, it displays a static warning:
-
- 
-
-### Sourcegraph specific cookies
-
-For GitHub OAuth, Sourcegraph uses a special cookie called `github-state-cookie`, which should be sent by browser automatically when the user redirected back to Sourcegraph (the callback URL):
-
-
-
-If the cookie is not found in the **Request Headers**, then there is a problem. It may be due to proxy server stripping out any unrecognized cookies (so the browser won’t be able to receive the cookie back from the Sourcegraph instance in the first place).
-
-### Things to collect for async analysis
-
-- `"auth.providers"` portion of the Sourcegraph site configuration. Example:
-
- 
-
-- A screenshot of the Sourcegraph OAuth application on the GitHub instance. Example:
-
- 
-
-- A screenshot of the GitHub authentication settings.
- - For GitHub Enterprise Server, it is in the management console's **Settings > Authentication**. Example:
-
- 
-
- - For GitHub Enterprise Cloud, it is in the organization's **Settings > Organization security > SAML single sign-on**. Example:
-
- 
-
-- Screenshots of the Okta application settings on both General and Sign On tabs, with all options from top to bottom.
-- Full browser logs (https://toolbox.googleapps.com/apps/har_analyzer/)
diff --git a/docs/versioned/5.2/admin/beta_and_experimental_features.mdx b/docs/versioned/5.2/admin/beta_and_experimental_features.mdx
deleted file mode 100644
index 576114e08..000000000
--- a/docs/versioned/5.2/admin/beta_and_experimental_features.mdx
+++ /dev/null
@@ -1,38 +0,0 @@
-# Beta and experimental features
-
-Sourcegraph often beta tests major features before we make them generally available.
-
-Exposing beta and experimental features gives you an opportunity to try our newest features sooner.
-
-In return, your feedback helps us make sure that our new features are reliable and useful, and we appreciate any and all feedback you want to provide. You can [file an issue](https://github.com/sourcegraph/sourcegraph/issues/new/choose), email it directly to [feedback@sourcegraph.com](mailto:feedback@sourcegraph.com), or use the in-app feedback modal.
-
-## **Both** beta and experimental features
-
-For both features labeled `Beta` and those labeled `Experimental`, Sourcegraph wants to be transparent that:
-
-- The feature is undergoing active development and your [feedback](mailto:feedback@sourcegraph.com) is especially appreciated
-- The feature may have bugs
-- The feature may be changed, deprecated, or removed
-- The feature is excluded from our [Support SLAs](https://handbook.sourcegraph.com/support#slas)
-- The feature may have an additional cost to use once it becomes generally available
-- Any documentation for the feature will explicitly note the feature is in beta or experimental mode
-
-## Experimental features
-
-If a feature is labeled `Experimental`, this specifically means:
-
-- The feature may be primarily supported by the product engineering team rather than our customer support team
-- The feature may have limited support and no documentation in the Sourcegraph docs
-- The feature will have to be deliberately enabled
-- The customer engineering team may not be aware or proficient in introducing this feature
-- We think there's about a 50% chance this makes it to Beta
-
-## Beta features
-
-If a feature is labeled `Beta`, this specifically means:
-
-- The feature will have documentation on docs.sourcegraph.com
-- The feature will be primarily supported by the customer support team
-- The feature may require intentional setup, or it may be widely available to all users by default
-- The customer engineering team is aware of this feature, but may rely on product managers to introduce it to customers
-- We think there's about a 90% chance this makes it to GA
diff --git a/docs/versioned/5.2/admin/config/advanced_config_file.mdx b/docs/versioned/5.2/admin/config/advanced_config_file.mdx
deleted file mode 100644
index d9ac4c5c7..000000000
--- a/docs/versioned/5.2/admin/config/advanced_config_file.mdx
+++ /dev/null
@@ -1,278 +0,0 @@
-# Loading configuration via the file system (declarative config)
-
-Some teams require Sourcegraph configuration to be stored in version control as opposed to editing via the Site admin
-UI.
-
-As of Sourcegraph v3.4+, this is possible for [site configuration](/admin/config/site_config)
-, [code host configuration](/admin/external_service/), and [global settings](/admin/config/settings). As of Sourcegraph v3.34+, Sourcegraph
-supports merging multiple site config files.
-
-## Benefits
-
-1. Configuration can be checked into version control (e.g., Git).
-2. Configuration is enforced across the entire instance, and edits cannot be made via the web UI (by default).
-3. Declarative site-config
-4. Sourcegraph watches the config file for changes and applies any new updates to the corresponding external services.
-
-## Drawbacks
-
-Loading configuration in this manner has two significant drawbacks:
-
-1. You will no longer be able to save configuration edits through the web UI by default (you can use the web UI as
- scratch space, though).
-2. Sourcegraph sometimes performs automatic migrations of configuration when upgrading versions. This process will now
- be more manual for you (see below).
-3. Site-config contains **sensitive information** (see [Merging site config](#merging-site-configuration) for
- mitigations)
-
-## Site configuration
-
-Set `SITE_CONFIG_FILE=site.json` and mount the config on:
-
-- [Docker Compose](/admin/deploy/docker-compose/) and [Kubernetes](/admin/deploy/kubernetes/): all `frontend`
- containers
-- [Single-container](/admin/deploy/docker-single-container/): the `sourcegraph/server` container
-
-Where `site.json` is a file that contains the [site configuration](/admin/config/site_config), which you would otherwise edit
-through the in-app site configuration editor.
-
-If you want to _allow_ edits to be made through the web UI (which will be overwritten with what is in the file on a
-subsequent restart), you may additionally set `SITE_CONFIG_ALLOW_EDITS=true`.
-
-> NOTE: If you do enable this, it is your responsibility to ensure the configuration on your instance and in the file remain in sync.
-
-### Merging site-configuration
-
-You may separate your site-config into a sensitive and non-sensitive `jsonc` / `json`. Set the env
-var `SITE_CONFIG_FILE=/etc/site.json:/other/sensitive-site-config.json`. Note the path separator of `:`
-
-This will merge both files. Sourcegraph will need access both files.
-
-## Code host configuration
-
-Set `EXTSVC_CONFIG_FILE=extsvc.json` and mount the config on:
-
-- [Docker Compose](/admin/deploy/docker-compose/) and [Kubernetes](/admin/deploy/kubernetes/): all `frontend`
- containers
-- [Single-container](/admin/deploy/docker-single-container/): the `sourcegraph/server` container
-
-Where `extsvc.json` contains a JSON object that specifies _all_ of your code hosts in a single JSONC file:
-
-```jsonc
-
-{
- "GITHUB": [
- {
- // First GitHub code host configuration: literally the JSON object from the code host config editor.
- "authorization": {},
- "url": "https://github.com",
- "token": "...",
- "repositoryQuery": ["affiliated"]
- },
- {
- // Another GitHub code host configuration.
- ...
- },
- ],
- "OTHER": [
- {
- // First "Generic Git host" code host configuration.
- "url": "https://mycodehost.example.com/repos",
- "repos": ["foo"],
- }
- ],
- "PHABRICATOR": [
- {
- // Phabricator code host configuration.
- ...
- },
- ]
-}
-```
-
-You can find a full list of [valid top-level keys here](https://sourcegraph.com/github.com/sourcegraph/sourcegraph@b7ebb9024e3a95109fdedfb8057795b9a7c638bc/-/blob/cmd/frontend/graphqlbackend/schema.graphql#L1104-1110).
-
-If you want to _allow_ edits to be made through the web UI (which will be overwritten with what is in the file on a subsequent restart), you may additionally set `EXTSVC_CONFIG_ALLOW_EDITS=true`. **Note** that if you do enable this, it is your responsibility to ensure the configuration on your instance and in the file remain in sync.
-
-## Global settings
-
-Set `GLOBAL_SETTINGS_FILE=global-settings.json` and mount the config on:
-
-- [Docker Compose](/admin/deploy/docker-compose/) and [Kubernetes](/admin/deploy/kubernetes/): all `frontend` containers
-- [Single-container](/admin/deploy/docker-single-container/): the `sourcegraph/server` container
-
-Where `global-settings.json` contains the global settings, which you would otherwise edit through the in-app global settings editor.
-
-If you want to _allow_ edits to be made through the web UI (which will be overwritten with what is in the file on a subsequent restart), you may additionally set `GLOBAL_SETTINGS_ALLOW_EDITS=true`. Note that if you do enable this, it is your responsibility to ensure the global settings on your instance and in the file remain in sync.
-
-## Upgrades and Migrations
-
-As mentioned earlier, when configuration is loaded via the filesystem, Sourcegraph can no longer persist the automatic migrations to configuration it may perform when upgrading.
-
-It will still perform such migrations on the configuration loaded from file, it just cannot persist such migrations **back to file**.
-
-When you upgrade Sourcegraph, you should do the following to ensure your configurations do not become invalid:
-
-1. Upgrade Sourcegraph to the new version
-1. Visit each configuration page in the web UI (management console, site configuration, each code host)
-1. Copy the (now migrated) configuration from those pages into your JSON files.
-
-It is essential to follow the above steps after **every** Sourcegraph version update, because we only guarantee migrations remain valid across two minor versions. If you fail to apply a migration and later upgrade Sourcegraph twice more, you may effectively "skip" an important migration.
-
-We're planning to improve this by having Sourcegraph notify you as a site admin when you should do the above, since today it is not actually required in most upgrades. See https://github.com/sourcegraph/sourcegraph/issues/4650 for details. In the meantime, we will do our best to communicate when this is needed to you through the changelog.
-
-## Kubernetes ConfigMap
-
-You can load these configuration files via a Kubernetes ConfigMap resource. To do so, create a `base/frontend/sourcegraph-frontend.ConfigMap.yaml` file with contents like this:
-
-```yaml
-apiVersion: v1
-kind: ConfigMap
-metadata:
- annotations:
- description: Sourcegraph configuration files
- labels:
- deploy: sourcegraph
- name: frontend-config-files
-data:
- # IMPORTANT: see https://docs.sourcegraph.com/admin/config/advanced_config_file for details on how this works.
-
- # Global user settings, see: https://docs.sourcegraph.com/admin/config/advanced_config_file#global-settings
- global-settings.json: |
- {
- "search.scopes": [
- {
- "name": "Test code",
- "value": "file:(test|spec)"
- },
- {
- "name": "Non-test files",
- "value": "-file:(test|spec)"
- }
- ],
- "extensions": {
- "sourcegraph/git-extras": true,
- }
- }
-
- # Site configuration, see: https://docs.sourcegraph.com/admin/config/advanced_config_file#site-configuration
- site.json: |
- {
- "auth.providers": [
- {
- "allowSignup": true,
- "type": "builtin"
- }
- ],
- "externalURL": "https://sourcegraph.example.com",
- "licenseKey": "..."
- }
- }
-
- # Code host configuration, see: https://docs.sourcegraph.com/admin/config/advanced_config_file#code-host-configuration
- extsvc.json: |
- {
- "GITHUB": [
- {
- "url": "https://github.com",
- "token": "...",
- "repositoryQuery": [
- "none"
- ],
- }
- ]
- }
-```
-
-To have Sourcegraph use this new ConfigMap, add the following environment variables to `base/frontend/sourcegraph-frontend.Deployment.yaml`:
-
-```
- - name: SITE_CONFIG_FILE
- value: /etc/sourcegraph/site.json
- - name : GLOBAL_SETTINGS_FILE
- value: /etc/sourcegraph/global-settings.json
- - name : EXTSVC_CONFIG_FILE
- value: /etc/sourcegraph/extsvc.json
-```
-
-And instruct Kubernetes to mount the ConfigMap file we created under `/etc/sourcegraph/` by adding the following in your `sourcegraph-frontend.Deployment.yaml` `volumeMounts` section:
-
-```
- volumeMounts:
- - mountPath: /etc/sourcegraph
- name: config-volume
-```
-
-And similarly under the `volume` section:
-
-```
- - name: config-volume
- configMap:
- name: frontend-config-files
- defaultMode: 0644
-```
-
-Now upon re-running `kubectl-apply-all.sh` Kubernetes should mount your `ConfigMap` into the container as files on disk and you should see them:
-
-```
-$ kubectl exec -it sourcegraph-frontend-57dcb4d7db-6bclj -- ls /mnt/
-global-settings.json
-extsvc.json
-site.json
-```
-
-Similarly, because we set the environment variables to use those configuration files, the frontend should have loaded them into the database upon startup. You should now see Sourcegraph configured!
-
-## Transitioning to configuration via the file system
-
-Transitioning from a UI based configuration to file system based configuration can be accomplished following the steps above but there are some things to be considered.
-
-Sourcegraph reads from the new `extsvc.json` file and creates a new entry in the database for any _new_ code host config it finds there. **This will not cause a reclone of the repositories synced via the UI based configs**. However it is still advised that admins prevent the generation of duplicate code host configurations.
-
-As Sourcegraph reads from an `extsvc.json` file it reads from the top level schema and creates a new config with display name ` #` For example in the `extsvc.config` below GITHUB #1, GITHUB #2, GITHUB #3, and GITLAB #1 external service configs will be generated.
-
-```json
- {
- "GITHUB": [
- {
- "url": "https://github.com",
- "token": "secret",
- "repos": [
- "latveria/doombot",
- "latveria/darkhold",
- "latveria/timemachine"
- ]
- },
- {
- "url": "https://github.com",
- "token": "secret",
- "orgs": ["sourcegraph"]
- },
- {
- "url": "https://github.com",
- "token": "secret",
- "orgs": [],
- "repos": [
- "grafana/grafana",
- "sourcegraph/deploy-sourcegraph-twit-test",
- "kubernetes/kubernetes",
- ]
- }
- ],
- "GITLAB": [
- {
- "url": "https://gitlab.com",
- "token": "secret",
- "projectQuery": [
- "projects?membership=true&archived=no"
- ]
- }
- ]
- }
-```
-
-You can avoid generation of a new config by changing the display name of your UI based config to match the relative display name which will be generated by the new `extsvc.json` file. For Sourcegraph to view a codehost config as already present its `display_name`, `kind`, and `config` **must not** change. You can take a look at these values in the database by running the following SQL query:
-
-`sg=# select id, display_name, kind, config from external_services order by id;`
-
-If you encounter any issues, please [contact us](mailto:support@sourcegraph.com).
diff --git a/docs/versioned/5.2/admin/config/authorization_and_authentication.mdx b/docs/versioned/5.2/admin/config/authorization_and_authentication.mdx
deleted file mode 100644
index 2b25a1f43..000000000
--- a/docs/versioned/5.2/admin/config/authorization_and_authentication.mdx
+++ /dev/null
@@ -1,210 +0,0 @@
-# Authentication and authorization
-
-Sourcegraph has two authentication concepts:
-
-1. The system through which your users log in (SAML IdP, OAuth with a code host, username/password, OpenID Connect, Authentication Proxy)
-2. The system which controls user permissions (Code host, explicit permissions API in Sourcegraph)
-
-We suggest configuring both when using Sourcegraph Enterprise. If you do not configure permissions, all users will be able to see all of the code in the instance.
-
-## Authentication
-
-Sourcegraph supports username/password auth by default and SAML, OAuth, HTTP Proxy auth, and OpenID Connect if configured. Changing a username in Sourcegraph will allow the user to escalate permissions, so if you are syncing permissions, you will need to add the following to your site config at `https://sourcegraph.yourdomain.com/siteadmin/configuration` ([Learn more about viewing and editing your site configuration.](/admin/config/site_config#view-and-edit-site-configuration))
-
-```json
-{
- "auth.enableUsernameChanges": false
-}
-```
-
-For users using any of the other authentication mechanisms, removing `builtin` as an authentication mechanism is best practice.
-
-> NOTE: If Sourcegraph is running on a free license all users will be created as site admins. Learn more about license settings on our [pricing page](https://about.sourcegraph.com/pricing).
-
-## Repository permissions in Sourcegraph
-
-See [repository permissions documentation](/admin/permissions/).
-
-## Username normalization
-
-Sourcegraph does not support email-style usernames. In contexts in which you are providing the username to Sourcegraph, it will be normalized, which can impact username matching where that is relevant. See [full documentation for username normalization](/admin/auth/#username-normalization).
-
-## Instructions for individual authentication/authorization pathways
-
-We recommend that you start at the instructions for your code host, if listed, for a complete explanation of the authentication/authorization options available to you when using that code host.
-
-### Built-in username/password authentication
-
-Built-in username/password authentication is Sourcegraph’s default authentication option. To enable it, add the following to your site config:
-
-```json
-{
- // Other config settings go here
- "auth.providers": [
- {
- "type": "builtin",
- "allowSignup": true
- }
- ]
-}
-```
-
-Set `allowSignup` to `false` if you want to create user accounts instead of allowing the user to create their own.
-
-Learn more about [built-in password authentication](/admin/auth/#builtin-password-authentication).
-
-### GitHub Enterprise or GitHub Cloud authentication and authorization
-
-We support both authentication and permissions syncing (through OAuth) for GitHub. If you use GitHub as your code host, we do not officially support using another authentication mechanism (SAML, etc.). Instead, you’ll need to follow this flow:
-
-1. Use SAML (or another auth mechanism) to log in to GitHub
-2. Use GitHub OAuth to log in to Sourcegraph
-
-In this way, access to Sourcegraph will still be managed by your identity provider, using the code host as a middle step.
-
-Follow these steps to [configure authentication with GitHub via OAuth](/admin/auth/#github).
-
-Once authentication with GitHub via OAuth is configured, follow [these steps to configure access permissions](/admin/external_service/github#repository-permissions). Users will log into Sourcegraph using Github OAuth, and permissions will be synced in the background.
-
-### GitLab Enterprise or GitLab Cloud authentication and authorization
-
-We support both authentication and permissions syncing (through OAuth) for GitLab. If you use GitLab as your code host, you have two available authentication flows:
-
-#### Option 1
-
-1. Use SAML (or another auth mechanism) to log in to GitLab
-2. Use GitLab OAuth to log in to Sourcegraph
-
-In this way, access to Sourcegraph will still be managed by your identity provider, using the code host as a middle step. This option is the simplest to configure. To do so, [set up GitLab as an authentication option](/admin/auth/#gitlab), and then [enable permissions syncing](/admin/external_service/gitlab#oauth-application).
-
-#### Option 2
-
-Alternatively, you can configure SAML authentication in Sourcegraph, and use GitLab permissions syncing in the background to control access permissions. To implement this method, you will need to make sure that GitLab is able to return a value in `identities.provider` for the `GET /users` endpoint ([GitLab documentation](https://docs.gitlab.com/ee/api/users.html#for-admins)) that your identity provider is able to pass as the `nameID` in the SAML response. If that isn’t possible, you will need to use the first option.
-
-To configure SAML auth with GitLab permissions, you will need to first [configure permissions from GitLab](/admin/external_service/gitlab#administrator-sudo-level-access-token). Then, [configure SAML authentication](/admin/auth/saml/). The `nameID` passed by the identity provider will need to match the value of `identities.provider`.
-
-For example, if the GitLab API returns:
-
-```json
-{
- "identities": [{ "provider": "saml", "extern_uid": "email@domain.com" }]
-}
-```
-
-Then you will need to configure permission in Sourcegraph as:
-
-```json
-{
- "url": "https://gitlab.com",
- "token": "$PERSONAL_ACCESS_TOKEN",
- "authorization": {
- "identityProvider": {
- "type": "external",
- "authProviderID": "$AUTH_PROVIDER_ID",
- "authProviderType": "$AUTH_PROVIDER_TYPE",
- "gitlabProvider": "saml"
- }
- }
-}
-```
-
-And configure the identity provider to pass the email address as the `nameID`.
-
-### Bitbucket Server / Bitbucket Data Center authorization
-
-We do not currently support OAuth for Bitbucket Server or Bitbucket Data Center. You will need to combine permissions syncing from Bitbucket Server / Bitbucket Data Center with another authentication mechanism (SAML, built-in auth, HTTP authentication proxies). Bitbucket Server and Bitbucket Data Center only pass usernames to Sourcegraph, so you’ll need to make sure that those usernames are matched by whatever mechanism you choose to use for access.
-
-Follow the steps to [sync Bitbucket Server / Bitbucket Data Center permissions](/admin/external_service/bitbucket_server#repository-permissions). Then, do one of the following:
-
-1. Create the user accounts in Sourcegraph with matching usernames. (Access using `builtin` auth.)
-2. [Configure SAML authentication](/admin/auth/saml/). If you are using Bitbucket Server / Bitbucket Data Center, the `login` attribute is _not_ optional. You need to pass the Bitbucket Server username as the `login` attribute.
-3. [Configure an HTTP authentication proxy](/admin/auth/#http-authentication-proxies), passing the Bitbucket Server username value as the `usernameHeader`.
-
-### Azure DevOps Services
-
-We support authentication through OAuth for [Azure DevOps Services (dev.azure.com)](https://dev.azure.com) and it is also a prerequisite for [permissions syncing](/admin/permissions/).
-
-#### Register a new OAuth application
-
-[Create a new Azure DevOps OAuth application](https://app.vsaex.visualstudio.com/app/register) and follow the instructions below:
-
-1. In the `Application website` field set the URL of your Sourcegraph instance, for example if the instance is https://sourcegraph.com, then use `https://sourcegraph.com` as the value of this field
-2. Similarly, set the `Authorization callback URL` field to `https://sourcegraph.com/.auth/azuredevops/callback` if your Sourcegraph instance URL is https://sourcegraph.com
-3. Add the following scopes:
- - `User profile (read)`
- - `Identity (read)`
- - `Code (read)`
- - `Project and team (read)`
-
-#### Configuring Sourcegraph auth.providers
-
-Before you add the configuration please ensure that:
-
-1. The value of `App ID` from your OAuth application is set as the value of the `clientID` field in the config
-2. The value of `Client Secret` (and not the `App secret`) from your OAuth application is set as the value of the `clientSecret` field
-3. The value of `apiScope` string is a comma separated string and reflects the scopes from your OAuth application accurately
-4. The `type` field has no typos and is **exactly** the same as the example below
-
-Add the following to the `auth.providers` key in the site config:
-
-```json
-{
- "auth.providers": [
- // Other auth providers may also be here.
- {
- "type": "azureDevOps",
- "displayName": "Azure DevOps",
- "clientID": "replace-with-app-id-of-your-oauth-application",
- "clientSecret": "replace-with-client-secret-of-your-oauth-application",
- "apiScope": "vso.code,vso.identity,vso.project"
- }
- ]
-}
-```
-
-Optionally, you may want to restrict the sign up to only users who belong to a specific list of organizations. To do this add the following to the `auth.providers` configuration above:
-
-```json
-{
- "allowOrgs": ["your-org-1", "your-org-2"]
-}
-```
-
-Finally, if you want to prevent new users from signing up to your Sourcegraph instance, set the following (default to `true`) in the `auth.providers` configuration above:
-
-```json
-{
- "allowSignup": false
-}
-```
-
-The final and complete `auth.providers` configuration may look like this:
-
-```json
-{
- "auth.providers": [
- // Other auth providers may also be here.
- {
- "type": "azureDevOps",
- "displayName": "Azure DevOps",
- "clientID": "your-client-id-here",
- "clientSecret": "a-strong-client-secret-here",
- "apiScope": "vso.code,vso.identity,vso.project",
- "allowOrgs": ["your-org-1", "your-org-2"],
- "allowSignup": false
- }
- ]
-}
-```
-
-### Explicit Permissions API authorization
-
-With any authentication mechanism, you can use our GraphQL API to set permissions for all repositories. If you choose to do this, this is the _only_ mechanism that can be used for permissions—all others will be ignored. Follow the instructions for the [mutations needed within the GraphQL API](/admin/permissions/api) to configure access.
-
-### OpenID Connect authentication
-
-Use OpenID Connect authentication if accessing using OpenID Connect, such as when logging in through a Google Workspace, or if other authentication methods aren’t an option. See [how to set up OpenID Connect authentication](/admin/auth/#openid-connect).
-
-### HTTP authentication proxy authentication
-
-HTTP authentication proxy authentication is not generally recommended unless it's a common authentication process within your organization. See [how to configure HTTP authentication proxies](/admin/auth/#http-authentication-proxies).
diff --git a/docs/versioned/5.2/admin/config/batch_changes.mdx b/docs/versioned/5.2/admin/config/batch_changes.mdx
deleted file mode 100644
index d57f6ae02..000000000
--- a/docs/versioned/5.2/admin/config/batch_changes.mdx
+++ /dev/null
@@ -1,306 +0,0 @@
-# Batch Changes site admin configuration reference
-
-Batch Changes is generally configured through the same [site configuration](/admin/config/site_config) and [code host configuration](/admin/external_service/) as the rest of Sourcegraph. However, Batch Changes features may require specific configuration, and those are documented here.
-
-## Access control
-
- Feature supported only in Sourcegraph versions 5.0 or more.
-
-Batch Changes is [RBAC-enabled](/admin/access_control/) Beta . By default, all users have full read and write access for Batch Changes, but this can be restricted by changing the default role permissions, or by creating new custom roles.
-
-### Enable organization members to administer
-
- Feature supported only in Sourcegraph versions 5.0.5 or more.
-
-By default, only a batch change's author or a site admin can administer (apply, close, rename, etc.) a batch change. However, admins can use [organizations](/admin/organizations) to facilitate closer collaboration and shared administrative control over batch changes by enabling the `orgs.allMembersBatchChangesAdmin` setting for an organization. When enabled, members of the organization will be able to administer all batch changes created in that organization's namespace. Batch changes created in other namespaces (user or organization) will still be restricted to the author and site admins.
-
-## Rollout windows
-
-By default, Sourcegraph attempts to reconcile (create, update, or close) changesets as quickly as the rate limits on the code host allow. This can result in CI systems being overwhelmed if hundreds or thousands of changesets are being handled as part of a single batch change.
-
-Configuring rollout windows allows changesets to be reconciled at a slower or faster rate based on the time of day and/or the day of the week. These windows are applied to changesets across all code hosts, but they only affect the rate at which changesets are created/published, updated, or closed, as well as some other internal operations like importing and detaching. Bulk operations to publish changesets also respect the rollout window; however, bulk commenting, merging, and closing will happen all at once.
-
-Rollout windows are configured through the `batchChanges.rolloutWindows` [site configuration option](/admin/config/site_config). If specified, this option contains an array of rollout window objects that are used to schedule changesets. The format of these objects [is given below](#rollout-window-object).
-
-### Behavior
-
-When rollout windows are enabled, changesets will initially enter a **Scheduled** state when their batch change is applied. Hovering or tapping on the changeset's state icon will provide an estimate of when the changeset will be reconciled.
-
-To restore the default behavior, you can either delete the `batchChanges.rolloutWindows` option, or set it to `null`.
-
-Or, to put it another way:
-
-| `batchChanges.rolloutWindows` configuration | Behavior |
-|---------------------------------------------|-----------|
-| Omitted, or set to `null` | Changesets will be reconciled as fast as the code host allows; essentially the same as setting a single `{"rate": "unlimited"}` window. |
-| Set to an array (even if empty) | Changesets will be reconciled using the rate limit in the current window using [the leaky bucket behavior described below](#leaky-bucket-rate-limiting). If no window covers the current period, then no changesets will be reconciled until a window with a non-zero [`rate`](#rate) opens. |
-| Any other value | The configuration is invalid, and an error will appear. |
-
-#### Leaky bucket rate limiting
-
-Rate limiting uses the [leaky bucket algorithm](https://en.wikipedia.org/wiki/Leaky_bucket) to smooth bursts in reconciliations.
-
-Practically speaking, this means that the given rate can be thought of more as an average than as a simple resource allocation. If there are always changesets in the queue, a rate of `10/hour` means that a changeset will be reconciled approximately every six minutes, rather than ten changesets being simultaneously reconciled at the start of each hour.
-
-### Avoiding hitting rate limits
-
-Keep in mind that if you configure a rollout window that is too aggressive, you risk exceeding your code hosts' API rate limits. We recommend maintaining a rate that is no faster than `5/minute`; however, you can refer to your code host's API docs if you wish to increase it beyond this recommendation:
-
-* [GitHub](https://docs.github.com/en/graphql/overview/resource-limitations#rate-limit)
-* [GitLab](https://docs.gitlab.com/ee/user/gitlab_com/.html#gitlabcom-specific-rate-limits)
-* [Bitbucket Cloud](https://support.atlassian.com/bitbucket-cloud/docs/api-request-limits/)
-
-When using a [global service account token](/batch_changes/how-tos/configuring_credentials#global-service-account-tokens) with Batch Changes, keep in mind that this token will also be used for other Batch Changes with code host interactions, too.
-
-You may encounter this error when publishing changesets to GitHub:
-
-> **Failed to run operations on changeset**
->
-> Creating changeset: error in GraphQL response: was submitted too quickly
-
-In addition to their normal API rate limits, GitHub also has an internal _content creation_ limit (also called [secondary rate limit](https://docs.github.com/en/rest/guides/best-practices-for-integrators?apiVersion=2022-11-28#dealing-with-secondary-rate-limits)), which is an [intentional](https://github.com/cli/cli/issues/4801#issuecomment-1029207971) restriction on the platform to combat abuse by automated actors. At the time of writing, the specifics of this limit remain undocumented, due largely to the fact that it is dynamically determined (see [this GitHub issue](https://github.com/cli/cli/issues/4801)). However, the behavior of the limit is that it only permits a fixed number of resources to be created per minute and per hour, and exceeding this limit triggers a temporary hour-long suspension during which time no additional resources of this type can be created.
-
-Presently, Batch Changes does not automatically work around this limit feature request tracked [here](https://github.com/sourcegraph/sourcegraph/issues/44631). The current guidance if you do encounter this issue is to wait an hour and then try again, setting a less frequent `rolloutWindows` rate until this issue is no longer encountered.
-
-### Rollout window object
-
-A rollout window is a JSON object that looks as follows:
-
-```json
-{
- "rate": "10/hour",
- "days": ["saturday", "sunday"],
- "start": "06:00",
- "end": "20:00"
-}
-```
-
-All fields are optional except for `rate`, and are described below in more detail. All times and days are handled in UTC.
-
-In the event multiple windows overlap, the last defined window will be used.
-
-#### `rate`
-
-`rate` describes the rate at which changesets will be reconciled. This may be expressed in one of the following ways:
-
-* The string `unlimited`, in which case no limit will be applied for this window, or
-* A string in the format `N/UNIT`, where `N` is a number and `UNIT` is one of `second`, `minute`, or `hour`; for example, `10/hour` would allow 10 changesets to be reconciled per hour, or
-* The number `0`, which will prevent any changesets from being reconciled when this window is active.
-
-#### `days`
-
-`days` is an array of strings that defines the days of the week that the window applies to. English day names are accepted in a case insensitive manner:
-
-* `["saturday", "sunday"]` constrains the window to Saturday and Sunday.
-* `["tuesday"]` constrains the window to only Tuesday.
-
-If omitted or an empty array, all days of the week will be matched.
-
-#### `start` and `end`
-
-`start` and `end` define the start and end of the window on each day that is matched by [`days`](#days), or every day of the week if `days` is omitted. Values are defined as `HH:MM` in UTC.
-
-Both `start` and `end` must be provided or omitted: providing only one is invalid.
-
-### Examples
-
-To rate limit changeset publication to 3 per minute between 08:00 and 16:00 UTC on weekdays, and allow unlimited changesets outside of those hours:
-
-```json
-[
- {
- "rate": "unlimited"
- },
- {
- "rate": "3/minute",
- "days": ["monday", "tuesday", "wednesday", "thursday", "friday"],
- "start": "08:00",
- "end": "16:00"
- }
-]
-```
-
-To only allow changesets to be reconciled at 1 changeset per minute on (UTC) weekends:
-
-```json
-[
- {
- "rate": "1/minute",
- "days": ["saturday", "sunday"]
- }
-]
-```
-
-## Incoming webhooks
-
- Feature supported only in Sourcegraph versions 3.33 or more.
-
-Sourcegraph can track incoming webhooks from code hosts to more easily debug issues with webhook delivery. Learn [how to setup webhooks and configure logging](/admin/config/webhooks/incoming#webhook-logging).
-
-## Forks
-
- Feature supported only in Sourcegraph versions 3.36 or more.
-
-Sourcegraph can be configured to push branches created by Batch Changes to a fork of the repository, rather than the repository itself, for example if users of your code host typically do not have push access to the original repository. You can enable pushing to forks globally with the `batchChanges.enforceForks` site configuration option. Users can also indicate they do or do not want to push to forks for an individual batch change by specifying the property `changesetTemplate.fork` in their batch spec. If the batch spec property is present, it will override the site configuration option. See the [batch spec YAML reference](/batch_changes/references/batch_spec_yaml_reference#changesettemplate-fork) for more information.
-
-The fork will be created in the namespace of the user publishing the changeset, or the namespace of the service account if [global service account](/batch_changes/how-tos/configuring_credentials#global-service-account-tokens) is in use. The name of the fork Sourcegraph creates will be prefixed with the name of the original repo's namespace in order to prevent potential repo name collisions. For example, a batch spec targeting `github.com/my-org/project` would create or use any existing fork by the name `github.com/user/my-org-project`.
-
-### Examples
-
-To enable forks, update the site configuration to include:
-
-```json
-{
- "batchChanges.enforceForks": true
-}
-```
-
-## Automatically delete branches on merge/close
-
- Feature supported only in Sourcegraph versions 5.1 or more.
-
-Sourcegraph can be configured to automatically delete branches created for Batch Changes changesets when changesets are merged or closed by enabling the `batchChanges.autoDeleteBranch` site configuration option.
-
-When enabled, Batch Changes will override any setting on the repository on the code host itself and attempt to remove the source branch of the changeset when the changeset is merged or closed. This is useful for keeping repositories clean of stale branches.
-
-Not every code host supports this in the same way; some code host APIs expose a property on the changeset which can be toggled to enable this behavior, while others require a separate API call to delete the branch after the changeset is merged/closed.
-
-For those that support a changeset property, Batch Changes will automatically set the property to match the site config setting. The property will be updated whenever the changeset is updated, so that the settings stay in sync. Using a changeset property has the added benefit that the branch will be deleted even if the changeset is merged/closed on the code host itself, rather than through Sourcegraph.
-
-For those that require a separate API call, Batch Changes will only be able to delete the branch if the changeset is merged/closed _using Sourcegraph_. If the changeset is merged/closed on the code host itself, Batch Changes will not be able to delete the branch.
-
-Refer to the table below to see the levels with which each code host is supported:
-
-Code Host | Changeset property or separate API call? | Support on merge | Support on close | Note
---------- | --------- | :-: | :-: | ----
-Azure DevOps | Changeset property | ✓ | ✗ |
-Bitbucket Cloud | Changeset property | ✓ | ✓ |
-Bitbucket Server | API call | ✓ | ✓ |
-GitHub | API call | ✓ | ✓ |
-GitLab | Changeset property | ✓ | ✓ |
-Gerrit | API call | ✗ | ✓ | Requires ["delete own changes" permission](https://gerrit-review.googlesource.com/Documentation/access-control.html#category_delete_own_changes) at minimum
-
-## Commit signing for GitHub
-
- The feature is currently in Beta stage and supported on Sourcegraph versions 5.1 or more.
-
-Sourcegraph can be configured to [sign commits pushed to GitHub](https://docs.github.com/en/authentication/managing-commit-signature-verification/about-commit-signature-verification) using a GitHub App. Commit signing prevents tampering by unauthorized parties and provides a way to ensure that commits pushed to branches created by Batch Changes actually do come from Sourcegraph. Enabling commit signing for Batch Changes can also help pass checks in build systems or CI/CD pipelines that require that all commits are signed and verified before they can be merged.
-
-At present, only GitHub code hosts (both Cloud and Enterprise) are supported, and only GitHub App signing is supported. Support for other code hosts and signing methods may be added in the future.
-
-GitHub Apps are also the recommended way to [sync repositories on GitHub](/admin/external_service/github#using-a-github-app). However, **they are not a replacement for [PATs](/batch_changes/how-tos/configuring_credentials#personal-access-tokens) in Batch Changes**. It is **also** necessary to create a separate GitHub App for Batch Changes commit signing even if you already have an App connected for the same code host for repository syncing because the Apps require different permissions. The process for creating each type of GitHub App is almost identical.
-
-To create a GitHub App for commit signing and connect it to Sourcegraph:
-
-1. Go to **Site admin > Batch Changes > Settings** on Sourcegraph.
-
-
-
-1. Click **Create GitHub App** for the GitHub instance on which you want to enable commit signing.
-2. Enter a name for your app (it must be unique across your GitHub instance).
-
- You may optionally specify an organization to register the app with. If no organization is specified, the app will be owned by the account of the user who creates it on GitHub. This is the default.
-
- You may also optionally set the App visibility to public. A GitHub App must be made public if you wish to install it on multiple organizations or user accounts. The default is private.
-
-
-
-1. When you click **Create GitHub App**, you will be redirected to GitHub to confirm the details of the App to be created.
-
-
-
-1. To complete the setup on GitHub, you will be asked to review the App permissions and select which repositories the App can access before installing it in a namespace. The default is **All repositories**. Any repositories that you choose to omit will not be able to have changesets published to them from Sourcegraph. You can change this later.
-
-
-
-1. Click **Install**. Once complete, you will be redirected back to Sourcegraph, where the updated commit signing integration should be listed.
-
-
-
-1. (Optional) If you want to sign commits for changesets in repositories from other organization or user namespaces and your GitHub App is set to public visibility, you can create additional installations by clicking **Edit** on the App and then from the detail page clicking **Add installation**.
-
-### Multiple installations
-
-The initial GitHub App setup will only install the App on the organization or user account that you registered it with. If your code is spread across multiple organizations or user accounts, you will need to create additional installations for each namespace that you want Batch Changes to be able to sign commits in.
-
-By default, Sourcegraph creates a private GitHub App, which only allows the App to be installed on the same organization or user account that it was created in. If you did not set the App to public visibility during creation, you will need to [change the visibility](https://docs.github.com/en/apps/maintaining-github-apps/modifying-a-github-app#changing-the-visibility-of-a-github-app) to public before you can install it in other namespaces. For security considerations, see [GitHub's documentation on private vs public apps](https://docs.github.com/en/apps/creating-github-apps/setting-up-a-github-app/making-a-github-app-public-or-private).
-
-Once public, App can be installed in additional namespaces either from Sourcegraph or from GitHub.
-
-#### Installing from Sourcegraph
-
-1. Go to **Site admin > Batch Changes > Settings** and click **Edit** on the App you want to install in another namespace. You'll be taken to the App details page.
-
-
-
-1. Click **Add installation**. You will be redirected to GitHub to pick which other organization to install the App on and finish the installation process.
-
- > NOTE: Only [organization owners](https://docs.github.com/en/organizations/managing-peoples-access-to-your-organization-with-roles/roles-in-an-organization#organization-owners) can install GitHub Apps on an organization. If you are not an owner, you will need to ask an owner to install the App for you.
-
-
-
-1. As before, you will be asked to review the App permissions and select which repositories the App can access before installing it in a namespace. Once you click **Install** and the setup completes, you will be redirected back to Sourcegraph. You will now be able to push signed commits for repositories in this namespace.
-
-#### Installing from GitHub
-
-1. Go to the GitHub App page. You can get here easily from Sourcegraph by clicking **View in GitHub** for the App you want to install in another namespace.
-2. Click **Configure**, or go to **App settings > Install App**, and select the organization or user account you want to install the App on.
-3. As before, you will be asked to review the App permissions and select which repositories the App can access before installing it in a namespace. Once you click **Install** and the setup completes, you will be redirected back to Sourcegraph.
-4. GitHub App installations will be automatically synced in the background. Return to **Site admin > Batch Changes > Settings** and click **Edit** on the App you added the new installation for. You'll be taken to the App details page. Once synced, you will see the new installation listed, and you will be able to push signed commits for repositories in this namespace.
-
-
-
-### Uninstalling an App
-
-You can uninstall a GitHub App from a namespace or remove it altogether at any time.
-
-To remove an installation in a single namespace, click **View in GitHub** for the installation you want to remove. If you are able to administer Apps in this namespace, you will see **Uninstall "[APP NAME]"** in the "Danger zone" at the bottom of the page. Click **Uninstall** to remove the App from this namespace. Sourcegraph will periodically sync installations in the background. It may temporarily throw errors related to the missing installation until the sync completes. You can check the GitHub App details page to confirm the installation has been removed.
-
-To remove an App entirely, go to **Site admin > Batch Changes > Settings** and click **Remove** for the App you want to remove. You will be prompted to confirm you want to remove the App from Sourcegraph. Once removed from the Sourcegraph side, Sourcegraph will no longer communicate with your GitHub instance via the App unless explicitly reconnected. However, the App will still exist on GitHub unless manually deleted there, as well.
-
-### GitHub App token use
-
-Batch Changes uses the tokens from GitHub Apps in the following ways:
-
-#### Installation access tokens
-
-Installation access tokens are short-lived, non-refreshable tokens that give Sourcegraph access to the repositories the GitHub App has been given access to. Sourcegraph uses these tokens to read and write commits to repository branches. These tokens expire after 1 hour.
-
-### Rejecting Unverified Commits
-
- Feature supported only in Sourcegraph versions 5.2.4 or more.
-
-Admins can configure Batch Changes to error when it creates commits that are not signed. This can be done by enabling the `batchChanges.rejectUnverifiedCommits` setting in the site configuration:
-
-```json
-{
- ...,
- "batchChanges.rejectUnverifiedCommits": true
-}
-```
-
-## Custom Certificates
-
-Sourcegraph 5.1.5+
-
-If you are using a self-signed certificate for your GitHub Enterprise instance, configure `tls.external` under `experimentalFeatures`
-in the **Site configuration** with your certificate(s).
-
-```json
-{
- "experimentalFeatures": {
- "tls.external": {
- "certificates": [
- "-----BEGIN CERTIFICATE-----\n..."
- ]
- }
- }
-}
-```
-
-## Ownership
-
-When a user is deleted, their Batch Changes become inaccessible in the UI but the data is not permanently deleted.
-This allows recovering the Batch Changes if the user is restored.
-
-However, if the user deletion is permanent, deleting both account and data, then the associated Batch Changes are also permanently deleted from the database. This frees storage space and removes dangling references.
diff --git a/docs/versioned/5.2/admin/config/email.mdx b/docs/versioned/5.2/admin/config/email.mdx
deleted file mode 100644
index 9593b4df4..000000000
--- a/docs/versioned/5.2/admin/config/email.mdx
+++ /dev/null
@@ -1,147 +0,0 @@
-# SMTP and email delivery
-
-Sourcegraph uses an SMTP server of your choosing to send emails for:
-
-- [Code Monitoring](/code_monitoring/) notifications
-- Inviting other users to a Sourcegraph instance, or to an organization/team on a Sourcegraph instance
-- Important updates to a user accounts (for example, creation of API keys)
-- For [`builtin` authentication](/admin/auth/#builtin-password-authentication), password resets and email verification
-
-> NOTE: Sourcegraph Cloud customers can take advantage of mananged SMTP servers - [learn more](/cloud/#managed-smtp).
-
-## User email verification
-
-Many emails delivered from a Sourcegraph instance to a user requires that the user's primary email address be verified.
-This helps prevent Sourcegraph from sending product emails to invalid or inactive email addresses.
-
-Users that create accounts through an external [authentication provider](/admin/auth/), such as GitHub or SAML, will automatically have verified email addresses from the external provider.
-
-When SMTP is configured, users that sign up through [`builtin` authentication](/admin/auth/#builtin-password-authentication) will have the emails they sign up with marked as unverified.
-To verify their email address, the user can do one of the following:
-
-- Click the "set password" link they receive in their email
-- In the "Emails" tab of their account, click "Send verification email"
-- Ask a site admin to verify their email manually through the "Emails" tab of their account, or through the `setUserEmailVerified` GraphQL mutation
-
-Users with emails [created by the site admin](/admin/auth/#creating-builtin-authentication-users) through the `/site-admin/users/new` UI will have the same behaviour as the above. Users created directly through GraphQL or the `src` CLI assume that the email provided is verified.
-
-> Note: For SSO (Single Sign-On) enabled instances, it is important to remove the basic authentication method from the `auth.providers` list to prevent users from receiving password reset links. This is because users do not need passwords to log in to SSO-enabled instances. Prior to disabling the basic authentication method, please ensure that there is at least one administrator account capable of signing in via SSO. This is essential because once basic authentication is disabled, the username/password combination used to create the initial admin account will no longer be functional.
-
-## Configuring Sourcegraph to send email via Amazon AWS / SES
-
-To use Amazon SES with Sourcegraph, first [follow these steps to create an SES account for Sourcegraph](https://docs.aws.amazon.com/ses/latest/dg/send-email-smtp-software-package.html).
-
-Navigate to your site configuration (e.g. `https://sourcegraph.com/site-admin/configuration`) and fill in the configuration:
-
-```jsonc
-{
- // [...]
- "email.senderName": "Example Sourcegraph Instance", // Default: Sourcegraph
- "email.address": "from@example.com",
- "email.smtp": {
- "authentication": "PLAIN",
- "username": "",
- "password": "",
- "host": "email-smtp.us-west-2.amazonaws.com",
- "port": 587
- }
-}
-```
-
-Please note that the configured `email.address` (the from address) must be a verified address with SES, see [this page for details](https://docs.aws.amazon.com/ses/latest/dg/verify-addresses-and-domains.html).
-
-[Send a test email](#sending-a-test-email) to verify it is configured properly.
-
-## Configuring Sourcegraph to send email via Google Workspace / GMail
-
-To use Google Workspace with Sourcegraph, you will need to [create an SMTP Relay account](https://support.google.com/a/answer/2956491). Be sure to choose `Require SMTP Authentication` and `Require TLS encryption` in step 7.
-
-Navigate to your site configuration (e.g. `https://sourcegraph.com/site-admin/configuration`) and fill in the configuration:
-
-```jsonc
-{
- // [...]
- "email.senderName": "Example Sourcegraph Instance", // Default: Sourcegraph
- "email.address": "test@example.com",
- "email.smtp": {
- "authentication": "PLAIN",
- "username": "test@example.com",
- "password": "",
- "host": "smtp-relay.gmail.com",
- "port": 587,
- "domain": "example.com"
- }
-}
-```
-
-Make sure that `test@example.com` in both places of the configuration matches the email address of the account you created, and that `` is replaced with the account password or app password when 2FA enabled.
-
-[Send a test email](#sending-a-test-email) to verify it is configured properly.
-
-## Configuring Sourcegraph to send email using another provider
-
-Other providers such as Mailchimp and Sendgrid may also be used with Sourcegraph. Any valid SMTP server account should do. For those two providers in specific, you may follow their documentation:
-
-* https://mailchimp.com/developer/transactional/docs/smtp-integration/
-* https://docs.sendgrid.com/for-developers/sending-email/getting-started-smtp
-
-Once you have an SMTP account, simply navigate to your site configuration (e.g. `https://sourcegraph.com/site-admin/configuration`) and fill in the configuration:
-
-```jsonc
-{
- // [...]
- "email.senderName": "Example Sourcegraph Instance", // Default: Sourcegraph
- "email.address": "from@example.com",
- "email.smtp": {
- "authentication": "PLAIN",
- "username": "test@example.com",
- "password": "",
- "host": "smtp-server.example.com",
- "port": 587
- }
-}
-```
-
-A few helpful tips:
-
-* `email.address` is the email Sourcegraph will send email `FROM`. Make sure your account has privilege to send mail from that address.
-* You should use a TLS/SSL enabled port, either `587` or `2525`. Any port number is allowed, though.
-* The following `authentication` types are allowed: `PLAIN` (default), `CRAM-MD5`, and `none`
-* If a `HELO` domain is required, simply add `"domain": "",` under `email.smtp`
-* TLS certificate verification can be disabled if your SMTP server does not have a valid TLS cert. To do so, set `"noVerifyTLS": true,` (this is not recommended and may be a security risk)
-
-[Send a test email](#sending-a-test-email) to verify it is configured properly.
-
-## Sending a test email
-
-(Added in Sourcegraph v3.38)
-
-To verify email sending is working correctly, visit the GraphQL API console at e.g. `https://sourcegraph.example.com/api/console` and then run the following query replacing `test@example.com` with your personal email address:
-
-```graphql
-mutation {
- sendTestEmail(to: "test@example.com")
-}
-```
-
-If everything is successfully configured, you should see a response like:
-
-```json
-{
- "data": {
- "sendTestEmail": "Sent test email to \"test@example.com\" successfully! Please check it was received."
- }
-}
-```
-
-Otherwise, you should see an error with more information:
-
-```json
-{
- "data": {
- "sendTestEmail": "Failed to send test email: mail: ..."
- }
-}
-```
-
-If you need further assistance, please let us know at `mailto:support@sourcegraph.com`.
diff --git a/docs/versioned/5.2/admin/config/encryption.mdx b/docs/versioned/5.2/admin/config/encryption.mdx
deleted file mode 100644
index df45a4d2e..000000000
--- a/docs/versioned/5.2/admin/config/encryption.mdx
+++ /dev/null
@@ -1,53 +0,0 @@
-# On-disk database encryption
-
-Sourcegraph supports encryption of database columns that contain sensitive data via the `encryption.keys` config option. It supports multiple encryption backends for different use cases & environments.
-
-Currently supported encryption backends:
-
-* Google Cloud KMS
-* AWS KMS
-* Mounted key (env var or file) AES encryption
-
-## Enabling
-
-To enable encryption you must specify a key config for each of the keys defined in `encryption.keys` that you wish to encrypt. You can specify the same key for all keys if you choose to, but you must at least specify config for all of them.
-
-When you first enable encryption, new records will be written to the database as encrypted, but existing data will initially be unencrypted. Existing unencrypted records will be encrypted in the background over time. The status of this job can be checked via the `Worker > Record encrypter` dashboard in Grafana, and under **Site-admin > Background jobs**, the name of this job is **record-encrypter**.
-
-We distinguish encrypted and unencrypted records in the database, so partially encrypted/decrypted databases are readable by the application, so enabling or disabling encryption should not impact performance or data integrity of your instance.
-
-### Example configuration
-
-```json
-{
- "encryption.keys": {
- // encrypts data in external_services
- "externalServiceKey": {
- "type": "mounted", // use the mounted AES encryption key
- "filePath": "/path/to/my/encryption.key" // path to a file containing your secret key
- },
- // encrypts data in user_external_accounts
- "userExternalAccountKey": {
- "type": "cloudkms", // use Google Cloud KMS
- "keyname": "/projects/my-project/name/of/my/keyring/cryptoKeys/key", // the resource name of your encryption key
- "credentialsFile": "/path/to/my/service-account.json" // path to a service account key file with the encrypter/decrypter & key viewer roles
- },
- // encrypts data in user_credentials and batch_changes_site_credentials
- "batchChangesCredentialKey": {
- // ...
- },
- // encrypts data in webhook_logs
- "webhookLogKey": {
- // ...
- }
- }
-}
-```
-
-## Disabling
-
-If you decide to disable encryption, or want to switch to a new key, you must first decrypt the database. To do so, set the environment variable `ALLOW_DECRYPTION` to `true` on the `frontend` and `worker` services. New records will be written to the database as plaintext. Existing encrypted records will be decrypted in the background over time. The status of this job can be checked the same way as enabling the initial encryption job, via the `Worker > Record encrypter` dashboard in Grafana. Once all existing records have been decrypted, the existing keys can be removed from the site configuration.
-
-## Key rotation
-
-If you use the Google Cloud KMS backend (or other future API based encryption backend) key rotation will be handled for you by the API. Currently key rotation is not supported in the 'mounted key' backend and instead you should disable encryption first, and then re-enable it with a new key.
diff --git a/docs/versioned/5.2/admin/config/index.mdx b/docs/versioned/5.2/admin/config/index.mdx
deleted file mode 100644
index 45eeeab70..000000000
--- a/docs/versioned/5.2/admin/config/index.mdx
+++ /dev/null
@@ -1,36 +0,0 @@
-# Configuring Sourcegraph
-
-This page documents how to configure a Sourcegraph instance. For deployment configuration, please refer to the [relevant deployment docs for your deployment type](/admin/deploy/#deployment-types).
-
-- [Site configuration](/admin/config/site_config)
-- [Global and user settings](/admin/config/settings)
-- [Code host configuration](/admin/external_service/) (GitHub, GitLab, and the [Nginx HTTP server](/admin/http_https_configuration).)
-- [Search configuration](/admin/search)
-- [Configuring Authorization and Authentication](/admin/config/authorization_and_authentication)
-- [Batch Changes configuration](/admin/config/batch_changes)
-
-## Common tasks
-
-- [Add Git repositories from your code host](/admin/repo/add)
-- [Add user authentication providers (SSO)](/admin/auth/)
-- [Configure search scopes](/code-search/working/snippets)
-- [Integrate with Phabricator](/integration/phabricator)
-- [Add organizations](/admin/organizations)
-- [Add teams](/admin/teams) (Experimental)
-- [Set up HTTPS](/admin/http_https_configuration)
-- [Use a custom domain](/admin/url)
-- [Configure email sending / SMTP server](/admin/config/email)
-- [Update Sourcegraph](/admin/updates/)
-- [Using external services (PostgreSQL, Redis, S3/GCS)](/admin/external_services)
-- [PostgreSQL Config](/admin/postgres-conf)
-- [Disabling user invitations](/admin/user_invitations)
-- [Configuring webhooks](/admin/webhooks/)
-- [Configuring rate limits](/admin/external_service/rate_limits)
-- [Configuring command recording](/admin/repo/recording)
-
-## Advanced tasks
-
-- [Loading configuration via the file system](/admin/config/advanced_config_file)
-- [Restore postgres database from snapshot](/admin/config/restore/)
-- [Enabling database encryption for sensitive data](/admin/config/encryption)
-- [Configuring Sourcegraph in private networks](/admin/config/private-network)
\ No newline at end of file
diff --git a/docs/versioned/5.2/admin/config/postgres-conf.mdx b/docs/versioned/5.2/admin/config/postgres-conf.mdx
deleted file mode 100644
index eb6b500c5..000000000
--- a/docs/versioned/5.2/admin/config/postgres-conf.mdx
+++ /dev/null
@@ -1,116 +0,0 @@
-# PostgreSQL configuration
-
-Sourcegraph Kubernetes cluster site admins can override the default PostgreSQL configuration by supplying their own `postgresql.conf` file contents. These are specified in [`pgsql.ConfigMap.yaml`](https://github.com/sourcegraph/deploy-sourcegraph/blob/master/base/pgsql/pgsql.ConfigMap.yaml).
-
-For [Docker Compose](/admin/deploy/docker-compose/) deployment, site admins can also override the default PostgreSQL configuration by modifying the external configuration files at [pgsql/conf/postgresql.conf], [codeintel-db/conf/postgresql.conf], and [codeinsights-db/conf/postgresql.conf]. These files are mounted to the Postgres server during runtime (NOTE: This is only available in versions 3.39 and later).
-
-There is no officially supported way of customizing the PostgreSQL configuration in the single Docker image.
-
-## Suggested configuration
-
-### Static configuration
-
-We have found the following values to work well for our Cloud instance in practice. These settings are independent of the resources given to the database container and are recommended to use across the board.
-
-| Setting | Default value | Suggested value |
-| -------------------------- | ------------- | --------------- |
-| `bgwriter_delay` | `200ms` | `50ms` |
-| `bgwriter_lru_maxpages` | `100` | `200` |
-| `effective_io_concurrency` | `1` | `200` |
-| `max_wal_size` | `1GB` | `8GB` |
-| `min_wal_size` | `80MB` | `2GB` |
-| `random_page_cost` | `4.0` | `1.1` |
-| `temp_file_limit` | `-1` | `20GB` |
-| `wal_buffers` | `-1` | `16MB` |
-
-The suggested values for the `effective_io_concurrency` and `random_page_cost` settings assume SSD disks are in-use for the Postgres data volume (recommended). If you are instead using HDDs, these values should be set to `2` and `4` (the defaults), respectively. These values control the cost heuristic of fetching data from disk, and using the supplied configuration on spinning media will cause the query planner to fetch from disk much more aggressively than it should.
-
-### Resource-dependent configuration
-
-The following settings are dependent on the number of CPUs and the amount of memory given to the database container, as well as the expected number maximum connections.
-
-| Setting | Default value | Suggested value | Suggested maximum |
-| ---------------------------------- | ------------- | --------------------------------------------------------------- | ----------------- |
-| `effective_cache_size` | `4GB` | `mem * 3 / 4` | |
-| `maintenance_work_mem` | `64MB` | `mem / 16` | `2gb` |
-| `max_connections` | `100` | `100` to start | |
-| `max_parallel_maintenance_workers` | `2` | `# of CPUs` | |
-| `max_parallel_workers_per_gather` | `2` | `# of CPUs / 2` | `4` |
-| `max_parallel_workers` | `8` | `# of CPUs` | |
-| `max_worker_processes` | `8` | `# of CPUs` | |
-| `shared_buffers` | `32MB` | `mem / 4` | |
-| `work_mem` | `4MB` | `mem / (4 * max_connections * max_parallel_workers_per_gather)` | |
-
-#### `effective_cache_size`
-
-The setting `effective_cache_size` acts as a hint to Postgres on how to adjust its own I/O cache and does not require the configured amount of memory to be used. This value should reflect the amount of memory available to Postgres. This should be the amount of memory given to the container minus some slack for memory used by the kernel, I/O devices, and other daemons running in the same container.
-
-#### `max_connections`
-
-The setting `max_connections` determines the number of active connections that can exist before new connections will start to be declined. This number is dependent on the replica factor of the containers that require a database connection. These containers include:
-
-| Service | Connects to |
-| --------------------------- | ------------------------------------------ |
-| `frontend` | `pgsql`, `codeintel-db`, `codeinsights-db` |
-| `gitserver` | `pgsql` |
-| `repo-updater` | `pgsql` |
-| `precise-code-intel-worker` | `codeintel-db`, `pgsql` |
-| `worker` | `codeintel-db`, `pgsql`, `codeinsights-db` |
-
-Each of these containers open a pool of connections not exceeding the pool capacity indicated by the `SRC_PGSQL_MAX_OPEN` environment variable. The maximum number of connections for your instance can be determined by summing the connection pool capacity of every container in this list. By default, `SRC_PGSQL_MAX_OPEN` is `30`. _Note that these services do not all connect to the same database, and the frontend generates the majority of database connections_
-
-If your database is experiencing too many attempted connections from the above services you may see the following error:
-```
-UTC [333] FATAL: sorry, too many clients already
-```
-This can be resolved by raising the `max_connections` value in your `postgresql.conf` or `pgsql.ConfigMap.yaml`. It may be necessary to raise your `work_mem` as well as more concurrent connections requires more memory to process. See the table above for an idea about this scaling relationship, and continue reading for more information about `work_mem`. _Note: you may see a similar error pattern for `codeintel-db` or `codeinsights-db`, for these databases the resolution is the same._
-
-#### `max_parallel_workers_per_gather`
-
-The setting `max_parallel_workers_per_gather` controls how many _additional_ workers to launch for operations such as parallel sequential scan. We see diminishing returns around four workers per query. Also notice that increasing this value will *multiplicatively* increase the amount of memory required for each worker to operate safely; doubling this
-value will effectively half the maximum number of connections. Most workloads should be perfectly fine with only two workers per query.
-
-#### `shared_buffers` and `work_mem`
-
-The settings `shared_buffers` and `work_mem` control how much memory is allocated to different parts of Postgres. The size of the shared buffers, which we recommend to set to 25% of the container's total memory, determines the size of the disk page cache that is usable by every worker (and, therefore, every query). The remaining free memory is allocated to workers such that the maximum number of concurrently executing workers will not exceed the remaining 75% (minus some proportional buffer) of the container's total memory.
-
-A `work_mem` setting of `32MB` has been sufficient for our Cloud environment as well as high-usage enterprise instances. Smaller instances and memory-constrained deployments may get away with a smaller value, but this is highly dependent on the set of features in use and their exact usage.
-
-If you are seeing the database instance restarting due to a backend OOM condition or any Postgres logs similar to the following, it is likely that your `work_mem` setting is too low for your instance's query patterns. It's advised to raise the memory on the database container and re-adjust the settings above. If you cannot easily raise memory, you can alternatively lower `max_connections` or `max_parallel_workers_per_gather` to buy a bit of headroom with your current resources.
-
-```
-2021-04-26 10:11:12.123 UTC [33330] ERROR: could not read block 1234 in file "base/123456789/123456789": Cannot allocate memory
-2021-04-26 10:11:12.123 UTC [33330] ERROR: could not read block 1234 in file "base/123456789/123456789": read only 1234 of 1234 bytes
-```
-
-## Increasing shared memory in container environments
-
-Postgres uses [shared memory](https://www.postgresql.org/docs/12/kernel-resources.html#SYSVIPC) for some operations.
-By default, this value is set to 64M in most container environments. This value may be too small for larger systems.
-
-If the error similar to:
- `ERROR: could not resize shared memory segment "/PostgreSQL.491173048" to 4194304 bytes: No space left on device` is observed, then shared memory should be increased.
-
-This can be done by mounting a memory backed `EmptyDir`.
-
-```
- - mountPath: /dev/shm
- name: dshm
- - name: pgsql-exporter
- env:
- - name: DATA_SOURCE_NAME
-@@ -94,3 +96,7 @@ spec:
- configMap:
- defaultMode: 0777
- name: pgsql-conf
- - name: dshm
- emptyDir:
- medium: Memory
- sizeLimit: 8GB # this value depends on your postgres config
-```
-
-See this [stackexchange](https://dba.stackexchange.com/questions/275378/dev-shm-size-recommendation-for-postgres-database-in-docker) post for tips on tuning this value
-
-[pgsql/conf/postgresql.conf]: https://github.com/sourcegraph/deploy-sourcegraph-docker/blob/master/pgsql/conf/postgresql.conf
-[codeintel-db/conf/postgresql.conf]: https://github.com/sourcegraph/deploy-sourcegraph-docker/blob/master/codeintel-db/conf/postgresql.conf
-[codeinsights-db/conf/postgresql.conf]: https://github.com/sourcegraph/deploy-sourcegraph-docker/blob/master/codeinsights-db/conf/postgresql.conf
diff --git a/docs/versioned/5.2/admin/config/private-network.mdx b/docs/versioned/5.2/admin/config/private-network.mdx
deleted file mode 100644
index 4aee69c99..000000000
--- a/docs/versioned/5.2/admin/config/private-network.mdx
+++ /dev/null
@@ -1,74 +0,0 @@
-# Private network configuration
-A **private network** refers to a secure network environment segregated from the public internet, designed to facilitate internal communications and operations within an organization. This network setup restricts external access, enhancing security and control over data flow by limiting exposure to external threats and unauthorized access.
-
-When deploying self-hosted Sourcegraph instances in private networks with specific compliance and policy requirements, additional configuration may be required to ensure all networking features function correctly. The reasons for applying the following configuration options depend on the specific functionality of the Sourcegraph service and the unique network and infrastructure requirements of the organization.
-
-The following is a list of Sourcegraph services and how and when each initiates outbound connections to external services:
-- **frontend**: The frontend service communicates externally when connecting to external [auth providers](../auth), sending [telemetry data](../pings), testing code host connections, and connecting to [externally hosted](../external_services) Sourcegraph services
-- **gitserver**: Executes git commands against externally hosted [code hosts](../external_service)
-- **repo-updater**: Communicates with [code hosts](../external_service) APIs to coordinate repository synchronization
-- **migrator**: Connects to Postgres instances (which may be [externally hosted](../external_services/postgres)) to process database migrations
-- **executor**: Sourcegraph [Executor](../executors) batch change or precise indexing jobs may need to connect to services hosted within an organization's private network
-
-## HTTP proxy configuration
-All Sourcegraph services respect the conventional `HTTP_PROXY`, `HTTPS_PROXY`, and `NO_PROXY` environment variables for routing Sourcegraph client application HTTP traffic through a proxy server. The steps for configuring proxy environment variables will depend on your Sourcegraph deployment method.
-
-### Kubernetes Helm
-Add the proxy environment variables to your Sourcegraph Helm chart [override file](https://github.com/sourcegraph/deploy-sourcegraph-helm/blob/main/charts/sourcegraph/values.yaml):
-
-```yaml
-frontend|gitserver|repo-updater:
- env:
- - name: HTTP_PROXY
- value: http://proxy.example.com:8080
- - name: HTTPS_PROXY
- value: http://proxy.example.com:8080
- - name: NO_PROXY
- value: "*.cluster.local,blobstore,codeinsights-db,codeintel-db,sourcegraph-frontend-internal,sourcegraph-frontend,github-proxy,gitserver,grafana,indexed-search-indexer,indexed-search,jaeger-query,pgsql,precise-code-intel-worker,prometheus,redis-cache,redis-store,repo-updater,searcher,symbols,syntect-server,worker-executors,worker"
-```
-
-Failure to configure `NO_PROXY` correctly can cause the proxy configuration to interfere with local networking between internal Sourcegraph services.
-
-## Using private CA root certificates
-Some organizations maintain a private Certificate Authority (CA) for issuing certificates within their private network. When Sourcegraph connects to TLS encrypted service using a self-signed certificate that it does not trust, you will observe an `x509: certificate signed by unknown authority` error message in logs.
-
-In order for Sourcegraph to respect an organization's self-signed certificates, the private CA root certificate(s) will need to be appended to Sourcegraph's trusted CA root certificate list in `/etc/ssl/certs/ca-certificates.crt`.
-
-### Configuring sourcegraph-frontend to recognize private CA root certificates
-The following details the process for setting up the sourcegraph-frontend to acknowledge and trust a private CA root certificate for Sourcegraph instances deployed using [Helm](../deploy/kubernetes/helm). For any other Sourcegraph service that needs to trust an organization's private CA root certificate (including gitserver, repo-updater, or migrator), similar steps will need to be followed.
-
-1. Copy out the existing `ca-certificates.crt` file from the sourcegraph-frontend container:
-```sh
-kubectl cp $(kubectl get pod -l app=sourcegraph-frontend -o jsonpath='{.items[0].metadata.name}'):/etc/ssl/certs/ca-certificates.crt sourcegraph-frontend-ca-certificates.crt
-```
-2. Concatenate the private CA root certificate to the `sourcegraph-frontend-ca-certificates.crt` file:
-```sh
-cat sourcegraph-frontend-ca-certificates.crt {private-ca-certificate.crt file} > ca-certificates.crt
-```
-3. Create a new Kubernetes ConfigMap containing the concatenated `ca-certificates.crt` file:
-```sh
-kubectl create configmap sourcegraph-frontend-ca-certificates --from-file=ca-certificates.crt
-```
-4. Mount the `sourcegraph-frontend-ca-certificates` ConfigMap to the sourcegraph-frontend Deployment:
-```yaml
-frontend:
- extraVolumes:
- - name: ca-certificates
- configMap:
- name: sourcegraph-frontend-ca-certificates
- extraVolumeMounts:
- - name: ca-certificates
- mountPath: /etc/ssl/certs/
-```
-
-Once deployed, you should see the private CA root certificate in the sourcegraph-frontend container's `/etc/ssl/certs/ca-certificates.crt` file.
-```sh
-kubectl exec -it $(kubectl get pod -l app=sourcegraph-frontend -o jsonpath='{.items[0].metadata.name}') -- tail /etc/ssl/certs/ca-certificates.crt
-```
-
-You can verify that the self-signed certificate is trusted using `curl`:
-```sh
-kubectl exec -it $(kubectl get pod -l app=sourcegraph-frontend -o jsonpath='{.items[0].metadata.name}') -- curl -v {https://internal.service.example.com} > /dev/null
-```
-
-It is recommended to repeat these steps on a regular cadence to ensure that Sourcegraph's CA root certificate list stays up to date.
diff --git a/docs/versioned/5.2/admin/config/restore/index.mdx b/docs/versioned/5.2/admin/config/restore/index.mdx
deleted file mode 100644
index 62b19d02d..000000000
--- a/docs/versioned/5.2/admin/config/restore/index.mdx
+++ /dev/null
@@ -1,86 +0,0 @@
-# Restoring Postgres databases in Kubernetes
-
-_Expected use case:_ Restoring a previous snapshot for disaster recovery
-
-For restoring Postgres databases in our Kubernetes deployments you should have backups of both the primary db and the codeintel-db. The primary db contains all user information.
-
-To restore persistent volumes you need to
-
-1. Understand how your Kubernetes cluster provides Persistent Volume (PV) Storage
- [GKE](https://cloud.google.com/kubernetes-engine/docs/concepts/persistent-volumes)
- , [EKS](https://docs.aws.amazon.com/eks/latest/userguide/ebs-csi.html)
- , [AKS](https://docs.microsoft.com/en-us/azure/aks/concepts-storage)
-1. Scale down all pods that are using the PersistentVolumeClaim (PVC)
-1. Backup the current PVCs
-1. Create new PVs that reference the restored snapshots
-
-## Steps
-
-1. Backup the PVCs we will be operating on
- ```
- kubectl get pvc pgsql codeintel-db codeinsights-db -oyaml > backupPVC.yaml
- ```
-1. Ensure that you have snapshots of the necessary PVs (this depends on your deployment environment)
- ```
- kubectl get pv $(kubectl get pvc pgsql codeintel-db codeinsights-db -o=jsonpath='{.items[*].spec.volumeName}')
- ```
-1. Restore the snapshots to new disks that meet the requirements to be consumed by your cluster (same region, etc).
-1. Scale down all deployments to zero (note: both approaches involve downtime, the first approach is preferred)
- ```
- kubectl scale deployment -l deploy=sourcegraph --replicas=0
- ```
- or (if you are unable to scale deployments to their previous values easily)
- ```
- kubectl scale deployment pgsql codeinsights-db codeintel-db --replicas=0
- ```
-
-1. Next, you need to replace the existing PVC and PV.
-
- 1. First, delete the PVC `kubectl delete pvc pgsql`
- 1. Then create the new PV & PVC. The options used to configure the PV will be specific to every provider.
- ```yaml
- apiVersion: v1
- kind: PersistentVolume
- metadata:
- name: example-pgsql-volume
- spec:
- storageClassName: "sourcegraph"
- accessModes:
- - ReadWriteOnce
- capacity:
- storage: 200Gi
- claimRef:
- namespace: ns-sourcegraph
- name: pgsql
- # You will need to customize the fields below most likely
- gcePersistentDisk:
- pdName: disk-restored-from-snapshot
- fsType: ext4
- ---
- apiVersion: v1
- kind: PersistentVolumeClaim
- metadata:
- name: pgsql
- namespace: ns-sourcegraph
- spec:
- storageClassName: "sourcegraph"
- accessModes:
- - ReadWriteOnce
- resources:
- requests:
- storage: 200Gi
- ```
- 1. Ensure PVCs become Bound `kubectl get pvc -w`
-
-1. (Optional) Commit PVs and PVCs back to deployment repo into the `base/${deployment}` directory.
-
-1. Scale deployments back up
-1. If you use our deployment scripts, after committing the change you may run `./kubectl-apply-all.sh` again to restore
- all deployments to their set number of replicas.
-1. Otherwise, `kubectl scale deployment pgsql codeinsights-db codeintel-db --replicas=1`
-
-1. After ensuring Sourcegraph is functional, you may delete the previous PVs. If the **Reclaim Policy** is not set to
- **Delete** you will need to manually delete the disk from your provider as well.
-
-
-
diff --git a/docs/versioned/5.2/admin/config/settings-cascade.svg b/docs/versioned/5.2/admin/config/settings-cascade.svg
deleted file mode 100644
index 91c65aafa..000000000
--- a/docs/versioned/5.2/admin/config/settings-cascade.svg
+++ /dev/null
@@ -1,505 +0,0 @@
-
Global settings
Organization settings
User 1 settings
User 2 settings
User 3 settings
User 4 settings
\ No newline at end of file
diff --git a/docs/versioned/5.2/admin/config/settings.mdx b/docs/versioned/5.2/admin/config/settings.mdx
deleted file mode 100644
index c0d81e8d5..000000000
--- a/docs/versioned/5.2/admin/config/settings.mdx
+++ /dev/null
@@ -1,166 +0,0 @@
-# Settings
-
-Settings provide the ability to customize and control the Sourcegraph UI and user-specific features. They do not configure operational aspects of the instance (which are set in the [site configuration](/admin/config/site_config)).
-
-Settings can be set at the global level (by site admins), the organization level (by organization members), and at the individual user level.
-
-
-
-## Editing global settings (for site admins)
-
-Global settings are found in **Site admin > Global settings** while links to organization and user settings are found in the user dropdown menu.
-
-After setting or changing certain values in **Site admin > Global settings** the frontend will restart automatically or
-you might be asked to restart the frontend for the changes to take effect.
-In case of a Kubernetes deployment this can be done as follows:
-
-```
-bash
-kubectl delete pods -l app=sourcegraph-frontend
-```
-
-## Reference
-
-Settings options and their default values are shown below.
-
-### admin/config/settings.schema.json
-
-```json
-{
- // Disables observability-related site alert banners.
- "alerts.hideObservabilitySiteAlerts": true,
-
- // Whether to show alerts for major and minor version updates. Alerts for patch version updates will be shown if `alerts.showPatchUpdates` is true.
- "alerts.showMajorMinorUpdates": true,
-
- // Whether to show alerts for patch version updates. Alerts for major and minor version updates will be shown if `alerts.showMajorMinorUpdatess` is true.
- "alerts.showPatchUpdates": true,
-
- // Whether to run global searches over all repositories. On instances with many repositories, this can lead to issues such as: low quality results, slow response times, or significant load on the Sourcegraph instance. Defaults to true.
- "basicCodeIntel.globalSearchesEnabled": null,
-
- // Whether to include archived repositories in search results.
- "basicCodeIntel.includeArchives": null,
-
- // Whether to include forked repositories in search results.
- "basicCodeIntel.includeForks": null,
-
- // Whether to use only indexed requests to the search API.
- "basicCodeIntel.indexOnly": null,
-
- // The timeout (in milliseconds) for un-indexed search requests.
- "basicCodeIntel.unindexedSearchTimeout": null,
-
- // Whether to fetch multiple precise definitions and references on hover.
- "codeIntel.disableRangeQueries": null,
-
- // Never fall back to search-based code intelligence.
- "codeIntel.disableSearchBased": null,
-
- // Whether to supplement precise references with search-based results.
- "codeIntel.mixPreciseAndSearchBasedReferences": null,
-
- // Whether to enable trace logging on the extension.
- "codeIntel.traceExtension": null,
-
- // Whether the sidebar on the repo view should be open by default.
- "fileSidebarVisibleByDefault": true,
-
- // Custom page size for the history tab. If set, the history tab will populate that number of commits the first time the history tab is opened and then double the number of commits progressively.
- "history.defaultPageSize": null,
-
- // Show absolute timestamps in the history panel and only show relative timestamps (e.g.: "5 days ago") in tooltip when hovering.
- "history.preferAbsoluteTimestamps": false,
-
- // DEPRECATED: Use `notices` instead.
- //
- // An array (often with just one element) of messages to display at the top of all pages, including for unauthenticated users. Users may dismiss a message (and any message with the same string value will remain dismissed for the user).
- //
- // Markdown formatting is supported.
- //
- // Usually this setting is used in global and organization settings. If set in user settings, the message will only be displayed to that user. (This is useful for testing the correctness of the message's Markdown formatting.)
- //
- // MOTD stands for "message of the day" (which is the conventional Unix name for this type of message).
- "motd": null,
-
- // Custom informational messages to display to users at specific locations in the Sourcegraph user interface.
- //
- // Usually this setting is used in global and organization settings. If set in user settings, the message will only be displayed to that single user.
- "notices": null,
-
- // Group of settings related to opening files in an editor.
- "openInEditor": null,
-
- // If enabled, all members of the org will be treated as admins (e.g. can edit, apply, delete) for all batch changes created in that org.
- "orgs.allMembersBatchChangesAdmin": false,
-
- // Key-value pairs of code host URLs to Swarm URLs. Keys should have no prefix and should not end with a slash, like "perforce.company.com:1666". Values should look like "https://swarm.company.com/", with a slash at the end.
- "perforce.codeHostToSwarmMap": {},
-
- // DEPRECATED: This setting will be removed in a future version of Sourcegraph.
- "quicklinks": null,
-
- // The default number of lines to show as context below and above search results. Default is 1.
- "search.contextLines": 1,
-
- // Whether query patterns are treated case sensitively. Patterns are case insensitive by default.
- "search.defaultCaseSensitive": false,
-
- // Defines default properties for search behavior. The default is `smart`, which provides query assistance that automatically runs alternative queries when appropriate. When `precise`, search behavior strictly searches for the precise meaning of the query.
- "search.defaultMode": null,
-
- // The default pattern type that search queries will be intepreted as. `lucky` is an experimental mode that will interpret the query in multiple ways.
- "search.defaultPatternType": null,
-
- // Disable search suggestions below the search bar when constructing queries. Defaults to false.
- "search.hideSuggestions": false,
-
- // Whether searches should include searching archived repositories.
- "search.includeArchived": false,
-
- // Whether searches should include searching forked repositories.
- "search.includeForks": false,
-
- // DEPRECATED: Saved search queries
- "search.savedQueries": null,
-
- // Predefined search snippets that can be appended to any search (also known as search scopes)
- "search.scopes": null,
-
-//////////////////////////////////////////////////////////////
-// CodeInsights
-//////////////////////////////////////////////////////////////
-
- // The number of seconds to execute the aggregation for when running in extended timeout mode. This value should always be less than any proxy timeout if one exists. The maximum value is equal to searchLimits.maxTimeoutSeconds
- "insights.aggregations.extendedTimeout": 55,
-
-//////////////////////////////////////////////////////////////
-// Experimental
-//////////////////////////////////////////////////////////////
-
- // Experimental features and settings.
- "experimentalFeatures": null
-}
-```
-
-## Additional details on settings
-
-### Notices
-
-Notices can be added in global, organization, or user settings. The `notices` setting is a list of configuration consisting of three elements:
-
-1. `message`: the markdown copy to be displayed in the banner
-1. `location`: where the banner will be shown. Either on the home page with `"home"` or at the top of the page with `"top"`
-1. `dismissible`: boolean (`true` or `false`). If true, users will be able to close the notice and not see it again. If false, it will persist on the instance until the configuration is removed.
-
-### Example settings:
-
-```json
-"notices": [
- {
- "message": "Your message here! [Include a link for more information](http://example.com).",
- "location": "top",
- "dismissible": true
- }
-]
-```
diff --git a/docs/versioned/5.2/admin/config/settings.schema.json b/docs/versioned/5.2/admin/config/settings.schema.json
deleted file mode 120000
index 276fb26bd..000000000
--- a/docs/versioned/5.2/admin/config/settings.schema.json
+++ /dev/null
@@ -1 +0,0 @@
-../../../schema/settings.schema.json
\ No newline at end of file
diff --git a/docs/versioned/5.2/admin/config/site.schema.json b/docs/versioned/5.2/admin/config/site.schema.json
deleted file mode 120000
index e9be0d6b0..000000000
--- a/docs/versioned/5.2/admin/config/site.schema.json
+++ /dev/null
@@ -1 +0,0 @@
-../../../schema/site.schema.json
\ No newline at end of file
diff --git a/docs/versioned/5.2/admin/config/site_config.mdx b/docs/versioned/5.2/admin/config/site_config.mdx
deleted file mode 100644
index 7bea4022e..000000000
--- a/docs/versioned/5.2/admin/config/site_config.mdx
+++ /dev/null
@@ -1,950 +0,0 @@
-# Site configuration
-
-Site configuration defines how various Sourcegraph features behave. See the [full reference](#reference) below for a comprehensive list of site configuration options.
-
-## Configuration overview
-
-[Go here](/admin/config/) for an overview of configuring Sourcegraph.
-
-## View and edit site configuration
-
-Site admins can view and edit site configuration on a Sourcegraph instance:
-
-1. Go to **User menu > Site admin**.
-1. Open the **Configuration** page. (The URL is `https://sourcegraph.example.com/site-admin/configuration`.)
-
-## Reference
-
-All site configuration options and their default values are shown below.
-
-### admin/config/site.schema.json
-
-```json
-{
- // Prompts user to install new browser for non es5
- "RedirectUnsupportedBrowser": false,
-
- // Configuration options for App only.
- "app": null,
- // Other example values:
- // - {
- // "app": {
- // "dotcomAuthToken": "abc123"
- // }
- // }
-
- // Enables and configures password policy. This will allow admins to enforce password complexity and length requirements.
- "auth.passwordPolicy": null,
- // Other example values:
- // - {
- // "enabled": true,
- // "numberOfSpecialCharacters": 1,
- // "requireAtLeastOneNumber": true,
- // "requireUpperandLowerCase": true
- // }
-
- // When true, site admins will only be able to see private code they have access to via our authz system.
- "authz.enforceForSiteAdmins": false,
-
- // Time interval (in seconds) of how often each component picks up authorization changes in external services.
- "authz.refreshInterval": 5,
-
- // Reject unverified commits when creating a Batch Change
- "batchChanges.rejectUnverifiedCommit": false,
-
- // Customize Sourcegraph homepage logo and search icon.
- //
- // Only available in Sourcegraph Enterprise.
- "branding": null,
- // Other example values:
- // - {
- // "dark": {
- // "logo": "https://example.com/logo_dark.png",
- // "symbol": "https://example.com/search_symbol_dark_24x24.png"
- // },
- // "disableSymbolSpin": true,
- // "favicon": "https://example.com/favicon.ico",
- // "light": {
- // "logo": "https://example.com/logo_light.png",
- // "symbol": "https://example.com/search_symbol_light_24x24.png"
- // }
- // }
-
- // Whether clone progress should be logged to a file. If enabled, logs are written to files in the OS default path for temporary files.
- "cloneProgress.log": false,
-
- // Configuration for the completions service.
- "completions": null,
- // Other example values:
- // - {
- // "accessToken": "abc123",
- // "chatModel": "chat",
- // "completionModel": "code-completion",
- // "enabled": true,
- // "perUserDailyLimit": 100,
- // "provider": "openai"
- // }
-
- // The rate limit (in requests per hour) for the default rate limiter in the rate limiters registry. By default this is disabled and the default rate limit is infinity.
- "defaultRateLimit": -1,
-
- // Configuration for embeddings service.
- "embeddings": null,
- // Other example values:
- // - {
- // "accessToken": "your-access-token",
- // "dimensions": 1536,
- // "enabled": true,
- // "excludedFilePathPatterns": [
- // "*.svg",
- // "**/__mocks__/**",
- // "**/test/**"
- // ],
- // "model": "text-embedding-ada-002",
- // "url": "https://api.openai.com/v1/embeddings"
- // }
-
- // Configuration for encryption keys used to encrypt data at rest in the database.
- "encryption.keys": null,
- // Other example values:
- // - {
- // "externalServiceKey": {
- // "filePath": "/path/to/external_service.key",
- // "type": "mounted"
- // }
- // }
- // - {
- // "userExternalAccountKey": {
- // "keyname": "projects/my-project/locations/global/keyRings/my-keyring/cryptoKeys/my-key",
- // "type": "cloudkms"
- // }
- // }
-
- // The shared secret between Sourcegraph and executors. The value must contain at least 20 characters.
- "executors.accessToken": null,
- // Other example values:
- // - "my-super-secret-access-token"
-
- // The image to use for batch changes in executors. Use this value to pull from a custom image registry.
- "executors.batcheshelperImage": "sourcegraph/batcheshelper",
-
- // The tag to use for the batcheshelper image in executors. Use this value to use a custom tag. Sourcegraph by default uses the best match, so use this setting only if you really need to overwrite it and make sure to keep it updated.
- "executors.batcheshelperImageTag": null,
- // Other example values:
- // - "4.1.0"
-
- // The URL where Sourcegraph executors can reach the Sourcegraph instance. If not set, defaults to externalURL. URLs with a path (other than `/`) are not allowed. For Docker executors, the special hostname `host.docker.internal` can be used to refer to the Docker container's host.
- "executors.frontendURL": null,
- // Other example values:
- // - "https://sourcegraph.example.com"
-
- // The tag to use for the lsif-go image in executors. Use this value to use a custom tag. Sourcegraph by default uses the best match, so use this setting only if you really need to overwrite it and make sure to keep it updated.
- "executors.lsifGoImage": null,
- // Other example values:
- // - "sourcegraph/lsif-go"
-
- // The configuration for multiqueue executors.
- "executors.multiqueue": null,
-
- // The image to use for src-cli in executors. Use this value to pull from a custom image registry.
- "executors.srcCLIImage": "sourcegraph/src-cli",
-
- // The tag to use for the src-cli image in executors. Use this value to use a custom tag. Sourcegraph by default uses the best match, so use this setting only if you really need to overwrite it and make sure to keep it updated.
- "executors.srcCLIImageTag": null,
- // Other example values:
- // - "4.1.0"
-
- "exportUsageTelemetry": null,
- // Other example values:
- // - {
- // "batchSize": 1000,
- // "enabled": true,
- // "topicName": "usage-data",
- // "topicProjectName": "my-project"
- // }
- // - {"enabled":false}
-
- // The externally accessible URL for Sourcegraph (i.e., what you type into your browser). Previously called `appURL`. Only root URLs are allowed.
- "externalURL": null,
- // Other example values:
- // - "https://sourcegraph.example.com"
-
- // DEPRECATED: The config options for Sourcegraph GitHub App.
- "gitHubApp": null,
- // Other example values:
- // - {
- // "appID": "1234",
- // "clientID": "client-id",
- // "clientSecret": "client-secret",
- // "privateKey": "base64-encoded-private-key",
- // "slug": "sourcegraph"
- // }
-
- // Record git operations that are executed on configured repositories.
- "gitRecorder": null,
- // Other example values:
- // - {
- // "ignoredGitCommands": [
- // "show",
- // "rev-parse",
- // "log",
- // "diff",
- // "ls-tree"
- // ],
- // "repos": [
- // "github.com/sourcegraph/sourcegraph",
- // "github.com/gorilla/mux"
- // ],
- // "size": 1000
- // }
-
- // Disk usage threshold at which to display warning notification. Value is a percentage.
- "gitserver.diskUsageWarningThreshold": 90,
-
- // Configuration for logging and alerting, including to external services.
- "log": null,
-
- // Notifications recieved from Sourcegraph.com to display in Sourcegraph.
- "notifications": null,
- // Other example values:
- // - {
- // "key": "2023-03-10-my-key",
- // "message": "This is a test notification message."
- // }
-
- // Configure notifications for Sourcegraph's built-in alerts.
- "observability.alerts": null,
- // Other example values:
- // - {
- // "level": "critical",
- // "notifier": {
- // "channel": "#alerts",
- // "type": "slack",
- // "url": "https://hooks.slack.com/services/..."
- // }
- // }
- // - {
- // "level": "warning",
- // "notifier": {
- // "addresses": [
- // "alerts@example.com"
- // ],
- // "type": "email"
- // }
- // }
-
- // EXPERIMENTAL: Configuration for client observability
- "observability.client": null,
- // Other example values:
- // - {
- // "openTelemetry": {
- // "endpoint": "/-/debug/otlp"
- // }
- // }
- // - {
- // "openTelemetry": {
- // "endpoint": "https://opentelemetry.example.com"
- // }
- // }
-
- // Silence individual Sourcegraph alerts by identifier.
- "observability.silenceAlerts": null,
- // Other example values:
- // - [
- // "warning_gitserver_disk_space_remaining"
- // ]
- // - [
- // "critical_frontend_down",
- // "warning_high_load"
- // ]
-
- // Configures distributed tracing within Sourcegraph. To learn more, refer to https://docs.sourcegraph.com/admin/observability/tracing
- "observability.tracing": null,
- // Other example values:
- // - {
- // "debug": false,
- // "sampling": "selective",
- // "type": "opentelemetry",
- // "urlTemplate": "https://ui.honeycomb.io/$ORG/environments/$DATASET/trace?trace_id={{ .TraceID }}"
- // }
- // - {
- // "debug": true,
- // "sampling": "all",
- // "type": "jaeger",
- // "urlTemplate": "{{ .ExternalURL }}/-/debug/jaeger/trace/{{ .TraceID }}"
- // }
-
- // Configuration for organization invitations.
- "organizationInvitations": null,
- // Other example values:
- // - {
- // "expiryTime": 48,
- // "signingKey": "your-signing-key"
- // }
-
- // The maximum number of outbound requests to retain. This is a global limit across all outbound requests. If the limit is exceeded, older items will be deleted. If the limit is 0, no outbound requests are logged.
- "outboundRequestLogLimit": 50,
-
- // Time interval (in seconds) of how often cleanup worker should remove old jobs from permissions sync jobs table.
- "permissions.syncJobCleanupInterval": 60,
-
- // The number of last repo/user permission jobs to keep for history.
- "permissions.syncJobsHistorySize": 5,
-
- // Number of repo permissions to schedule for syncing in single scheduler iteration.
- "permissions.syncOldestRepos": 10,
-
- // Number of user permissions to schedule for syncing in single scheduler iteration.
- "permissions.syncOldestUsers": 10,
-
- // Don't sync a repo's permissions if it has synced within the last n seconds.
- "permissions.syncReposBackoffSeconds": 60,
-
- // Time interval (in seconds) of how often each component picks up authorization changes in external services.
- "permissions.syncScheduleInterval": 15,
-
- // Don't sync a user's permissions if they have synced within the last n seconds.
- "permissions.syncUsersBackoffSeconds": 60,
-
- // The maximum number of user-centric permissions syncing jobs that can be spawned concurrently. Service restart is required to take effect for changes.
- "permissions.syncUsersMaxConcurrency": 1,
-
- "rateLimits": null,
-
- // Enables redacting sensitive information from outbound requests. Important: We only respect this setting in development environments. In production, we always redact outbound requests.
- "redactOutboundRequestHeaders": null,
- // Other example values:
- // - true
-
- // Syntax highlighting configuration
- "syntaxHighlighting": null,
- // Other example values:
- // - {
- // "engine": {
- // "default": "tree-sitter",
- // "overrides": {
- // "go": "syntect"
- // }
- // },
- // "languages": {
- // "extensions": {
- // "go": "go",
- // "ts": "typescript"
- // },
- // "patterns": [
- // {
- // "language": "cobol",
- // "match": "cobol_.*\\.txt"
- // }
- // ]
- // }
- // }
-
- // Configuration for logging incoming webhooks.
- "webhook.logging": null,
- // Other example values:
- // - {
- // "enabled": true,
- // "retention": "7d"
- // }
-
-//////////////////////////////////////////////////////////////
-// Authentication
-//////////////////////////////////////////////////////////////
-
- // The config options for access requests
- "auth.accessRequest": null,
- // Other example values:
- // - {"enabled":true}
- // - {"enabled":false}
-
- // Enables users to change their username after account creation. Warning: setting this to be true has security implications if you have enabled (or will at any point in the future enable) repository permissions with an option that relies on username equivalency between Sourcegraph and an external service or authentication provider. Do NOT set this to true if you are using non-built-in authentication OR rely on username equivalency for repository permissions.
- "auth.enableUsernameChanges": false,
-
- // The config options for account lockout
- "auth.lockout": null,
- // Other example values:
- // - {
- // "consecutivePeriod": 300,
- // "failedAttemptThreshold": 3,
- // "lockoutPeriod": 600
- // }
-
- // The minimum number of Unicode code points that a password must contain.
- "auth.minPasswordLength": 12,
-
- // The duration (in seconds) that a password reset link is considered valid.
- "auth.passwordResetLinkExpiry": 14400,
-
- // The number of auth providers that will be shown to the user on the login screen. Other providers are shown under `Other login methods` section.
- "auth.primaryLoginProvidersCount": 3,
-
- // The authentication providers to use for identifying and signing in users. See instructions below for configuring SAML, OpenID Connect (including Google Workspace), and HTTP authentication proxies. Multiple authentication providers are supported (by specifying multiple elements in this array).
- "auth.providers": [
- {
- "allowSignup": true,
- "type": "builtin"
- }
- ],
-
- // WARNING: This option has been removed as of 3.8.
- "auth.public": false,
-
- // The duration of a user session, after which it expires and the user is required to re-authenticate. The default is 90 days. There is typically no need to set this, but some users may have specific internal security requirements.
- //
- // The string format is that of the Duration type in the Go time package (https://golang.org/pkg/time/#ParseDuration). E.g., "720h", "43200m", "2592000s" all indicate a timespan of 30 days.
- //
- // Note: changing this field does not affect the expiration of existing sessions. If you would like to enforce this limit for existing sessions, you must log out currently signed-in users. You can force this by removing all keys beginning with "session_" from the Redis store:
- //
- // * For deployments using `sourcegraph/server`: `docker exec $CONTAINER_ID redis-cli --raw keys 'session_*' | xargs docker exec $CONTAINER_ID redis-cli del`
- // * For cluster deployments:
- // ```
- // REDIS_POD="$(kubectl get pods -l app=redis-store -o jsonpath={.items[0].metadata.name})";
- // kubectl exec "$REDIS_POD" -- redis-cli --raw keys 'session_*' | xargs kubectl exec "$REDIS_POD" -- redis-cli --raw del;
- // ```
- "auth.sessionExpiry": "2160h",
- // Other example values:
- // - "168h"
-
- // Validity expressed in minutes of the unlock account token
- "auth.unlockAccountLinkExpiry": 5,
-
- // Base64-encoded HMAC signing key to sign the JWT token for account unlock URLs
- "auth.unlockAccountLinkSigningKey": null,
- // Other example values:
- // - "LS0tLS1CRUdJTiBPUEVOU1NIIFBSSVZBVEUgS0VZLS0tLS0KYjNCbGJuTnphQzFyWlhrdGRqRUFBQUFBQkc1dmJtVUFBQUFFYm05dVpRQUFBQUFBQUFBQkFBQUJGZ0FBQUhVQkFBQQ"
-
-//////////////////////////////////////////////////////////////
-// BatchChanges
-//////////////////////////////////////////////////////////////
-
- // Automatically delete branches created for Batch Changes changesets when the changeset is merged or closed, for supported code hosts. Overrides any setting on the repository on the code host itself.
- "batchChanges.autoDeleteBranch": false,
-
- // How long changesets will be retained after they have been detached from a batch change.
- "batchChanges.changesetsRetention": null,
- // Other example values:
- // - "336h"
- // - "48h"
- // - "5h30m40s"
-
- // Hides Batch Changes warnings about webhooks not being configured.
- "batchChanges.disableWebhooksWarning": false,
-
- // Enables/disables the Batch Changes feature.
- "batchChanges.enabled": true,
-
- // When enabled, all branches created by batch changes will be pushed to forks of the original repository.
- "batchChanges.enforceForks": false,
-
- // When enabled, only site admins can create and apply batch changes.
- "batchChanges.restrictToAdmins": false,
-
- // Specifies specific windows, which can have associated rate limits, to be used when reconciling published changesets (creating or updating). All days and times are handled in UTC.
- "batchChanges.rolloutWindows": null,
- // Other example values:
- // - {
- // "days": [
- // "saturday",
- // "sunday"
- // ],
- // "end": "20:00",
- // "rate": "10/hour",
- // "start": "06:00"
- // }
-
-//////////////////////////////////////////////////////////////
-// Code intelligence
-//////////////////////////////////////////////////////////////
-
- // Whether auto-indexing policies may apply to all repositories on the Sourcegraph instance. Default is false. The policyRepositoryMatchLimit setting still applies to such auto-indexing policies.
- "codeIntelAutoIndexing.allowGlobalPolicies": false,
-
- // Enables/disables the code intel auto-indexing feature. Currently experimental.
- "codeIntelAutoIndexing.enabled": false,
-
- // Overrides the default Docker images used by auto-indexing.
- "codeIntelAutoIndexing.indexerMap": null,
- // Other example values:
- // - {
- // "go": "sourcegraph/lsif-go:latest",
- // "java": "sourcegraph/lsif-java:latest"
- // }
-
- // The maximum number of repositories to which a single auto-indexing policy can apply. Default is -1, which is unlimited.
- "codeIntelAutoIndexing.policyRepositoryMatchLimit": -1,
-
- // A cron expression indicating when to run the document reference counts graph reduction job.
- "codeIntelRanking.documentReferenceCountsCronExpression": "@weekly",
-
- // An arbitrary identifier used to group calculated rankings from SCIP data (excluding the SCIP export).
- "codeIntelRanking.documentReferenceCountsDerivativeGraphKeyPrefix": null,
- // Other example values:
- // - ""
-
- // Enables/disables the document reference counts feature. Currently experimental.
- "codeIntelRanking.documentReferenceCountsEnabled": false,
-
- // An arbitrary identifier used to group calculated rankings from SCIP data (including the SCIP export).
- "codeIntelRanking.documentReferenceCountsGraphKey": null,
- // Other example values:
- // - "dev"
-
- // The interval at which to run the reduce job that computes document reference counts. Default is 24hrs.
- "codeIntelRanking.staleResultsAge": 24,
-
-//////////////////////////////////////////////////////////////
-// CodeInsights
-//////////////////////////////////////////////////////////////
-
- // The size of the buffer for aggregations ran in-memory. A higher limit might strain memory for the frontend
- "insights.aggregations.bufferSize": 500,
-
- // The maximum number of results a proactive search aggregation can accept before stopping
- "insights.aggregations.proactiveResultLimit": 50000,
-
- // Set the number of seconds an insight series will spend backfilling before being interrupted. Series are interrupted to prevent long running insights from exhausting all of the available workers. Interrupted series will be placed back in the queue and retried based on their priority.
- "insights.backfill.interruptAfter": 60,
-
- // Number of repositories within the batch to backfill concurrently.
- "insights.backfill.repositoryConcurrency": 3,
-
- // Set the number of repositories to batch in a group during backfilling.
- "insights.backfill.repositoryGroupSize": 10,
-
- // Maximum number of historical Code Insights data frames that may be analyzed per second.
- "insights.historical.worker.rateLimit": 20,
- // Other example values:
- // - 50
- // - 0.5
-
- // The allowed burst rate for the Code Insights historical worker rate limiter.
- "insights.historical.worker.rateLimitBurst": 20,
- // Other example values:
- // - 10
- // - 20
-
- // The maximum number of data points that will be available to view for a series on a code insight. Points beyond that will be stored in a separate table and available for data export.
- "insights.maximumSampleSize": 30,
- // Other example values:
- // - 12
- // - 24
- // - 50
-
- // Number of concurrent executions of a code insight query on a worker node
- "insights.query.worker.concurrency": 1,
- // Other example values:
- // - 10
-
- // Maximum number of Code Insights queries initiated per second on a worker node.
- "insights.query.worker.rateLimit": 20,
- // Other example values:
- // - 10
- // - 0.5
-
- // The allowed burst rate for the Code Insights queries per second rate limiter.
- "insights.query.worker.rateLimitBurst": 20,
- // Other example values:
- // - 10
- // - 20
-
-//////////////////////////////////////////////////////////////
-// Cody
-//////////////////////////////////////////////////////////////
-
- // Enable or disable Cody instance-wide. When Cody is disabled, all Cody endpoints and GraphQL queries will return errors, Cody will not show up in the site-admin sidebar, and Cody in the global navbar will only show a call-to-action for site-admins to enable Cody.
- "cody.enabled": false,
-
- // Restrict Cody to only be enabled for users that have a feature flag labeled "cody" set to true. You must create a feature flag with this ID after enabling this setting: https://docs.sourcegraph.com/dev/how-to/use_feature_flags#create-a-feature-flag. This setting only has an effect if cody.enabled is true.
- "cody.restrictUsersFeatureFlag": false,
-
-//////////////////////////////////////////////////////////////
-// Debug
-//////////////////////////////////////////////////////////////
-
- // (debug) controls the amount of symbol search parallelism. Defaults to 20. It is not recommended to change this outside of debugging scenarios. This option will be removed in a future version.
- "debug.search.symbolsParallelism": null,
- // Other example values:
- // - "20"
-
- // (debug) Set a limit to the amount of captured slow GraphQL requests being stored for visualization. For defining the threshold for a slow GraphQL request, see observability.logSlowGraphQLRequests.
- "observability.captureSlowGraphQLRequestsLimit": null,
- // Other example values:
- // - 2000
-
- // (debug) logs all GraphQL requests slower than the specified number of milliseconds.
- "observability.logSlowGraphQLRequests": null,
- // Other example values:
- // - 10000
-
- // (debug) logs all search queries (issued by users, code intelligence, or API requests) slower than the specified number of milliseconds.
- "observability.logSlowSearches": null,
- // Other example values:
- // - 10000
-
-//////////////////////////////////////////////////////////////
-// Email
-//////////////////////////////////////////////////////////////
-
- // The "from" address for emails sent by this server.
- // Please see https://docs.sourcegraph.com/admin/config/email
- "email.address": null,
- // Other example values:
- // - "noreply@sourcegraph.example.com"
-
- // The name to use in the "from" address for emails sent by this server.
- "email.senderName": "Sourcegraph",
- // Other example values:
- // - "Our Company Sourcegraph"
- // - "Example Inc Sourcegraph"
-
- // The SMTP server used to send transactional emails.
- // Please see https://docs.sourcegraph.com/admin/config/email
- "email.smtp": null,
- // Other example values:
- // - {
- // "authentication": "PLAIN",
- // "host": "smtp.example.com",
- // "password": "mypassword",
- // "port": 465,
- // "username": "alice"
- // }
-
- // Configurable templates for some email types sent by Sourcegraph.
- "email.templates": null,
- // Other example values:
- // - {
- // "resetPassword": {
- // "body": "To reset your password on {{.Host}}, please click the link below:\n\n{{.URL}}\n\nIf you did not request a password reset, please ignore this email. Your password will not change until you click the link and set a new password.",
- // "subject": "Reset your password on {{.Host}}"
- // },
- // "setPassword": {
- // "body": "To set your password on {{.Host}} and complete your account registration, please click the link below:\n\n{{.URL}}\n\nYour username is: {{.Username}}\n\nIf you did not sign up for an account on {{.Host}}, please ignore this email.",
- // "subject": "Set your password on {{.Host}}"
- // }
- // }
-
-//////////////////////////////////////////////////////////////
-// Experimental
-//////////////////////////////////////////////////////////////
-
- // Experimental features and settings.
- "experimentalFeatures": null,
- // Other example values:
- // - {
- // "customGitFetch": [
- // {
- // "domainPath": "somecodehost.com/path/to/repo",
- // "fetch": "customgitbinary someflag"
- // },
- // {
- // "domainPath": "somecodehost.com/path/to/anotherrepo",
- // "fetch": "customgitbinary someflag anotherflag"
- // }
- // ]
- // }
- // - {
- // "tls.external": {
- // "certificates": [
- // "-----BEGIN CERTIFICATE-----\n..."
- // ],
- // "insecureSkipVerify": true
- // }
- // }
-
-//////////////////////////////////////////////////////////////
-// External services
-//////////////////////////////////////////////////////////////
-
- // Disable periodic syncs of configured code host connections (repository metadata, permissions, batch changes changesets, etc)
- "disableAutoCodeHostSyncs": false,
-
- // Disable periodically fetching git contents for existing repositories.
- "disableAutoGitUpdates": false,
-
- // DEPRECATED! Disable redirects to sourcegraph.com when visiting public repositories that can't exist on this server.
- "disablePublicRepoRedirects": null,
- // Other example values:
- // - true
-
- // JSON array of configuration that maps from Git clone URL to repository name. Sourcegraph automatically resolves remote clone URLs to their proper code host. However, there may be non-remote clone URLs (e.g., in submodule declarations) that Sourcegraph cannot automatically map to a code host. In this case, use this field to specify the mapping. The mappings are tried in the order they are specified and take precedence over automatic mappings.
- "git.cloneURLToRepositoryName": null,
- // Other example values:
- // - [
- // {
- // "from": "^/admin/config(?P\u003cname\u003e\\w+)$",
- // "to": "github.com/user/{name}"
- // }
- // ]
-
- // Maximum number of seconds that a long Git command (e.g. clone or remote update) is allowed to execute. The default is 3600 seconds, or 1 hour.
- "gitLongCommandTimeout": 3600,
-
- // Maximum number of remote code host git operations (e.g. clone or ls-remote) to be run per second per gitserver. Default is -1, which is unlimited.
- "gitMaxCodehostRequestsPerSecond": -1,
-
- // Maximum number of git clone processes that will be run concurrently per gitserver to update repositories. Note: the global git update scheduler respects gitMaxConcurrentClones. However, we allow each gitserver to run upto gitMaxConcurrentClones to allow for urgent fetches. Urgent fetches are used when a user is browsing a PR and we do not have the commit yet.
- "gitMaxConcurrentClones": 5,
-
- // JSON array of repo name patterns and update intervals. If a repo matches a pattern, the associated interval will be used. If it matches no patterns a default backoff heuristic will be used. Pattern matches are attempted in the order they are provided.
- "gitUpdateInterval": null,
- // Other example values:
- // - [
- // {
- // "interval": 5,
- // "pattern": "^github.com/sourcegraph/.*"
- // },
- // {
- // "interval": 10,
- // "pattern": "^bitbucket.org/.*"
- // }
- // ]
-
- // URL to fetch unreachable repository details from. Defaults to "https://sourcegraph.com"
- "parentSourcegraph": null,
- // Other example values:
- // - {
- // "url": "https://sourcegraph.example.com"
- // }
-
- // The number of concurrent external service syncers that can run.
- "repoConcurrentExternalServiceSyncers": 3,
-
- // Interval (in minutes) for checking code hosts (such as GitHub, Gitolite, etc.) for new repositories.
- "repoListUpdateInterval": 1,
-
- // Configuration for repository purge worker.
- "repoPurgeWorker": {
- "deletedTTLMinutes": 60,
- "intervalMinutes": 15
- },
-
- // The SCIM auth token is used to authenticate SCIM requests. If not set, SCIM is disabled.
- "scim.authToken": "",
-
- // Identity provider used for SCIM support. "STANDARD" should be used unless a more specific value is available
- "scim.identityProvider": "STANDARD",
-
-//////////////////////////////////////////////////////////////
-// Misc.
-//////////////////////////////////////////////////////////////
-
- // Disable the feedback survey
- "disableFeedbackSurvey": false,
-
- // DEPRECATED. Has no effect.
- "disableNonCriticalTelemetry": false,
-
- // HTML to inject at the bottom of the `` element on each page, for analytics scripts. Requires env var ENABLE_INJECT_HTML=true.
- "htmlBodyBottom": null,
-
- // HTML to inject at the top of the `` element on each page, for analytics scripts. Requires env var ENABLE_INJECT_HTML=true.
- "htmlBodyTop": null,
-
- // HTML to inject at the bottom of the `` element on each page, for analytics scripts. Requires env var ENABLE_INJECT_HTML=true.
- "htmlHeadBottom": null,
-
- // HTML to inject at the top of the `` element on each page, for analytics scripts. Requires env var ENABLE_INJECT_HTML=true.
- "htmlHeadTop": null,
-
- // Enables users access to the product research page in their settings.
- "productResearchPage.enabled": true,
-
- // The channel on which to automatically check for Sourcegraph updates.
- "update.channel": "release",
- // Other example values:
- // - "none"
-
-//////////////////////////////////////////////////////////////
-// Own
-//////////////////////////////////////////////////////////////
-
- // The max number of concurrent Own jobs that will run per worker node.
- "own.background.repoIndexConcurrencyLimit": 5,
-
- // The maximum per second burst of repositories for Own jobs per worker node. Generally this value should not be less than the max concurrency.
- "own.background.repoIndexRateBurstLimit": 5,
-
- // The maximum per second rate of repositories for Own jobs per worker node.
- "own.background.repoIndexRateLimit": 20,
-
- // The Own service will attempt to match a Team by the last part of its handle if it contains a slash and no match is found for its full handle.
- "own.bestEffortTeamMatching": true,
-
-//////////////////////////////////////////////////////////////
-// Search
-//////////////////////////////////////////////////////////////
-
- // DEPRECATED: Configure maxRepos in search.limits. The maximum number of repositories to search across. The user is prompted to narrow their query if exceeded. Any value less than or equal to zero means unlimited.
- "maxReposToSearch": -1,
-
- // The number of threads each indexserver should use to index shards. If not set, indexserver will use the number of available CPUs. This is exposed as a safeguard and should usually not require being set.
- "search.index.shardConcurrency": null,
- // Other example values:
- // - "10"
-
- // Whether indexed symbol search is enabled. This is contingent on the indexed search configuration, and is true by default for instances with indexed search enabled. Enabling this will cause every repository to re-index, which is a time consuming (several hours) operation. Additionally, it requires more storage and ram to accommodate the added symbols information in the search index.
- "search.index.symbols.enabled": null,
- // Other example values:
- // - true
-
- // A list of file glob patterns where matching files will be indexed and searched regardless of their size. Files still need to be valid utf-8 to be indexed. The glob pattern syntax can be found here: https://github.com/bmatcuk/doublestar#patterns.
- "search.largeFiles": null,
- // Other example values:
- // - [
- // "go.sum",
- // "package-lock.json",
- // "**/*.thrift"
- // ]
-
- // Limits that search applies for number of repositories searched and timeouts.
- "search.limits": null,
- // Other example values:
- // - {
- // "commitDiffMaxRepos": 50,
- // "commitDiffWithTimeFilterMaxRepos": 5000,
- // "maxRepos": 200,
- // "maxTimeoutSeconds": 60
- // }
-
-//////////////////////////////////////////////////////////////
-// Security
-//////////////////////////////////////////////////////////////
-
- // Settings for access tokens, which enable external tools to access the Sourcegraph API with the privileges of the user.
- "auth.accessTokens": {
- "allow": "all-users-create",
- "expirationOptionDays": [7,14,30,60,90],
- "defaultExpirationDays": 90,
- "allowNoExpiration": false,
- "maxTokensPerUser": 25
- },
- // Other example values:
- // - {"allow":"site-admin-create"}
- // - {"allow":"none"}
-
- // Required when using any of the native code host integrations for Phabricator, GitLab, or Bitbucket Server. It is a space-separated list of allowed origins for cross-origin HTTP requests which should be the base URL for your Phabricator, GitLab, or Bitbucket Server instance.
- "corsOrigin": null,
- // Other example values:
- // - "https://my-phabricator.example.com https://my-bitbucket.example.com https://my-gitlab.example.com"
-
- // Whether or not LSIF uploads will be blocked unless a valid LSIF upload token is provided.
- "lsifEnforceAuth": false,
-
- // Settings for Sourcegraph explicit permissions, which allow the site admin to explicitly manage repository permissions via the GraphQL API. This will mark repositories as restricted by default.
- "permissions.userMapping": {
- "bindID": "email",
- "enabled": true
- },
- // Other example values:
- // - {"bindID":"email"}
- // - {"bindID":"username"}
-
-//////////////////////////////////////////////////////////////
-// Sourcegraph Enterprise license
-//////////////////////////////////////////////////////////////
-
- // The license key associated with a Sourcegraph product subscription, which is necessary to activate Sourcegraph Enterprise functionality. To obtain this value, contact Sourcegraph to purchase a subscription. To escape the value into a JSON string, you may want to use a tool like https://json-escape-text.now.sh.
- "licenseKey": null,
-
-//////////////////////////////////////////////////////////////
-// Sourcegraph.com
-//////////////////////////////////////////////////////////////
-
- // Configuration options for Sourcegraph.com only.
- "dotcom": null
-}
-```
-
-#### Known bugs
-
-The following site configuration options require the server to be restarted for the changes to take effect:
-
-```
-auth.providers
-externalURL
-insights.query.worker.concurrency
-insights.commit.indexer.interval
-permissions.syncUsersMaxConcurrency
-```
-
-## Editing your site configuration if you cannot access the web UI
-
-If you are having trouble accessing the web UI, you can make edits to your site configuration by editing the configuration directly.
-
-
-### Sourcegraph with Docker Compose and single-server Sourcegraph with Docker
-
-Set `FRONTEND_CONTAINER` to:
-
-- [Docker Compose](/admin/deploy/docker-compose/): the `sourcegraph-frontend` container
-- [Single-container](/admin/deploy/docker-single-container/): the `sourcegraph/server` container
-
-```sh
-docker exec -it --user=root $FRONTEND_CONTAINER sh -c 'apk add --no-cache && nano /home/sourcegraph/site-config.json'
-```
-
-Or if you prefer using a Vim editor:
-
-```sh
-docker exec -it $FRONTEND_CONTAINER sh -c 'vi ~/site-config.json'
-```
-
-### Sourcegraph with Kubernetes
-
-For [Kubernetes](/admin/deploy/kubernetes/) deployments:
-
-```sh
-kubectl exec -it $FRONTEND_POD -- sh -c 'apk add --no-cache nano && nano ~/site-config.json'
-```
-
-Or if you prefer using a Vim editor:
-
-```sh
-kubectl exec -it $FRONTEND_POD -- sh -c 'vi ~/site-config.json'
-```
-
-Then simply save your changes (type ctrl+x and y to exit `nano` and save your changes). Your changes will be applied immediately in the same way as if you had made them through the web UI.
-
-## If you are still encountering issues
-
-You can check the container logs to see if you have made any typos or mistakes in editing the configuration file. If you are still encountering problems, you can save the default site configuration that comes with Sourcegraph (below) or contact support@sourcegraph.com with any questions you have.
-
-```json
-{
- // The externally accessible URL for Sourcegraph (i.e., what you type into your browser)
- // This is required to be configured for Sourcegraph to work correctly.
- // "externalURL": "https://sourcegraph.example.com",
-
- // The authentication provider to use for identifying and signing in users.
- // Only one entry is supported.
- //
- // The builtin auth provider with signup disallowed (shown below) means that
- // after the initial site admin signs in, all other users must be invited.
- //
- // Other providers are documented at https://docs.sourcegraph.com/admin/auth.
- "auth.providers": [
- {
- "type": "builtin",
- "allowSignup": false
- }
- ],
-}
-```
-
-## Accessing global settings
-
-Global settings should rarely need to be accessed. You will need to direct database access to change this setting.
-
-To find the current global settings, use the following SQL query:
-
-```sql
-SELECT * FROM settings WHERE user_id IS null and org_id IS null ORDER BY id DESC;
-```
-
-This will return a history of all global settings changes, the highest id being the latest
-Next, you can update the `content` column to either `{}` to reset global settings or to the desired JSON object.
-
-```sql
-UPDATE settings SET content = '{}' WHERE id IS ;
-```
\ No newline at end of file
diff --git a/docs/versioned/5.2/admin/config/user_invitations.mdx b/docs/versioned/5.2/admin/config/user_invitations.mdx
deleted file mode 100644
index bb6dc6ccf..000000000
--- a/docs/versioned/5.2/admin/config/user_invitations.mdx
+++ /dev/null
@@ -1,31 +0,0 @@
-# Sourcegraph user invitations
-
-Starting in Sourcegraph v3.38, the homepage offers the ability for users to invite collaborators:
-
-
-
-## How it works
-
-The collaborators you see are determined based on your repository's Git commit history. We sample a few random repositories and use some heuristics to suggest collaborators you may want to invite to Sourcegraph.
-
-When a user is invited, **no additional permissions are granted**: they merely receive an email informing them that the Sourcegraph instance exists. When the invited user visits Sourcegraph, they will have to sign in using the configured authentication providers.
-
-If `"allowSignup": false,` is configured in any of your authentication providers, user invitations are disabled entirely.
-
-## Disabling
-
-You can disable user invitations for all users by setting the feature flag to _false_ in your **global user settings** at e.g. `https://sourcegraph.example.com/site-admin/global-settings` with the following:
-
-```json
-{
- "experimentalFeatures": {
- "homepageUserInvitation": false,
- }
-}
-```
-
-Teams on Sourcegraph.com can disable this via **Your organizations** > **Settings** using the same configuration.
-
-Individuals can disable this in their user settings at `https://sourcegraph.example.com/user/settings` using the same configuration.
-
-If you have any feedback on how we can improve this feature, please [let us know](mailto:feedback@sourcegraph.com)!
diff --git a/docs/versioned/5.2/admin/config/webhooks/incoming.mdx b/docs/versioned/5.2/admin/config/webhooks/incoming.mdx
deleted file mode 100644
index a5459dc23..000000000
--- a/docs/versioned/5.2/admin/config/webhooks/incoming.mdx
+++ /dev/null
@@ -1,234 +0,0 @@
-# Incoming webhooks
-
-Incoming webhooks can be configured on a Sourcegraph instance in order to receive webhook events from code hosts. This allows Sourcegraph to react more quickly to events that occur outside the instance instead of polling for changes.
-
-Webhooks are currently implemented to speed up two types of external events:
-
-* Keeping batch changes changeset details up to date
-* Keeping code on Sourcegraph fresh by responding to new code being pushed to a repository
-
-See the table below for code host compatibility:
-
- Code host | [Batch changes](/batch_changes) | Code push | User permissions
------------------------------ | :----------------------------------------------: | :-------: | :--------------:
-GitHub | 🟢 | 🟢 | 🟢
-GitLab | 🟢 | 🟢 | 🔴
-Bitbucket Server / Datacenter | 🟢 | 🟢 | 🔴
-Bitbucket Cloud | 🟢 | 🟢 | 🔴
-Azure DevOps | 🟢 | 🔴 | 🔴
-
-To receive webhooks both Sourcegraph and the code host need to be configured. To configure Sourcegraph, [add an incoming webhook](#adding-an-incoming-webhook). Then [configure webhooks on your code host](#configuring-webhooks-on-the-code-host)
-
-## Adding an incoming webhook
-
-Before adding an incoming webhook you should ensure that you have at least one [code host connection](/admin/external_services/) configured.
-
-The incoming webhook will be configured to accept events from a specific code host connection based on its type and URN.
-
-1. Navigate to **Site Admin > Configuration > Incoming webhooks**
- 
-2. Click **+ Create webhook**
- 
-3. Fill out the form:
- 1. **Webhook name**: Descriptive name for the webhook.
- 1. **Code host type**: Select from the dropdown. This will be filtered based on code host connections added on your instance.
- 1. **Code host URN**: The URN for the code host. Again, this will be filtered by code host connections added on your instance.
- 1. **Secret**: An arbitrary shared secret between Sourcegraph and the code host. A default value is provided, but you are free to change it.
- > NOTE: Secrets are not supported for Bitbucket cloud
-4. Click **Create**
-
-The incoming webhook will now be created, and you will be redirected to a page showing more details.
-
-
-Use the unique URL present on the details page to configure [the webhook on your code host](#configuring-webhooks-on-the-code-host).
-
-## Configuring webhooks on the code host
-
-The instructions for setting up webhooks on the code host are specific to each code host type.
-
-### GitHub
-
-#### Batch changes
-
-1. Copy the webhook URL displayed after adding the incoming webhook as mentioned [above](#adding-an-incoming-webhook)
-1. On GitHub, go to the settings page of your organization. From there, click **Settings**, then **Webhooks**, then **Add webhook**.
-1. Fill in the webhook form:
- * **Payload URL**: the URL you copied above from Sourcegraph.
- * **Content type**: this must be set to `application/json`.
- * **Secret**: the secret token you configured Sourcegraph to use above.
- * **Which events**: select **Let me select individual events**, and then enable:
- - Issue comments
- - Pull requests
- - Pull request reviews
- - Pull request review comments
- - Check runs
- - Check suites
- - Statuses
- * **Active**: ensure this is enabled.
-1. Click **Add webhook**.
-1. Confirm that the new webhook is listed.
-
-Done! Sourcegraph will now receive webhook events from GitHub and use them to sync pull request events, used by [batch changes](/batch_changes/index), faster and more efficiently.
-
-#### Code push
-
-Follow the same steps as above, but ensure you include the `push` event under **Let me select individual events**
-
-#### Repository permissions
-
-Follow the same steps as above, but ensure you include the following events under **Let me select individual events**:
-- `Collaborator add, remove, or changed`
-- `Memberships`
-- `Organizations`
-- `Repositories`
-- `Teams`
-
-When one of these events occur, a permissions sync will trigger for the relevant user or repository.
-
-> NOTE: Permission changes can take a few seconds to reflect on GitHub. To prevent syncing permissions before the change reflects on GitHub, the permissions sync will only occur 10 seconds after the relevant event is received.
-
-### GitLab
-
-#### Batch changes
-
-1. Copy the webhook URL displayed after adding the incoming webhook as mentioned [above](#adding-an-incoming-webhook)
-1. On GitLab, go to your project, and then **Settings > Webhooks** (or **Settings > Integration** on older GitLab versions that don't have the **Webhooks** option).
-1. Fill in the webhook form:
- * **URL**: the URL you copied above from Sourcegraph.
- * **Secret token**: the secret token you configured Sourcegraph to use above.
- * **Trigger**: select **Merge request events** and **Pipeline events**.
- * **Enable SSL verification**: ensure this is enabled if you have configured SSL with a valid certificate in your Sourcegraph instance.
-1. Click **Add webhook**.
-1. Confirm that the new webhook is listed below **Project Hooks**.
-
-Done! Sourcegraph will now receive webhook events from GitLab and use them to sync merge request events, used by [batch changes](/batch_changes/index), faster and more efficiently.
-
-**NOTE:** We currently do not support [system webhooks](https://docs.gitlab.com/ee/administration/system_hooks.html) as these provide a different set of payloads.
-
-#### Code push
-
-Follow the same steps as above, but ensure you include the `Push events` trigger.
-
-### Bitbucket server
-
-#### Batch changes
-
-The [Sourcegraph Bitbucket Server plugin](/integration/bitbucket_server#sourcegraph-bitbucket-server-plugin) enables the Bitbucket Server / Bitbucket Data Center instance to send webhooks to Sourcegraph.
-
-1. Install the [Sourcegraph Bitbucket Server plugin](/integration/bitbucket_server#sourcegraph-bitbucket-server-plugin) on your Bitbucket Server / Bitbucket Data Center instance.
-1. On your Bitbucket Server / Bitbucket Data Center instance, go to **Administration > Add-ons > Sourcegraph**
-1. Fill in the **Add a webhook** form
- * **Name**: A unique name representing your Sourcegraph instance.
- * **Scope**: `global`.
- * **Endpoint**: The URL found after creating an incoming webhook.
- * **Events**: `repo:build_status`, `pr:activity:status`, `pr:activity:event`, `pr:activity:rescope`, `pr:activity:merge`, `pr:activity:comment`, `pr:activity:reviewers`, `pr:participant:status`
- * **Secret**: The secret you configured when creating the incoming webhook.
-1. Confirm that the new webhook is listed under **All webhooks** with a timestamp in the **Last successful** column.
-
-Done! Sourcegraph will now receive webhook events from Bitbucket Server / Bitbucket Data Center and use them to sync pull request events, used by [batch changes](/batch_changes/index), faster and more efficiently.
-
-#### Code push
-
-Follow the same steps as above, but ensure you tick the `Push` option. If asked for a specific event, use `repo:refs_changed`.
-
-### Bitbucket cloud
-
-#### Batch changes
-
-> NOTE: Experimental webhook support for Bitbucket Cloud was added in Sourcegraph 3.40. Please contact us with any issues found while using webhooks.
-
-1. On Bitbucket Cloud, go to each repository, and then **Repository settings > Webhooks**.
-1. Click **Add webhook**.
-1. Fill in the webhook form:
- * **Title**: Any title.
- * **URL**: The URL found after creating an incoming webhook.
- * **Triggers**: Select **Build status created** and **Build status updated** under **Repository**, and every item under **Pull request**.
-1. Click **Save**.
-1. Confirm that the new webhook is listed below **Repository hooks**.
-
-Done! Sourcegraph will now receive webhook events from Bitbucket Cloud and use them to sync pull request events, used by [batch changes](/batch_changes/index), faster and more efficiently.
-
-#### Code push
-
-Follow the same steps as above, but ensure you tick the `Push` option.
-
-### Azure DevOps
-
-#### Batch changes
-
-> NOTE: Experimental webhook support for Azure DevOps was added in Sourcegraph 5.0, and does not currently support secrets. Please contact us with any issues found while using webhooks.
-
-1. On Azure DevOps, go to each project, and then **Project settings > General > Service hooks**.
-2. Click **Create subscription**.
- 
-3. Select **Web Hooks** and click **Next** .
- 
-4. From the **Trigger on this type of event** drop-down, choose: **Pull request updated**.
- 
-5. Set the filters how you like, or leave them at the default: **[Any]** and click **Next**.
-6. Fill in the webhook form:
- - **URL**: The URL found after creating an incoming webhook.
- - Leave the rest of the fields on the default values.
-7. Click **Test** to verify the webhook works. Then click **Finish**.
-8. Repeat the steps above, this time choosing **Pull request merged** as your event type.
-
-Done! Sourcegraph will now receive webhook events from Azure DevOps and use them to sync pull request events, used by [batch changes](/batch_changes/index), faster and more efficiently.
-
-## Webhook logging
-
-Sourcegraph can track incoming webhooks from code hosts to more easily debug issues with webhook delivery. These webhooks can be viewed in two places depending on how they were added:
-
-1. Via **Site Admin > Configuration > Incoming webhooks**
- 
-2. **Deprecated** Via code host connection: **Site Admin > Batch Changes > Incoming webhooks**
- 
-
-By default, sites without [database encryption](/admin/config/encryption) enabled will retain three days of webhook logs. Sites with encryption will not retain webhook logs by default, as webhooks may include sensitive information; these sites can enable webhook logging and optionally configure encryption for them by using the settings below.
-
-### Enabling webhook logging
-
-Webhook logging is controlled by the `webhook.logging` site configuration
-option. This option is an object with the following keys:
-
-| Key | Type | Default | Description |
-| ----------- | --------- | --------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------- |
-| `enabled` | `boolean` | If `true`, incoming webhooks will be stored. | `true` if no site encryption is enabled; `false` otherwise. |
-| `retention` | `string` | The length of time to retain the webhooks, expressed as a valid [Go duration](https://pkg.go.dev/time#ParseDuration). | `72h` |
-
-#### Examples
-
-To disable webhook logging:
-
-```json
-{
- "webhook.logging": {"enabled": false}
-}
-```
-
-To retain webhook logs for one day:
-
-```json
-{
- "webhook.logging": {
- "enabled": false,
- "retention": "24h"
- }
-}
-```
-
-### Encrypting webhook logs
-
-Webhook logs can be encrypted by specifying a `webhookLogKey` in the [on-disk database encryption site configuration](/admin/config/encryption).
-
-## Deprecation notice
-
-As of Sourcegraph 4.3.0 webhooks added via code host configuration are deprecated and support will be removed in release 5.1.0.
-
-This includes any webhooks pointed at URLs starting with the following:
-
-* `.api/github-webhooks`
-* `.api/gitlab-webhooks`
-* `.api/bitbucket-server-webhooks`
-* `.api/bitbucket-cloud-webhooks`
-
-In order to continue using webhooks you need to follow the steps below to [add an incoming webhook](#adding-an-incoming-webhook) and then update the webhook configured on your code host with the new webhook url which will look something like `https://sourcegraph-instance/.api/webhooks/{UUID}`
diff --git a/docs/versioned/5.2/admin/config/webhooks/index.mdx b/docs/versioned/5.2/admin/config/webhooks/index.mdx
deleted file mode 100644
index c95cab178..000000000
--- a/docs/versioned/5.2/admin/config/webhooks/index.mdx
+++ /dev/null
@@ -1,4 +0,0 @@
-# Webhooks
-
-- [Incoming webhooks](/admin/config/webhooks/incoming)
-- [Outgoing webhooks](/admin/config/webhooks/outgoing) (Beta)
diff --git a/docs/versioned/5.2/admin/config/webhooks/outgoing.mdx b/docs/versioned/5.2/admin/config/webhooks/outgoing.mdx
deleted file mode 100644
index 21a39595f..000000000
--- a/docs/versioned/5.2/admin/config/webhooks/outgoing.mdx
+++ /dev/null
@@ -1,121 +0,0 @@
-# Outgoing webhooks
-
- This feature is currently in beta and supported on Sourcegraph versions 5.0 or more.
-
-Outgoing webhooks can be configured on a Sourcegraph instance in order to send Sourcegraph events to external tools and services. This allows for deeper integrations between Sourcegraph and other applications.
-
-Currently, webhooks are only implemented for events related to [Batch Changes](/batch_changes/). They also cannot yet be scoped to specific entities, meaning that they will be triggered for all events of the specified type across Sourcegraph. Expanded support for more event types and scoped events is planned for the future. Please [let us know](mailto:feedback@sourcegraph.com) what types of events you would like to see implemented next, or if you have any other feedback!
-
-> WARNING: Outgoing webhooks have the potential to send sensitive information about your repositories and code to other untrusted services. When configuring outgoing webhooks, be sure to only send events to trusted service URLs and to use the shared secret to verify any requests received.
-
-## Adding an outgoing webhook
-
-1. Navigate to **Site Admin > Configuration > Ougoing webhooks**
- 
-1. Click **+ Create webhook**
- 
-1. Fill out the form:
- 1. **URL**: URL endpoint of the external service that Sourcegraph should send webhook events to.
- 1. **Secret**: An arbitrary secret to share between Sourcegraph and the external service. A default value is provided, but you are free to change it.
- 1. **Event types**: The types of [events](#supported-event-types) that will trigger a webhook event. Currently, only events related to Batch Changes are supported.
-1. Click **Create**
-
-The outgoing webhook will now be created and active. To view or edit its details, or to see the log of event requests that have been sent for it, click the **Edit** button on the outgoing webhook's row.
-
-
-## Supported event types
-
-### Batch change
-
-- **batch_change:apply** - Triggered when a batch spec is applied to a batch change.
-- **batch_change:close** - Triggered when a batch change is closed.
-- **batch_change:delete** - Triggered when a batch change is deleted.
-
-#### Example payload
-
-The batch change webhook event payload mirrors the [GraphQL API](/api/graphql/) `BatchChange` type and contains the following fields:
-
-```json
-{
- // The unique ID for the batch change.
- "id": "QmF0Y2hDaGFuZ2U6MTcz",
- // The ID of the namespace where this batch change is defined.
- "namespace_id": "VXNlcjox",
- // The name of the batch change.
- "name": "hello-world",
- // The description of the batch change (as Markdown).
- "description": "Add Hello World to READMEs",
- // The state of the batch change on Sourcegraph.
- "state": "OPEN",
- // The ID of the user who created this batch change.
- "creator_user_id": "VXNlcjox",
- // The ID of the user who last applied a spec to this batch change.
- "last_applier_user_id": "VXNlcjox",
- // The URL path on Sourcegraph for this batch change.
- "url": "/users/my-username/batch-changes/hello-world",
- // The date and time when the batch change was created.
- "created_at": "2023-03-19T05:41:24Z",
- // The date and time when the batch change was last updated.
- "updated_at": "2023-03-19T05:43:04Z",
- // The date and time when the batch change was last updated with a new spec.
- "last_applied_at": "2023-03-19T05:43:04Z",
- // The date and time when the batch change was closed, or null if it's still open.
- "closed_at": null
-}
-```
-
-### Changeset
-
-- **changeset:close** - Triggered when a changeset is closed or merged by Sourcegraph.
-- **changeset:publish** - Triggered when a changeset is successfully published to the code host.
-- **changeset:publish_error** - Triggered when an attempt to publish a changeset to the code host fails.
-- **changeset:update** - Triggered when a changeset is updated on the code host by Sourcegraph.
-- **changeset:update_error** - Triggered when an attempt to update a changeset on the code host fails.
-
-#### Example payload
-
-The changeset webhook event payload mirrors the [GraphQL API](/api/graphql/) `ExternalChangeset` type and contains the following fields:
-
-```json
-{
- // The unique ID for the changeset.
- "id": "Q2hhbmdlc2V0OjI4MA==",
- // The external ID that uniquely identifies this ExternalChangeset on the code host (e.g. the pull request number). Note that this is only available after the changeset has been published.
- "external_id": "204",
- // The IDs of the batch changes that this changeset is associated with.
- "batch_change_ids": [
- "QmF0Y2hDaGFuZ2U6MTcz"
- ],
- // The ID (on Sourcegraph) of the repository that this changeset is associated with.
- "repository_id": "UmVwb3NpdG9yeToxNQ==",
- // The date and time when the batch change was created.
- "created_at": "2023-03-19T05:41:24Z",
- // The date and time when the batch change was last updated.
- "title": "Hello World",
- // The body of the changese (as Markdown).
- "body": "My first batch change!",
- // The username of the author of the changeset. Note that this is only available after the changeset has been published and is not available on some code hosts.
- "author_name": "my-username",
- // The email of the author of the changeset. Note that this is only available after the changeset has been published and is not available on most code hosts.
- "author_email": "me@myorganization.com",
- // The state of the changeset on Sourcegraph.
- "state": "OPEN",
- // Any labels attached to the changeset on the code host.
- "labels": ["bug"],
- // The external URL of the changeset on the code host. Note that this is only available after the changeset has been published.
- "external_url": "https://github.com/my-org/my-repo/pull/204",
- // If the changeset was opened from a fork, this is the namespace of the fork on the code host.
- "fork_namespace": "fork-username",
- // If the changeset was opened from a fork, this is the name of the fork repository. Note that this is only available after the changeset has been published.
- "fork_name": "my-repo-fork",
- // The review state of this changeset on the code host. Note that this is only available after the changeset has been published.
- "review_state": "CHANGES_REQUESTED",
- // The check state of this changeset on the code host. Note that this is only available after the changeset has been published.
- "check_state": "PASSED",
- // Any error that occurred when publishing or updating the changeset.
- "error": null,
- // Any error that occured during the last sync of the changeset by Sourcegraph.
- "syncer_error": null,
- // The ID of the batch change that produced this changeset.
- "owning_batch_change_id": "QmF0Y2hDaGFuZ2U6MTcz"
-}
diff --git a/docs/versioned/5.2/admin/deploy/docker-compose/aws.mdx b/docs/versioned/5.2/admin/deploy/docker-compose/aws.mdx
deleted file mode 100644
index 59a2c4775..000000000
--- a/docs/versioned/5.2/admin/deploy/docker-compose/aws.mdx
+++ /dev/null
@@ -1,177 +0,0 @@
-# Install Sourcegraph on Amazon Web Services (AWS)
-
-> ⚠️ We recommend new users use our [AWS AMI](https://docs.sourcegraph.com/admin/deploy/machine-images/aws-oneclick) or [script-install](/admin/deploy/single-node/script) instructions, which are easier and offer more flexibility when configuring Sourcegraph. Existing customers can reach out to our Customer Engineering team support@sourcegraph.com if they wish to migrate to these deployment models.
-
-
-
-This guide will take you through how to deploy Sourcegraph with [Docker Compose](https://docs.docker.com/compose/) to a single EC2 instance on Amazon Web Services (AWS).
-
-Deploy a Sourcegraph instance with an [AWS AMI](/admin/deploy/machine-images/aws-ami) or [AWS One-Click](https://docs.sourcegraph.com/admin/deploy/machine-images/aws-oneclick). (Recommended)
-
-
-## Configure
-
-Click **Launch Instance** from the [EC2 dashboard](https://console.aws.amazon.com/ec2/v2/home), then fill in the following values for each section:
-
-#### Name and tags
-
-1. Name your instance
-
-#### Application and OS Images
-
-1. Select **Amazon Linux** in the *Quick Start* tab
-
-2. Select **Amazon Linux 2 AMI (HVM), SSD Volume Type** under *Amazon Machine Image (AMI)*
-
-#### Instance type
-
-1. Select an appropriate instance type using our [resource estimator](https://docs.sourcegraph.com/admin/deploy/resource_estimator) as reference
-
-#### Key pair (login)
-
-1. Create a new key pair for your instance, or choose an existing key pair from the drop down list
-
-#### Network settings
-
-1. Click `Edit` in the header to enable **Auto-assign Public IP**
-
-2. Under **Firewall (security group)** , create or select existing security group with the following settings:
-
- * Allow SSH traffic from Anywhere
- * Allow HTTPs traffic from the internet
- * Allow HTTP traffic from the internet
-
-> NOTE: If possible, replace the IP address ranges specified with the IPs from which you actually want to allow access.
-
-#### Configure storage
-
-1. Click **Add New Volume** to add an *additional* EBS volume for storing data
-
-2. Click **Advanced** in the header to update the following settings for the new Custom Volume:
- * `Storage Type`: EBS
- * `Device name`: `/dev/sdb`
- * `Volume Type`: `gp3` (General Purpose SSD)
- * `Size (GiB)`: `250GB minimum`
- * Sourcegraph needs at least as much space as all your repositories combined take up
- * Allocating as much disk space as you can upfront minimize the need for [resizing your volume](https://aws.amazon.com/premiumsupport/knowledge-center/expand-root-ebs-linux/) in the future
- * `Delete on Termination`: `No`
-
-#### Advanced details > User Data
-
-Copy and paste the *startup script* below into the **User Data** textbox:
-
-```bash
-#!/usr/bin/env bash
-set -euxo pipefail
-###############################################################################
-# ACTION REQUIRED: REPLACE THE URL AND REVISION WITH YOUR DEPLOYMENT REPO INFO
-###############################################################################
-# Please read the notes below the script if you are cloning a private repository
-DEPLOY_SOURCEGRAPH_DOCKER_FORK_CLONE_URL='https://github.com/sourcegraph/deploy-sourcegraph-docker.git'
-DEPLOY_SOURCEGRAPH_DOCKER_FORK_REVISION='v5.3.0'
-##################### NO CHANGES REQUIRED BELOW THIS LINE #####################
-DEPLOY_SOURCEGRAPH_DOCKER_CHECKOUT='/home/ec2-user/deploy-sourcegraph-docker'
-DOCKER_COMPOSE_VERSION='1.29.2'
-DOCKER_DAEMON_CONFIG_FILE='/etc/docker/daemon.json'
-DOCKER_DATA_ROOT='/mnt/docker-data'
-EBS_VOLUME_DEVICE_NAME='/dev/sdb'
-EBS_VOLUME_LABEL='sourcegraph'
-# Install git
-yum update -y
-yum install git -y
-# Clone the deployment repository
-git clone "${DEPLOY_SOURCEGRAPH_DOCKER_FORK_CLONE_URL}" "${DEPLOY_SOURCEGRAPH_DOCKER_CHECKOUT}"
-cd "${DEPLOY_SOURCEGRAPH_DOCKER_CHECKOUT}"
-git checkout "${DEPLOY_SOURCEGRAPH_DOCKER_FORK_REVISION}"
-# Format (if unformatted) and then mount the attached volume
-device_fs=$(lsblk "${EBS_VOLUME_DEVICE_NAME}" --noheadings --output fsType)
-if [ "${device_fs}" == "" ]
-then
- mkfs -t xfs "${EBS_VOLUME_DEVICE_NAME}"
-fi
-xfs_admin -L "${EBS_VOLUME_LABEL}" "${EBS_VOLUME_DEVICE_NAME}"
-mkdir -p "${DOCKER_DATA_ROOT}"
-mount -L "${EBS_VOLUME_LABEL}" "${DOCKER_DATA_ROOT}"
-# Mount file system by label on reboot
-echo "LABEL=${EBS_VOLUME_LABEL} ${DOCKER_DATA_ROOT} xfs defaults,nofail 0 2" >> '/etc/fstab'
-umount "${DOCKER_DATA_ROOT}"
-mount -a
-# Install, configure, and enable Docker
-yum update -y
-amazon-linux-extras install docker
-systemctl enable --now docker
-sed -i -e 's/1024/262144/g' /etc/sysconfig/docker
-sed -i -e 's/4096/262144/g' /etc/sysconfig/docker
-usermod -a -G docker ec2-user
-# Install jq for scripting
-yum install -y jq
-## Initialize the config file with empty json if it doesn't exist
-if [ ! -f "${DOCKER_DAEMON_CONFIG_FILE}" ]
-then
- mkdir -p $(dirname "${DOCKER_DAEMON_CONFIG_FILE}")
- echo '{}' > "${DOCKER_DAEMON_CONFIG_FILE}"
-fi
-## Point Docker storage to mounted volume
-tmp_config=$(mktemp)
-trap "rm -f ${tmp_config}" EXIT
-cat "${DOCKER_DAEMON_CONFIG_FILE}" | jq --arg DATA_ROOT "${DOCKER_DATA_ROOT}" '.["data-root"]=$DATA_ROOT' > "${tmp_config}"
-cat "${tmp_config}" > "${DOCKER_DAEMON_CONFIG_FILE}"
-# Restart Docker daemon to pick up new changes
-systemctl restart --now docker
-# Install Docker Compose
-curl -L "https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
-chmod +x /usr/local/bin/docker-compose
-curl -L "https://raw.githubusercontent.com/docker/compose/${DOCKER_COMPOSE_VERSION}/contrib/completion/bash/docker-compose" -o /etc/bash_completion.d/docker-compose
-# Start Sourcegraph with Docker Compose
-cd "${DEPLOY_SOURCEGRAPH_DOCKER_CHECKOUT}"/docker-compose
-docker-compose up -d --remove-orphans
-```
-
-> NOTE: If you're deploying a production instance, we recommend [forking the deployment configuration repository](/admin/deploy/docker-compose/#step-1-fork-the-deployment-repository) to track any customizations you make to the deployment config. If you do so, you'll want to update the *startup script* you pasted from above to refer to the clone URL and revision of your fork:
->
-> - `DEPLOY_SOURCEGRAPH_DOCKER_FORK_CLONE_URL`: The Git clone URL of your deployment repository. If it is a private repository, please check with your code host on how to generate a URL for cloning private repository
-> - `DEPLOY_SOURCEGRAPH_DOCKER_FORK_REVISION`: The revision (branch) in your fork containing the customizations, typically "release"
-
----
-
-## Deploy
-
-1. Click **Launch Instance** in the *Summary Section* on the right to launch the EC2 node running Sourcegraph.
-
-2. In your web browser, navigate to the public IP address assigned to the EC2 node. (Look for the **IPv4 Public IP** value in your EC2 instance page under the *Description* panel.) It may take a few minutes for the instance to finish initializing before Sourcegraph becomes accessible.
-
-You can monitor the setup process by SSHing into the instance to run the following diagnostic commands:
-
-```bash
-# Follow the status of the startup script
-tail -f /var/log/cloud-init-output.log
-# Once installation is completed, check the health of the "sourcegraph-frontend" container
-docker ps --filter="name=sourcegraph-frontend-0"
-```
-
-> NOTE: If you have configured a DNS entry for the IP, please ensure to update `externalURL` in your Sourcegraph instance's Site Configuration to reflect that
-
----
-
-## Upgrade
-
-See the [Docker Compose upgrade docs](/admin/deploy/docker-compose/upgrade).
-
----
-
-## Storage and Backups
-
-Data is persisted within a [Docker volume](https://docs.docker.com/storage/volumes/) as defined in the [deployment repository](https://github.com/sourcegraph/deploy-sourcegraph-docker/blob/master/docker-compose/docker-compose.yaml). The startup script configures Docker using a [daemon configuration file](https://docs.docker.com/engine/reference/commandline/dockerd/#daemon-configuration-file) to store all the data on the attached data volume, which is mounted at `/mnt/docker-data`, where volumes are stored within `/mnt/docker-data/volumes`.
-
-There are two, non-mutually-exclusive ways to back up data:
-
-* [Snapshot the entire `/mnt/docker-data` EBS volume](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-creating-snapshot.html) on an [automatic, scheduled basis](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/snapshot-lifecycle.html).
-
-Use [AWS RDS for PostgreSQL](https://aws.amazon.com/rds/) instead of the Dockerized PostgreSQL instance included by default. All data from Sourcegraph is derivable from the data stored in this database. Note, however, that it may take awhile to reclone repositories and rebuild indices afresh. If you require a faster restoration process, we recommend also snapshotting the EBS volume. (Recommended)
-
----
-
-## Other resources
-
-[HTTP and HTTPS/SSL configuration](/admin/http_https_configuration#sourcegraph-via-docker-compose-caddy-2)
-[Site Administration Quickstart](/admin/how-to/site-admin-quickstart)
diff --git a/docs/versioned/5.2/admin/deploy/docker-compose/azure.mdx b/docs/versioned/5.2/admin/deploy/docker-compose/azure.mdx
deleted file mode 100644
index b8063ad04..000000000
--- a/docs/versioned/5.2/admin/deploy/docker-compose/azure.mdx
+++ /dev/null
@@ -1,193 +0,0 @@
-# Install Sourcegraph on Azure
-
-> ⚠️ We recommend new users use our [machine image](/admin/deploy/machine-images/index) or [script-install](/admin/deploy/single-node/script) instructions, which are easier and offer more flexibility when configuring Sourcegraph. Existing customers can reach out to our Customer Engineering team support@sourcegraph.com if they wish to migrate to these deployment models.
-
-This guide will take you through how to set up a Sourcegraph instance on an Azure virtual machine with [Docker Compose](https://docs.docker.com/compose/).
-
-
-
-## Configure
-
-In the [Azure Quickstart Center](https://portal.azure.com/?quickstart=true#view/Microsoft_Azure_Resources/QuickstartCenterBlade), click `Deploy a virtual machine` to `Create a virtual machine`, then configure the instance following the instructions below for each section:
-
-#### Basics
-
-* `Virtual machine name:` Give your virtual machine a name
-* `Availability options:` No infrastructure redundancy required
-* `Image:` Ubuntu Server 18.04 LTS - Gen2
-* `VM architecture:` x64
-* `Size:` Select an appropriate instance type using our [resource estimator](https://docs.sourcegraph.com/admin/deploy/resource_estimator) as reference
-* `Authentication type:` Select one that works best for you. SSH Key is recommended.
-* `Inbound port rules:` Allowed selected ports
-* `Select inbound ports:` HTTP (80), HTTPS (443), SSH (22)
-
-#### Disks
-
-* `OS disk type:` SSD is required --Premium SSD (Recommended) or Standard SSD
-* `Delete with VM:` Unchecked
-
-#### Disks > Data disks
-
-Click `Create and attach a new disk` to create **two** disks:
-
-* **Disk 1** - storage for root
- - `Source type:` None (empty disk)
- - `Size:` 50GB
- - `Performance tier:` 5000 IOS (Recommended)
- - `Enable shared disk:` No
- - `Delete disk with VM:` Checked
- - `Host caching:` Read/write
- - `LUN:` 0
-* **Disk 2** - storage for the Sourcegraph instance
- - `Source type:` None (empty disk)
- - `Size:` Minimum 250GB
- * Sourcegraph needs at least as much space as all your repositories combined take up
- * Allocating as much disk space as you can upfront minimize the need for [expanding your volume](https://docs.microsoft.com/en-us/azure/virtual-machines/linux/expand-disks) in the future
- - `Performance tier:` 5000 IOS (Recommended)
- - `Enable shared disk:` No
- - `Delete disk with VM:` Unchecked
- - `Host caching:` Read/write
- - `LUN:` 1
-
-> NOTE: Typically, the device name for the `LUN: 0` disk is `dev/sda` while the device name for the `LUN: 1` disk is `dev/sdb` --this is important to note as our startup script mounts the disks based on device names (`PERSISTENT_DISK_DEVICE_NAME`).
-
-#### Networking
-
-* `Inbound port rules:` Allowed selected ports
-* `Select inbound ports:` HTTP (80), HTTPS (443), SSH (22)
-
-> NOTE: If possible, replace the IP address ranges specified with the IPs from which you actually want to allow access.
-
-#### Management
-
-* RECOMMENDED Endable backup
-
-#### Advanced
-
-* Enable `user data`
-* In the **Custom data** and **User Data** text boxes, copy and paste the [startup script](#startup-script) from below
-
-##### Startup script
-
-```bash
-#!/usr/bin/env bash
-set -euxo pipefail
-###############################################################################
-# ACTION REQUIRED: REPLACE THE URL AND REVISION WITH YOUR DEPLOYMENT REPO INFO
-###############################################################################
-# Please read the notes below the script if you are cloning a private repository
-DEPLOY_SOURCEGRAPH_DOCKER_FORK_CLONE_URL='https://github.com/sourcegraph/deploy-sourcegraph-docker.git'
-DEPLOY_SOURCEGRAPH_DOCKER_FORK_REVISION='v5.3.0'
-##################### NO CHANGES REQUIRED BELOW THIS LINE #####################
-DEPLOY_SOURCEGRAPH_DOCKER_CHECKOUT='/root/deploy-sourcegraph-docker'
-DOCKER_COMPOSE_VERSION='1.29.2'
-DOCKER_DAEMON_CONFIG_FILE='/etc/docker/daemon.json'
-DOCKER_DATA_ROOT='/mnt/docker-data'
-PERSISTENT_DISK_DEVICE_NAME='/dev/sdb'
-PERSISTENT_DISK_LABEL='sourcegraph'
-# Install git
-sudo apt-get update -y
-sudo apt-get install -y git
-# Clone the deployment repository
-git clone "${DEPLOY_SOURCEGRAPH_DOCKER_FORK_CLONE_URL}" "${DEPLOY_SOURCEGRAPH_DOCKER_CHECKOUT}"
-cd "${DEPLOY_SOURCEGRAPH_DOCKER_CHECKOUT}"
-git checkout "${DEPLOY_SOURCEGRAPH_DOCKER_FORK_REVISION}"
-# Format (if unformatted) and then mount the attached volume
-device_fs=$(sudo lsblk "${PERSISTENT_DISK_DEVICE_NAME}" --noheadings --output fsType)
-if [ "${device_fs}" == "" ]
-then
- sudo mkfs.ext4 -m 0 -E lazy_itable_init=0,lazy_journal_init=0,discard "${PERSISTENT_DISK_DEVICE_NAME}"
-fi
-sudo e2label "${PERSISTENT_DISK_DEVICE_NAME}" "${PERSISTENT_DISK_LABEL}"
-sudo mkdir -p "${DOCKER_DATA_ROOT}"
-sudo mount -o discard,defaults "${PERSISTENT_DISK_DEVICE_NAME}" "${DOCKER_DATA_ROOT}"
-# Mount file system by label on reboot
-sudo echo "LABEL=${PERSISTENT_DISK_LABEL} ${DOCKER_DATA_ROOT} ext4 discard,defaults,nofail 0 2" | sudo tee -a /etc/fstab
-sudo umount "${DOCKER_DATA_ROOT}"
-sudo mount -a
-# Install, configure, and enable Docker
-curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
-sudo apt-get update -y
-sudo apt-get install -y software-properties-common
-sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
-sudo apt-get update -y
-apt-cache policy docker-ce
-apt-get install -y docker-ce docker-ce-cli containerd.io
-## Enable Docker at startup
-sudo systemctl enable --now docker
-## Install jq for scripting
-sudo apt-get update -y
-sudo apt-get install -y jq
-## Initialize the config file with empty json if it doesn't exist
-if [ ! -f "${DOCKER_DAEMON_CONFIG_FILE}" ]
-then
- mkdir -p $(dirname "${DOCKER_DAEMON_CONFIG_FILE}")
- echo '{}' >"${DOCKER_DAEMON_CONFIG_FILE}"
-fi
-## Point Docker storage to mounted volume
-tmp_config=$(mktemp)
-trap "rm -f ${tmp_config}" EXIT
-sudo cat "${DOCKER_DAEMON_CONFIG_FILE}" | sudo jq --arg DATA_ROOT "${DOCKER_DATA_ROOT}" '.["data-root"]=$DATA_ROOT' >"${tmp_config}"
-sudo cat "${tmp_config}" >"${DOCKER_DAEMON_CONFIG_FILE}"
-## Restart Docker daemon to pick up new changes
-sudo systemctl restart --now docker
-# Install Docker Compose
-curl -L "https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
-chmod +x /usr/local/bin/docker-compose
-curl -L "https://raw.githubusercontent.com/docker/compose/${DOCKER_COMPOSE_VERSION}/contrib/completion/bash/docker-compose" -o /etc/bash_completion.d/docker-compose
-# Start Sourcegraph with Docker Compose
-cd "${DEPLOY_SOURCEGRAPH_DOCKER_CHECKOUT}"/docker-compose
-docker-compose up -d --remove-orphans
-```
-
-> NOTE: If you're deploying a production instance, we recommend [forking the deployment configuration repository](/admin/deploy/docker-compose/#step-1-fork-the-deployment-repository) to track any customizations you make to the deployment config. If you do so, you'll want to update the *startup script* you pasted from above to refer to the clone URL and revision of your fork:
->
-> - `DEPLOY_SOURCEGRAPH_DOCKER_FORK_CLONE_URL`: The Git clone URL of your deployment repository. If it is a private repository, please check with your code host on how to generate a URL for cloning private repository
-> - `DEPLOY_SOURCEGRAPH_DOCKER_FORK_REVISION`: The revision (branch) in your fork containing the customizations, typically "release"
-
----
-
-## Deploy
-
-1. Click **Review + create** to create the instance
- - Please review the configurations and make sure the validation has passed before creating the instance
-
-
-2. Navigate to the `public IP address` assigned to your instance to visit your newly created instance
- - Look for the `Public IP address` in your Virtual Machine dashboard under *Networking* in the *Properties* tab
-
->NOTE: It may take a few minutes for the instance to finish initializing before Sourcegraph becomes accessible.
-
-You can monitor the setup process by SSHing into the instance to run the following diagnostic commands:
-
-```bash
-# Follow the status of the startup script
-tail -c +0 -f /var/log/syslog | grep cloud-init
-# Once installation is completed, check the health of the "sourcegraph-frontend" container
-docker ps --filter="name=sourcegraph-frontend-0"
-```
-
-> NOTE: If you have configured a DNS entry for the IP, please ensure to update `externalURL` in your Sourcegraph instance's Site Configuration to reflect that
-
----
-
-## Upgrade
-
-See the [Docker Compose upgrade docs](/admin/deploy/docker-compose/upgrade).
-
----
-
-## Storage and Backups
-
-Data is persisted within a [Docker volume](https://docs.docker.com/storage/volumes/) as defined in the [deployment repository](https://github.com/sourcegraph/deploy-sourcegraph-docker/blob/master/docker-compose/docker-compose.yaml). The startup script configures Docker using a [daemon configuration file](https://docs.docker.com/engine/reference/commandline/dockerd/#daemon-configuration-file) to store all the data on the attached data volume, which is mounted at `/mnt/docker-data`, where volumes are stored within `/mnt/docker-data/volumes`.
-
-The most straightforward method to [backup the data](https://docs.microsoft.com/en-us/azure/virtual-machines/backup-and-disaster-recovery-for-azure-iaas-disks) is to [enable incremental snapshot](https://docs.microsoft.com/en-us/azure/virtual-machines/disks-incremental-snapshots?tabs=azure-cli)
-
-RECOMMENDED Using an external Postgres service such as [Azure Database for PostgreSQL](https://learn.microsoft.com/en-us/azure/postgresql/) takes care of backing up all the user data for you. If the Sourcegraph instance ever dies or gets destroyed, creating a fresh new instance connected to the old external Postgres service will get Sourcegraph back to its previous state.
-
----
-
-## Other resources
-
-[HTTP and HTTPS/SSL configuration](/admin/http_https_configuration#sourcegraph-via-docker-compose-caddy-2)
-[Site Administration Quickstart](/admin/how-to/site-admin-quickstart)
diff --git a/docs/versioned/5.2/admin/deploy/docker-compose/configuration.mdx b/docs/versioned/5.2/admin/deploy/docker-compose/configuration.mdx
deleted file mode 100644
index 0972e1098..000000000
--- a/docs/versioned/5.2/admin/deploy/docker-compose/configuration.mdx
+++ /dev/null
@@ -1,236 +0,0 @@
-# Configuration
-
-> ⚠️ We recommend new users use our [machine image](/admin/) or [script-install](/admin/deploy/single-node/script) instructions, which are easier and offer more flexibility when configuring Sourcegraph. Existing customers can reach out to our Customer Engineering team support@sourcegraph.com if they wish to migrate to these deployment models.
-
-You can find the default [docker-compose.yaml](https://github.com/sourcegraph/deploy-sourcegraph-docker/blob/master/docker-compose/docker-compose.yaml) file inside the deployment repository.
-
-If you would like to make changes to the default configurations, we highly recommend you to create a new file called `docker-compose.override.yaml` in the same directory where the base file ([docker-compose.yaml](https://github.com/sourcegraph/deploy-sourcegraph-docker/blob/master/docker-compose/docker-compose.yaml)) is located, and make your customizations inside the `docker-compose.override.yaml` file.
-
->WARNING: For configuration of Sourcegraph, see Sourcegraph's [configuration](/admin/config/) docs.
-
-## What is an override file?
-
-Docker Compose allows you to customize configuration settings using an override file called `docker-compose.override.yaml`, which allows customizations to persist through upgrades without needing to manage merge conflicts as changes are not made directly to the base `docker-compose.yaml` file.
-
-When you run the `docker-compose up` command, the override file will be automatically merged over the base [docker-compose.yaml](https://github.com/sourcegraph/deploy-sourcegraph-docker/blob/master/docker-compose/docker-compose.yaml) file.
-
-The [official Docker Compose docs](https://docs.docker.com/compose/extends/) provide details about override files.
-
-## Examples
-
-In order to make changes to the configuration settings defined in the base file [docker-compose.yaml](https://github.com/sourcegraph/deploy-sourcegraph-docker/blob/master/docker-compose/docker-compose.yaml), create an empty `docker-compose.override.yaml` file in the same directory as the [docker-compose.yaml](https://github.com/sourcegraph/deploy-sourcegraph-docker/blob/master/docker-compose/docker-compose.yaml) file, using the same version number, and then add the customizations under the `services` field.
-
-### Adjust resources
-
-Note that you will only need to list the fragments that you would like to change from the base file.
-
-```yaml
-# docker-compose.override.yaml
-version: '2.4'
-services:
- gitserver-0:
- cpus: 8
- mem_limit: '26g'
-```
-
-### Add replica endpoints
-
-When adding a new replica for `gitserver`, `searcher`, `symbols`, and `indexed-search`, you must list the endpoints for each replica individually in order for frontend to communicate with them.
-
-To do that, add or modify the environment variables to all of the sourcegraph-frontend-* services and the sourcegraph-frontend-internal service in the [Docker Compose YAML file](https://github.com/sourcegraph/deploy-sourcegraph-docker/blob/master/docker-compose/docker-compose.yaml).
-
-#### version older than 4.5.0
-
-The following configuration in a docker-compose.override.yaml file shows how to list the endpoints for each replica service individually when the replica count for gitserver, searcher, symbols, and indexed-search has been increased to 2. This is done by using the environment variables specified for each service:
-
-```yaml
-# docker-compose.override.yaml
-version: '2.4'
-services:
- sourcegraph-frontend-0:
- environment:
- # List all replica endpoints for gitserver
- - 'SRC_GIT_SERVERS=gitserver-0:3178 gitserver-1:3178'
- # List all replica endpoints for indexed-search/zoekt-webserver
- - 'INDEXED_SEARCH_SERVERS=zoekt-webserver-0:6070 zoekt-webserver-1:6070'
- # List all replica endpoints for searcher
- - 'SEARCHER_URL=http://searcher-0:3181 http://searcher-1:3181'
- # List all replica endpoints for symbols
- - 'SYMBOLS_URL=http://symbols-0:3184 http://symbols-1:3184'
-```
-
-The above configuration uses the environment variables SRC_GIT_SERVERS, INDEXED_SEARCH_SERVERS, SEARCHER_URL, and SYMBOLS_URL to specify the individual endpoints for each replica service. This is done by listing the hostname and port number for each replica, separated by a space.
-
-#### version 4.5.0 or above
-
-In version 4.5.0 or above of Sourcegraph, it is possible to update the environment variables in the docker-compose.override.yaml file to automatically generate the endpoints based on the number of replicas provided. This eliminates the need to list each replica endpoint individually as in the previous example.
-
-```yaml
-# docker-compose.override.yaml
-version: '2.4'
-services:
- sourcegraph-frontend-0:
- environment:
- # To generate replica endpoints for gitserver
- - 'SRC_GIT_SERVERS=2'
- # To generate replica endpoints for indexed-search/zoekt-webserver
- - 'INDEXED_SEARCH_SERVERS=2'
- # To generate replica endpoints for searcher
- - 'SEARCHER_URL=1'
- # To generate replica endpoints for symbols
- - 'SYMBOLS_URL=1'
-```
-
-In the above example, the value of the environment variables `SRC_GIT_SERVERS`, `INDEXED_SEARCH_SERVERS`, `SEARCHER_URL`, and `SYMBOLS_URL` are set to the number of replicas for each respective service. This allows Sourcegraph to automatically generate the endpoints for each replica, eliminating the need to list them individually. This can be a useful feature when working with large numbers of replicas.
-
-### Create multiple gitserver shards
-
-Split gitserver across multiple shards:
-
-```yaml
-# docker-compose.override.yaml
-version: '2.4'
-services:
-# Adjust resources for gitserver-0
-# And then create an anchor to share with the replica
- gitserver-0: &gitserver
- cpus: 8
- mem_limit: '26g'
-# Create a new service called gitserver-1,
-# which is an extension of gitserver-0
- gitserver-1:
- # Extend the original gitserver-0 to get the image values etc
- extends:
- file: docker-compose.yaml
- service: gitserver-0
- # Use the new resources values from gitserver-0 above
- <<: *gitserver
- # Since this is an extension of the original gitserver-0,
- # we will have to rename the container name to gitserver-1
- container_name: gitserver-1
- # Assign it to a new volume which we will create below in the volumes section
- volumes:
- - 'gitserver-1:/data/repos'
- # Assign a new host name so it doesn't use the gitserver-0 one
- hostname: gitserver-1
-# Add the new replica to other related services as environment
- sourcegraph-frontend-0: &frontend
- cpus: 6
- mem_limit: '6g'
- # Set the following environment variables to generate the replica endpoints
- environment: &env_gitserver
- - 'SRC_GIT_SERVERS=2'
- # IMPORTANT: For version below 4.3.1, you must list the endpoints individually
- # - &env_gitserver 'SRC_GIT_SERVERS=gitserver-0:3178 gitserver-1:3178'
-# Use the same override values as sourcegraph-frontend-0 above
- sourcegraph-frontend-internal:
- <<: *frontend
-# Add the updated environment for gitserver from frontend to worker using anchor
- worker:
- environment:
- - *env_gitserver
-# Add a new volume assigned to the new gitserver replica
-volumes:
- gitserver-1:
-```
-
-### Disable a service
-
-You can "disable services" by assigning them to one or more [profiles](https://docs.docker.com/compose/profiles/), so that when running the `docker compose up` command, services assigned to profiles will not be started unless explicitly specified in the command (e.g., `docker compose --profile disabled up`).
-
-For example, when you need to disable the internal codeintel-db in order to use an external database, you can assign `codeintel-db` to a profile called `disabled`:
-
-```yaml
-# docker-compose.override.yaml
-version: '2.4'
-services:
- codeintel-db:
- profiles:
- - disabled
-```
-
-### Enable tracing
-
-Tracing should be enabled in the `docker-compose.yaml` file by default.
-
-If not, you can enable it by setting the environment variable to `SAMPLING_STRATEGIES_FILE=/etc/jaeger/sampling_strategies.json` in the `jaeger` container:
-
-```yaml
-# docker-compose.override.yaml
-version: '2.4'
-services:
- jaeger:
- environment:
- - 'SAMPLING_STRATEGIES_FILE=/etc/jaeger/sampling_strategies.json'
-```
-
-### Enabling Embeddings service
-
-The Embeddings service handles searching embeddings for Cody context. It can be enabled using the [override file](https://sourcegraph.com/github.com/sourcegraph/deploy-sourcegraph-docker/-/blob/docker-compose/embeddings/embeddings.docker-compose.yaml)
-
-#### Configuring the Embeddings service
-By default the Embeddings service uses the `blobstore` service for storing embeddings indexes.
-To configure an external [object store](/cody/core-concepts/embeddings/manage-embeddings#store-embedding-indexes) the override file can modified by setting environment variables. These variables **must** be set on both the `worker` and `embeddings` services.
-
-### Git configuration
-
-#### Git SSH configuration
-
-Provide your `gitserver` instance with your SSH / Git configuration (e.g. `.ssh/config`, `.ssh/id_rsa`, `.ssh/id_rsa.pub`, and `.ssh/known_hosts`. You can also provide other files like `.netrc`, `.gitconfig`, etc. if needed) by mounting a directory that contains this configuration into the `gitserver` container.
-
-For example, in the `gitserver-0` container configuration in your `docker-compose.yaml` file or `docker-compose.override.yaml`, add the volume listed in the following example, while replacing `~/path/on/host/` with the path on the host machine to the `.ssh` directory:
-
-```yaml
-# docker-compose.override.yaml
-version: '2.4'
-services:
- gitserver-0:
- volumes:
- - 'gitserver-0:/data/repos'
- - '~/path/on/host/.ssh:/home/sourcegraph/.ssh'
-```
-
-> WARNING: The permissions on your SSH / Git configuration must be set to be readable by the user in the `gitserver` container. For example, run `chmod -v -R 600 ~/path/to/.ssh` in the folder on the host machine.
-
-#### Git HTTP(S) authentication
-
-The easiest way to specify HTTP(S) authentication for repositories is to include the username and password in the clone URL itself, such as `https://user:password@example.com/my/repo`. These credentials won't be displayed to non-admin users.
-
-Otherwise, follow the previous steps for mounting SSH configuration to mount a host directory containing the desired `.netrc` file to `/home/sourcegraph/` in the `gitserver` container.
-
-### Expose debug port
-
-To [generate pprof profiling data](/admin/pprof), you must configure your deployment to expose port 6060 on one of your frontend containers, for example:
-
-```yaml
-# docker-compose.override.yaml
-version: '2.4'
-services:
- sourcegraph-frontend-0:
- ports:
- - '0.0.0.0:6060:6060'
-```
-
-For specific ports that can be exposed, see the [debug ports section](/admin/pprof#debug-ports) of Sourcegraphs's [generate pprof profiling data](/admin/pprof) docs.
-
-### Set environment variables
-
-Add/modify the environment variables to all of the sourcegraph-frontend-* services and the sourcegraph-frontend-internal service in the [Docker Compose YAML file](https://github.com/sourcegraph/deploy-sourcegraph-docker/blob/master/docker-compose/docker-compose.yaml):
-
-```yaml
-# docker-compose.override.yaml
-version: '2.4'
-services:
- sourcegraph-frontend-0:
- environment:
- - (YOUR CODE)
-```
-
-See ["Environment variables in Compose"](https://docs.docker.com/compose/environment-variables/) for other ways to pass these environment variables to the relevant services (including from the command line, a .env file, etc.).
-
-
-### Use an external database
-
-The Docker Compose configuration has its own internal PostgreSQL and Redis databases.
-
-You can alternatively configure Sourcegraph to [use external services](/admin/external_services/).
diff --git a/docs/versioned/5.2/admin/deploy/docker-compose/digitalocean.mdx b/docs/versioned/5.2/admin/deploy/docker-compose/digitalocean.mdx
deleted file mode 100644
index 5b2aa5a32..000000000
--- a/docs/versioned/5.2/admin/deploy/docker-compose/digitalocean.mdx
+++ /dev/null
@@ -1,177 +0,0 @@
-# Install Sourcegraph on DigitalOcean
-
-> ⚠️ We recommend new users use our [machine image](/admin/deploy/machine-images/) or [script-install](/admin/deploy/single-node/script) instructions, which are easier and offer more flexibility when configuring Sourcegraph. Existing customers can reach out to our Customer Engineering team support@sourcegraph.com if they wish to migrate to these deployment models.
-
----
-
-This guide will take you through how to deploy a Sourcegraph instance to a single DigitalOcean Droplet with [Docker Compose](https://docs.docker.com/compose/).
-
-## Configure
-
-[Create a new DigitalOcean Droplet](https://cloud.digitalocean.com/droplets/new) first, then configure the droplet following the instructions below for each section:
-
-#### Choose an image
-
-1. Select **Ubuntu 18.04** under *Distributions*
-
-
-
-#### Choose a plan
-
-1. Select an appropriate droplet size using our [resource estimator](https://docs.sourcegraph.com/admin/deploy/resource_estimator) as reference
-
-#### Add block storage
-
-1. Click on **Add Volume** to add a new block storage
-
-2. Select size for the block storage --Minimum 250GB
- * Sourcegraph needs at least as much space as all your repositories combined take up
- * Allocating as much disk space as you can upfront minimize the need for switching to a droplet with a larger root disk later on
-
-3. Under **Choose configuration options**, select "Manually Format and Mount"
-
-
-
-#### Authentication
-
-1. RECOMMENDED Select **SSH keys** to create a **New SSH Key** for convenient access to the droplet
-
-
-
-#### Authentication > Enable backups
-
-1. RECOMMENDED Select **Enable backups** checkbox under *Select additional options* to enable weekly backups of all your data
-
-#### Authentication > User data
-
-1. Copy and paste the *Startup script* below into the **User data** text box:
-
-##### Startup script
-
-```bash
-#!/usr/bin/env bash
-set -euxo pipefail
-###############################################################################
-# ACTION REQUIRED: REPLACE THE URL AND REVISION WITH YOUR DEPLOYMENT REPO INFO
-###############################################################################
-# Please read the notes below the script if you are cloning a private repository
-DEPLOY_SOURCEGRAPH_DOCKER_FORK_CLONE_URL='https://github.com/sourcegraph/deploy-sourcegraph-docker.git'
-DEPLOY_SOURCEGRAPH_DOCKER_FORK_REVISION='v5.3.0'
-##################### NO CHANGES REQUIRED BELOW THIS LINE #####################
-DEPLOY_SOURCEGRAPH_DOCKER_CHECKOUT='/root/deploy-sourcegraph-docker'
-DOCKER_DATA_ROOT='/mnt/docker-data'
-DOCKER_COMPOSE_VERSION='1.29.2'
-DOCKER_DAEMON_CONFIG_FILE='/etc/docker/daemon.json'
-PERSISTENT_DISK_DEVICE_NAME='/dev/sda'
-# Install git
-sudo apt-get update -y
-sudo apt-get install -y git
-# Clone the deployment repository
-git clone "${DEPLOY_SOURCEGRAPH_DOCKER_FORK_CLONE_URL}" "${DEPLOY_SOURCEGRAPH_DOCKER_CHECKOUT}"
-cd "${DEPLOY_SOURCEGRAPH_DOCKER_CHECKOUT}"
-git checkout "${DEPLOY_SOURCEGRAPH_DOCKER_FORK_REVISION}"
-# Format (if unformatted) and then mount the attached volume
-device_fs=$(sudo lsblk "${PERSISTENT_DISK_DEVICE_NAME}" --noheadings --output fsType)
-if [ "${device_fs}" == "" ]
-then
- sudo mkfs.ext4 -m 0 -E lazy_itable_init=0,lazy_journal_init=0,discard "${PERSISTENT_DISK_DEVICE_NAME}"
-fi
-sudo mkdir -p "${DOCKER_DATA_ROOT}"
-sudo mount -o discard,defaults "${PERSISTENT_DISK_DEVICE_NAME}" "${DOCKER_DATA_ROOT}"
-# Mount file system by UUID on reboot
-DISK_UUID=$(sudo blkid -s UUID -o value "${PERSISTENT_DISK_DEVICE_NAME}")
-sudo echo "UUID=${DISK_UUID} ${DOCKER_DATA_ROOT} ext4 discard,defaults,nofail 0 2" >> '/etc/fstab'
-sudo umount "${DOCKER_DATA_ROOT}"
-sudo mount -a
-# Install, configure, and enable Docker
-curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
-sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
-sudo apt-get update -y
-apt-cache policy docker-ce
-apt-get install -y docker-ce docker-ce-cli containerd.io
-## Enable Docker at startup
-sudo systemctl enable --now docker
-# Install jq for scripting
-sudo apt-get update -y
-sudo apt-get install -y jq
-## Initialize the config file with empty json if it doesn't exist
-if [ ! -f "${DOCKER_DAEMON_CONFIG_FILE}" ]
-then
- mkdir -p $(dirname "${DOCKER_DAEMON_CONFIG_FILE}")
- echo '{}' > "${DOCKER_DAEMON_CONFIG_FILE}"
-fi
-## Point Docker storage to mounted volume
-tmp_config=$(mktemp)
-trap "rm -f ${tmp_config}" EXIT
-sudo cat "${DOCKER_DAEMON_CONFIG_FILE}" | sudo jq --arg DATA_ROOT "${DOCKER_DATA_ROOT}" '.["data-root"]=$DATA_ROOT' > "${tmp_config}"
-sudo cat "${tmp_config}" > "${DOCKER_DAEMON_CONFIG_FILE}"
-## Restart Docker daemon to pick up new changes
-sudo systemctl restart --now docker
-# Install Docker Compose
-curl -L "https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
-chmod +x /usr/local/bin/docker-compose
-curl -L "https://raw.githubusercontent.com/docker/compose/${DOCKER_COMPOSE_VERSION}/contrib/completion/bash/docker-compose" -o /etc/bash_completion.d/docker-compose
-# Start Sourcegraph with Docker Compose
-cd "${DEPLOY_SOURCEGRAPH_DOCKER_CHECKOUT}"/docker-compose
-docker-compose up -d --remove-orphans
-```
-
-> NOTE: If you're deploying a production instance, we recommend [forking the deployment configuration repository](/admin/deploy/docker-compose/#step-1-fork-the-deployment-repository) to track any customizations you make to the deployment config. If you do so, you'll want to update the *startup script* you pasted from above to refer to the clone URL and revision of your fork:
->
-> - `DEPLOY_SOURCEGRAPH_DOCKER_FORK_CLONE_URL`: The Git clone URL of your deployment repository. If it is a private repository, please check with your code host on how to generate a URL for cloning private repository
-> - `DEPLOY_SOURCEGRAPH_DOCKER_FORK_REVISION`: The revision (branch) in your fork containing the customizations, typically "release"
-
----
-
-## Deploy
-
-1. Click **Create Droplet** to create your droplet with Sourcegraph installed
- - Please ensure the configurations align with the instructions above before creating the instance
-
-2. Navigate to the droplet's IP address to complete initializing Sourcegraph
-
->NOTE: It may take a few minutes for the instance to finish initializing before Sourcegraph becomes accessible.
-
-You can monitor the setup process by SSHing into the instance to run the following diagnostic commands:
-
-```bash
-# Follow the status of the startup script
-tail -f /var/log/cloud-init-output.log
-# Once installation is completed, check the health of the "sourcegraph-frontend" container
-docker ps --filter="name=sourcegraph-frontend-0"
-```
-
----
-
-## Next
-
-After the initial deployment has been completed, it is strongly recommended to set up the following:
-
-* Restrict the accessibility of ports other than `80` and `443` via [Cloud
- Firewalls](https://www.digitalocean.com/docs/networking/firewalls/quickstart/).
-* Set up [TLS/SSL](/admin/http_https_configuration#sourcegraph-via-docker-compose-caddy-2) in the Docker Compose deployment
-
-> NOTE: If you have configured a DNS entry for the IP, please ensure to update `externalURL` in your Sourcegraph instance's Site Configuration to reflect that
-
----
-
-## Upgrade
-
-Please refer to the [Docker Compose upgrade docs](/admin/deploy/docker-compose/upgrade) for detailed instructions on updating your Sourcegraph instance.
-
----
-
-## Storage and Backups
-
-Data is persisted within a [Docker volume](https://docs.docker.com/storage/volumes/) as defined in the [deployment repository](https://github.com/sourcegraph/deploy-sourcegraph-docker/blob/master/docker-compose/docker-compose.yaml). The startup script configures Docker using a [daemon configuration file](https://docs.docker.com/engine/reference/commandline/dockerd/#daemon-configuration-file) to store all the data on the attached data volume, which is mounted at `/mnt/docker-data`, where volumes are stored within `/mnt/docker-data/volumes`.
-
-The most straightforward method to backup this data is to [snapshot the entire `/mnt/docker-data` block storage volume on an automatic scheduled basis](https://www.digitalocean.com/docs/images/snapshots/).
-
-RECOMMENDED Using an external Postgres service such as [AWS RDS for PostgreSQL](https://aws.amazon.com/rds/) takes care of backing up all the user data for you. If the Sourcegraph instance ever dies or gets destroyed, creating a fresh new instance connected to the old external Postgres service will get Sourcegraph back to its previous state.
-
----
-
-## Other resources
-
-[HTTP and HTTPS/SSL configuration](/admin/http_https_configuration#sourcegraph-via-docker-compose-caddy-2)
-[Site Administration Quickstart](/admin/how-to/site-admin-quickstart)
diff --git a/docs/versioned/5.2/admin/deploy/docker-compose/google_cloud.mdx b/docs/versioned/5.2/admin/deploy/docker-compose/google_cloud.mdx
deleted file mode 100644
index 714fdae3c..000000000
--- a/docs/versioned/5.2/admin/deploy/docker-compose/google_cloud.mdx
+++ /dev/null
@@ -1,167 +0,0 @@
-# Install Sourcegraph on Google Cloud
-
-> ⚠️ We recommend new users use our [GCE machine image](/admin/deploy/machine-images/gce) or [script-install](/admin/deploy/single-node/script) instructions, which are easier and offer more flexibility when configuring Sourcegraph. Existing customers can reach out to our Customer Engineering team support@sourcegraph.com if they wish to migrate to these deployment models.
-
-This guide will take you through how to deploy Sourcegraph with [Docker Compose](https://docs.docker.com/compose/) to a single node running on Google Cloud.
-
-## Configure
-
-Click **Create Instance** in your [Google Cloud Compute Engine Console](https://console.cloud.google.com/compute/instances) to create a new VM instance, then configure the instance following the instructions below for each section:
-
-#### Machine configuration
-1. Select an appropriate machine type using our [resource estimator](https://docs.sourcegraph.com/admin/deploy/resource_estimator) as reference
-
-#### Boot disk
-1. Click **CHANGE** to update the boot disk:
- * `Operating System`: Ubuntu
- * `Version`: Ubuntu 18.04 LTS (x86/64, amd64 bionic image)
- * `Boot disk type`: SSD persistent disk
- * `Size (GB)`: Use default
-
-#### Firewall
-1. Check box to **Allow HTTP traffic**
-1. Check box to **Allow HTTPS traffic**
-
-#### Advanced options > Disks
-
-1. Expand the **Advanced options** section and the **Disks** section within to add an additional disk to store data from the Sourcegraph Docker instance.
-
-1. Click **+ ADD NEW DISK** to setup the new disk with the following settings:
- * `Name`: "sourcegraph-docker-disk" (or something similarly descriptive)
- * `Description`: "Disk for storing Docker data for Sourcegraph" (or something similarly descriptive)
- * `Disk source type`: Blank disk
- * `Disk type`: SSD persistent disk
- * `Size`: `250GB` minimum
- * Sourcegraph needs at least as much space as all your repositories combined take up
- * Allocating as much disk space as you can upfront minimize the need for [resizing this disk](https://cloud.google.com/compute/docs/disks/add-persistent-disk#resize_pd) later on
- * `(optional, recommended) Snapshot schedule`: The most straightfoward way of automatically backing Sourcegraph's data is to set up a [snapshot schedule](https://cloud.google.com/compute/docs/disks/scheduled-snapshots) for this disk. We strongly recommend that you take the time to do so here.
- * `Attachment settings - Mode`: Read/write
- * `Attachment settings - Deletion rule`: Keep disk
-
-#### Advanced options > Management
-
-1. Expand the **Advanced options** section and the **Management** section within
-
-2. Copy and paste the *Startup script* below into the **Automation** field
-
-##### Startup script
-
-```bash
-#!/usr/bin/env bash
-set -euxo pipefail
-###############################################################################
-# ACTION REQUIRED: REPLACE THE URL AND REVISION WITH YOUR DEPLOYMENT REPO INFO
-###############################################################################
-# Please read the notes below the script if you are cloning a private repository
-DEPLOY_SOURCEGRAPH_DOCKER_FORK_CLONE_URL='https://github.com/sourcegraph/deploy-sourcegraph-docker.git'
-DEPLOY_SOURCEGRAPH_DOCKER_FORK_REVISION='v5.3.0'
-##################### NO CHANGES REQUIRED BELOW THIS LINE #####################
-# IMPORTANT: DO NOT MAKE ANY CHANGES FROM THIS POINT ONWARD
-DEPLOY_SOURCEGRAPH_DOCKER_CHECKOUT='/root/deploy-sourcegraph-docker'
-DOCKER_COMPOSE_VERSION='1.29.2'
-DOCKER_DAEMON_CONFIG_FILE='/etc/docker/daemon.json'
-DOCKER_DATA_ROOT='/mnt/docker-data'
-PERSISTENT_DISK_DEVICE_NAME='/dev/sdb'
-PERSISTENT_DISK_LABEL='sourcegraph'
-# Install git
-sudo apt-get update -y
-sudo apt-get install -y git
-# Clone the deployment repository
-git clone "${DEPLOY_SOURCEGRAPH_DOCKER_FORK_CLONE_URL}" "${DEPLOY_SOURCEGRAPH_DOCKER_CHECKOUT}"
-cd "${DEPLOY_SOURCEGRAPH_DOCKER_CHECKOUT}"
-git checkout "${DEPLOY_SOURCEGRAPH_DOCKER_FORK_REVISION}"
-# Format (if unformatted) and then mount the attached volume
-device_fs=$(sudo lsblk "${PERSISTENT_DISK_DEVICE_NAME}" --noheadings --output fsType)
-if [ "${device_fs}" == "" ] ## only format the volume if it isn't already formatted
-then
- sudo mkfs.ext4 -m 0 -E lazy_itable_init=0,lazy_journal_init=0,discard "${PERSISTENT_DISK_DEVICE_NAME}"
-fi
-sudo e2label "${PERSISTENT_DISK_DEVICE_NAME}" "${PERSISTENT_DISK_LABEL}"
-sudo mkdir -p "${DOCKER_DATA_ROOT}"
-sudo mount -o discard,defaults "${PERSISTENT_DISK_DEVICE_NAME}" "${DOCKER_DATA_ROOT}"
-# Mount file system by label on reboot
-sudo echo "LABEL=${PERSISTENT_DISK_LABEL} ${DOCKER_DATA_ROOT} ext4 discard,defaults,nofail 0 2" | sudo tee -a /etc/fstab
-sudo umount "${DOCKER_DATA_ROOT}"
-sudo mount -a
-# Install, configure, and enable Docker
-curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
-sudo apt-get update -y
-sudo apt-get install -y software-properties-common
-sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
-sudo apt-get update -y
-apt-cache policy docker-ce
-apt-get install -y docker-ce docker-ce-cli containerd.io
-## Enable Docker at startup
-sudo systemctl enable --now docker
-## Install jq for scripting
-sudo apt-get update -y
-sudo apt-get install -y jq
-## Initialize the config file with empty json if it doesn't exist
-if [ ! -f "${DOCKER_DAEMON_CONFIG_FILE}" ]
-then
- mkdir -p $(dirname "${DOCKER_DAEMON_CONFIG_FILE}")
- echo '{}' >"${DOCKER_DAEMON_CONFIG_FILE}"
-fi
-## Point Docker storage to mounted volume
-tmp_config=$(mktemp)
-trap "rm -f ${tmp_config}" EXIT
-sudo cat "${DOCKER_DAEMON_CONFIG_FILE}" | sudo jq --arg DATA_ROOT "${DOCKER_DATA_ROOT}" '.["data-root"]=$DATA_ROOT' > "${tmp_config}"
-sudo cat "${tmp_config}" > "${DOCKER_DAEMON_CONFIG_FILE}"
-## Restart Docker daemon to pick up new changes
-sudo systemctl restart --now docker
-# Install Docker Compose
-curl -L "https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
-chmod +x /usr/local/bin/docker-compose
-curl -L "https://raw.githubusercontent.com/docker/compose/${DOCKER_COMPOSE_VERSION}/contrib/completion/bash/docker-compose" -o /etc/bash_completion.d/docker-compose
-# Start Sourcegraph with Docker Compose
-cd "${DEPLOY_SOURCEGRAPH_DOCKER_CHECKOUT}"/docker-compose
-docker-compose up -d --remove-orphans
-```
-
-> NOTE: If you're deploying a production instance, we recommend [forking the deployment configuration repository](/admin/deploy/docker-compose/#step-1-fork-the-deployment-repository) to track any customizations you make to the deployment config. If you do so, you'll want to update the *startup script* you pasted from above to refer to the clone URL and revision of your fork:
->
-> - `DEPLOY_SOURCEGRAPH_DOCKER_FORK_CLONE_URL`: The Git clone URL of your deployment repository. If it is a private repository, please check with your code host on how to generate a URL for cloning private repository
-> - `DEPLOY_SOURCEGRAPH_DOCKER_FORK_REVISION`: The revision (branch) in your fork containing the customizations, typically "release"
-
----
-
-## Deploy
-
-1. Click **CREATE** to create your VM with Sourcegraph installed
-2. Navigate to the public IP address assigned to your instance to visit your newly created Sourcegraph instance
-
-It may take a few minutes for the instance to finish initializing before Sourcegraph becomes accessible.
-
-You can monitor the setup process by SSHing into the instance to run the following diagnostic commands:
-
-```bash
-# Follow the status of the startup script
-tail -c +0 -f /var/log/syslog | grep startup-script
-# Once installation is completed, check the health of the "sourcegraph-frontend" container
-docker ps --filter="name=sourcegraph-frontend-0"
-```
-
-> NOTE: If you have configured a DNS entry for the IP, please ensure to update `externalURL` in your Sourcegraph instance's Site Configuration to reflect that
-
----
-
-## Upgrade
-
-Please refer to the [Docker Compose upgrade docs](/admin/deploy/docker-compose/upgrade) for detailed instructions on updating your Sourcegraph instance.
-
----
-
-## Storage and Backups
-
-Data is persisted within a [Docker volume](https://docs.docker.com/storage/volumes/) as defined in the [deployment repository](https://github.com/sourcegraph/deploy-sourcegraph-docker/blob/master/docker-compose/docker-compose.yaml). The startup script configures Docker using a [daemon configuration file](https://docs.docker.com/engine/reference/commandline/dockerd/#daemon-configuration-file) to store all the data on the attached data volume, which is mounted at `/mnt/docker-data`, where volumes are stored within `/mnt/docker-data/volumes`.
-
-The most straightforward method to backup the data is to [snapshot the entire `/mnt/docker-data` volume](https://cloud.google.com/compute/docs/disks/create-snapshots) automatically using a [snapshot schedule](https://cloud.google.com/compute/docs/disks/scheduled-snapshots). You can also [set up a snapshot snapshot schedule](https://cloud.google.com/compute/docs/disks/scheduled-snapshots) after your instance has been created.
-
-RECOMMENDED Using an external Postgres service such as [AWS RDS for PostgreSQL](https://aws.amazon.com/rds/) takes care of backing up all the user data for you. If the Sourcegraph instance ever dies or gets destroyed, creating a fresh new instance connected to the old external Postgres service will get Sourcegraph back to its previous state.
-
----
-
-## Other resources
-
-[HTTP and HTTPS/SSL configuration](/admin/http_https_configuration#sourcegraph-via-docker-compose-caddy-2)
-[Site Administration Quickstart](/admin/how-to/site-admin-quickstart)
diff --git a/docs/versioned/5.2/admin/deploy/docker-compose/index.mdx b/docs/versioned/5.2/admin/deploy/docker-compose/index.mdx
deleted file mode 100644
index 50a7d7232..000000000
--- a/docs/versioned/5.2/admin/deploy/docker-compose/index.mdx
+++ /dev/null
@@ -1,187 +0,0 @@
-# Sourcegraph with Docker Compose
-
-Setting up Docker applications with [multiple containers](https://www.docker.com/resources/what-container) like Sourcegraph using Docker Compose allows us to start all the applications with a single command. It also makes configuring the applications easier through updating the docker-compose.yaml and docker-compose.override.yaml files. Please see the [official Docker Compose docs](https://docs.docker.com/compose/) to learn more about Docker Compose.
-
-This guide will take you through how to install Sourcegraph with Docker Compose on a server, which could be the local machine, a server on a local network, or cloud-hosted server. You can also follow one of the available *cloud-specific guides* listed below to prepare and install Sourcegraph on a supported cloud environment:
-
-
-
-
-
-
-
-
-
-
-## Prerequisites
-
- - Install [Docker Compose](https://docs.docker.com/compose/) on the server
- - Minimum Docker [v20.10.0](https://docs.docker.com/engine/release-notes/#20100) and Docker Compose [v1.29.0](https://docs.docker.com/compose/release-notes/#1290)
- - Docker Swarm mode is **not** supported
- - Check the [resource estimator](https://docs.sourcegraph.com/admin/deploy/resource_estimator) for resource requirements
- - Obtain a [Sourcegraph license](https://about.sourcegraph.com/pricing/)
- - License is required for instances with **more than 10 users**
- - optional Configure ingress firewall rules to enable secure access to the server
-
->WARNING: Running Sourcegraph on Windows or `ARM`/`ARM64` images is not supported for production deployments.
-
----
-
-## Installation Steps
-
-A step by step guide to install Sourcegraph with Docker Compose.
-
-### Overview
-
- 1. [Fork the deployment repository] (recommended)(#step-1-fork-the-deployment-repository)
- 2. [Customize the instance](#step-2-configure-the-instance)
- 3. [Clone the release branch](#step-3-clone-the-release-branch)
- 4. [Build and start the Sourcegraph containers](#step-4-start-sourcegraph)
-
->NOTE: This guide is not limited to GitHub users. You can create a copy of the [deployment repository](https://github.com/sourcegraph/deploy-sourcegraph-docker/) in any code host.
-
-### Step 1: Fork the deployment repository
-
-[`sourcegraph/deploy-sourcegraph-docker`](https://github.com/sourcegraph/deploy-sourcegraph-docker/) is the deployment repository for Docker Compose---it contains everything you need to install and configure a Sourcegraph Docker Compose instance.
-
-We **strongly recommend** you to deploy Sourcegraph using your own fork (or private copy) of the deployment repository as this allows you to track customizations made to the [Sourcegraph docker-compose.yaml](https://github.com/sourcegraph/deploy-sourcegraph-docker/blob/master/docker-compose/docker-compose.yaml) easily. It also makes upgrading your instance easier in the future.
-
-> NOTE: When forking the repository, make sure the box labeled, "Copy the master branch only", is unchecked. Checking this box will prevent the repository tags from being copied and will result in an error in a later step.
-
-
-> WARNING: In GitHub, the forks of public repositories are also public. Create a private copy following the [official docs on duplicating a repository](https://docs.github.com/en/repositories/creating-and-managing-repositories/duplicating-a-repository) is strongly recommended if you plan to store secrets (SSL certificates, external Postgres credentials, etc.) within the repository. However, the preferable approach would be to use a Secrets Management Service.
-
-
-#### Create a public or private copy of the deployment repository
-
-Use the GitHub GUI to [create a public fork](https://docs.github.com/en/get-started/quickstart/fork-a-repo#forking-a-repository) of the [sourcegraph/deploy-sourcegraph-docker](https://github.com/sourcegraph/deploy-sourcegraph-docker/) deployment repository
-
-### Detailed instruction on creating a private copy
-
-##### Using a private copy of the deployment repository
-
-1\. Create an [empty private repository](https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-new-repository), for example `` in GitHub.
-
-2\. Bare clone the deployment repository.
-
-```bash
- git clone --bare https://github.com/sourcegraph/deploy-sourcegraph-docker/
-```
-
-3\. Navigate to the bare clone and mirror push it to your private repository.
-
-```bash
- cd deploy-sourcegraph-docker.git
- git push --mirror https://github.com/.git
-```
-
-4\. Remove your local bare clone.
-
-```bash
- cd ..
- rm -rf deploy-sourcegraph-docker.git
-```
-
-5\. Private repository clone URL
-
-If you are deploying using our start up scripts, please check with your code host on how to generate a URL for cloning private repository
-For example, GitHub users can include their personal access token to clone repositories they have access to using the following URL:
-
-```bash
-# Please make sure to discard the token after the deployment for security purpose
-https://@github.com//.git
-```
-
-#### Configure your deployment repository
-
-Continue with the following steps *after* you have created a public or private copy of the [deployment repository](https://github.com/sourcegraph/deploy-sourcegraph-docker/):
-
-1\. Clone the publicly forked (or privately cloned) repository to your local machine.
-
-```bash
- git clone https://github.com/.git
-```
-
-2\. Add the deployment repository maintained by Sourcegraph as the remote `upstream`.
-
- - This is to keep your clone synced with the upstream repository.
-
-```bash
- git remote add upstream https://github.com/sourcegraph/deploy-sourcegraph-docker
-```
-
-3\. Create a new branch called `release` off the latest version of Sourcegraph
-
- - This branch will be used to [upgrade Sourcegraph](/admin/deploy/docker-compose/upgrade) and install your Sourcegraph instance.
- - It also allows us to track all of the customizations made to your Sourcegraph instance.
-
-```bash
- # Specify the version you want to install
- export SOURCEGRAPH_VERSION="v5.3.0"
- # Check out the selected version for use, in a new branch called "release"
- git checkout $SOURCEGRAPH_VERSION -b release
-```
-
-### Step 2: Configure the Instance
-
-You can find the default [docker-compose.yaml](https://github.com/sourcegraph/deploy-sourcegraph-docker/blob/master/docker-compose/docker-compose.yaml) file inside the deployment repository.
-
-If you would like to make changes to the default configurations, we highly recommend you create a new file called `docker-compose.override.yaml` in the same directory where the default docker-compose.yaml file is located, and make your customizations inside the [docker-compose.override.yaml](configuration#what-is-an-override-file) file.
-
-- Here is a list of customizations you can make using an override file:
- - Add replicas
- - Adjust resources
- - Connect to an external database
- - Disable a service
- - Expose debug port
- - Git SSH configuration
- - Update or add new environment variables
- - Enable the Embeddings service
- - And more!
-
-Please make sure to commit any changes to your `release` branch.
-
-For detailed instructions on how to configure the instance using an override file, please refer to the [configuration docs](/admin/deploy/docker-compose/configuration).
-
-> NOTE: Using an override file to customize your Sourcegraph instance is highly recommended as it is the best way to prevent merge conflicts during upgrades.
-
-### Step 3: Clone the release branch
-
-Now that you have customized your instance and published the changes to your code host, you will need to clone the newly configured `release` branch onto the production server:
-
-```bash
- git clone --branch release https://github.com/.git
-```
-
-> NOTE: The `docker-compose.yaml` file currently depends on configuration files that live in the repository, so you must have the entire repository cloned onto your server.
-
-### Step 4: Start Sourcegraph
-
-On the production server, run the following command inside the [./docker-compose](https://github.com/sourcegraph/deploy-sourcegraph-docker/tree/master/docker-compose) directory to build and start Sourcegraph:
-
-```bash
- # Go to the docker-compose configuration directory
- cd docker-compose
- # Start Sourcegraph with Docker Compose
- docker-compose up
- # OR you can start Sourcegraph with Docker Compose in a detached mode
- docker-compose up -d
-```
-
-To check if the server is ready, the `sourcegraph-frontend-0` service must be displayed as healthy:
-
-```bash
- # Check the health status for sourcegraph-frontend-0
- docker ps --filter="name=sourcegraph-frontend-0"
-```
-
-Once the server is ready, navigate to the `sourcegraph-frontend-0` hostname or IP address on port `80`.
-
----
-
-## Additional Information
-
-- [Upgrade](/admin/deploy/docker-compose/upgrade)
-- [Management Operations](/admin/deploy/docker-compose/operations)
-- [HTTP and HTTPS/SSL configuration](/admin/http_https_configuration#sourcegraph-via-docker-compose-caddy-2)
-- [Site Administration Quickstart](/admin/how-to/site-admin-quickstart)
diff --git a/docs/versioned/5.2/admin/deploy/docker-compose/migrate.mdx b/docs/versioned/5.2/admin/deploy/docker-compose/migrate.mdx
deleted file mode 100644
index 46f0e5965..000000000
--- a/docs/versioned/5.2/admin/deploy/docker-compose/migrate.mdx
+++ /dev/null
@@ -1,229 +0,0 @@
-# Migrate from the single Docker image to Docker Compose
-
-> ⚠️ We recommend new users use our [machine image](/admin/deploy/machine-images/index) or [script-install](/admin/deploy/single-node/script) instructions, which are easier and offer more flexibility when configuring Sourcegraph. Existing customers can reach out to our Customer Engineering team support@sourcegraph.com if they wish to migrate to these deployment models.
-
-
-Since Sourcegraph 3.13, deploying via Docker Compose is the recommended method for production deployments as it provides resource isolation between Sourcegraph services which makes it more scalable and stable. This page describes how to migrate from a single Docker image deployment to the Docker Compose deployment method.
-
-Sourcegraph's core data (including user accounts, configuration, repository-metadata, etc.), can be migrated from the single Docker image (`sourcegraph/server`) to the Docker Compose deployment by dumping and restoring the Postgres database.
-
-## Notes before you begin
-
-### Version requirements
-
-* This migration can only be done with Sourcegraph v3.13.1+. If you are not currently on at least this version, please upgrade first.
-* Use the docker-compose version corresponding to your _current Sourcegraph version._ Do NOT attempt to upgrade at the same time as migrating to docker-compose.
-* For example, if the Sourcegraph instance `sourcegraph/server` image is version `v3.19.2` you must follow this guide using the Docker Compose deployment version `v3.19.2`. That means you must migrate to a new instance that is on _the same version you took the Database dump from._
-
-### Storage location change
-
-After migration, Sourcegraph's data will be stored in Docker volumes instead of `~/.sourcegraph/`. For more information, see the cloud-provider documentation referred to in ["Create the new Docker Compose instance"](#create-the-new-docker-compose-instance).
-
-### Only core data will be migrated
-
-The migration will bring over core data including user accounts, configuration, repository-metadata, etc. Other data will be regenerated automatically:
-
-* Repositories will be re-cloned
-* Search indexes will be rebuilt from scratch
-
-The above may take awhile if you have a lot of repositories. In the meantime, searches may be slow or return incomplete results. Usually this process will not take longer than 6 hours.
-
-### Monthly-usage based pricing
-
-If you are on a monthly-based usage pricing model, please check first with your Sourcegraph point of contact before continuing with these migration steps.
-
-## Migration guide
-
-If you wish to automate the migration process, a script has been provided in the [deploy-sourcegraph-docker repository](https://github.com/sourcegraph/deploy-sourcegraph-docker/blob/master/tools/migrate.sh) which will backup and migrate your single server database to a docker-compose deployment.
-
-To manually migrate use the steps outlined below.
-
-### Backup single Docker image database
-
-#### Find single Docker image's `CONTAINER_ID`
-
-* `ssh` from your local machine into the instance hosting the `sourcegraph/server` container
-* Run the following command to find the `sourcegraph/server`'s `CONTAINER_ID`:
-
-```bash
-> docker ps
-CONTAINER ID IMAGE
-... sourcegraph/server
-```
-
-#### Generate database dump
-
-* Dump Postgres database to `/tmp/db.out`
-
-```bash
-# Use the CONTAINER_ID found in the previous step
-docker exec -it "$CONTAINER_ID" sh -c 'pg_dump -C --clean --if-exists --username=postgres sourcegraph' > /tmp/sourcegraph_db.out
-
-docker exec -it "$CONTAINER_ID" sh -c 'pg_dump -C --clean --if-exists --username=postgres sourcegraph-codeintel' > /tmp/codeintel_db.out
-```
-
-* Copy Postgres dump from the `sourcegraph/server` container to the host machine
-
-```bash
-docker cp "$CONTAINER_ID":/tmp/*_db.out /tmp/
-```
-
-#### Copy database dump to your local machine
-
-* End your `ssh` session with the `sourcegraph/server` host machine
-
-* Copy the Postgres dump from the `sourcegraph/server` host to your local machine:
-
-```bash
-# Modify this command with your authentication information
-scp example_user@example_docker_host.com:/tmp/*.out
-```
-
-* Run `less "/tmp/sourcegraph_db.out"` and `less "/tmp/codeintel_db.out"` and verify that the database dump has contents that you expect (e.g. that some of your repository names appear)
-
-### Create the new Docker Compose instance
-
-Follow your cloud provider's installation guide to create the new Docker Compose instance:
-
-* [Deploy Sourcegraph with Docker Compose on AWS](/admin/deploy/docker-compose/aws)
-* [Deploy Sourcegraph with Docker Compose on Google Cloud](/admin/deploy/docker-compose/google_cloud)
-* [Deploy Sourcegraph with Docker Compose on DigitalOcean](/admin/deploy/docker-compose/digitalocean)
-
-Once you have finished the above, come back here for directions on how to copy over the database from your old `sourcegraph/server` instance.
-
-### Restore database backup to the Docker Compose instance
-
-#### Prepare the Postgres instance
-
-* `ssh` from your local machine into the new instance running the Docker Compose deployment
-
-* Navigate to the directory containing the Docker Compose definition:
-
-```bash
-# Refer to the script in your cloud provider's installation guide
-# to find the value for "DEPLOY_SOURCEGRAPH_DOCKER_CHECKOUT"
-
-cd "$DEPLOY_SOURCEGRAPH_DOCKER_CHECKOUT"/docker-compose
-```
-
-* Tear down the existing Docker Compose containers (and associated volumes) so that we avoid conflicting transactions while modifying the database
-
-```bash
- docker-compose down --volumes
-```
-
-* Start the Postgres instance on its own
-
-```bash
-docker-compose -f db-only-migrate.docker-compose.yaml up -d
-```
-
-* End your `ssh` session with the new Docker Compose deployment host
-
-#### Apply database dump to Postgres instance
-
-* Copy the Postgres dump from your local machine to the Docker Compose host:
-
-```bash
-# Modify this command with your authentication information
-scp *db.out example_user@example_docker_compose_host.com:/tmp/
-```
-
-* `ssh` from your local machine into the Docker Compose deployment host
-
-* Copy database dump from the Docker Compose host to the Postgres container
-
-```bash
-docker cp /tmp/sourcegraph_db.out pgsql:/tmp/
-docker cp /tmp/codeintel_db.out codeintel-db:/tmp/
-```
-
-* Create a shell session inside the pgsql container
-
-```bash
-docker exec -it pgsql /bin/sh
-```
-
-* Restore the database dump
-
-```bash
-psql --username=sg -f /tmp/sourcegraph_db.out postgres
-```
-
-* Open up a psql session inside the Postgres container
-
-```bash
-psql --username=sg postgres
-```
-
-* Apply the following tweaks to transform the single Docker image's database schema into Docker Compose's
-
-```postgres
-DROP DATABASE sg;
-ALTER DATABASE sourcegraph RENAME TO sg;
-ALTER DATABASE sg OWNER TO sg;
-```
-
-* End your `psql` session
-
-```bash
-\q
-```
-
-* End your Postgres container shell session
-
-```bash
-exit
-```
-
-* Create a shell session inside the codeintel-db container
-
-```bash
-docker exec -it codeintel-db /bin/sh
-```
-
-* Restore the database dump
-
-```bash
-psql --username=sg -f /tmp/codeintel_db.out postgres
-```
-
-* Open up a psql session inside the Postgres container
-
-```bash
-psql --username=sg postgres
-```
-
-* Apply the following tweaks to transform the single Docker image's database schema into Docker Compose's
-
-```postgres
-DROP DATABASE sg;
-ALTER DATABASE "sourcegraph-codeintel" RENAME TO sg;
-ALTER DATABASE sg OWNER TO sg;
-```
-
-* End your `psql` session
-
-```bash
-\q
-```
-
-* End your Postgres container shell session
-
-```bash
-exit
-```
-
-#### Start the rest of the Sourcegraph containers
-
-```bash
-docker-compose -f docker-compose.yaml up -d
-```
-
-## Conclusion
-
-The migration process is now complete.
-
-You should be able to log into your instance and verify that previous users and configuration are still present. Repositories may take awhile to clone and index, but their names should be immediately visible in the site admin repositories list. Wait for repositories to clone and verify the new Sourcegraph instance works as expected.
-
-After verifying the new instance is functional, you can tear down the old `sourcegraph/server` single Docker container Sourcegraph instance.
diff --git a/docs/versioned/5.2/admin/deploy/docker-compose/operations.mdx b/docs/versioned/5.2/admin/deploy/docker-compose/operations.mdx
deleted file mode 100644
index 8f20b296f..000000000
--- a/docs/versioned/5.2/admin/deploy/docker-compose/operations.mdx
+++ /dev/null
@@ -1,266 +0,0 @@
-
-# Management Operations
-
-> ⚠️ We recommend new users use our [machine image](/admin/deploy/machine-images/) or [script-install](/admin/deploy/single-node/script) instructions, which are easier and offer more flexibility when configuring Sourcegraph. Existing customers can reach out to our Customer Engineering team support@sourcegraph.com if they wish to migrate to these deployment models.
-
----
-
-The Sourcegraph Docker Compose yaml file uses [Docker volumes](https://docs.docker.com/storage/volumes/) to store its data. These volumes are stored at `/var/lib/docker/volumes` by [default on Linux](https://docs.docker.com/storage/#choose-the-right-type-of-mount).
-
-Guides for managing cloud storage and backups are available in our cloud-specific installation guides:
-
-- [Storage and backups for Amazon Web Services](/admin/deploy/docker-compose/aws#storage-and-backups)
-- [Storage and backups for Azure](/admin/deploy/docker-compose/aws#storage-and-backups)
-- [Storage and backups for Google Cloud](/admin/deploy/docker-compose/google_cloud#storage-and-backups)
-- [Storage and backups for Digital Ocean](/admin/deploy/docker-compose/digitalocean#storage-and-backups)
-
-## Access the database
-
-The following command allows a user to shell into the Sourcegraph database container and run `psql` to interact with the container's postgres database:
-
-```bash
-docker exec -it pgsql psql -U sg #access pgsql container and run psql
-docker exec -it codeintel-db psql -U sg #access codeintel-db container and run psql
-```
-## Database Migrations
-
-The `frontend` container in the `docker-compose.yaml` file will automatically run on startup and migrate the databases if any changes are required, however administrators may wish to migrate their databases before upgrading the rest of the system when working with large databases. Sourcegraph guarantees database backward compatibility to the most recent minor point release so the database can safely be upgraded before the application code.
-
-To execute the database migrations independently, follow the [docker-compose instructions on how to manually run database migrations](/admin/updates/migrator/migrator-operations#docker-compose). Running the `up` (default) command on the `migrator` of the *version you are upgrading to* will apply all migrations required by the next version of Sourcegraph.
-
-## Backup and restore
-
-The following instructions are specific to backing up and restoring the Sourcegraph databases in a Docker Compose deployment. These do not apply to other deployment types.
-
-> WARNING: **Only core data will be backed up**.
->
-> These instructions will only back up core data including user accounts, configuration, repository-metadata, etc. Other data will be regenerated automatically:
->
-> - Repositories will be re-cloned
-> - Search indexes will be rebuilt from scratch
->
-> The above may take a while if you have a lot of repositories. In the meantime, searches may be slow or return incomplete results. This process rarely takes longer than 6 hours and is usually **much** faster.
-
-### Back up Sourcegraph databases
-
-These instructions will back up the primary `sourcegraph` database and the [codeintel](/code_navigation/) database.
-
-1\. `ssh` from your local machine into the machine hosting the `sourcegraph` deployment
-
-2\. `cd` to the `deploy-sourcegraph-docker/docker-compose` directory on the host
-
-3\. Verify the deployment is running:
-
-```bash
-docker-compose ps
- Name Command State Ports
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-caddy caddy run --config /etc/ca ... Up 2019/tcp, 0.0.0.0:443->443/tcp, 0.0.0.0:80->80/tcp
-cadvisor /usr/bin/cadvisor -logtost ... Up (health: starting) 8080/tcp
-codeinsights-db docker-entrypoint.sh postgres Up 5432/tcp
-codeintel-db /postgres.sh Up (healthy) 5432/tcp
-gitserver-0 /sbin/tini -- /usr/local/b ... Up
-grafana /entry.sh Up 3000/tcp, 0.0.0.0:3370->3370/tcp
-jaeger /go/bin/all-in-one-linux - ... Up 0.0.0.0:14250->14250/tcp, 14268/tcp, 0.0.0.0:16686->16686/tcp, 5775/udp, 0.0.0.0:5778->5778/tcp,
- 0.0.0.0:6831->6831/tcp, 6831/udp, 0.0.0.0:6832->6832/tcp, 6832/udp
-blobstore /usr/bin/docker-entrypoint ... Up (healthy) 9000/tcp
-pgsql /postgres.sh Up (healthy) 5432/tcp
-precise-code-intel-worker /sbin/tini -- /usr/local/b ... Up (health: starting) 3188/tcp
-prometheus /bin/prom-wrapper Up 0.0.0.0:9090->9090/tcp
-query-runner /sbin/tini -- /usr/local/b ... Up
-redis-cache /sbin/tini -- redis-server ... Up 6379/tcp
-redis-store /sbin/tini -- redis-server ... Up 6379/tcp
-repo-updater /sbin/tini -- /usr/local/b ... Up
-searcher-0 /sbin/tini -- /usr/local/b ... Up (healthy)
-symbols-0 /sbin/tini -- /usr/local/b ... Up (healthy) 3184/tcp
-syntect-server sh -c /http-server-stabili ... Up (healthy) 9238/tcp
-worker /sbin/tini -- /usr/local/b ... Up 3189/tcp
-zoekt-indexserver-0 /sbin/tini -- zoekt-source ... Up
-zoekt-webserver-0 /sbin/tini -- /bin/sh -c z ... Up (healthy)
-```
-4\. Stop the deployment, and restart the databases service only to ensure there are no other connections during backup and restore.
-
-```bash
-docker-compose down
-docker-compose -f db-only-migrate.docker-compose.yaml up -d
-```
-
-5\. Generate the database dumps
-
-```bash
-docker exec pgsql sh -c 'pg_dump -C --clean --if-exists --username sg sg' > sourcegraph_db.out
-docker exec codeintel-db -c 'pg_dump -C --clean --if-exists --username sg sg' > codeintel_db.out
-```
-
-6\. Ensure the `sourcegraph_db.out` and `codeintel_db.out` files are moved to a safe and secure location.
-
-### Restore Sourcegraph databases into a new environment
-
-The following instructions apply **only if you are restoring your databases into a new deployment** of Sourcegraph ie: a new virtual machine. If you are restoring a previously running environment, see the instructions for [restoring a previously running deployment](#restoring-sourcegraph-databases-into-an-existing-environment)
-
-1\. Copy the database dump files into the `deploy-sourcegraph-docker/docker-compose` directory.
-
-2\. Start the database services
-
-```bash
-docker-compose -f db-only-migrate.docker-compose.yaml up -d
-```
-
-3\. Copy the database files into the containers
-
-```bash
-docker cp sourcegraph_db.out pgsql:/tmp/sourcegraph_db.out
-docker cp codeintel_db.out codeintel-db:/tmp/codeintel_db.out
-```
-
-4\. Restore the databases
-
-```bash
-docker exec pgsql sh -c 'psql -v ERROR_ON_STOP=1 --username sg -f /tmp/sourcegraph_db.out sg'
-docker exec codeintel-db sh -c 'psql -v ERROR_ON_STOP=1 --username sg -f /tmp/condeintel_db.out sg'
-```
-
-5\. Start the remaining Sourcegraph services
-
-```bash
-docker-compose up -d
-```
-
-6\. Verify the deployment has started
-
-```bash
-docker-compose ps
- Name Command State Ports
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-caddy caddy run --config /etc/ca ... Up 2019/tcp, 0.0.0.0:443->443/tcp, 0.0.0.0:80->80/tcp
-cadvisor /usr/bin/cadvisor -logtost ... Up (health: starting) 8080/tcp
-codeinsights-db docker-entrypoint.sh postgres Up 5432/tcp
-codeintel-db /postgres.sh Up (healthy) 5432/tcp
-gitserver-0 /sbin/tini -- /usr/local/b ... Up
-grafana /entry.sh Up 3000/tcp, 0.0.0.0:3370->3370/tcp
-jaeger /go/bin/all-in-one-linux - ... Up 0.0.0.0:14250->14250/tcp, 14268/tcp, 0.0.0.0:16686->16686/tcp, 5775/udp, 0.0.0.0:5778->5778/tcp,
- 0.0.0.0:6831->6831/tcp, 6831/udp, 0.0.0.0:6832->6832/tcp, 6832/udp
-blobstore /usr/bin/docker-entrypoint ... Up (healthy) 9000/tcp
-pgsql /postgres.sh Up (healthy) 5432/tcp
-precise-code-intel-worker /sbin/tini -- /usr/local/b ... Up (health: starting) 3188/tcp
-prometheus /bin/prom-wrapper Up 0.0.0.0:9090->9090/tcp
-query-runner /sbin/tini -- /usr/local/b ... Up
-redis-cache /sbin/tini -- redis-server ... Up 6379/tcp
-redis-store /sbin/tini -- redis-server ... Up 6379/tcp
-repo-updater /sbin/tini -- /usr/local/b ... Up
-searcher-0 /sbin/tini -- /usr/local/b ... Up (healthy)
-symbols-0 /sbin/tini -- /usr/local/b ... Up (healthy) 3184/tcp
-syntect-server sh -c /http-server-stabili ... Up (healthy) 9238/tcp
-worker /sbin/tini -- /usr/local/b ... Up 3189/tcp
-zoekt-indexserver-0 /sbin/tini -- zoekt-source ... Up
-zoekt-webserver-0 /sbin/tini -- /bin/sh -c z ... Up (healthy)> docker-compose ps
-```
-
-7\. Browse to your Sourcegraph deployment, login and verify your existing configuration has been restored
-
-### Restore Sourcegraph databases into an existing environment
-
-1\. `cd` to the `deploy-sourcegraph-docker/docker-compose` and stop the previous deployment and remove any existing volumes
-```bash
-docker-compose down
-docker volume rm docker-compose_pgsql
-docker volume rm docker-compose_codeintel-db
-```
-
-2\. Start the databases services only
-
-```bash
-docker-compose -f db-only-migrate.docker-compose.yaml up -d
-```
-
-3\. Copy the database files into the containers
-
-```bash
-docker cp sourcegraph_db.out pgsql:/tmp/sourcegraph_db.out
-docker cp codeintel_db.out codeintel-db:/tmp/codeintel_db.out
-```
-
-4\. Restore the databases
-
-```bash
-docker exec pgsql sh -c 'psql -v ERROR_ON_STOP=1 --username sg -f /tmp/sourcegraph_db.out sg'
-docker exec codeintel-db sh -c 'psql -v ERROR_ON_STOP=1 --username sg -f /tmp/condeintel_db.out sg'
-```
-
-5\. Start the remaining Sourcegraph services
-
-```bash
-docker-compose up -d
-```
-
-6\. Verify the deployment has started
-
-```bash
-docker-compose ps
- Name Command State Ports
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-caddy caddy run --config /etc/ca ... Up 2019/tcp, 0.0.0.0:443->443/tcp, 0.0.0.0:80->80/tcp
-cadvisor /usr/bin/cadvisor -logtost ... Up (health: starting) 8080/tcp
-codeinsights-db docker-entrypoint.sh postgres Up 5432/tcp
-codeintel-db /postgres.sh Up (healthy) 5432/tcp
-gitserver-0 /sbin/tini -- /usr/local/b ... Up
-grafana /entry.sh Up 3000/tcp, 0.0.0.0:3370->3370/tcp
-jaeger /go/bin/all-in-one-linux - ... Up 0.0.0.0:14250->14250/tcp, 14268/tcp, 0.0.0.0:16686->16686/tcp, 5775/udp, 0.0.0.0:5778->5778/tcp,
- 0.0.0.0:6831->6831/tcp, 6831/udp, 0.0.0.0:6832->6832/tcp, 6832/udp
-blobstore /usr/bin/docker-entrypoint ... Up (healthy) 9000/tcp
-pgsql /postgres.sh Up (healthy) 5432/tcp
-precise-code-intel-worker /sbin/tini -- /usr/local/b ... Up (health: starting) 3188/tcp
-prometheus /bin/prom-wrapper Up 0.0.0.0:9090->9090/tcp
-query-runner /sbin/tini -- /usr/local/b ... Up
-redis-cache /sbin/tini -- redis-server ... Up 6379/tcp
-redis-store /sbin/tini -- redis-server ... Up 6379/tcp
-repo-updater /sbin/tini -- /usr/local/b ... Up
-searcher-0 /sbin/tini -- /usr/local/b ... Up (healthy)
-symbols-0 /sbin/tini -- /usr/local/b ... Up (healthy) 3184/tcp
-syntect-server sh -c /http-server-stabili ... Up (healthy) 9238/tcp
-worker /sbin/tini -- /usr/local/b ... Up 3189/tcp
-zoekt-indexserver-0 /sbin/tini -- zoekt-source ... Up
-zoekt-webserver-0 /sbin/tini -- /bin/sh -c z ... Up (healthy)> docker-compose ps
-```
-
-7\. Browse to your Sourcegraph deployment, login and verify your existing configuration has been restored
-
-## Monitoring
-
-You can monitor the health of a deployment in several ways:
-
-- Using [Sourcegraph's built-in observability suite](/admin/observability/), which includes dashboards and alerting for Sourcegraph services.
-- Using [`docker ps`](https://docs.docker.com/engine/reference/commandline/ps/) to check on the status of containers within the deployment (any tooling designed to work with Docker containers and/or Docker Compose will work too).
- - This requires direct access to your instance's host machine.
-
-## OpenTelemetry Collector
-
-Learn more about Sourcegraph's integrations with the [OpenTelemetry Collector](https://opentelemetry.io/docs/collector/) in our [OpenTelemetry documentation](/admin/observability/opentelemetry).
-
-### Configure a tracing backend
-
-[Tracing](/admin/observability/tracing) export can be configured via the [OpenTelemetry collector](/admin/observability/opentelemetry) deployed by default in all Sourcegraph docker-compose deployments.
-To get started, edit the mounted configuration file in `otel-collector/config.yaml` based on the [OpenTelemetry collector configuration guidance](/admin/observability/opentelemetry) and edit your `docker-compose.yaml` file to have the `otel-collector` service use the mounted configuration:
-
-```yaml
-services:
- # ...
- otel-collector:
- # ...
- command: ['--config', '/etc/otel-collector/config.yaml']
- volumes:
- - '/admin/deploy/otel-collector/config.yaml:/etc/otel-collector/config.yaml'
-```
-
-#### Enable the bundled Jaeger deployment
-
-Alternatively, you can use the `jaeger` overlay to easily deploy Sourcegraph with some default configuration that exports traces to a standalone Jaeger instance:
-
-```sh
-docker-compose \
- -f docker-compose/docker-compose.yaml \
- -f docker-compose/jaeger/docker-compose.yaml \
- up
-```
-
-Once a tracing backend has been set up, refer to the [tracing guidance](/admin/observability/tracing) for more details.
diff --git a/docs/versioned/5.2/admin/deploy/docker-compose/upgrade.mdx b/docs/versioned/5.2/admin/deploy/docker-compose/upgrade.mdx
deleted file mode 100644
index 954015378..000000000
--- a/docs/versioned/5.2/admin/deploy/docker-compose/upgrade.mdx
+++ /dev/null
@@ -1,125 +0,0 @@
-# Upgrade Sourcegraph on Docker Compose
-
-This document describes the process to update a Docker Compose Sourcegraph instance. If you are unfamiliar with sourcegraph versioning or releases see our [general concepts documentation](/admin/updates/).
-
-> ***⚠️ Attention: Always consult the [release notes](/admin/updates/docker_compose) for the versions your upgrade will pass over and end on.***
-
-### Standard upgrades
-
-A [standard upgrade](/admin/updates/#upgrade-types) occurs between a Sourcegraph version and the minor or major version released immediately after it. If you would like to jump forward several versions, you must perform a [multi-version upgrade](#multi-version-upgrades) instead.
-
-If you've [configured Docker Compose with a release branch](/admin/deploy/docker-compose/#step-1-prepare-the-deployment-repository), please merge the upstream release tag for the next minor version into your `release` branch. In the following example, the release branch is being upgraded to v3.43.2.
-
-```sh
-# first, checkout the release branch
-git checkout release
-# fetch updates
-git fetch upstream
-# merge the upstream release tag into your release branch
-git checkout release
-git merge v3.43.2
-```
-
-#### Address any merge conflicts you might have
-
-For each conflict, you need to reconcile any customizations you made with the updates from the new version. Use the information you gathered earlier from the change log and changes list to interpret the merge conflict and to ensure that it doesn't over-write your customizations. You may need to update your customizations to accommodate the new version.
-
-> NOTE: If you have made no changes or only very minimal changes to your configuration, you can also ask git to always select incoming changes in the event of merge conflicts. In the following example merges will be accepted from the upstream version v3.43.2:
->
-> `git merge -X theirs v3.43.2`
->
-> If you do this, make sure your configuration is correct before proceeding because it may have made changes to your docker-compose YAML file.
-
-#### Clone the updated release branch to your server
-
-SSH into your instance and navigate to the appropriate folder:
-
-```sh
-# AWS
-cd /home/ec2-user/deploy-sourcegraph-docker/docker-compose
-# Azure, Digital Ocean, Google Cloud
-cd /root/deploy-sourcegraph-docker/docker-compose
-```
-
-Download all the latest docker images to your local docker daemon:
-
-```sh
-$ docker-compose pull --include-deps
-```
-
-Restart Docker Compose using the new minor version along with your customizations:
-
-```sh
-$ docker-compose up -d --remove-orphans
-```
-
-### Multi-version upgrades
-
-If you are upgrading to **Sourcegraph 5.1 or later**, we encourage you to perform an [**automatic multi-version upgrade**](/admin/updates/automatic). The following procedure has been automated, but is still applicable should errors occur in an automated upgrade.
-
----
-
-> **⚠️ Attention:** please see our [cautionary note](/admin/updates/#best-practices) on upgrades, if you have any concerns about running a multiversion upgrade, please reach out to us at [support@sourcegraph.com](mailto:support@sourcegraph.com) for advisement.
-
-To perform a **manual** multi-version upgrade on a Sourcegraph instance running on Docker compose follow the procedure below:
-
-1. **Check Upgrade Readiness**:
- - Check the [upgrade notes](/admin/updates/docker_compose#docker-compose-upgrade-notes) for the version range you're passing through.
- - Check the `Site Admin > Updates` page to determine [upgrade readiness](/admin/updates/#upgrade-readiness).
-
-2. **Disable Connections to the Database**:
- - Run the following command in the directory containing your `docker-compose.yaml` file.
- ```sh
- $ docker-compose stop && docker-compose up -d pgsql codeintel-db codeinsights-db
- ```
-3. **Run Migrator with the `upgrade` command**:
- - The following procedure describes running migrator in brief, for more detailed instructions and available command flags see our [migrator docs](/admin/updates/migrator/migrator-operations#docker-compose).
- 1. Set the migrator `image:` in your `docker-compose.yaml` to the **latest** release of `migrator`. **Example:**
- ```yaml
- migrator:
- container_name: migrator
- image: 'index.docker.io/sourcegraph/migrator:5.0.4'
- ```
- > *Note: Always use the latest image version of migrator for migrator commands, except the startup command `up`*
- 2. Set the migrator `command:` to `upgrade` you'll need to supply a `--to=` argument. **Example:**
- ```yaml
- command: ['upgrade', '--from=v4.1.2', '--to=v4.4.0']
- ```
- > *Note: you may add the `--dry-run` flag to the `command:` to test things out before altering the dbs*
- 3. Run migrator with `docker-compose up migrator` **Example:**
- ```sh
- $ ~/deploy-sourcegraph-docker/docker-compose/ docker-compose up migrator
- codeintel-db is up-to-date
- codeinsights-db is up-to-date
- pgsql is up-to-date
- Recreating migrator ... done
- Attaching to migrator
- migrator | ❗️ An error was returned when detecting the terminal size and capabilities:
- migrator |
- migrator | GetWinsize: inappropriate ioctl for device
- migrator |
- migrator | Execution will continue, but please report this, along with your operating
- migrator | system, terminal, and any other details, to:
- migrator | https://github.com/sourcegraph/sourcegraph/issues/new
- migrator |
- migrator | ✱ Sourcegraph migrator 4.4.0
- migrator | 👉 Migrating to v4.3 (step 1 of 2)
- migrator | 👉 Running schema migrations
- migrator | ✅ Schema migrations complete
- migrator | 👉 Running out of band migrations [17 18]
- ✅ Out of band migrations complete
- migrator | 👉 Migrating to v4.4 (step 2 of 2)
- migrator | 👉 Running schema migrations
- migrator | ✅ Schema migrations complete
- migrator | migrator exited with code 0
- ```
-
-4. **Pull and merge upstream changes**:
- - Follow the [standard upgrade procedure](#standard-upgrades) to pull and merge upstream changes from the version you are upgrading to to your `release` branch.
- - **⚠️ Attention:** *merging upstream changes should set the migrator `image:` version back to the release you are upgrading to, and the `command:` should be set back to `up`, this is necessary to start your instance again.*
-
-5. **Start your containers again**:
- - run `docker-compose up -d` in the folder containing your `docker-compose.yaml` file.
- ```sh
- $ docker-compose up -d
- ```
diff --git a/docs/versioned/5.2/admin/deploy/docker-single-container/aws.mdx b/docs/versioned/5.2/admin/deploy/docker-single-container/aws.mdx
deleted file mode 100644
index 6bfa4c3fe..000000000
--- a/docs/versioned/5.2/admin/deploy/docker-single-container/aws.mdx
+++ /dev/null
@@ -1,69 +0,0 @@
-# Install single-container Sourcegraph with Docker on AWS
-
-This tutorial shows you how to deploy [single-container Sourcegraph with Docker](/admin/deploy/docker-single-container/) to a single EC2 instance on AWS.
-
-> NOTE: We *do not* recommend using this method for a production instance. If deploying a production instance, see [our recommendations](/admin/deploy/) for how to choose a deployment type that suits your needs. We recommend [Docker Compose](/admin/deploy/docker-compose/aws) for most initial production deployments.
-
----
-
-## Deploy to EC2
-
-- Click **Launch Instance** from your [EC2 dashboard](https://console.aws.amazon.com/ec2/v2/home).
-- Select the Amazon Linux 2 AMI (HVM), SSD Volume Type.
-- Select an appropriate instance size (we recommend `t2.medium` or `t2.large`, depending on team size and number of repositories/languages enabled), then **Next: Configure Instance Details**
-- Ensure the **Auto-assign Public IP** option is "Enable". This ensures your instance is accessible to the Internet.
-- Add the following user data (as text) in the **Advanced Details** section:
-
- ```
- #cloud-config
- repo_update: true
- repo_upgrade: all
-
- runcmd:
- # Create the directory structure for Sourcegraph data
- - mkdir -p /home/ec2-user/.sourcegraph/config
- - mkdir -p /home/ec2-user/.sourcegraph/data
-
- # Install, configure, and enable Docker
- - yum update -y
- - amazon-linux-extras install docker
- - systemctl enable --now --no-block docker
- - sed -i -e 's/1024/10240/g' /etc/sysconfig/docker
- - sed -i -e 's/4096/40960/g' /etc/sysconfig/docker
- - usermod -a -G docker ec2-user
-
- # Install and run Sourcegraph. Restart the container upon subsequent reboots
- - [ sh, -c, 'docker run -d --publish 80:7080 --publish 443:7080 --publish 127.0.0.1:3370:3370 --restart unless-stopped --volume /home/ec2-user/.sourcegraph/config:/etc/sourcegraph --volume /home/ec2-user/.sourcegraph/data:/var/opt/sourcegraph sourcegraph/server:5.3.1' ]
- ```
-
-- Select **Next: ...** until you get to the **Configure Security Group** page. Then add the following rules:
- - Default **HTTP** rule: port range `80`, source `0.0.0.0/0, ::/0`
- - Default **HTTPS** rule: port range `443`, source `0.0.0.0/0, ::/0`
- - (NOTE: additional work will be required later on to [configure NGINX to support SSL](/admin/http_https_configuration#nginx-ssl-https-configuration))
-- Launch your instance, then navigate to its public IP in your browser. (This can be found by navigating to the instance page on EC2 and looking in the "Description" panel for the "IPv4 Public IP" value.) You may have to wait a minute or two for the instance to finish initializing before Sourcegraph becomes accessible. You can monitor the status by SSHing into the EC2 instance and viewing the logs:
-
- ```
- docker logs $(docker ps | grep sourcegraph/server | awk '{ print $1 }')
- ```
-- If you have configured a domain name to point to the IP, configure `externalURL` to reflect that.
-
-
----
-
-## Update your Sourcegraph version
-
-To update to the most recent version of Sourcegraph (X.Y.Z), SSH into your instance and run the following:
-
-```bash
-docker ps # get the $CONTAINER_ID of the running sourcegraph/server container
-docker rm -f $CONTAINER_ID
-docker run docker run -d --publish 80:7080 --publish 443:7080 --restart unless-stopped --volume /home/ec2-user/.sourcegraph/config:/etc/sourcegraph --volume /home/ec2-user/.sourcegraph/data:/var/opt/sourcegraph sourcegraph/server:X.Y.Z
-```
-
----
-
-## Using an external database for persistence
-
-The Docker container has its own internal PostgreSQL and Redis databases. To preserve this data when you kill and recreate the container, you can [use external services](/admin/external_services/) for persistence, such as [AWS RDS for PostgreSQL](https://aws.amazon.com/rds/), [Amazon ElastiCache](https://aws.amazon.com/elasticache/redis/), and [S3](https://aws.amazon.com/s3/) for storing user uploads.
-
-> NOTE: Use of external databases requires [Sourcegraph Enterprise](https://about.sourcegraph.com/pricing).
diff --git a/docs/versioned/5.2/admin/deploy/docker-single-container/digitalocean.mdx b/docs/versioned/5.2/admin/deploy/docker-single-container/digitalocean.mdx
deleted file mode 100644
index 67562ee4c..000000000
--- a/docs/versioned/5.2/admin/deploy/docker-single-container/digitalocean.mdx
+++ /dev/null
@@ -1,43 +0,0 @@
-# Install single-container Sourcegraph with Docker on DigitalOcean
-
-This tutorial shows you how to deploy [single-container Sourcegraph with Docker](/admin/deploy/docker-single-container/) to a single node running on DigitalOcean.
-
-> NOTE: We *do not* recommend using this method for a production instance. If deploying a production instance, see [our recommendations](/admin/deploy/) for how to choose a deployment type that suits your needs. We recommend [Docker Compose](/admin/deploy/docker-compose/digitalocean) for most initial production deployments.
-
-
----
-
-## Run Sourcegraph on a Digital Ocean Droplet
-
-1. [Create a new Digital Ocean Droplet](https://cloud.digitalocean.com/droplets/new). Set the
- operating system to be Ubuntu 18.04. For droplet size, we recommend at least 4GB RAM and 2 CPU,
- but you may need more depending on team size and number of repositories. We recommend you set up
- SSH access (Authentication > SSH keys) for convenient access to the droplet.
-1. SSH into the droplet, and install Docker: `snap install docker`
-1. Run the Sourcegraph Docker image as a daemon:
-
- ```
- docker run -d --publish 80:7080 --publish 443:7443 --restart unless-stopped --volume /root/.sourcegraph/config:/etc/sourcegraph --volume /root/.sourcegraph/data:/var/opt/sourcegraph sourcegraph/server:5.3.1
- ```
-1. Navigate to the droplet's IP address to finish initializing Sourcegraph. If you have configured a
- DNS entry for the IP, configure `externalURL` to reflect that.
-
-### After initialization
-
-After initial setup, we recommend you do the following:
-
-* Restrict the accessibility of ports other than `80` and `443` via [Cloud
- Firewalls](https://www.digitalocean.com/docs/networking/firewalls/quickstart/).
-* Set up [TLS/SSL](/admin/http_https_configuration#nginx-ssl-https-configuration) in the NGINX configuration.
-
----
-
-## Update your Sourcegraph version
-
-To update to the most recent version of Sourcegraph (X.Y.Z), SSH into your instance and run the following:
-
-```
-docker ps # get the $CONTAINER_ID of the running sourcegraph/server container
-docker rm -f $CONTAINER_ID
-docker run -d ... sourcegraph/server:X.Y.Z
-```
diff --git a/docs/versioned/5.2/admin/deploy/docker-single-container/google_cloud.mdx b/docs/versioned/5.2/admin/deploy/docker-single-container/google_cloud.mdx
deleted file mode 100644
index 17d084766..000000000
--- a/docs/versioned/5.2/admin/deploy/docker-single-container/google_cloud.mdx
+++ /dev/null
@@ -1,51 +0,0 @@
-# Install single-container Sourcegraph with Docker on Google Cloud
-
-This tutorial shows you how to deploy [single-container Sourcegraph with Docker](/admin/deploy/docker-single-container/) to a single node running on Google Cloud.
-
-> NOTE: We *do not* recommend using this method for a production instance. If deploying a production instance, see [our recommendations](/admin/deploy/) for how to choose a deployment type that suits your needs. We recommend [Docker Compose](/admin/deploy/docker-compose/google_cloud) for most initial production deployments.
-
----
-
-## Deploy to Google Cloud VM
-
-- [Open your Google Cloud console](https://console.cloud.google.com/compute/instances) to create a new VM instance and click **Create Instance**
-- Choose an appropriate machine type (we recommend at least 2 vCPU and 7.5 GB RAM, more depending on team size and number of repositories/languages enabled)
-- Choose Ubuntu 16.04 LTS as your boot disk
-- Check the boxes for **Allow HTTP traffic** and **Allow HTTPS traffic** in the **Firewall** section
-- Open the **Management, disks, networking, and SSH keys** dropdown section and add the following in the **Startup script** field:
-
- ```
- #!/usr/bin/env bash
- curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
- sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
- sudo apt-get update
- apt-cache policy docker-ce
- sudo apt-get install -y docker-ce
- mkdir -p /root/.sourcegraph/config
- mkdir -p /root/.sourcegraph/data
- docker run -d --publish 80:7080 --publish 443:7443 --restart unless-stopped --volume /root/.sourcegraph/config:/etc/sourcegraph --volume /root/.sourcegraph/data:/var/opt/sourcegraph sourcegraph/server:5.3.1
- ```
-
-- Create your VM, then navigate to its public IP address.
-
-- If you have configured a DNS entry for the IP, configure `externalURL` to reflect that. (Note: `externalURL` was called `appURL` in Sourcegraph 2.13 and earlier.)
-
----
-
-## Update your Sourcegraph version
-
-To update to the most recent version of Sourcegraph (X.Y.Z), SSH into your instance and run the following:
-
-```
-docker ps # get the $CONTAINER_ID of the running sourcegraph/server container
-docker rm -f $CONTAINER_ID
-docker run -d ... sourcegraph/server:X.Y.Z
-```
-
----
-
-## Using an external database for persistence
-
-The Docker container has its own internal PostgreSQL and Redis databases. To preserve this data when you kill and recreate the container, you can [use external services](/admin/external_services/) for persistence, such as Google Cloud's [Cloud SQL for PostgreSQL](https://cloud.google.com/sql/docs/postgres/), [Cloud Memorystore](https://cloud.google.com/memorystore/), and [Cloud Storage](https://cloud.google.com/storage) for storing user uploads.
-
-> NOTE: Use of external databases requires [Sourcegraph Enterprise](https://about.sourcegraph.com/pricing).
diff --git a/docs/versioned/5.2/admin/deploy/docker-single-container/index.mdx b/docs/versioned/5.2/admin/deploy/docker-single-container/index.mdx
deleted file mode 100644
index e1149f6f1..000000000
--- a/docs/versioned/5.2/admin/deploy/docker-single-container/index.mdx
+++ /dev/null
@@ -1,304 +0,0 @@
-# Docker Single Container Deployment
-
-The Docker Single Container deployment type is a way to very quickly get an instance of Sourcegraph set up locally to experiment with many of its features. However, it is **not recommended** for a production instance, and **has limitations** depending on the OS you are deploying to, as well as the associated resources. See the [troubleshooting section](#troubleshooting) for additional information.
-
-[Code Insights](/code_insights/) is not supported in Single Container deployments. To try Code Insights you must deploy using [Docker Compose](/admin/deploy/docker-compose/) or [Kubernetes](/admin/deploy/kubernetes/). [Tracing](/admin/observability/tracing) is disabled by default, and if you intend to enable it, you will have to deploy and configure the [OpenTelemetry Collector](/admin/observability/opentelemetry). The Single Container deployment does not ship with this service included. It is strongly recommended to use one of the aforementioned deployment methods if tracing support is a requirement.
-
-## Installation
-
-It takes less than a minute to run and install Sourcegraph using Docker:
-
-```
-docker run
---publish 7080:7080 --publish 127.0.0.1:3370:3370 --rm
---volume ~/.sourcegraph/config:/etc/sourcegraph
---volume ~/.sourcegraph/data:/var/opt/sourcegraph
-sourcegraph/server:5.3.1
-```
-
-Once the server is ready (logo is displayed in the terminal), navigate to the hostname or IP address on port `7080`. Create the admin account, then you'll be guided through setting up Sourcegraph for code searching and navigation.
-
-For next steps and further configuration options, review the high-level configuration items below, or visit the [detailed configuration documentation](/admin/config/).
-
-> WARNING: **We do not recommend using this method for a production instance.** If deploying a production instance, see [our recommendations](/admin/deploy/) for how to choose a deployment type that suits your needs. We recommend [Docker Compose](/admin/deploy/docker-compose/) for most initial production deployments.
-
-## Configuration
-
-### Configure exposed Sourcegraph port
-
-Change the `docker` `--publish` argument to make it listen on the specific interface and port on your host machine. For example, `docker run ... --publish 0.0.0.0:80:7080 ...` would make it accessible on port 80 of your machine. For more information, see "[Publish or expose port](https://docs.docker.com/engine/reference/commandline/run/#publish-or-expose-port--p---expose)" in the Docker documentation.
-
-The other option is to deploy and run Sourcegraph on a cloud provider. For an example, see the [cloud installation section](#cloud-installation-guides).
-
-### Git configuration and authentication
-
-For single-container environments, upon the Sourcegraph Docker image container start, it copies all files from `/etc/sourcegraph/{ssh,gitconfig,netrc}` into its own `$HOME` directory, via the `--volume /mnt/sourcegraph/config:/etc/sourcegraph` in the `docker run` command.
-
-For example, to mount a `.gitconfig`, create a file `/mnt/sourcegraph/config/gitconfig` on your host containing your configuration:
-
-```
-# example .gitconfig
-
-[url "example.url.com:"]
- insteadOf = "ssh://example.url.com"
-```
-
-Alternatively you can create a new Docker image which inherits from Sourcegraph and then mutates the environment:
-
-```dockerfile
-FROM sourcegraph/server:5.3.1
-
-COPY gitconfig /etc/gitconfig
-COPY ssh /root/.ssh
-RUN find /root/.ssh -type f -exec chmod 600 '{}' ';'
-RUN find /root/.ssh -type d -exec chmod 700 '{}' ';'
-```
-
-This approach can also be used for `sourcegraph/gitserver` images in cluster environments.
-
-Learn more about Git [configuration](/admin/repo/git_config) and [authentication](/admin/repo/auth).
-
-#### SSH authentication (config, keys, `known_hosts`)
-
-The container consults its own file system (in the standard locations) for SSH configuration, private keys, and `known_hosts`. Upon container start, it copies all files from `/etc/sourcegraph/ssh` into its own `$HOME/.ssh` directory.
-
-To provide SSH authentication configuration to the container, assuming you're using the default `--volume $HOME/.sourcegraph/config:/etc/sourcegraph`, follow these steps:
-
-1. Create files at `$HOME/.sourcegraph/config/ssh/config`, `$HOME/.sourcegraph/config/ssh/known_hosts`, etc., on the host machine as desired to configure SSH.
-1. Start (or restart) the container.
-
-To configure the container to use the same SSH as your user account on the host machine, you can also run `cp -R $HOME/.ssh $HOME/.sourcegraph/config/ssh`.
-
-#### HTTP(S) authentication via netrc
-
-The easiest way to specify HTTP(S) authentication for repositories is to include the username and password in the clone URL itself, such as `https://user:password@example.com/my/repo`. These credentials won't be displayed to non-admin users.
-
-Otherwise, the container consults the `$HOME/.netrc` files on its own file system for HTTP(S) authentication. The `.netrc` file is a standard way to specify authentication used to connect to external hosts.
-
-To provide HTTP(S) authentication, assuming you're using the default `--volume $HOME/.sourcegraph/config:/etc/sourcegraph`, follow these steps:
-
-1. Create a file at `$HOME/.sourcegraph/config/netrc` on the host machine that contains lines of the form `machine example.com login alice password mypassword` (replacing `example.com`, `alice`, and `mypassword` with the actual values).
-1. Start (or restart) the container.
-
-### Expose debug port
-
-This is required to [collect debug data](/admin/pprof).
-
-The docker run command for single-container Sourcegraph needs an additional publish flag to expose the debug port:
-
-```sh
-$ docker run --publish 7080:7080 --publish 127.0.0.1:3370:3370 --publish 127.0.0.1:6060:6060 --rm --volume ~/.sourcegraph/config:/etc/sourcegraph --volume ~/.sourcegraph/data:/var/opt/sourcegraph sourcegraph/server:5.3.1
-```
-
-If Sourcegraph is deployed to a remote server, then access via an SSH tunnel using a tool
-such as [sshuttle](https://github.com/sshuttle/sshuttle) is required to establish a secure connection.
-To access the remote server using `sshuttle` from your local machine:
-
-```sh
-$ sshuttle -r user@host 0/0
-```
-
-### Environment variables
-
-Add the following to your docker run command:
-
-```sh
-$ docker run [...]
--e (YOUR CODE)
-sourcegraph/server:5.3.1
-```
-
-## Operation
-
-### Access the database
-
-> NOTE: To execute an SQL query against the database without first creating an interactive session (as below), append `--command "SELECT * FROM users;"` to the `docker container exec` command.
-
-Get the Docker container ID for Sourcegraph:
-
-```sh
-$ docker ps
-CONTAINER ID IMAGE
-d039ec989761 sourcegraph/server:VERSION
-```
-
-Open a PostgreSQL interactive terminal:
-
-```sh
-$ docker container exec -it d039ec989761 psql -U postgres sourcegraph
-```
-
-Run your SQL query:
-
-```sql
-SELECT * FROM users;
-```
-
-## Upgrade
-
-### Standard upgrades
-
-A [standard upgrade](/admin/updates/#standard-upgrades) occurs between two minor versions of Sourcegraph. If you are looking to jump forward several versions, you must perform a [multi-version upgrade](#multi-version-upgrades) instead.
-
-**Before upgrading:**
-
-- Read our [update policy](/admin/updates/#update-policy) to learn about Sourcegraph updates.
-- Find the relevant entry for your update in the [update notes for single-container Sourcegraph with Docker](/admin/updates/server).
-
-To update, just use the newer `sourcegraph/server:N.N.N` Docker image (where `N.N.N` is a patch or single minor release away your current version) in place of the older one, using the same Docker volumes. Your server's data will be migrated automatically if needed. You can always find the version number details of the latest release via the [changelog](https://docs.sourcegraph.com/CHANGELOG).
-
-### Multi-version upgrades
-
-A [multi-version upgrade](/admin/updates/#multi-version-upgrades) is a downtime-incurring upgrade from version 3.20 or later to any future version. Multi-version upgrades will run both schema and data migrations to ensure the data available from the instance remains available post-upgrade.
-
-> NOTE: It is highly recommended to **take an up-to-date snapshot of your databases** prior to starting a multi-version upgrade. The upgrade process aggressively mutates the shape and contents of your database, and undiscovered errors in the migration process or unexpected environmental differences may cause an unusable instance or data loss.
->
-> We recommend performing the entire upgrade procedure on an idle clone of the production instance and switch traffic over on success, if possible. This may be low-effort for installations with a canary environment or a blue/green deployment strategy.
->
-> **If you do not feel confident running this process solo**, contact customer support team to help guide you thorough the process.
-
-**Before performing a multi-version upgrade**:
-
-- Read our [update policy](/admin/updates/#update-policy) to learn about Sourcegraph updates.
-- Find the entries that apply to the version range you're passing through in the [update notes for Sourcegraph with Docker Single Container](/admin/updates/server#multi-version-upgrade-procedure).
-
-To perform a multi-version upgrade on a Sourcegraph instance running on Docker Single Container:
-
-1. Stop the running Sourcegraph container via `docker stop [CONTAINER]`.
-1. Start a temporary Postgres container on top of the Postgres data directory used by the old `sourcegraph/server` image. This Postgres instance will be used by the following upgrade migration. If using an [external database](/admin/external_services/postgres), the database is already accessible from the `migrator` so no action is needed. Otherwise, start the new Postgres container by following the steps [described below](#running-temporary-postgres-containers).
-2. Follow the instructions on [how to run the migrator job in Docker](/admin/updates/migrator/migrator-operations#docker-compose) to perform the upgrade migratiohn. For specific documentation on the `upgrade` command, see the [command documentation](/admin/updates/migrator/migrator-operations#upgrade). The following specific steps are an easy way to run the upgrade command:
-
-
-
-```sh
-$ docker run \
- --rm \
- --name migrator_${SG_VERSION} \
- -e PGHOST='pgsql' \
- -e PGPORT='5432' \
- -e PGUSER='sg' \
- -e PGPASSWORD='sg' \
- -e PGDATABASE='sourcegraph' \
- -e PGSSLMODE='disable' \
- -e CODEINTEL_PGHOST='pgsql' \
- -e CODEINTEL_PGPORT='5432' \
- -e CODEINTEL_PGUSER='sg' \
- -e CODEINTEL_PGPASSWORD='sg' \
- -e CODEINTEL_PGDATABASE='sourcegraph-codeintel' \
- -e CODEINTEL_PGSSLMODE='disable' \
- -e CODEINSIGHTS_PGHOST='pgsql' \
- -e CODEINSIGHTS_PGPORT='5432' \
- -e CODEINSIGHTS_PGUSER='postgres' \
- -e CODEINSIGHTS_PGPASSWORD='password' \
- -e CODEINSIGHTS_PGDATABASE='postgres' \
- -e CODEINSIGHTS_PGSSLMODE='disable' \
- -e CODEINTEL_PG_ALLOW_SINGLE_DB=true \
- sourcegraph/migrator:v${SG_VERSION} \
- upgrade --from=${CURRENT_SG_VERSION} --to=${SG_VERSION}
-```
-
-It is recommended to also add the `--dry-run` flag on a trial invocation to detect if there are any issues with database connection, schema drift, or mismatched versions that need to be addressed.
-
-After this container exits successfully, the remaining infrastructure can now be updated. All temporary containers can be stopped, and the Docker invocation for your `sourcegraph/server` container can be updated to use the new target version.
-
-#### Running temporary Postgres containers
-
-Mounting a Postgres container on top of the data directory used by `sourcegraph/server` will allow us to access and migrate the data in-place without having running services interfere.
-
-Let `${PATH}` be the directory mounted into `/var/opt/sourcegraph` of your instance. This mount contains the Postgres data directory inside of the container.
-
-For example, `${PATH}` is `~/.sourcegraph/data` in `-v ~/.sourcegraph/data:/var/opt/sourcegraph`.
-
-```sh
-$ docker run --rm -it \
- -v ${PATH}/postgresql:/data/pgdata-${PG_VERSION} \
- -u 70 \
- -p 5432:5432 \
- --entrypoint bash \
- sourcegraph/postgres-${PG_VERSION_TAG}:${SG_VERSION} \
- -c 'echo "host all all 0.0.0.0/0 trust" >> /data/pgdata-${PG_VERSION}/pg_hba.conf && postgres -c l listen_addresses="*" -D /data/pgdata-${PG_VERSION}'
-```
-
-The version of this Postgres container is dependent on the version of the instance prior to upgrade.
-
-| `${SG_VERSION}` | `${PG_VERSION}` | `${PG_VERSION_TAG}` |
-| ------------------- | --------------- | ------------------- |
-| `3.20.X` - `3.29.X` | `12` | `12.6` |
-| `3.30.X` - `3.37.X` | `12` | `12.6-alpine` |
-| `3.38.X` - | `12` | `12-alpine` |
-
-## Troubleshooting
-
-If you get stuck or need help, [file an issue](https://github.com/sourcegraph/sourcegraph/issues/new?&title=Improve+Sourcegraph+quickstart+guide), [tweet (@sourcegraph)](https://twitter.com/sourcegraph) or [email](mailto:support@sourcegraph.com?subject=Sourcegraph%20quickstart%20guide).
-
-### Mac Computers with Apple silicon
-
-On Mac computers with Apple silicon, you’ll need to add an extra `--platform linux/amd64` argument to your Docker command for correctly running and installing Sourcegraph.
-
-### File system performance on Docker for Mac
-
-There is a [known issue](https://github.com/docker/for-mac/issues/77) in Docker for Mac that causes slower than expected file system performance on volume mounts, which impacts the performance of search and cloning.
-
-To achieve better performance, you can do any of the following:
-
-- For better clone performance, clone the repository on your host machine and then [add it to Sourcegraph Server](/admin/repo/add#add-repositories-already-cloned-to-disk).
-- Try adding the `:delegated` suffix the data volume mount. [Learn more](https://github.com/docker/for-mac/issues/1592).
- ```sh
- --volume ~/.sourcegraph/data:/var/opt/sourcegraph:delegated
- ```
-
-### Testing Sourcegraph on Windows
-
-Sourcegraph can be **tested** on Windows 10 using roughly the same steps provided above, but data will not be retained after server restarts ([this is due to a limitation of Docker on Windows](https://github.com/docker/for-win/issues/39#issuecomment-371942845)).
-
-1. [Install Docker for Windows](https://docs.docker.com/docker-for-windows/install/)
-2. Using a command prompt, follow the same [installation steps provided above](#install-sourcegraph-with-docker) but remove the `--volume` arguments. For example by pasting this:
-
-docker run --publish 7080:7080 --publish 127.0.0.1:3370:3370 --rm sourcegraph/server:5.3.1
-
-### Low resource environments
-
-To test Sourcegraph in a low resource environment you may want to disable some of the observability tools (Prometheus and Grafana).
-
-Add `-e DISABLE_OBSERVABILITY=true` to your docker run command.
-
-### Starting in Postgres restore mode
-
-In order to restore a Postgres backup, you need to start on an empty database and prevent all other Sourcegraph services from starting.
-You can do this by adding `-e PGRESTORE=true` to your `docker run` command. This will start only the Postgres system and allow you to perform a restore. Once it is done, remove that parameter from your docker command.
-
-The database is only accessible from within the container. To perform a restore you will need to copy the required files to the container and then execute the restore commands from within the container using `docker exec`.
-
-You can find examples of this procedure for `docker-compose` in our [docker-compose migration docs](/admin/deploy/docker-compose/migrate).
-
-### Special instructions for RHEL, Fedora, CentOS and others
-
-If you run Docker on an OS such as RHEL, Fedora, or CentOS with SELinux enabled, sVirt doesn't allow the Docker process to access `~/.sourcegraph/config` and `~/.sourcegraph/data`. In that case, you will see the following message:
-
-`Failed to setup nginx:failed to generate nginx configuration to /etc/sourcegraph: open /etc/sourcegraph/nginx.conf: permission denied`.
-
-To fix this, run:
-
-`mkdir -p ~/.sourcegraph/config ~/.sourcegraph/data && chcon -R -t svirt_sandbox_file_t ~/.sourcegraph/config ~/.sourcegraph/data`
-
-## Reference
-
-### Cloud installation guides
-
-Cloud specific Sourcegraph installation guides for AWS, Google Cloud and Digital Ocean.
-
-- [Install Sourcegraph with Docker on AWS](/admin/deploy/docker-single-container/aws)
-- [Install Sourcegraph with Docker on Google Cloud](/admin/deploy/docker-single-container/google_cloud)
-- [Install Sourcegraph with Docker on DigitalOcean](/admin/deploy/docker-single-container/digitalocean)
-
-### Insiders build
-
-To test new development builds of Sourcegraph (triggered by commits to `main`), change the tag to `insiders` in the `docker run` command.
-
-> WARNING: `insiders` builds may be unstable, so back up Sourcegraph's data and config (usually `~/.sourcegraph`) beforehand.
-
-```sh
-$ docker run --publish 7080:7080 --rm --volume ~/.sourcegraph/config:/etc/sourcegraph --volume ~/.sourcegraph/data:/var/opt/sourcegraph sourcegraph/server:insiders
-```
-
-To keep this up to date, run `docker pull sourcegraph/server:insiders` to pull in the latest image, and restart the container to access new changes.
diff --git a/docs/versioned/5.2/admin/deploy/index.mdx b/docs/versioned/5.2/admin/deploy/index.mdx
deleted file mode 100644
index 7fb965838..000000000
--- a/docs/versioned/5.2/admin/deploy/index.mdx
+++ /dev/null
@@ -1,70 +0,0 @@
-# Deployment Overview
-
-Sourcegraph offers multiple deployment options to suit different needs. The appropriate option for your organization depends on your goals and requirements, as well as the technical expertise and resources available. The following sections overview the available options and their associated investments and technical demands.
-
-## Deployment types
-
-Carefully consider your organization's needs and technical expertise when selecting a Sourcegraph deployment method. The method you choose cannot be changed for a running instance, so make an informed decision. The available methods have different capabilities, and the following sections provide recommendations to help you choose.
-
-### Sourcegraph Cloud
-
-Enterprises looking for a managed [Sourcegraph Cloud](https://about.sourcegraph.com/get-started?t=enterprise) solution explore a cloud instance hosted and maintained by Sourcegraph.
-
-
-
-
-
-
-
-### Machine Images
-
-**For Enterprises looking for a self-hosted solution on the Cloud infrastructure of their choice.**
-
-An option to run Sourcegraph on your own infrastructure using pre-configured machine images.
-
-Customized machine images allow you to spin up a preconfigured and customized Sourcegraph instance with just a few clicks, all in less than 10 minutes. Currently available in the following hosts:
-
-
-
-
-
-
-See [Sourcegraph Machine Images](/admin/deploy/machine-images) for more information.
-
-Deploying with machine images requires technical expertise and the ability to maintain and manage your own infrastructure.
-
-### Install-script
-
-Sourcegraph provides an install script that can deploy Sourcegraph instances to Linux-based virtual machines. This method is recommended for:
-
-- On-premises deployments (your own infrastructure)
-- Deployments to unsupported cloud providers (non-officially supported)
-
-See [Sourcegraph install script](/admin/deploy/single-node/script) for more information.
-
-### [Kubernetes](/admin/deploy/kubernetes)
-
-**For large Enterprises that require a multi-node, self-hosted solution.**
-
-- **Helm** utilizes pre-packaged charts for templating Sourcegraph deployments
-- **Kustomize** utilizes built-in features of kubectl for configuring Sourcegraph deployments
-
-
-
-
-
-
-
-
-Given the technical knowledge required to deploy and maintain on Kubernetes, teams without these resources should contact their Sourcegraph representative at [sales@sourcegraph.com](mailto:sales@sourcegraph.com) to discuss alternative deployment options
-
-### Local machines
-
-**For setting up non-production environments on local machines.**
-
- - [Docker Compose](/admin/deploy/docker-compose/) - Install Sourcegraph on Docker Compose
- - [Docker Single Container](/admin/deploy/docker-single-container/) - Install Sourcegraph using a single Docker container
-
-### ARM / ARM64 support
-
-Running Sourcegraph on ARM / ARM64 images is not supported for production deployments.
diff --git a/docs/versioned/5.2/admin/deploy/instance-size.mdx b/docs/versioned/5.2/admin/deploy/instance-size.mdx
deleted file mode 100644
index 7924f81bc..000000000
--- a/docs/versioned/5.2/admin/deploy/instance-size.mdx
+++ /dev/null
@@ -1,65 +0,0 @@
-# Instance Size
-
-When sizing your Sourcegraph deployment, it is important to take into account the number of users and repositories in your environment. Below is our sizing chart with our sizing recommendations for different size environments.
-
-## Size chart
-
-If you fall between two sizes, choose the larger of the two. For examples:
-
-1. If you have 8,000 users with 80,000 repositories, your instance size would be **L**.
-2. If you have 1,000 users with 80,000 repositories, your instance size would still be **L**.
-
-| | **XS** | **S** | **M** | **L** | **XL** |
-|:-----------------|:-------------:|:--------------:|:--------------:|:--------------:|:--------------:|
-| **Users** | Up to 500 | Up to 1,000 | Up to 5,000 | Up to 10,000 | Up to 20,000 |
-| **Repositories** | Up to 5,000 | Up to 10,000 | Up to 50,000 | Up to 100,000 | Up to 250,000 |
-| **vCPU** | 8 | 16 | 32 | 48 | 96 |
-| **Memory (GB)** | 32 | 64 | 128 | 192 | 384 |
-| **SSD Required** | Yes | Yes | Yes | Yes | Yes |
-
-## Instance type
-
-### Single Node
-
-We recommend the following instance type for the cloud providera listed below.
-
-| | **XS** | **S** | **M** | **L** | **XL** |
-|:-----------------|:-------------:|:--------------:|:--------------:|:--------------:|:--------------:|
-| **AWS** | m6a.2xlarge | m6a.4xlarge | m6a.8xlarge | m6a.12xlarge | m6a.24xlarge |
-| **Azure** | D8_v3 | D16_v3 | D32_v3 | D48_v3 | D64_v3 |
-| **GCP** | n2-standard-8 | n2-standard-16 | n2-standard-32 | n2-standard-48 | n2-standard-96 |
-
-
-### Kubernetes
-
-> WARNING: If you intend to set this up as a production instance, we recommend you create the cluster in a VPC
-> or other secure network that restricts unauthenticated access from the public Internet. You can later expose the
-> necessary ports via an
-> [Internet Gateway](http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Internet_Gateway.html) or equivalent
-> mechanism. Note that SG must expose port 443 for outbound traffic to codehosts and to enable [telemetry](https://docs.sourcegraph.com/admin/pings) with
-> Sourcegraph.com. Additionally port 22 may be opened to enable git SSH cloning by Sourcegraph. Take care to secure your cluster in a manner that meets your
-> organization's security requirements.
-
-Follow the instructions linked in the table below to provision a Kubernetes cluster for the
-infrastructure provider of your choice, using the recommended node and list types in the
-table.
-
-| **Provider** | **Node type** | **Boot/ephemeral disk size** |
-|------------------------------------|---------------------------------|------------------------------|
-|[Amazon EKS (better than plain EC2)](/admin/deploy/kubernetes/eks)| m5.4xlarge | 100 GB (SSD preferred) |
-|[AWS EC2](https://kubernetes.io/docs/getting-started-guides/aws/)| m5.4xlarge | 100 GB (SSD preferred) |
-|[Google Kubernetes Engine (GKE)](https://cloud.google.com/kubernetes-engine/docs/quickstart)| n2-standard-16 | 100 GB (default) |
-|[Azure](/admin/deploy/kubernetes/azure)| D16 v3 | 100 GB (SSD preferred) |
-|[Other](https://kubernetes.io/docs/setup/production-environment/turnkey-solutions/)| 16 vCPU, 60 GiB memory per node | 100 GB (SSD preferred) |
-
-
-> NOTE: Sourcegraph can run on any Kubernetes cluster, so if your infrastructure provider is not
-> listed, see the "Other" row. Pull requests to add rows for more infrastructure providers are
-> welcome!
-
-
-> WARNING: If you are deploying on Azure, you **must** ensure that [your cluster is created with support for CSI storage drivers](https://docs.microsoft.com/en-us/azure/aks/csi-storage-drivers). This **can not** be enabled after the fact.
-
-## Resources
-
-Please refer to our [resource estimator](https://docs.sourcegraph.com/admin/deploy/resource_estimator) for more information regarding resources allocation for your Sourcegraph deployment.
diff --git a/docs/versioned/5.2/admin/deploy/kubernetes/azure.mdx b/docs/versioned/5.2/admin/deploy/kubernetes/azure.mdx
deleted file mode 100644
index 912e3baf9..000000000
--- a/docs/versioned/5.2/admin/deploy/kubernetes/azure.mdx
+++ /dev/null
@@ -1,67 +0,0 @@
-# Sourcegraph with Kubernetes on Azure
-
-> WARNING: This guide applies exclusively to a Kubernetes deployment **without** Helm.
-> If you have not deployed Sourcegraph yet, it is higly recommended to use Helm as it simplifies the configuration and greatly simplifies the later upgrade process. See our guidance on [using Helm to deploy to Azure AKS](/admin/deploy/kubernetes/helm#configure-sourcegraph-on-azure-managed-kubernetes-service-aks).
-
-Install the [Azure CLI tool](https://docs.microsoft.com/en-us/cli/azure/install-azure-cli?view=azure-cli-latest) and log in:
-
-```
-az login
-```
-
-Sourcegraph on Kubernetes requires at least **16 cores** in the **DSv3** family in the Azure location of your choice (e.g. `eastus`), so make sure you have enough available (if not, [request a quota increase](https://docs.microsoft.com/en-us/azure/azure-supportability/resource-manager-core-quotas-request)):
-
-```
-$ az vm list-usage -l eastus -o table
-Name CurrentValue Limit
--------------------------------- -------------- -------
-...
-Standard DSv3 Family vCPUs 0 32
-...
-```
-
-Ensure that these Azure service providers are enabled:
-
-```
-az provider register -n Microsoft.Network
-az provider register -n Microsoft.Storage
-az provider register -n Microsoft.Compute
-az provider register -n Microsoft.ContainerService
-```
-
-Create a resource group:
-
-```
-az group create --name sourcegraphResourceGroup --location eastus
-```
-
-Create a cluster:
-
-```
-az aks create --resource-group sourcegraphResourceGroup --name sourcegraphCluster --node-count 1 --generate-ssh-keys --node-vm-size Standard_D16s_v3
-```
-
-Connect to the cluster for future `kubectl` commands:
-
-```
-az aks get-credentials --resource-group sourcegraphResourceGroup --name sourcegraphCluster
-```
-
-Follow the [Sourcegraph cluster installation instructions](/admin/deploy/kubernetes/configure#configure-a-storage-class) with `storageClass` set to `managed-premium` in `config.json`:
-
-```diff
-- "storageClass": "default"
-+ "storageClass": "managed-premium"
-```
-
-You can see if the pods are ready and check for installation problems through the Kubernetes dashboard:
-
-```
-az aks browse --resource-group sourcegraphResourceGroup --name sourcegraphCluster
-```
-
-Set up a load balancer to make the main web server accessible over the network to external users:
-
-```
-kubectl expose deployment sourcegraph-frontend --type=LoadBalancer --name=sourcegraphloadbalancer --port=80 --target-port=3080
-```
diff --git a/docs/versioned/5.2/admin/deploy/kubernetes/configure.mdx b/docs/versioned/5.2/admin/deploy/kubernetes/configure.mdx
deleted file mode 100644
index 08417a64f..000000000
--- a/docs/versioned/5.2/admin/deploy/kubernetes/configure.mdx
+++ /dev/null
@@ -1,1352 +0,0 @@
-# Configure Sourcegraph with Kustomize
-
-This guide will demonstrate how to customize a Kubernetes deployment (**non-Helm**) using Kustomize components.
-
-
-
-
-
-
-
-
-
-
-## Overview
-
-To ensure optimal performance and functionality of your Sourcegraph deployment, please only include components listed in the [kustomization.template.yaml file](/admin/deploy/kubernetes/kustomize/#kustomization-yaml) for your instance overlay. These components include settings that have been specifically designed and tested for Sourcegraph and do not require any additional configuration changes.
-
-The order of components listed in the [kustomization.template.yaml file](/admin/deploy/kubernetes/kustomize/#kustomization-yaml) is important and should be maintained. The components are listed in a specific order to ensure proper dependency management and compatibility between components. Reordering components can introduce conflicts or prevent components from interacting as expected. Only modify the component order if explicitly instructed to do so by the documentation. Otherwise, leave the component order as-is to avoid issues.
-
-Following these guidelines will help you create a seamless deployment and avoid conflicts.
-
-> NOTE: All commands in this guide should be run from the root of the reference repository.
-
-## Base cluster
-
-The base resources in Sourcegraph include the services that make up the main Sourcegraph apps as well as the monitoring services ([tracing services](#tracing) and [cAdvisor](#deploy-cadvisor) are not included). These services are configured to run as non-root users without privileges, ensuring a secure deployment:
-
-```yaml
-# instances/$INSTANCE_NAME/kustomization.yaml
- resources:
- # Deploy Sourcegraph main stack
- - ../../base/sourcegraph
- # Deploy Sourcegraph monitoring stack
- - ../../base/monitoring
-```
-
-To enable cluster metrics monitoring, you will need to [deploy cAdvisor](#deploy-cadvisor), which is a container resource usage monitoring service. cAdvisor is configured for Sourcegraph and can be deployed using one of the provided components. This component contains RBAC resources and must be run with privileges to ensure that it has the necessary permissions to access the container metrics.
-
-### RBAC
-
-Sourcegraph has removed Role-Based Access Control (RBAC) resources from the default base cluster for the Kustomize deployment. This means that [service discovery](#service-discovery) is not enabled by default, and the endpoints for each service replica must be manually added to the frontend ConfigMap. When using the [size components](#instance-size-based-resources) included in the [kustomization file built for Sourcegraph](/admin/deploy/kubernetes/kustomize/#kustomization-yaml), service endpoints are automatically added to the ConfigMap.
-
-### Non-Privileged
-
-By default, all Sourcegraph services are deployed in a non-root and non-privileged mode, as defined in the [base](/admin/deploy/kubernetes/kustomize/#base) cluster.
-
-### Privileged
-
-To deploy a High Availability (HA) configured Sourcegraph instance to an RBAC-enabled cluster, you can include the [privileged component](#privileged) and the [privileged component for monitoring](#deploy-cadvisor) in your component list. This provides redundant, monitored instances of each service running as root with persistent storage, and adding the [service discovery component](#service-discovery) enables automated failover and recovery by detecting backend service endpoints.
-
-```yaml
-# instances/$INSTANCE_NAME/kustomization.yaml
- resources:
- - ../../base/sourcegraph # Deploy Sourcegraph main stack
- - ../../base/monitoring # Deploy Sourcegraph monitoring stack
- components:
- # Add resources for cadvisor
- # NOTE: cadvisor includes RBAC resources and must be run with privileges
- - ../../components/monitoring/cadvisor
- # Run Sourcegraph main stack with privilege and root
- # NOTE: This adds RBAC resources to the monitoring stack
- - ../../components/privileged
- # Run monitoring services with privilege and root
- # It also allows Prometheus to talk to the Kubernetes API for service discovery
- - ../../components/monitoring/privileged
- # Enable service discovery by adding RBACs
- # IMPORTANT: Include as the last component
- - ../../components/enable/service-discovery
-```
-
-### Service discovery
-
-RBAC must be enabled in your cluster for the frontend to communicate with other services through the Kubernetes API. To enable service discovery for the frontend service, Include the following component as the **last** component in your `kustomization.yaml` file:
-
-```yaml
-# instances/$INSTANCE_NAME/kustomization.yaml
- components:
- - ../../components/...
- # IMPORTANT: Include this as the last component
- - ../../components/enable/service-discovery
-```
-
-This will allow the frontend service to discover endpoints for each service replica and communicate with them through the Kubernetes API. Note that this component should only be added if RBAC is enabled in your cluster.
-
-### Embeddings Service
-By default, the Embeddings service which is used to handle embeddings searches is disabled. To enable it the following must be commented out. By default, the Embeddings service stores indexes in `blobstore`. Use the [embeddings-backend](/admin/deploy/kubernetes/configure#external-embeddings-object-storage) patch to configure an external object store.
-```yaml
-# instances/$INSTANCE_NAME/kustomization.yaml
-components:
- - ../../components/remove/embeddings # -- Disable Embeddings service by default
-```
-
----
-
-## Monitoring stack
-
-The monitoring stack for Sourcegraph, similar to the main stack, does not include RBAC (Role-Based Access Control) resources by default. As a result, some dashboards may not display any data unless cAdvisor is deployed separately with privileged access.
-
-To deploy the monitoring stack, add the monitoring resources to the resources-list:
-
-```yaml
-# instances/$INSTANCE_NAME/kustomization.yaml
- resources:
- # Deploy Sourcegraph main stack
- - ../../base/sourcegraph
- # Deploy Sourcegraph monitoring stack
- - ../../base/monitoring
-```
-
-If RBAC is enabled in your cluster, it is highly recommended to [deploy cAdvisor](#deploy-cadvisor) with privileged access to your cluster. With privileged access, cAdvisor will have the necessary permissions to gather and display detailed information about the resources used by your Sourcegraph instance. It's considered a key component for monitoring and troubleshooting. See [Deploy cAdvisor](#deploy-cadvisor) below for more information.
-
-### Deploy cAdvisor
-
-cAdvisor requires a service account and certain permissions to access and gather information about the Kubernetes cluster in order to display key metrics such as resource usage and performance data. Removing the service account and privileged access for cAdvisor could impede its ability to collect this information, resulting in missing data on Grafana dashboards and potentially impacting visibility and monitoring capabilities for the cluster and its pods. This could negatively impact the level of monitoring and visibility into the cluster's state that cAdvisor is able to provide.
-
-To deploy cAdvisor with privileged access, include the following:
-
-- [monitoring base resources](#monitoring-stack)
-- [monitoring/privileged component](#monitoring-stack)
-- [privileged component](#privileged)
-- [cadvisor component](#deploy-cadvisor)
-
-```yaml
-# instances/$INSTANCE_NAME/kustomization.yaml
- resources:
- - ../../base/sourcegraph # Deploy Sourcegraph main stack
- - ../../base/monitoring # Deploy Sourcegraph monitoring stack
- components:
- # Add resources for cadvisor
- # NOTE: cadvisor includes RBAC resources and must be run with privileges
- - ../../components/monitoring/cadvisor
- # Run Sourcegraph main stack with privilege and root
- # NOTE: This adds RBAC resources to the monitoring stack
- - ../../components/privileged
- # Run monitoring services with privilege and root
- # It also allows Prometheus to talk to the Kubernetes API for service discovery
- - ../../components/monitoring/privileged
- # Enable service discovery by adding RBACs
- # IMPORTANT: Include as the last component
- - ../../components/enable/service-discovery
-```
-
-### Prometheus targets
-
-Skip this configuration if you are running Prometheus with RBAC permissions.
-
-Because Sourcegraph is running without RBAC permissions in Kubernetes, it cannot auto-discover metrics endpoints to scrape metrics. As a result, Prometheus (the metrics scraper) requires a static target list (list of endpoints to scrape) provided in a ConfigMap.
-
-The default target list ConfigMap only contains endpoints for the `default` and `ns-sourcegraph` namespaces, where Sourcegraph may be installed. If you have installed Sourcegraph in a different namespace, the provided target list will be missing those endpoints.
-
-To accommodate this, you must update the namespace within the target list. This ensures Prometheus has the correct list of endpoints to scrape metrics from.
-
-**Step 1**: Create a subdirectory called `patches` within the directory of your overlay:
-
-```bash
-$ mkdir -p instances/$INSTANCE_NAME/patches
-```
-
-**Step 2**: Set the `SG_NAMESPACE` value to your namespace in your terminal:
-
-```bash
-$ export SG_NAMESPACE=your_namespace
-```
-
-**Step 3**: Replace the value of `$SG_NAMESPACE` in the `prometheus.ConfigMap.yaml` file with your Sourcegraph namespace value set in the previous step using [envsubst](https://www.gnu.org/software/gettext/manual/html_node/envsubst-Invocation.html), and the save the output of the substitution as a new file in the `patches` directory created in step 1:
-
-```bash
-envsubst < base/monitoring/prometheus/prometheus.ConfigMap.yaml > instances/$INSTANCE_NAME/patches/prometheus.ConfigMap.yaml
-```
-
-**Step 4**: Add the new patch file to your overlay under `patches`:
-
-```yaml
-# instances/$INSTANCE_NAME/kustomization.yaml
- patches:
- - patch: patches/prometheus.ConfigMap.yaml
-```
-
-Following these steps will allow Prometheus to successfully scrape metrics from a Sourcegraph installation in namespaces other than `default` and `ns-sourcegraph` without RBAC Kubernetes permissions, by using a pre-defined static target list of endpoints.
-
----
-
-## Tracing
-
-Sourcegraph exports traces in OpenTelemetry format. The OpenTelemetry collector, which must be configured as part of the deployment using the [otel component](#deploy-opentelemetry-collector), [collects and exports traces](https://sourcegraph.com/github.com/sourcegraph/sourcegraph/-/blob/docker-images/opentelemetry-collector/configs/logging.yaml).
-
-By default, Sourcegraph supports exporting traces to multiple backends including Jaeger.
-
-### Deploy OpenTelemetry Collector
-
-Include the `otel` component to deploy OpenTelemetry Collector:
-
-```yaml
-# instances/$INSTANCE_NAME/kustomization.yaml
- components:
- # Deploy OpenTelemetry Collector
- - ../../components/monitoring/otel
-```
-
-Learn more about Sourcegraph's integrations with the [OpenTelemetry Collector](https://opentelemetry.io/docs/collector/) in our [OpenTelemetry documentation](/admin/observability/opentelemetry).
-
-### Deploy OpenTelemetry Collector with Jaeger as tracing backend
-
-If you do not have an external backend available for the OpenTelemetry Collector to export tracing data to, you can deploy the Collector with the Jaeger backend to store and view traces using the `tracing component` as described below.
-
-#### Enable the bundled Jaeger deployment
-
-**Step 1**: Include the `tracing` component to deploy both OpenTelemetry and Jaeger. The component also configures the following services:
-
-- `otel-collector` to export to this Jaeger instance
-- `grafana` to get metrics from this Jaeger instance
-
-```yaml
-# instances/$INSTANCE_NAME/kustomization.yaml
- components:
- # Deploy OpenTelemetry Collector and Jaeger
- - ../../components/monitoring/tracing
-```
-
-**Step 2**: In your Site configuration, add the following to:
-
-- sends Sourcegraph traces to OpenTelemetry Collector
-- send traces from OpenTelemerty to Jaeger
-
-```json
-{
- "observability.client": {
- "openTelemetry": {
- "endpoint": "/-/debug/otlp"
- }
- },
- "observability.tracing": {
- "type": "opentelemetry",
- "urlTemplate": "{{ .ExternalURL }}/-/debug/jaeger/trace/{{ .TraceID }}"
- }
-}
-```
-
-### Configure a tracing backend
-
-Follow these steps to add configure OpenTelementry to use a different backend:
-
-1. Create a subdirectory called 'patches' within the directory of your overlay
-2. Copy and paste the [base/otel-collector/otel-collector.ConfigMap.yaml file](https://sourcegraph.com/github.com/sourcegraph/deploy-sourcegraph-k8s@master/-/tree/base/otel-collector/otel-collector.ConfigMap.yaml) to the new [patches subdirectory](/admin/deploy/kubernetes/kustomize/#patches-directory)
-3. In the copied file, make the necessary changes to the `exporters` and `service` blocks to connect to your backend based on the documentation linked above
-4. Include the following content in your overlay:
-
-```yaml
-# instances/$INSTANCE_NAME/kustomization.yaml
- components:
- - ../../components/otel-collector/backend
- patches:
- - patch: patches/otel-collector.ConfigMap.yaml
-```
-
-The component will update the `command` for the `otel-collector` container to `"--config=/etc/otel-collector/conf/config.yaml"`, which is now pointing to the mounted config.
-
-Please refer to [OpenTelemetry](/admin/observability/opentelemetry) for detailed descriptions on how to configure your backend of choice.
-
----
-
-## Namespace
-
-Recommended namespace: `ns-sourcegraph`
-
-Some resources and components (e.g. [Prometheus](#prometheus-targets)) are pre-configured to work with the `default` and `ns-sourcegraph` namespaces only and require additional configurations when running in a different namespace. Please refer to the [Prometheus](#prometheus-targets) section for more details.
-
-### Set namespace
-
-To set a namespace for all your Sourcegraph resources, update the `namespace` field to an existing namespace in your cluster:
-
-```yaml
-# instances/$INSTANCE_NAME/kustomization.yaml
- namespace: ns-sourcegraph
-```
-
-This will set namespace to the `namespace` value (`ns-sourcegraph` in this example) for all your Sourcegraph resources.
-
-> NOTE: This step assumes that the namespace already exists in your cluster. If the namespace does not exist, you will need to create one before applying the overlay.
-
-### Create a namespace
-
-To create a new namespace, include the [utils/namespace](https://sourcegraph.com/github.com/sourcegraph/deploy-sourcegraph-k8s/-/tree/components/resources/namespace) component in your overlay.
-
-```yaml
-# instances/$INSTANCE_NAME/kustomization.yaml
- namespace: ns-sourcegraph
- components:
- - ../../components/resources/namespace
-```
-
-This component will create a new namespace using the `namespace` value (`ns-sourcegraph` in this example).
-
----
-
-## Resources
-
-Properly allocating resources is crucial for ensuring optimal performance of your Sourcegraph instance. To ensure this, it is recommended to use one of the provided [sizes components](#instance-size-based-resources) for resource allocation, specifically designed for your [instance size](/admin/deploy/instance-size). These components have been tested and optimized based on load test results, and are designed to work seamlessly with Sourcegraph's design and functionality.
-
-### Instance-size-based resources
-
-To allocate resources based on your [instance size](/admin/deploy/instance-size):
-
-```yaml
-# instances/$INSTANCE_NAME/kustomization.yaml
- components:
- # Include ONE of the sizes component based on your instance size
- - ../../components/sizes/xs
- - ../../components/sizes/s
- - ../../components/sizes/m
- - ../../components/sizes/l
- - ../../components/sizes/xl
-```
-
-### Adjust storage sizes
-
-You can adjust storage size for different services in the *STORAGE SIZES* section with [patches](https://kubectl.docs.kubernetes.io/references/kustomize/kustomization/patches/).
-
-Here is an example on how to adjust the storage sizes for different services:
-
-```yaml
-# instances/$INSTANCE_NAME/kustomization.yaml
- components:
- - ../../components/sizes/l
- # [STORAGE SIZES]
- patches:
- # `pgsql` to 500Gi
- - target:
- kind: PersistentVolumeClaim
- name: pgsql
- patch: |-
- - op: replace
- path: /spec/resources/requests/storage
- value: 500Gi
- # `redis-store` & `redis-cache` to 200Gi
- - target:
- kind: PersistentVolumeClaim
- name: redis-store|redis-cache
- patch: |-
- - op: replace
- path: /spec/resources/requests/storage
- value: 200Gi
- # `gitserver` & `indexed-search` to 1000Gi
- - target:
- kind: StatefulSet
- name: gitserver|indexed-search
- patch: |-
- - op: replace
- path: /spec/volumeClaimTemplates/0/spec/resources/requests/storage
- value: 1000Gi
-```
-
-### Custom resources allocation
-
-> WARNING: Only available in version 4.5.0 or above
-
-In cases where adjusting resource allocation (e.g. replica count, resource limits, etc.) is necessary, it is important to follow the instructions provided below.
-
-> NOTE: The built-in [replica transformer](https://kubectl.docs.kubernetes.io/references/kustomize/kustomization/replicas/) is currently not supported unless being used as a component.
-
-**Step 1**: Create a copy of the `components/custom/resources` directory inside your overlay directory `instances/$INSTANCE_NAME`
-
-Rename it to `custom-resources`:
-
-```bash
-# rename the directory from 'custom/resources' to 'custom-resources'
-$ cp -R components/custom/resources instances/$INSTANCE_NAME/custom-resources
-```
-
-**Step 2**: In the newly copied `instances/$INSTANCE_NAME/custom-resources/kustomization.yaml` file:
-
-1. uncomment the patches for the services you would like to adjust resources for, and then;
-2. update the resource values accordingly
-
-For example, the following patches update the resources for:
-
-- gitserver
- - increase replica count to 2
- - adjust resources limits and requests
-- pgsql
- - increase storage size to 500Gi
-
-```yaml
-# instances/$INSTANCE_NAME/custom-resources/kustomization.yaml
- patches:
- - patch: |-
- apiVersion: apps/v1
- kind: StatefulSet
- metadata:
- name: gitserver
- spec:
- replicas: 2
- template:
- spec:
- containers:
- - name: gitserver
- resources:
- limits:
- cpu: "8"
- memory: 32G
- requests:
- cpu: "1"
- memory: 2G
- - patch: |-
- apiVersion: v1
- kind: PersistentVolumeClaim
- metadata:
- name: pgsql
- spec:
- resources:
- requests:
- storage: 500Gi
-```
-
-> WARNING: Please make sure the patches for services you are not adjusting resources for are left uncommented. **Do not remove** `patches/update-endpoints.yaml`.
-
-**Step 3**: In the `instances/$INSTANCE_NAME/kustomization.yaml` file, add the `custom-resources` directory created in step 1 to your components-list under the *Resource Allocation* section:
-
-```yaml
-# instances/$INSTANCE_NAME/kustomization.yaml
- components:
- - custom-resources
-```
-
-> WARNING: If *service-discovery* is not enabled for the sourcegraph-frontend service, the `instances/$INSTANCE_NAME/custom-resources/endpoint-update.yaml` file within the patches subdirectory is responsible for updating the relevant variables for the frontend to generate the endpoint addresses for each service replica. It should not be removed at any point.
-
-### Remove securityContext
-
-The `remove/security-context` component removes all the `securityContext` configurations pre-defined in base.
-
-```yaml
-# instances/$INSTANCE_NAME/kustomization.yaml
- components:
- - ../../components/remove/security-context
-```
-
-### Remove DaemonSets
-
-If you do not have permission to deploy DaemonSets, you can include the `remove/daemonset` component to remove all services with DaemonSets resources (e.g. node-exporter) from the [monitoring resources](#monitoring-stack):
-
-```yaml
-# instances/$INSTANCE_NAME/kustomization.yaml
- resources:
- # Deploy Sourcegraph main stack
- - ../../base/sourcegraph
- # Deploy Sourcegraph monitoring stack
- - ../../base/monitoring
- components:
- # Make sure the cAdvisor and otel are excluded from the components list
- # As they both include daemonset
- # - ../../components/monitoring/cadvisor
- # - ../../components/monitoring/otel
- # component to remove all daemonsets from the monitoring stack
- - ../../components/remove/daemonset
-```
-
-> NOTE: If `monitoring` is not included under resources, adding the `remove/daemonset component` would result in errors because there will be no daemonsets to remove.
-
----
-
-## Storage class
-
-A storage class is required for all persistent volume claims by default. It must be configured and created before deploying Sourcegraph to your cluster. See [the official documentation](https://kubernetes.io/docs/tasks/administer-cluster/change-pv-reclaim-policy/#changing-the-reclaim-policy-of-a-persistentvolume) for more information about configuring persistent volumes.
-
-### Google Cloud Platform
-
-
-**Step 1**: Read and follow the [official documentation](https://cloud.google.com/kubernetes-engine/docs/how-to/persistent-volumes/gce-pd-csi-driver) for enabling the persistent disk CSI driver on a [new](https://cloud.google.com/kubernetes-engine/docs/how-to/persistent-volumes/gce-pd-csi-driver#enabling_the_on_a_new_cluster) or [existing](https://cloud.google.com/kubernetes-engine/docs/how-to/persistent-volumes/gce-pd-csi-driver#enabling_the_on_an_existing_cluster) cluster.
-
-**Step 2**: Include the GCP storage class component to the `kustomization.yaml` file for your Kustomize overlay:
-
-```yaml
-# instances/$INSTANCE_NAME/kustomization.yaml
- components:
- - ../../components/storage-class/gcp
-```
-
-The component takes care of creating a new storage class named `sourcegraph` with the following configurations:
-
-- Provisioner: pd.csi.storage.gke.io
-- SSD: types: pd-ssd
-
-It also updates the storage class name for all resources to `sourcegraph`.
-
-[Additional documentation](https://cloud.google.com/kubernetes-engine/docs/how-to/persistent-volumes/gce-pd-csi-driver) for more information.
-
-### Amazon Web Services
-
-**Step 1**: Follow the [official instructions](https://docs.aws.amazon.com/eks/latest/userguide/ebs-csi.html) to deploy the [Amazon Elastic Block Store (Amazon EBS) Container Storage Interface (CSI) driver](https://docs.aws.amazon.com/eks/latest/userguide/ebs-csi.html).
-
-**Step 2**: Include one of the AWS storage class components in your overlay: [storage-class/aws/eks](https://sourcegraph.com/github.com/sourcegraph/deploy-sourcegraph-k8s/-/tree/components/storage-class/aws/eks) or [storage-class/aws/ebs](https://sourcegraph.com/github.com/sourcegraph/deploy-sourcegraph-k8s/-/tree/components/storage-class/aws/ebs)
-
- * The [storage-class/aws/ebs-csi](https://sourcegraph.com/github.com/sourcegraph/deploy-sourcegraph-k8s/-/tree/components/storage-class/aws/eks) component is configured with the `ebs.csi.aws.com` storage class provisioner for clusters with self-managed Amazon EBS Container Storage Interface driver installed
- * The [storage-class/aws/aws-ebs](https://sourcegraph.com/github.com/sourcegraph/deploy-sourcegraph-k8s/-/tree/components/storage-class/aws/ebs) component is configured with the `kubernetes.io/aws-ebs` storage class provisioner for clusters with the [AWS EBS CSI driver installed as Amazon EKS add-on](https://docs.aws.amazon.com/eks/latest/userguide/managing-ebs-csi.html)
-
-
-```yaml
-# instances/$INSTANCE_NAME/kustomization.yaml
- components:
- # Set provisioner to `kubernetes.io/aws-ebs`
- - ../../components/storage-class/aws/aws-ebs
- # Set provisioner to `ebs.csi.aws.com`
- - ../../components/storage-class/aws/ebs-csi
-```
-
-[Additional documentation](https://docs.aws.amazon.com/eks/latest/userguide/ebs-csi.html) for more information.
-
-### Azure
-
-> WARNING: If you are deploying on Azure, you **must** ensure that your cluster is created with support for CSI storage drivers [(link)](https://docs.microsoft.com/en-us/azure/aks/csi-storage-drivers). This **can not** be enabled after the fact
-
-**Step 1**: Follow the [official instructions](https://docs.microsoft.com/en-us/azure/aks/csi-storage-drivers) to deploy the [Container Storage Interface (CSI) drivers](https://learn.microsoft.com/en-us/azure/aks/csi-storage-drivers).
-
-**Step 2**: Include the azure storage class component to the `kustomization.yaml` file for your Kustomize overlay:
-
-```yaml
-# instances/$INSTANCE_NAME/kustomization.yaml
- components:
- - ../../components/storage-class/azure
-```
-
-This component creates a new storage class named `sourcegraph` in your cluster with the following configurations:
-
-- provisioner: disk.csi.azure.com
-- parameters.storageaccounttype: Premium_LRS
- - This configures SSDs and is highly recommended.
- - **A Premium VM is required.**
-
-[Additional documentation](https://docs.microsoft.com/en-us/azure/aks/csi-storage-drivers) for more information.
-
-### k3s
-
-Configure to use the default storage class `local-path` in a k3s cluster:
-
-```yaml
-# instances/$INSTANCE_NAME/kustomization.yaml
- components:
- - ../../components/storage-class/k3s
-```
-
-### Trident
-
-If you are using Trident as your storage orchestrator, you must have [fsType](https://docs.netapp.com/us-en/trident/trident-reference/objects.html#storage-pool-selection-attributes) defined in your storageClass for it to respect the volume ownership required by Sourcegraph. When [fsType](https://docs.netapp.com/us-en/trident/trident-reference/objects.html#storage-pool-selection-attributes) is not set, all the files within the cluster will be owned by user `99 (NOBODY)`, resulting in permission issues for all Sourcegraph databases.
-
-Add one of the available `storage-class/trident/$FSTYPE` components to the `kustomization.yaml` file for your Kustomize overlay based on your fsType:
-
-```yaml
-# instances/$INSTANCE_NAME/kustomization.yaml
- components:
- # -- fsType: ext3
- - ../../components/storage-class/trident/ext3
- # -- fsType: ext4
- - ../../components/storage-class/trident/ext4
- # -- fsType: xfs
- - ../../components/storage-class/trident/xfs
-```
-
-### Other cloud providers
-
-To use an **existing** storage class provided by other cloud providers:
-
-**Step 1**: Include the `storage-class/name-update` component to your overlay:
-
- ```yaml
- # instances/$INSTANCE_NAME/kustomization.yaml
- components:
- - ../../components/storage-class/name-update
- ```
-
-**Step 2**: Enter the value of your existing storage class name in your [buildConfig.yaml file](/admin/deploy/kubernetes/kustomize#buildconfig-yaml) using the `STORAGECLASS_NAME` config key
-
-Example, add `STORAGECLASS_NAME=sourcegraph` if `sourcegraph` is the name for the existing storage class:
-
- ```yaml
- # instances/$INSTANCE_NAME/buildConfig.yaml
- kind: SourcegraphBuildConfig
- metadata:
- name: sourcegraph-kustomize-config
- data:
- STORAGECLASS_NAME: sourcegraph # [ACTION] Set storage class name here
- ```
-
- The `storage-class/name-update` component updates the `storageClassName` field for all associated resources to the `STORAGECLASS_NAME` value set in step 2.
-
-### Update storageClassName
-
-To updates the `storageClassName` field for all associated resources:
-
-**Step 1**: Include the `storage-class/name-update` component to your overlay:
-
- ```yaml
- # instances/$INSTANCE_NAME/kustomization.yaml
- components:
- - ../../components/storage-class/name-update
- ```
-
-**Step 2**: Enter the value of your existing storage class name in your [buildConfig.yaml](/admin/deploy/kubernetes/kustomize/#buildconfig-yaml) file using the `STORAGECLASS_NAME` config key
-
-Example, set `STORAGECLASS_NAME=sourcegraph` if `sourcegraph` is the name for the existing storage class:
-
- ```yaml
- # instances/$INSTANCE_NAME/buildConfig.yaml
- data:
- STORAGECLASS_NAME: sourcegraph # [ACTION] Set storage class name here
- ```
-
- The `storage-class/name-update` component updates the `storageClassName` field for all associated resources to the `STORAGECLASS_NAME` value set in step 2.
-
-### Create a custom storage class
-
-To create a custom storage class:
-
-**Step 1**: Include the `storage-class/cloud` component to your overlay:
-
-```yaml
-# instances/$INSTANCE_NAME/kustomization.yaml
- components:
- - ../../components/storage-class/cloud
-```
-
-Update the following variables in your [buildConfig.yaml](/admin/deploy/kubernetes/kustomize/#buildconfig-yaml) file. Replace them with the correct values according to the instructions provided by your cloud provider:
-
-```yaml
-# instances/$INSTANCE_NAME/buildConfig.yaml
- data:
- # [ACTION] Set values below
- STORAGECLASS_NAME: STORAGECLASS_NAME
- STORAGECLASS_PROVISIONER: STORAGECLASS_PROVISIONER
- STORAGECLASS_PARAM_TYPE: STORAGECLASS_PARAM_TYPE
-```
-
-> IMPORTANT: Make sure to create the storage class in your cluster before deploying Sourcegraph
-
----
-
-## Network access
-
-To allow external users to access the main web server, you need to configure it to be reachable over the network.
-
-We recommend using the [ingress-nginx](https://kubernetes.github.io/ingress-nginx/) [ingress](https://kubernetes.io/docs/concepts/services-networking/ingress/) controller for production environments.
-
-### Ingress controller
-
-To utilize the `sourcegraph-frontend` ingress, you'll need to install a NGINX ingress controller (ingress-nginx) in your cluster. Follow the official instructions at https://kubernetes.github.io/ingress-nginx/deploy/ to install the ingress-nginx controller in your cluster.
-
-Alternatively, you can build the manifests using one of our pre-configured ingress-nginx-controller overlays:
-
-```bash
-# Build manifests for AWS
-$ kubectl kustomize examples/ingress-controller/aws -o ingress-controller.yaml
-# Build manifests for other cloud providers
-$ kubectl kustomize examples/ingress-controller/cloud -o ingress-controller.yaml
-# Deploy to cluster after reviewing the manifests in ingress-controller.yaml
-$ kubectl apply -f ingress-controller.yaml
-```
-
-Check the external address by running the following command and look for the `LoadBalancer` entry:
-
-```bash
-$ kubectl -n ingress-nginx get svc
-```
-
-Verify that the ingress-nginx IP is accessible. If you are having trouble accessing Sourcegraph, see [Troubleshooting ingress-nginx](https://kubernetes.github.io/ingress-nginx/troubleshooting/) for further assistance. The namespace of the ingress-controller is ingress-nginx.
-
-Once you have completed the installation process for Sourcegraph, run the following command to check if an IP address has been assigned to your ingress resource. This IP address or the configured URL can then be used to access Sourcegraph in your browser.
-
-```bash
-$ kubectl get ingress sourcegraph-frontend
-
-NAME CLASS HOSTS ADDRESS PORTS AGE
-sourcegraph-frontend sourcegraph.com 8.8.8.8 80, 443 1d
-```
-
-### TLS
-
-To ensure secure communication, it is recommended to enable Transport Layer Security (TLS) and properly configure a certificate on your Ingress. This can be done by utilizing managed certificate solutions provided by cloud providers or by manually configuring a certificate.
-
-To manually configure a certificate via [TLS Secrets](https://kubernetes.io/docs/concepts/configuration/secret/#tls-secrets), follow these steps:
-
-**Step 1**: Move the `tls.crt` and `tls.key` files to the root of your overlay directory (e.g. `instances/$INSTANCE_NAME`).
-
-**Step 2**: Include the following lines in your overlay to generate secrets with the provided files:
-
-```yaml
-# instances/$INSTANCE_NAME/kustomization.yaml > [SECRETS GENERATOR]
- secretGenerator:
- - name: sourcegraph-frontend-tls
- behavior: create
- files:
- - tls.crt
- - tls.key
-```
-
-This will create a new Secret resource named sourcegraph-frontend-tls that contains the encoded cert and key:
-
-```yaml
-# cluster.yaml - output file after running build
- apiVersion: v1
- kind: Secret
- type: kubernetes.io/tls
- metadata:
- name: sourcegraph-frontend-tls-99dh8g92m5
- namespace: $YOUR_NAMESPACE
- data:
- tls.crt: |
- LS...FUlRJRklDQVRFLS0tLS0=
- tls.key: |
- LS...SSVZBVEUgS0VZLS0tLS0=
-# the data is abbreviated in this example
-```
-
-**Step 3**: Configure the TLS settings of your Ingress by adding the following variables to your [buildConfig.yaml](/admin/deploy/kubernetes/kustomize/#buildconfig-yaml) file:
-
-- **TLS_HOST**: your domain name
-- **TLS_INGRESS_CLASS_NAME**: ingress class name required by your cluster-issuer
-- **TLS_CLUSTER_ISSUER**: name of the cluster-issuer
-
-Example:
-
-```yaml
-# instances/$INSTANCE_NAME/buildConfig.yaml
- data:
- # [ACTION] Set values below
- TLS_HOST: sourcegraph.company.com
- TLS_INGRESS_CLASS_NAME: example-ingress-class-name
- TLS_CLUSTER_ISSUER: letsencrypt
-```
-
-Step 4: Include the `tls` component:
-
-```yaml
-# instances/$INSTANCE_NAME/kustomization.yaml
- components:
- - ../../components/network/tls
-```
-
-### TLS with Let’s Encrypt
-
-Alternatively, you can configure [cert-manager with Let’s Encrypt](https://cert-manager.io/docs/configuration/acme/) in your cluster. Then, follow the steps listed above for configuring TLS certificate via TLS Secrets manually. However, when adding the variables to the [buildConfig.yaml/admin/deploy/kubernetes/kustomize/#buildconfig-yaml) file, set **TLS_CLUSTER_ISSUER=letsencrypt** to include the cert-manager with Let's Encrypt.
-
-### TLS secret name
-
-If the name of your secret for TLS is not `sourcegraph-frontend-tls`, you can replace it using the `$TLS_SECRET_NAME` config key:
-
-```yaml
-# instances/$INSTANCE_NAME/buildConfig.yaml
- data:
- # [ACTION] Set values below
- TLS_SECRET_NAME: sourcegraph-tls
-```
-
-Then, include the `tls-secretname` component:
-
-```yaml
-# instances/$INSTANCE_NAME/kustomization.yaml
- components:
- - ../../components/network/tls-secretname
-```
-
----
-
-## Ingress
-
-Configuration options for ingress installed for sourcegraph-frontend.
-
-### AWS ALB
-
-Component to configure Ingress to use [AWS Load Balancer Controller](https://docs.aws.amazon.com/eks/latest/userguide/aws-load-balancer-controller.html) to expose Sourcegraph publicly by updating annotation to `kubernetes.io/ingress.class: alb` in frontend ingress.
-
-```yaml
-# instances/$INSTANCE_NAME/kustomization.yaml
- components:
- - ../../components/ingress/alb
-```
-
-### GKE
-
-Component to configure network access for GKE clusters with HTTP load balancing enabled.
-
-It also adds a [BackendConfig CRD](https://cloud.google.com/kubernetes-engine/docs/how-to/ingress-configuration#create_backendconfig). This is necessary to instruct the GCP load balancer on how to perform health checks on our deployment.
-
-```yaml
-# instances/$INSTANCE_NAME/kustomization.yaml
- components:
- - ../../components/ingress/gke
-```
-
-### k3s
-
-Component to configure Ingress to use the default HTTP reverse proxy and load balancer `traefik` in k3s clusters.
-
-```yaml
-# instances/$INSTANCE_NAME/kustomization.yaml
- components:
- - ../../components/ingress/k3s
-```
-
-### Hostname
-
-To configure the hostname for your Sourcegraph ingress, follow these steps:
-
-**Step 1**: In your [buildConfig.yaml](/admin/deploy/kubernetes/kustomize/#buildconfig-yaml) file, include the `HOST_DOMAIN` variable and set it to your desired hostname, for example:
-
-```yaml
-# instances/$INSTANCE_NAME/buildConfig.yaml
- data:
- # [ACTION] Set values below
- HOST_DOMAIN: sourcegraph.company.com
-```
-
-**Step 2**: Include the hostname component in your components.
-
-```yaml
-# instances/$INSTANCE_NAME/kustomization.yaml
- components:
- - ../../components/ingress/hostname
-```
-
-This will configure the hostname for the ingress resource, allowing external users to access Sourcegraph using the specified hostname.
-
-### ClusterIP
-
-The Sourcegraph frontend service is configured as a [ClusterIP](https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types) by default, which allows it to be accessed within the Kubernetes cluster using a stable IP address provided by Kubernetes. If you want to make the frontend service accessible from outside the cluster, you can use the [network/nodeport](#nodeport) or [network/loadbalancer](#loadbalancer) components.
-
-### NodePort
-
-The `network/nodeport` component creates a frontend service of [type NodePort](https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport), making it accessible by using the IP address of any node in the cluster, along with the specified nodePort value (30080).
-
-```yaml
-# instances/$INSTANCE_NAME/kustomization.yaml
- components:
- - ../../components/network/nodeport/30080
-```
-
-### LoadBalancer
-
-The `network/loadbalancer` component sets the type of the frontend service as [LoadBalancer](https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer), which provisions a load balancer and makes the service accessible from outside the cluster.
-
-```yaml
-# instances/$INSTANCE_NAME/kustomization.yaml
- components:
- - ../../components/network/loadbalancer
-```
-
-### Annotations
-
-To configure ingress-nginx annotations for the Sourcegraph frontend ingress:
-
-**Step 1**: Create a subdirectory called 'patches' within the directory of your overlay
-
-```bash
-$ mkdir -p instances/$INSTANCE_NAME/patches
-```
-
-**Step 2**: Copy the `frontend-ingress-annotations.yaml` patch file from the components/patches directory to the new [patches subdirectory](/admin/deploy/kubernetes/kustomize/#patches-directory)
-
-```bash
-$ cp components/patches/frontend-ingress-annotations.yaml instances/$INSTANCE_NAME/patches/frontend-ingress-annotations.yaml
-```
-
-**Step 3**: Add the additional annotations at the end of the new patch file
-
-**Step 4**: Include the patch file in your overlay under `patches`:
-
- ```yaml
- # instances/$INSTANCE_NAME/kustomization.yaml
- components:
- - ../../components/...
- # ...
- patches:
- - patch: patches/frontend-ingress.annotations.yaml
- ```
-
-This will add the annotations specified in your copy of the [frontend-ingress-annotations.yaml](https://github.com/sourcegraph/deploy-sourcegraph-k8s/blob/master/base/sourcegraph/frontend/sourcegraph-frontend.Ingress.yaml) file to the sourcegraph-frontend ingress resource. For more information on [ingress-nginx annotations](https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/), refer to the [NGINX Configuration documentation](https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/).
-
-### NetworkPolicy
-
-To configure network policy for your Sourcegraph installation, you will need to follow these steps:
-
-1. Create a namespace for your Sourcegraph deployment as described in the [namespace section](#namespace).
-
-2. Include the network-policy component:
-
-```yaml
-# instances/$INSTANCE_NAME/kustomization.yaml
- components:
- - ../../components/network-policy
-```
-
-3. Apply the network-policy component to your cluster. This will create a NetworkPolicy resource that only allows traffic between pods in the namespace labeled with name: sourcegraph-prod
-
-4. If you need to allow traffic to external services or ingress traffic from the outside to the frontend, you will need to augment the example NetworkPolicy. You can check out this [collection](https://github.com/ahmetb/kubernetes-network-policy-recipes) of NetworkPolicies to get started.
-
-> NOTE: You should check with your cluster administrator to ensure that NetworkPolicy is supported in your cluster.
-
----
-
-## Network rule
-
-Add a network rule that allows incoming traffic on port 30080 (HTTP) to at least one node. Note that this configuration does not include support for Transport Layer Security (TLS).
-
-### Google Cloud Platform Firewall
-
-- Expose the necessary ports.
-
-```bash
-$ gcloud compute --project=$PROJECT firewall-rules create sourcegraph-frontend-http --direction=INGRESS --priority=1000 --network=default --action=ALLOW --rules=tcp:30080
-```
-
-- Include the nodeport component to change the type of the `sourcegraph-frontend` service from `ClusterIP` to `NodePort` with the `nodeport` component:
-
-```yaml
-# instances/$INSTANCE_NAME/kustomization.yaml
- components:
- - ../../components/network/nodeport/30080
-```
-
-- Directly applying this change to a running service [will fail](https://github.com/kubernetes/kubernetes/issues/42282). You must first delete the old service before redeploying a new one (with a few seconds of downtime):
-
-```bash
-$ kubectl delete svc sourcegraph-frontend
-```
-
-- Find a node name.
-
-```bash
-$ kubectl get pods -l app=sourcegraph-frontend -o=custom-columns=NODE:.spec.nodeName
-```
-
-- Get the EXTERNAL-IP address (will be ephemeral unless you [make it static](https://cloud.google.com/compute/docs/ip-addresses/reserve-static-external-ip-address#promote_ephemeral_ip)).
-
-```bash
-$ kubectl get node $NODE -o wide
-```
-
-Learn more about [Google Cloud Platform Firewall rules](https://cloud.google.com/compute/docs/vpc/using-firewalls).
-
-### AWS Security Group
-
-Sourcegraph should now be accessible at `$EXTERNAL_ADDR:30080`, where `$EXTERNAL_ADDR` is the address of _any_ node in the cluster.
-
-Learn more about [AWS Security Group rules](http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html).
-
-### Rancher Kubernetes Engine
-
-If your [Rancher Kubernetes Engine (RKE)](https://rancher.com/docs/rke/latest/en/) cluster is configured to use [NodePort](https://docs.ranchermanager.rancher.io/v2.0-v2.4/how-to-guides/new-user-guides/migrate-from-v1.6-v2.x/expose-services#nodeport), include the [network/nodeport/custom component](https://sourcegraph.com/github.com/sourcegraph/deploy-sourcegraph-k8s/-/tree/components/network/nodeport/custom) to change the port type for `sourcegraph-frontend` service from `ClusterIP` to `NodePort` to use `nodePort: 30080`:
-
-```yaml
-# instances/$INSTANCE_NAME/kustomization.yaml
-components:
- - ../../components/network/nodeport/30080
-```
-
-> NOTE: Check with your upstream admin for the correct nodePort value.
-
----
-
-## Service mesh
-
-There are a few [known issues](/admin/deploy/kubernetes/troubleshoot#service-mesh) when running Sourcegraph with service mesh. We recommend including the `network/envoy` component in your components list to bypass the issue where Envoy, the proxy used by Istio, breaks Sourcegraph search function by dropping proxied trailers for [HTTP/1](https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/core/v3/protocol.proto#config-core-v3-http1protocoloptions) requests.
-
-```yaml
-# instances/$INSTANCE_NAME/kustomization.yaml
- components:
- - ../../components/network/envoy
-```
-
----
-
-## Environment variables
-
-### Frontend
-
-To update the environment variables for the **sourcegraph-frontend** service, add the new environment variables to the end of the *FRONTEND ENV VARS* section at the bottom of your [kustomization file](/admin/deploy/kubernetes/kustomize/#kustomizationyaml). For example:
-
-```yaml
-# instances/$INSTANCE_NAME/kustomization.yaml
-components:
- - ../../components/...
-configMapGenerator:
- - name: sourcegraph-frontend-env
- behavior: merge
- literals:
- - DEPLOY_TYPE=kustomize
- - NEW_ENV_VAR=NEW_VALUE
-```
-
-These values will be automatically merged with the environment variables currently listed in the ConfigMap for frontend.
-
-> WARNING: You must restart frontend for the updated values to be activated
-
-### Gitserver
-
-You can update environment variables for **gitserver** with `patches`:
-
-For example, to add new environment variables `SRC_ENABLE_GC_AUTO` and `SRC_ENABLE_SG_MAINTENANCE`:
-
-```yaml
-# instances/$INSTANCE_NAME/kustomization.yaml
-patches:
- - target:
- name: gitserver
- kind: StatefulSet
- patch: |-
- - op: add
- path: /spec/template/spec/containers/0/env/-
- value:
- name: SRC_ENABLE_GC_AUTO
- value: "true"
- - op: add
- path: /spec/template/spec/containers/0/env/-
- value:
- name: SRC_ENABLE_SG_MAINTENANCE
- value: "false"
-```
-
-### Searcher
-
-You can update environment variables for **searcher** with `patches`.
-
-For example, to update the value for `SEARCHER_CACHE_SIZE_MB`:
-
-```yaml
-# instances/$INSTANCE_NAME/kustomization.yaml
- patches:
- - target:
- name: searcher
- kind: StatefulSet|Deployment
- patch: |-
- - op: replace
- path: /spec/template/spec/containers/0/env/0
- value:
- name: SEARCHER_CACHE_SIZE_MB
- value: "50000"
-```
-
-### Symbols
-
-You can update environment variables for **searcher** with `patches`.
-
-For example, to update the value for `SYMBOLS_CACHE_SIZE_MB`:
-
-```yaml
-# instances/$INSTANCE_NAME/kustomization.yaml
- patches:
- - target:
- name: symbols
- kind: StatefulSet|Deployment
- patch: |-
- - op: replace
- path: /spec/template/spec/containers/0/env/0
- value:
- name: SYMBOLS_CACHE_SIZE_MB
- value: "50000"
-```
-
----
-
-## External services
-
-You can use an external or managed version of PostgreSQL and Redis with your Sourcegraph instance. For detailed information as well as the requirements for each service, please see our docs on [using external services with Sourcegraph](/admin/external_services/).
-
-### External Postgres
-
-For optimal performance and resilience, it is recommended to use an external database when deploying Sourcegraph. For more information on database requirements, please refer to the [Postgres guide](/admin/postgres).
-
-To connect Sourcegraph to an existing PostgreSQL instance, add the relevant environment variables ([such as PGHOST, PGPORT, PGUSER, etc.](http://www.postgresql.org/docs/current/static/libpq-envars.html)) to the frontend ConfigMap by adding the new environment variables to the end of the *FRONTEND ENV VARS* section at the bottom of your [kustomization file](/admin/deploy/kubernetes/kustomize/#kustomizationyaml). For example:
-
-```yaml
-# instances/$INSTANCE_NAME/kustomization.yaml
- components:
- - ../../components/...
- configMapGenerator:
- - name: sourcegraph-frontend-env
- behavior: merge
- literals:
- - DEPLOY_TYPE=kustomize
- - PGHOST=NEW_PGHOST
- - PGPORT=NEW_PGPORT
-```
-
-> WARNING: You must restart frontend for the updated values to be activated
-
-### External Redis
-
-Sourcegraph supports specifying an external Redis server with these environment variables:
-
-- **REDIS_CACHE_ENDPOINT**=[redis-cache:6379](https://sourcegraph.com/search?q=context:global+repo:%5Egithub%5C.com/sourcegraph/sourcegraph%24++REDIS_CACHE_ENDPOINT+AND+REDIS_STORE_ENDPOINT+-file:doc+file:internal&patternType=literal) for caching information.
-- **REDIS_STORE_ENDPOINT**=[redis-store:6379](https://sourcegraph.com/search?q=context:global+repo:%5Egithub%5C.com/sourcegraph/sourcegraph%24++REDIS_CACHE_ENDPOINT+AND+REDIS_STORE_ENDPOINT+-file:doc+file:internal&patternType=literal) for storing information (session data and job queues).
-
-When using an external Redis server, the corresponding environment variable must also be added to the following services:
-
-
-- `sourcegraph-frontend`
-- `repo-updater`
-- `gitserver`
-- `searcher`
-- `symbols`
-- `worker`
-
-**Step 1**: Include the `services/redis` component in your components:
-
-This adds the new environment variables for redis to the services listed above.
-
-```yaml
-# instances/$INSTANCE_NAME/kustomization.yaml
- components:
- - ../../components/services/redis
-```
-
-**Step 2**: Set the following variable in your [buildConfig.yaml/admin/deploy/kubernetes/kustomize/#buildconfig-yaml) file:
-
-```yaml
-# instances/$INSTANCE_NAME/buildConfig.yaml
- data:
- # [ACTION] Set values below
- REDIS_CACHE_ENDPOINT: REDIS_CACHE_DSN
- REDIS_STORE_ENDPOINT: REDIS_STORE_DSN
-```
-
-> WARNING: You must restart frontend for the updated values to be activated
-
-### External Embeddings Object Storage
-
-Sourcegraph supports specifying an external Object Store for embeddings indexes.
-
-**Step 1**: Create a subdirectory called 'patches' within the directory of your overlay
-
-```bash
-$ mkdir instances/$INSTANCE_NAME/patches
-```
-
-**Step 2**: Copy the `embeddings-backend.yaml` patch file from the components/patches directory to the new [patches subdirectory](kustomize/#patches-directory)
-
-```bash
-$ cp components/patches/embeddings-backend.yaml instances/$INSTANCE_NAME/patches/embeddings-backend.yaml
-```
-
-**Step 3**: Configure the external object store [backend](/cody/core-concepts/embeddings/manage-embeddings#store-embedding-indexes)
-
-**Step 4**: Include the patch file in your overlay under `patches`:
-
- ```yaml
- # instances/$INSTANCE_NAME/kustomization.yaml
- components:
- - ../../components/...
- # ...
- patches:
- - patch: patches/embeddings-backend.yaml
- ```
----
-
-## SSH for cloning
-
-Sourcegraph will clone repositories using SSH credentials when the `id_rsa` and `known_hosts` files are mounted at `/home/sourcegraph/.ssh` (or `/root/.ssh` when the cluster is run by root users) in the `gitserver` deployment.
-
-**WARNING:** Do not commit the actual `id_rsa` and `known_hosts` files to any public repository.
-
-To mount the files through Kustomize:
-
-**Step 1:** Copy the required files to the `configs` folder at the same level as your overylay's kustomization.yaml file
-
-**Step 2:** Include the following in your overlay to [generate secrets](https://kubernetes.io/docs/tasks/configmap-secret/managing-secret-using-kustomize/) that base64 encoded the values in those files
-
- ```yaml
- # instances/$INSTANCE_NAME/kustomization.yaml > [SECRETS GENERATOR]
- secretGenerator:
- - name: gitserver-ssh
- files:
- - configs/id_rsa
- - configs/known_hosts
- ```
-
-**Step 3:** Include the following component to mount the [secret as a volume](https://kubernetes.io/docs/concepts/configuration/secret/#using-secrets-as-files-from-a-pod) in [gitserver.StatefulSet.yaml](https://github.com/sourcegraph/deploy-sourcegraph-k8s/blob/master/base/sourcegraph/gitserver/gitserver.StatefulSet.yaml).
-
- ```yaml
- # instances/$INSTANCE_NAME/kustomization.yaml
- components:
- # Enable SSH to clone repositories as non-root user (default)
- - ../../components/enable/ssh/non-root
- # Enable SSH to clone repositories as root user
- - ../../components/enable/ssh/root
- ```
-
-> NOTE: If you are running Sourcegraph with privileges using our [privileged component](https://sourcegraph.com/github.com/sourcegraph/deploy-sourcegraph-k8s/-/tree/components/privileged), you are most likely running Sourcegraph with `root` access and should use the [ssh/root component](https://sourcegraph.com/github.com/sourcegraph/deploy-sourcegraph-k8s/-/tree/components/enable/ssh/root) to enable SSH cloning.
-
-**Step 4:** Update code host configuration
-
-Update your [code host configuration file](/admin/external_service/#full-code-host-docs) to enable ssh cloning. For example, set [gitURLType](/admin/external_service/github#gitURLType) to `ssh` for [GitHub](/admin/external_service/github). See the [external service docs](/admin/external_service/) for the correct setting for your code host.
-
----
-
-## Openshift
-
-### Arbitrary users
-
-Our Postgres databases can only be run with the UIDs defined by the upstream images, for example, [UID 70 and GID 70](https://sourcegraph.com/github.com/docker-library/postgres@master/-/blob/12/alpine/Dockerfile?L9-15#L4)--this could cause permission issues for clusters that run pods with arbitrary users. This can be resolved with the `utils/uid` component created based on one of the solutions suggested by Postgres on their [official docker page](https://hub.docker.com/_/postgres).
-
-The `utils/uid` component bind-mount `/etc/passwd` as read-only through hostpath so that you can run the containers with valid users on your host.
-
-```yaml
- components:
- - ../../components/utils/uid
-```
-
----
-
-## Add license key
-
-Sourcegraph's Kubernetes deployment [requires an Enterprise license key](https://about.sourcegraph.com/pricing).
-
-Once you have a license key, add it to your [site configuration](https://docs.sourcegraph.com/admin/patches/site_config).
-
----
-
-## Filtering cAdvisor metrics
-
-cAdvisor can pick up metrics for services unrelated to the Sourcegraph deployment running on the same nodes
-([Learn more](/dev/background-information/observability/cadvisor#identifying-containers)) **when running with privileges**. To work around this:
-
-1\. Create a subdirectory called 'patches' within the directory of your overlay
-
-```bash
-$ mkdir instances/$INSTANCE_NAME/patches
-```
-
-2\. Create a copy of the `prometheus.ConfigMap.yaml` file in the new [patches subdirectory](/admin/deploy/kubernetes/kustomize/#patches-directory)
-
-```bash
-mv base/monitoring/prometheus/rbacs/prometheus.ConfigMap.yaml instances/$INSTANCE_NAME/patches/prometheus.ConfigMap.yaml
-```
-
-3\. In the copied ConfigMap file, add the following under `metric_relabel_configs` for the `kubernetes-pods` job:
-
-```yaml
-# instances/$INSTANCE_NAME/patches/prometheus.ConfigMap.yaml
- - job_name: 'kubernetes-pods'
- metric_relabel_configs:
- - source_labels: [container_label_io_kubernetes_pod_namespace]
- regex: ^$|ns-sourcegraph # ACTION: replace ns-sourcegraph with your namespace
- action: keep
-```
-
-Replace `ns-sourcegraph` with your namespace, e.g. `regex: ^$|your_namespace`.
-
-4\. Add the patches to your overlay:
-
-```yaml
-# instances/$INSTANCE_NAME/kustomization.yaml
- patches:
- - patch: patches/prometheus.ConfigMap.yaml
-```
-
-This will cause Prometheus to drop all metrics *from cAdvisor* that are not services running in the specified namespace.
-
----
-
-## Private registry
-
-**Step 1:** To update all image names with your private registry, e.g. `index.docker.io/sourcegraph/service_name` to `your.private.registry.com/sourcegraph/service_name`, include the `private-registry` component:
-
-```yaml
-# instances/$INSTANCE_NAME/kustomization.yaml
- components:
- - ../../components/enable/private-registry
-```
-
-**Step 2:** Set the `PRIVATE_REGISTRY` variable in your [buildConfig.yaml](/admin/deploy/kubernetes/kustomize/#buildconfig-yaml) file. For example:
-
-```yaml
-# instances/$INSTANCE_NAME/buildConfig.yaml
- data:
- PRIVATE_REGISTRY: your.private.registry.com # -- Replace 'your.private.registry.com'
-```
-
-### Add imagePullSecrets
-
-To add `imagePullSecrets` to all resources:
-
-**Step 1:** Include the `imagepullsecrets` component.
-
-```yaml
-# instances/$INSTANCE_NAME/kustomization.yaml
- components:
- - ../../components/resources/imagepullsecrets
-```
-
-**Step 2:** Set the `IMAGE_PULL_SECRET_NAME` variable in your [buildConfig.yaml](/admin/deploy/kubernetes/kustomize/#buildconfig-yaml) file.
-
-For example:
-
-```yaml
-# instances/$INSTANCE_NAME/buildConfig.yaml
- data:
- IMAGE_PULL_SECRET_NAME: YOUR_SECRET_NAME
-```
-
-**Alternative:** You can add the following patch under `patches`, and replace `YOUR_SECRET_NAME` with the name of your secret.
-
-```yaml
-# instances/$INSTANCE_NAME/kustomization.yaml
-patches:
- - patch: |-
- - op: add
- path: /spec/template/spec/imagePullSecrets
- value:
- name: YOUR_SECRET_NAME
- target:
- group: apps
- kind: StatefulSet|Deployment|DaemonSet
- version: v1
-```
-
----
-
-## Multi-version upgrade
-
-In order to perform a [multi-version upgrade](/admin/updates/#multi-version-upgrades), all pods must be scaled down to 0 except databases, which can be handled by including the `utils/multi-version-upgrade` component:
-
-```yaml
-# instances/$INSTANCE_NAME/kustomization.yaml
- components:
- - ../../components/utils/multi-version-upgrade
-```
-
-After completing the multi-version-upgrade process, exclude the component to allow the pods to scale back to their original number as defined in your overlay.
-
----
-
-## Migrate from Privileged to Non-privileged
-
-To migrate an existing deployment from root to non-root environment, you must first transfer ownership of all data directories to the specified non-root users for each service using the utils/migrate-to-nonprivileged component.
-
-After transferring ownerships, you can redeploy the instance with non-privileged configurations.
-
-```yaml
-# instances/$INSTANCE_NAME/kustomization.yaml
- components:
- - ../../components/utils/migrate-to-nonprivileged
-```
-
----
-
-## Outbound Traffic
-
-When working with an [Internet Gateway](http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Internet_Gateway.html) or VPC it may be necessary to expose ports for outbound network traffic. Sourcegraph must open port 443 for outbound traffic to code hosts, and to enable [telemetry](https://docs.sourcegraph.com/admin/pings) with Sourcegraph.com. Port 22 must also be opened to enable git SSH cloning by Sourcegraph. In addition, please make sure to apply other required changes to secure your cluster in a manner that meets your organization's security requirements.
-
----
-
-## Troubleshooting
-
-See the [Troubleshooting docs](/admin/deploy/kubernetes/troubleshoot).
diff --git a/docs/versioned/5.2/admin/deploy/kubernetes/eks.mdx b/docs/versioned/5.2/admin/deploy/kubernetes/eks.mdx
deleted file mode 100644
index 065a57ce4..000000000
--- a/docs/versioned/5.2/admin/deploy/kubernetes/eks.mdx
+++ /dev/null
@@ -1,100 +0,0 @@
-# Sourcegraph with Kubernetes on Amazon EKS
-
-[Amazon EKS](https://aws.amazon.com/eks/) is Amazon's managed Kubernetes offering, similar to how Google Cloud offers managed Kubernetes clusters (GKE).
-
-> WARNING: This guide applies exclusively to a Kubernetes deployment **without** Helm. If you have not deployed Sourcegraph yet, it is higly recommended to use Helm as it simplifies the configuration and greatly simplifies the later upgrade process. See our guidance on [using Helm to deploy to Amazon EKS](/admin/deploy/kubernetes/helm#configure-sourcegraph-on-elastic-kubernetes-service-eks).
-
-If your preferred cloud provider is Amazon, we strongly recommend using EKS instead of plain EC2. By using EKS, you will not need to manage your own Kubernetes control plane (complex). Instead, Amazon will provide it for you and you will only be responsible for managing the [NodeGroups](https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html) and the Sourcegraph deployment running on the Kubernetes cluster.
-
-This guide will help you create a simple Kuberentes cluster using EKS, for more information or other advanced use-cases, please check [Amazon EKS documentation](https://docs.aws.amazon.com/eks/latest/userguide/getting-started.html).
-
-## Requirements
-
-The easiest way to get started with Amazon EKS is using the `eksctl`. This tool will create all the necesary resources to bootstrap a simple Kuberentes cluster in AWS.
-You can find an extensive guide on using `eksctl` with Amazon EKS in the [EKS Getting Starrted guide](https://docs.aws.amazon.com/eks/latest/userguide/getting-started-eksctl.html).
-
-Before moving forward, you will need:
-
-- `awscli`: The command line tool provided by Amazon to work with AWS resources. [Installation guide](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html) and [Configuration guide](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-config).
-- `kubectl`: The command line tool used for working with Kuberentes clusters and resources. [Installation guide](https://kubernetes.io/docs/tasks/tools/).
-- `eksctl`: A tool provided by Waveworks for configuring and creating EKS clusters in Amazon. [Installation guide](https://eksctl.io/introduction/#installation).
-- **IAM permissions**: The user that will be performing the installation must have permissions to work with Amazon EKS IAM roles and service linked roles, AWS CloudFormation, and a VPC and related resources.
-
-Through this guide, we will be using a number of parameters starting with `$` that you will need to replace with your desired values:
-
-- `$REGION`: The AWS region to use for all resources in this tutorial.
-- `$KEY_NAME`: The name of the SSH key-pair in AWS used to access instances.
-- `$CLUSTER_NAME`: A name to be given to the Amazon EKS Cluster.
-- `$NODE_TYPE`: The instance type that will be used by the cluster NodeGroup.
-- `$NODE_MAX`: The maximum number of nodes in your cluster.
-- `$NODE_MIN`: The minimum number of nodes in your cluster.
-
-## Sizing the cluster
-
-Before getting started, we need to identify the size for our initial cluster. You can use the following chart as reference:
-
-| Users | `$NODE_TYPE` | `$NODE_MIN` | `$NODE_MAX` | Cost est. |
-| -------- | ------------- | ----------- | ----------- | ------------ |
-| 10-500 | m6a.4xlarge | 3 | 6 | $59-118/day |
-| 500-2000 | m6a.4xlarge | 6 | 10 | $118-195/day |
-
-> **Note:** You can modify these values later on to scale up/down the number of worker nodes using the `eksctl` command line. For more information please the [eksctl documentation](https://eksctl.io/)
-
-## Create an EC2 key-pair
-
-> **Note:** If you already have an existing keypair you can skip this step and reuse your existing key
-
-Creating an EC2 keypair will allow you to access the Kuberentes nodes after the setup is complete, which might be required in the future to perform troublshooting or administration tasks.
-
-To create a key-pair in use the following command:
-
-```bash
-aws ec2 create-key-pair --region $REGION --key-name $KEY_NAME
-```
-
-## Create an Amazon EKS Cluster
-
-We will leverage `eksctl` to create our cluster, as it automates all the steps necesary to get our EKS Cluster and its NodeGroup working.
-
-> **Note:** This command might take 10-30 minutes to finish.
-
-```bash
-eksctl create cluster \
- --name $CLUSTER_NAME \
- --region $REGION \
- --with-oidc \
- --ssh-access \
- --ssh-public-key $KEY_NAME \
- --managed \
- --node-type $NODE_TYPE --nodes-min $NODE_MIN --nodes $NODE_MIN --nodes-max $NODE_MAX
-```
-
-## Access to the cluster
-
-Before accessing the cluster, we need to configure `kubectl` to connect to the correct cluster, we can do this with `eksctl`:
-
-```bash
-eksctl --region $REGION utils write-kubeconfig --cluster $CLUSTER_NAME
-```
-
-At this point, running `kubectl get svc` should show something like:
-
-```bash
-$ kubectl get svc
-NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
-kubernetes ClusterIP 172.20.0.1 443/TCP 4m
-```
-
-**Important**: If `kubectl` commands prompt you for username/password, make sure that `kubectl version` reports a client version of v1.10+. Older versions of kubectl do not work with the authentication configuration provided by Amazon EKS.
-
-## Deploy the Kubernetes Web UI Dashboard (optional)
-
-See [Tutorial: Deploy the Kubernetes Dashboard](https://docs.aws.amazon.com/eks/latest/userguide/dashboard-tutorial.html).
-
-## Deploy Sourcegraph! 🎉
-
-Your Kubernetes cluster is now all set up and running!
-
-Luckily, deploying Sourcegraph on your cluster is much easier and quicker than the above steps. :)
-
-Follow our [installation documentation](/admin/deploy/kubernetes/) to continue.
diff --git a/docs/versioned/5.2/admin/deploy/kubernetes/helm.mdx b/docs/versioned/5.2/admin/deploy/kubernetes/helm.mdx
deleted file mode 100644
index 51e245965..000000000
--- a/docs/versioned/5.2/admin/deploy/kubernetes/helm.mdx
+++ /dev/null
@@ -1,1157 +0,0 @@
-# Sourcegraph Helm Charts
-
-Helm offers a simple deployment process on Kubernetes.
-
->NOTE: We highly recommend [deploying Sourcegraph on Kubernetes with Kustomize](/admin/deploy/kubernetes) due to the flexibility it provides.
-
-## Requirements
-
-* [Helm 3 CLI](https://helm.sh/docs/intro/install/)
-* Kubernetes 1.19 or greater
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-> WARNING: Sourcegraph currently does not support migration from an existing Sourcegraph deployment without Helm to a Sourcegraph deployment using Helm. The information you are looking at is currently recommended for a new install of Sourcegraph. We are currently working to provide migration guidance from a non-Helm deployment. If you are inquiring about performing such a migration please email `support@sourcegraph.com`.
-
-## Why use Helm
-
-Our Helm chart has a lot of sensible defaults baked into the values.yaml so that when an override file is used to make the changes, you _never_ have to deal with merge conflicts during upgrades (see more about customizations in the [configuration](#configuration) section).
-
-
-## High-level overview of how to use Helm with Sourcegraph
-
-1. Prepare any required customizations
- - Most environments are likely to need changes from the defaults—use the guidance in [Configuration](#configuration).
- - These changes are inclusive of updates to resourcing for each service. See our [resource estimator](https://docs.sourcegraph.com/admin/deploy/resource_estimator) for more information.
-2. Review the changes
- - There are [three mechanisms](#reviewing-changes) that can be used to review any customizations made, this is an optional step, but may be useful the first time you deploy Sourcegraph, for peace of mind.
-3. Select your deployment method and follow the guidance:
- - [Google GKE](#configure-sourcegraph-on-google-kubernetes-engine-gke)
- - [AWS EKS](#configure-sourcegraph-on-elastic-kubernetes-service-eks)
- - [Azure AKS](#configure-sourcegraph-on-azure-managed-kubernetes-service-aks)
- - [Other cloud providers or on-prem](#configure-sourcegraph-on-other-cloud-providers-or-on-prem)
-
-
-## Quickstart
-
-> ℹ️ This quickstart guide is useful to those already familiar with Helm who have a good understanding of how to use Helm in the environment they want to deploy into, and who just want to quickly deploy Sourcegraph with Helm with the default configuration. If this doesn't cover what you need to know, see the links above for platform-specific guides.
-
-To use the Helm chart, add the Sourcegraph helm repository (on the machine used to interact with your cluster):
-
-```sh
-$ helm repo add sourcegraph https://helm.sourcegraph.com/release
-```
-
-Install the Sourcegraph chart using default values:
-
-```sh
-$ helm install --version 5.3.0 sourcegraph sourcegraph/sourcegraph
-```
-
-Sourcegraph should now be available via the address set. Browsing to the url should now provide access to the Sourcegraph UI to create the initial administrator account.
-
-More information on configuring the Sourcegraph application can be found here:
-[Configuring Sourcegraph](/admin/config/)
-
-
-## Configuration
-
-The Sourcegraph Helm chart is highly customizable to support a wide range of environments. We highly recommend that customizations be applied using an override file, which allows customizations to persist through upgrades without needing to manage merge conflicts.
-
-The default configuration values can be viewed in the [values.yaml](https://github.com/sourcegraph/deploy-sourcegraph-helm/blob/main/charts/sourcegraph/values.yaml) file along with all [supported options](https://github.com/sourcegraph/deploy-sourcegraph-helm/tree/main/charts/sourcegraph#configuration-options).
-
-To customize configuration settings with an override file, begin by creating an empty yaml file (e.g. `override.yaml`).
-
-(The configuration override file can be created in advance of deployment, and the configuration override settings can be populated in preparation.)
-
-It's recommended that the override file be maintained in a version control system such as GitHub, but for testing, this can be created on the machine from which the Helm deployment commands will be run.
-
-> WARNING: __DO NOT__ copy the [default values file](https://github.com/sourcegraph/deploy-sourcegraph-helm/blob/main/charts/sourcegraph/values.yaml) as a boilerplate for your override file. You risk having outdated values during future upgrades. Instead, only include the configuration that you need to change and override.
-
-Example overrides can be found in the [examples](https://github.com/sourcegraph/deploy-sourcegraph-helm/tree/main/charts/sourcegraph/examples) folder. Please take a look at our examples – feel free to copy and adapt them for your own override file.
-
-Providing the override file to Helm is done with the inclusion of the values flag and the name of the file:
-```sh
-$ helm upgrade --install --values ./override.yaml --version 5.3.0 sourcegraph sourcegraph/sourcegraph
-```
-When making configuration changes, it's recommended to review the changes that will be applied—see [Reviewing Changes](#reviewing-changes).
-
-### Specific Configuration Scenarios
-
-#### Using external PostgreSQL databases
-
-To use external PostgreSQL databases, first review our [general recommendations](https://docs.sourcegraph.com/admin/external_services/postgres#using-your-own-postgresql-server) and [required postgres permissions](https://docs.sourcegraph.com/admin/external_services/postgres#postgres-permissions-and-database-migrations).
-
-We recommend storing the credentials in [Secrets] created outside of the helm chart and managed in a secure manner. Each database requires its own Secret and should follow the following format. The Secret name can be customized as desired:
-
-```yaml
-apiVersion: v1
-kind: Secret
-metadata:
- name: pgsql-credentials
-data:
- # notes: secrets data has to be base64-encoded
- database: ""
- host: "" # example: pgsql.database.example.com
- password: ""
- port: ""
- user: ""
----
-apiVersion: v1
-kind: Secret
-metadata:
- name: codeintel-db-credentials
-data:
- # notes: secrets data has to be base64-encoded
- database: ""
- host: ""
- password: ""
- port: ""
- user: ""
----
-apiVersion: v1
-kind: Secret
-metadata:
- name: codeinsights-db-credentials
-data:
- # notes: secrets data has to be base64-encoded
- database: ""
- host: ""
- password: ""
- port: ""
- user: ""
-```
-
-The above Secrets should be deployed to the same namespace as the existing Sourcegraph deployment.
-
-You can reference the Secrets in your [override.yaml](https://github.com/sourcegraph/deploy-sourcegraph-helm/blob/main/charts/sourcegraph/examples/external-databases/override.yaml) by configuring the `existingSecret` key:
-
-```yaml
-codeIntelDB:
- enabled: false # disables deployment of the database
- auth:
- existingSecret: codeintel-db-credentials
-
-codeInsightsDB:
- enabled: false
- auth:
- existingSecret: codeinsights-db-credentials
-
-pgsql:
- enabled: false
- auth:
- existingSecret: pgsql-credentials
-```
-
-The [using external databases](https://github.com/sourcegraph/deploy-sourcegraph-helm/tree/main/charts/sourcegraph/examples/external-databases) example demonstrates this approach.
-
-Although not recommended, credentials can also be configured directly in the helm chart. For example, add the following to your override.yaml to customize pgsql credentials:
-
-```yaml
-pgsql:
- enabled: false # disable internal pgsql database
- auth:
- database: "customdb"
- host: pgsql.database.company.com # external pgsql host
- user: "newuser"
- password: "newpassword"
- port: "5432"
-```
-
-#### Using external Redis instances
-
-To use external Redis instances, first review our [general recommendations](https://docs.sourcegraph.com/admin/external_services/redis).
-
-
-If your external Redis instances do not require authentication, you can configure access in your [override.yaml](https://github.com/sourcegraph/deploy-sourcegraph-helm/blob/main/charts/sourcegraph/examples/external-redis/override.yaml) with the `endpoint` settings:
-
-```yaml
-redisCache:
- enabled: false
- connection:
- endpoint: redis://redis-cache.example.com:6379 # use a dedicated Redis, recommended
-
-redisStore:
- enabled: false
- connection:
- endpoint: redis://redis-shared.example.com:6379/2 # shared Redis, not recommended
-```
-
-If your endpoints do require authentication, we recommend storing the credentials in [Secrets] created outside of the helm chart and managed in a secure manner.
-
-```yaml
-apiVersion: v1
-kind: Secret
-metadata:
- name: redis-cache-connection
-data:
- # notes: secrets data has to be base64-encoded
- endpoint: ""
----
-apiVersion: v1
-kind: Secret
-metadata:
- name: redis-store-connection
-data:
- # notes: secrets data has to be base64-encoded
- endpoint: ""
-```
-
-You can reference this secret in your [override.yaml](https://github.com/sourcegraph/deploy-sourcegraph-helm/blob/main/charts/sourcegraph/examples/external-redis/override-secret.yaml) by configuring the `existingSecret` key:
-
-```yaml
-redisCache:
- enabled: false
- connection:
- existingSecret: redis-cache-connection
-
-redisStore:
- enabled: false
- connection:
- existingSecret: redis-store-connection
-```
-
-The [using your own Redis](https://github.com/sourcegraph/deploy-sourcegraph-helm/tree/main/charts/sourcegraph/examples/external-redis) example demonstrates this approach.
-
-#### Using external Object Storage
-
-To use an external Object Storage service (S3-compatible services, or GCS), first review our [general recommendations](https://docs.sourcegraph.com/admin/external_services/object_storage). Then review the following example and adjust to your use case.
-
-> See [override.yaml](https://github.com/sourcegraph/deploy-sourcegraph-helm/tree/main/charts/sourcegraph/examples/external-object-storage/override.yaml) for an example override file.
->
-> The example assumes the use of AWS S3. You may configure the environment variables accordingly for your own use case based on our [general recommendations](https://docs.sourcegraph.com/admin/external_services/object_storage).
-
-If you provide credentials with an access key / secret key, we recommend storing the credentials in [Secrets] created outside of the helm chart and managed in a secure manner. An example Secret is shown here:
-
-```yaml
-apiVersion: v1
-kind: Secret
-metadata:
- name: sourcegraph-s3-credentials
-data:
- # notes: secrets data has to be base64-encoded
- PRECISE_CODE_INTEL_UPLOAD_AWS_ACCESS_KEY_ID: ""
- PRECISE_CODE_INTEL_UPLOAD_AWS_SECRET_ACCESS_KEY: ""
-```
-
-In your [override.yaml](https://github.com/sourcegraph/deploy-sourcegraph-helm/tree/main/charts/sourcegraph/examples/external-object-storage/override.yaml), reference this Secret and the necessary environment variables:
-
-```yaml
-blobstore:
- enabled: false # Disable deployment of the built-in object storage
-
-# we use YAML anchors and alias to keep override file clean
-objectStorageEnv: &objectStorageEnv
- PRECISE_CODE_INTEL_UPLOAD_BACKEND:
- value: S3 # external object stoage type, one of "S3" or "GCS"
- PRECISE_CODE_INTEL_UPLOAD_BUCKET:
- value: lsif-uploads # external object storage bucket name
- PRECISE_CODE_INTEL_UPLOAD_AWS_ENDPOINT:
- value: https://s3.us-east-1.amazonaws.com
- PRECISE_CODE_INTEL_UPLOAD_AWS_REGION:
- value: us-east-1
- PRECISE_CODE_INTEL_UPLOAD_AWS_ACCESS_KEY_ID:
- secretKeyRef: # Pre-existing secret, not created by this chart
- name: sourcegraph-s3-credentials
- key: PRECISE_CODE_INTEL_UPLOAD_AWS_ACCESS_KEY_ID
- PRECISE_CODE_INTEL_UPLOAD_AWS_SECRET_ACCESS_KEY:
- secretKeyRef: # Pre-existing secret, not created by this chart
- name: sourcegraph-s3-credentials
- key: PRECISE_CODE_INTEL_UPLOAD_AWS_SECRET_ACCESS_KEY
-
-frontend:
- env:
- <<: *objectStorageEnv
-
-preciseCodeIntel:
- env:
- <<: *objectStorageEnv
-```
-
-#### Enabling the Embeddings Service
-To enable the Embeddings Service using the built-in `blobstore` storage specify the following in your override file.
-```yaml
-embeddings:
- enabled: true
-```
-
-#### Using external Object Storage for Embeddings Indexes
-To use an external Object Storage service (S3-compatible services, or GCS), first review our [general recommendations](https://docs.sourcegraph.com/cody/explanations/code_graph_context#storing-embedding-indexes). Then review the following example and adjust to your use case.
-
-> The example assumes the use of AWS S3. You may configure the environment variables accordingly for your own use case based on our [general recommendations](https://docs.sourcegraph.com/cody/explanations/code_graph_context#storing-embedding-indexes).
-
-If you provide credentials with an access key / secret key, we recommend storing the credentials in [Secrets] created outside of the helm chart and managed in a secure manner. An example Secret is shown here:
-
-```yaml
-apiVersion: v1
-kind: Secret
-metadata:
- name: sourcegraph-s3-credentials
-data:
- # notes: secrets data has to be base64-encoded
- EMBEDDINGS_UPLOAD_AWS_ACCESS_KEY_ID: ""
- EMBEDDINGS_UPLOAD_AWS_SECRET_ACCESS_KEY: ""
-```
-
-In your [override.yaml](https://github.com/sourcegraph/deploy-sourcegraph-helm/tree/main/charts/sourcegraph/examples/external-object-storage-embeddings/override.yaml), reference this Secret and the necessary environment variables:
-
-```yaml
-# we use YAML anchors and alias to keep override file clean
-objectStorageEnv: &objectStorageEnv
- EMBEDDINGS_UPLOAD_BACKEND:
- value: S3 # external object stoage type, one of "S3" or "GCS"
- EMBEDDINGS_UPLOAD_BUCKET:
- value: embeddings-uploads # external object storage bucket name
- EMBEDDINGS_UPLOAD_AWS_ENDPOINT:
- value: https://s3.us-east-1.amazonaws.com
- EMBEDDINGS_UPLOAD_AWS_REGION:
- value: us-east-1
- EMBEDDINGS_UPLOAD_AWS_ACCESS_KEY_ID:
- secretKeyRef: # Pre-existing secret, not created by this chart
- name: sourcegraph-s3-credentials
- key: EMBEDDINGS_UPLOAD_AWS_ACCESS_KEY_ID
- EMBEDDINGS_UPLOAD_AWS_SECRET_ACCESS_KEY:
- secretKeyRef: # Pre-existing secret, not created by this chart
- name: sourcegraph-s3-credentials
- key: EMBEDDINGS_UPLOAD_AWS_SECRET_ACCESS_KEY
-
-embeddings:
- enabled: true # Enable the Embeddings service
- env:
- <<: *objectStorageEnv
-
-worker:
- env:
- <<: *objectStorageEnv
-```
-
-
-#### Using SSH to clone repositories
-
-Create a [Secret](https://kubernetes.io/docs/concepts/configuration/secret/) that contains the base64 encoded contents of your SSH private key (make sure it doesn’t require a passphrase) and known_hosts file. The [Secret] will be mounted in the `gitserver` deployment to authenticate with your code host.
-
-If you have access to the ssh keys locally, you can run the command below to create the secret:
-
-```sh
-$ kubectl create secret generic gitserver-ssh \
- --from-file id_rsa=${HOME}/.ssh/id_rsa \
- --from-file known_hosts=${HOME}/.ssh/known_hosts
-```
-
-Alternatively, you may manually create the secret from a manifest file.
-
-> WARNING: Do NOT commit the secret manifest into your Git repository unless you are okay with storing sensitive information in plaintext and your repository is private.
-
-Create a file with the following and save it as `gitserver-ssh.Secret.yaml`
-```yaml
-apiVersion: v1
-kind: Secret
-metadata:
- name: gitserver-ssh
-data:
- # notes: secrets data has to be base64-encoded
- id_rsa: ""
- known_hosts: ""
-```
-
-Apply the created [Secret] with the command below:
-
-```sh
-$ kubectl apply -f gitserver-ssh.Secret.yaml
-```
-
-You should add the following values to your override file to reference the [Secret] you created earlier.
-
-```yaml
-gitserver:
- sshSecret: gitserver-ssh
-```
-
-### Advanced Configuration Methods
-
-The Helm chart is new and still under active development, and our values.yaml (and therefore the customization available to use via an override file) may not cover every need. Equally, some changes are environment or customer-specific, and so will never be part of the default Sourcegraph Helm chart.
-
-The following guidance for using Kustomize with Helm and Helm Subcharts covers both of these scenarios.
-
-> ⚠️ While both of these approaches are available, deployment changes that are not covered by Sourcegraph documentation should be discussed with either your Customer Engineer or Support contact before proceeding, to ensure the changes proposed can be supported by Sourcegraph. This also allows Sourcegraph to consider adding the required customizations to the Helm chart.
-
-#### Integrate Kustomize with Helm chart
-
-For advanced users who are looking for a temporary workaround, we __recommend__ applying [Kustomize](https://kustomize.io) on the rendered manifests from our chart. Please __do not__ maintain your own fork of our chart, this may impact our ability to support you if you run into issues.
-
-You can learn more about how to integrate Kustomize with Helm from our [example](https://github.com/sourcegraph/deploy-sourcegraph-helm/tree/main/charts/sourcegraph/examples/kustomize-chart).
-
-#### Helm subcharts
-
-[Helm subcharts](https://helm.sh/docs/chart_template_guide/subcharts_and_globals/) can be used for permanent customizations to the official Sourcegraph helm chart. This is useful for changes such as adding a new resource unique to your deployment (PodSecurityPolicy, NetworkPolicy, additional services, etc.). These are long-lived customizations that shouldn't be contributed back to the Sourcegraph helm chart.
-
-With a subchart, you create your own helm chart and specify the Sourcegraph chart as a dependency. Any resources you place in the templates folder of your chart will be deployed, as well as the Sourcegraph resources, allowing you to extend the Sourcegraph chart without maintaining a fork.
-
-An example of a subchart is shown in the [examples/subchart](https://github.com/sourcegraph/deploy-sourcegraph-helm/tree/main/charts/sourcegraph/examples) folder.
-
-More details on how to create and configure a subchart can be found in the [helm documentation](https://helm.sh/docs/chart_template_guide/subcharts_and_globals).
-
-### OpenTelemetry Collector
-
-Learn more about Sourcegraph's integrations with the [OpenTelemetry Collector](https://opentelemetry.io/docs/collector/) in our [OpenTelemetry documentation](/admin/observability/opentelemetry).
-
-#### Configure a tracing backend
-
-Sourcegraph currently supports exporting tracing data to several backends. Refer to [OpenTelemetry](/admin/observability/opentelemetry) for detailed descriptions on how to configure your backend of choice.
-
-You can add the following values in your `override.yaml` to configure trace exporting:
-
-```yaml
-openTelemetry:
- gateway:
- config:
- traces:
- exporters:
- ...
-
- processors:
- ...
-```
-
-As an example, to configure the collector to export to an external Jaeger instance, add the following to your [override.yaml](https://github.com/sourcegraph/deploy-sourcegraph-helm/tree/main/charts/sourcegraph/examples/opentelemetry-exporter/override.yaml):
-
-```yaml
-openTelemetry:
- gateway:
- env:
- JAEGER_HOST:
- value: "http://your.jaeger.endpoint"
- config:
- traces:
- exporters:
- jaeger:
- endpoint: "$JAEGER_HOST:14250"
- tls:
- insecure: true
-```
-
-#### Configure a tracing backend with TLS enabled
-
-If you require a TLS connection to export trace data, you need to first add the certificate data to a Secret. The following snippet demonstrates how you can achieve this:
-
-> WARNING: Do NOT commit the secret manifest into your Git repository unless you are okay with storing sensitive information in plaintext and your repository is private.
-
-```yaml
-apiVersion: v1
-kind: Secret
-metadata:
- name: otel-collector-exporters-tls
-data:
- file.cert: "<.cert data>"
- file.key: "<.key data>"
-```
-
-After applying the secret to your cluster, you can [override](https://github.com/sourcegraph/deploy-sourcegraph-helm/tree/main/charts/sourcegraph/examples/opentelemetry-exporter/override-tls.yaml) the value `openTelemetry.gateway.config.traces.exportersTlsSecretName` to mount the certificate data in the Collector and instruct the exporter to use TLS:
-
-```yaml
-openTelemetry:
- gateway:
- env:
- JAEGER_HOST:
- value: "http://your.jaeger.endpoint"
- config:
- traces:
- exportersTlsSecretName: otel-collector-exporters-tls
- exporters:
- jaeger:
- endpoint: "$JAEGER_HOST:14250"
- tls:
- cert_file: /tls/file.cert
- key_file: /tls/file.key
-```
-
-#### Configure trace sampling
-
-Review the [trace sampling documentation](/admin/observability/opentelemetry#sampling-traces) to understand how to configure sampling.
-
-Add your config to your [override.yaml](https://github.com/sourcegraph/deploy-sourcegraph-helm/tree/main/charts/sourcegraph/examples/opentelemetry-exporter/override-processor.yaml) as follows:
-
-```yaml
-openTelemetry:
- gateway:
- config:
- traces:
- processors:
- probabilistic_sampler:
- hash_seed: 22 # An integer used to compute the hash algorithm. Note that all collectors for a given tier (e.g. behind the same load balancer) should have the same hash_seed.
- sampling_percentage: 10.0 # (default = 0): Percentage at which traces are sampled; >= 100 samples all traces
-```
-
-#### Enable the bundled Jaeger deployment
-
-Sourcegraph ships with a bundled Jaeger instance that is disabled by default. If you do not wish to make use of an external observability backend, you can enable this instance by adding the following to your overrides:
-
-```yaml
-jaeger:
- enabled: true
-```
-
-This will also configure the OpenTelemetry Collector to export trace data to this instance. No further configuration is required.
-
-## Cloud providers guides
-
-This section is aimed at providing high-level guidance on deploying Sourcegraph via Helm on major Cloud providers. In general, you need the following to get started:
-
-- A working Kubernetes cluster, v1.19 or higher
-- The ability to provision persistent volumes, e.g. have Block Storage [CSI storage driver](https://kubernetes-csi.github.io/docs/drivers.html) installed
-- An Ingress Controller installed, e.g. platform native ingress controller, [NGINX Ingress Controller].
-- The ability to create DNS records for Sourcegraph, e.g. `sourcegraph.company.com`
-
-### Configure Sourcegraph on Google Kubernetes Engine (GKE)
-
-#### Prerequisites
-
-1. You need to have a GKE cluster (>=1.19) with the `HTTP Load Balancing` addon enabled. Alternatively, you can use your own choice of Ingress Controller and disable the `HTTP Load Balancing` add-on, [learn more](https://cloud.google.com/kubernetes-engine/docs/how-to/custom-ingress-controller).
-2. Your account should have sufficient access rights, equivalent to the `cluster-admin` ClusterRole.
-3. Connect to your cluster (via either the console or the command line using `gcloud`) and ensure the cluster is up and running by running: `kubectl get nodes` (several `ready` nodes should be listed)
-4. Have the [Helm CLI](https://helm.sh/docs/intro/install/) installed and run the following command to link to the Sourcegraph helm repository (on the machine used to interact with your cluster):
-
-```sh
-$ helm repo add sourcegraph https://helm.sourcegraph.com/release
-```
-
-#### Steps
-
-**1** – Create your override file and add in any configuration override settings you need—see [configuration](#configuration) for more information on override files and the options for what can be configured.
-
-Add into your override file the below values to configure both your ingress hostname and your storage class. We recommend configuring Ingress to use [Container-native load balancing] to expose Sourcegraph publicly on a domain of your choosing and setting the Storage Class to use [Compute Engine persistent disk]. (For an example file see [override.yaml](https://github.com/sourcegraph/deploy-sourcegraph-helm/tree/main/charts/sourcegraph/examples/gcp/override.yaml))
-
-
-```yaml
-frontend:
- serviceType: ClusterIP
- ingress:
- enabled: true
- annotations:
- kubernetes.io/ingress.class: gce
-# To enable HTTPS using a self-managed certificate
-# tlsSecret: example-secret
-# host: sourcegraph.example.com
- serviceAnnotations:
- cloud.google.com/neg: '{"ingress": true}'
- # Reference the `BackendConfig` CR created below
- beta.cloud.google.com/backend-config: '{"default": "sourcegraph-frontend"}'
-
-storageClass:
- create: true
- type: pd-ssd # This configures SSDs (recommended).
- provisioner: pd.csi.storage.gke.io
- volumeBindingMode: WaitForFirstConsumer
- reclaimPolicy: Retain
-
-extraResources:
- - apiVersion: cloud.google.com/v1
- kind: BackendConfig
- metadata:
- name: sourcegraph-frontend
- spec:
- healthCheck:
- checkIntervalSec: 5
- timeoutSec: 5
- requestPath: /ready
- port: 6060 # we use a custom port to perform healthcheck
-```
-
-The override file includes a [BackendConfig] CRD. This is necessary to instruct the GCP load balancer on how to perform health checks on our deployment.
-
-> ℹ️ [Container-native load balancing] is only available on VPC-native clusters. For legacy clusters, [learn more](https://cloud.google.com/kubernetes-engine/docs/how-to/load-balance-ingress).
-
-> ℹ️ Optionally, you can review the changes using one of [three mechanisms](#reviewing-changes) that can be used to assess the customizations made. This is not required, but may be useful the first time you deploy Sourcegraph, for peace of mind.
-
-**2** – Install the chart
-
-```sh
-$ helm upgrade --install --values ./override.yaml --version 5.3.0 sourcegraph sourcegraph/sourcegraph
-```
-
-It will take around 10 minutes for the load balancer to be fully ready, you may check on the status and obtain the load balancer IP using the following command:
-
-```sh
-$ kubectl describe ingress sourcegraph-frontend
-```
-
-**3** – Upon obtaining the allocated IP address of the load balancer, you should create a DNS A record for the `sourcegraph.company.com` domain. Finally, it is recommended to enable TLS and you may consider using [Google-managed certificate](https://cloud.google.com/kubernetes-engine/docs/how-to/managed-certs) in GKE or your own certificate.
-
-If using a GKE manage certificate, add the following annotations to Ingress:
-
-```yaml
-frontend:
- ingress:
- annotations:
- kubernetes.io/ingress.class: null
- networking.gke.io/managed-certificates: managed-cert # replace with actual Google-managed certificate name
- # if you reserve a static IP, uncomment below and update ADDRESS_NAME
- # also, make changes to your DNS record accordingly
- # kubernetes.io/ingress.global-static-ip-name: ADDRESS_NAME
-```
-
-If using your own certificate, you can do so with [TLS Secrets](https://kubernetes.io/docs/concepts/configuration/secret/#tls-secrets).
-
-Create a file with the following and save it as `sourcegraph-frontend-tls.Secret.yaml`
-```yaml
-apiVersion: v1
-kind: Secret
-metadata:
- name: sourcegraph-frontend-tls
-type: kubernetes.io/tls
-data:
- # the data is abbreviated in this example
- tls.crt: |
- MIIC2DCCAcCgAwIBAgIBATANBgkqh ...
- tls.key: |
- MIIEpgIBAAKCAQEA7yn3bRHQ5FHMQ ...
-```
-
-```sh
-$ kubectl apply -f ./sourcegraph-frontend-tls.Secret.yaml
-```
-
-Add the following values to your override file.
-
-```yaml
-frontend:
- ingress:
- enabled: true
- annotations:
- kubernetes.io/ingress.class: gce
- tlsSecret: sourcegraph-frontend-tls # reference the created TLS Secret
- # replace with your actual domain
- host: sourcegraph.company.com
-```
-
-**5** – Validate the deployment
-Sourcegraph should now be available via the address set.
-Browsing to the url should now provide access to the Sourcegraph UI to create the initial administrator account.
-
-**6** – Further configuration
-
-Now the deployment is complete, more information on configuring the Sourcegraph application can be found here:
-[Configuring Sourcegraph](/admin/config/)
-
-### Configure Sourcegraph on Elastic Kubernetes Service (EKS)
-
-#### Prerequisites
-
-1. You need to have a EKS cluster (>=1.19) with the following addons enabled:
- - [AWS Load Balancer Controller](https://docs.aws.amazon.com/eks/latest/userguide/aws-load-balancer-controller.html)
- - [AWS EBS CSI driver](https://docs.aws.amazon.com/eks/latest/userguide/managing-ebs-csi.html)
-> You may consider deploying your own Ingress Controller instead of the ALB Ingress Controller, [learn more](https://kubernetes.github.io/ingress-nginx/)
-2. Your account should have sufficient access equivalent to the `cluster-admin` ClusterRole.
-3. Connect to your cluster (via either the console or the command line using `eksctl`) and ensure the cluster is up and running using: `kubectl get nodes` (several `ready` nodes should be listed)
-4. Have the [Helm CLI](https://helm.sh/docs/intro/install/) installed and run the following command to link to the Sourcegraph helm repository (on the machine used to interact with your cluster):
-
-```sh
-$ helm repo add sourcegraph https://helm.sourcegraph.com/release
-```
-
-#### Steps
-
-**1** – Create your override file and add in any configuration override settings you need—see [configuration](#configuration) for more information on override files and the options around what can be configured.
-
-We recommend adding the following values into your override file to configure Ingress to use [AWS Load Balancer Controller] to expose Sourcegraph publicly on a domain of your choosing, and to configure the Storage Class to use [AWS EBS CSI driver]. For an example, see [override.yaml](https://github.com/sourcegraph/deploy-sourcegraph-helm/tree/main/charts/sourcegraph/examples/aws/override.yaml).
-
-Uncomment the `provisioner` that your Amazon EKS cluster implements.
-
-```yaml
-frontend:
- ingress:
- enabled: true
- annotations:
- alb.ingress.kubernetes.io/target-type: ip # specifies targeting services with type ClusterIP
- # By default the AWS ALB will be internal to your VPC.
- # alb.ingress.kubernetes.io/scheme: internet-facing # use this annotation if you plan to provision a public Sourcegraph URL.
- kubernetes.io/ingress.class: alb # aws load balancer controller ingressClass name
- # additional aws alb ingress controller supported annotations
- # ...
- # replace with your actual domain
- host: sourcegraph.company.com
-
-storageClass:
- create: true
- type: gp2 # This configures SSDs (recommended).
-# provisioner: ebs.csi.aws.com # use this provisioner if using the self-managed Amazon EBS Container Storage Interface driver
-# provisioner: kubernetes.io/aws-ebs # use this provisioner if using the Amazon EKS add-on
- volumeBindingMode: WaitForFirstConsumer
- reclaimPolicy: Retain
-```
-> ℹ️ Optionally, you can review the changes using one of [three mechanisms](#reviewing-changes) that can be used to assess the customizations made. This is not required, but may be useful the first time you deploy Sourcegraph, for peace of mind.
-
-**2** – Install the chart
-
-```sh
-$ helm upgrade --install --values ./override.yaml --version 5.3.0 sourcegraph sourcegraph/sourcegraph
-```
-
-It will take some time for the load balancer to be fully ready, use the following to check on the status and obtain the load balancer address (once available):
-
-```sh
-$ kubectl describe ingress sourcegraph-frontend
-```
-
-**3** – Upon obtaining the allocated address of the load balancer, you should create a DNS record for the `sourcegraph.company.com` domain that resolves to the load balancer address.
-
-It is recommended to enable TLS and configure a certificate properly on your load balancer. You may consider using an [AWS-managed certificate](https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html) and add the following annotations to Ingress.
-
-```yaml
-frontend:
- ingress:
- annotations:
- kubernetes.io/ingress.class: alb
- # ARN of the AWS-managed TLS certificate
- alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:us-west-2:xxxxx:certificate/xxxxxxx
-```
-
-**4** – Validate the deployment
-Sourcegraph should now be available via the address set.
-Browsing to the url should now provide access to the Sourcegraph UI to create the initial administrator account.
-
-**5** – Further configuration
-
-Now the deployment is complete, more information on configuring the Sourcegraph application can be found here:
-[Configuring Sourcegraph](/admin/config/)
-
-#### References
-
-- [Enable TLS with AWS-managed certificate](https://kubernetes-sigs.github.io/aws-load-balancer-controller/v2.2/guide/ingress/annotations/#ssl)
-- [Supported AWS load balancer annotations](https://kubernetes-sigs.github.io/aws-load-balancer-controller/v2.2/guide/ingress/annotations)
-
-### Configure Sourcegraph on Azure Managed Kubernetes Service (AKS)
-
-#### Prerequisites
-
-1. You need to have a AKS cluster (>=1.19) with the following addons enabled:
- - [Azure Application Gateway Ingress Controller](https://docs.microsoft.com/en-us/azure/application-gateway/ingress-controller-install-new)
- - [Azure Disk CSI driver](https://docs.microsoft.com/en-us/azure/aks/csi-storage-drivers)
-> You may consider using your custom Ingress Controller instead of Application Gateway, [learn more](https://docs.microsoft.com/en-us/azure/aks/ingress-basic)
-2. Your account should have sufficient access equivalent to the `cluster-admin` ClusterRole.
-3. Connect to your cluster (via either the console or the command line using the Azure CLI) and ensure the cluster is up and running using: `kubectl get nodes` (several `ready` nodes should be listed)
-4. Have the [Helm CLI](https://helm.sh/docs/intro/install/) installed and run the following command to link to the Sourcegraph helm repository (on the machine used to interact with your cluster):
-
-```sh
-$ helm repo add sourcegraph https://helm.sourcegraph.com/release
-```
-
-#### Steps
-
-**1** – Create your override file and add in any configuration override settings you need—see [configuration](#configuration) for more information on override files and the options around what can be configured.
-
-Add into your override file the below values to configure both your ingress hostname and your storage class. We recommend configuring Ingress to use [Application Gateway](https://azure.microsoft.com/en-us/services/application-gateway) to expose Sourcegraph publicly on a domain of your choosing and Storage Class to use [Azure Disk CSI driver](https://docs.microsoft.com/en-us/azure/aks/azure-disk-csi). For an example see [override.yaml](https://github.com/sourcegraph/deploy-sourcegraph-helm/tree/main/charts/sourcegraph/examples/azure/override.yaml).
-
-
-```yaml
-frontend:
- ingress:
- enabled: true
- annotations:
- kubernetes.io/ingress.class: azure/application-gateway
- # additional azure application gateway supported annotations
- # ...
- # replace with your actual domain
- host: sourcegraph.company.com
-
-storageClass:
- create: true
- type: null
- provisioner: disk.csi.azure.com
- volumeBindingMode: WaitForFirstConsumer
- reclaimPolicy: Retain
- parameters:
- storageaccounttype: Premium_LRS # This configures SSDs (recommended). A Premium VM is required.
-```
-
-> ℹ️ Optionally, you can review the changes using one of [three mechanisms](#reviewing-changes) that can be used to assess the customizations made. This is not required, but may be useful the first time you deploy Sourcegraph, for peace of mind.
-
-**2** – Install the chart
-
-```sh
-$ helm upgrade --install --values ./override.yaml --version 5.3.0 sourcegraph sourcegraph/sourcegraph
-```
-
-It will take some time for the load balancer to be fully ready, you can check on the status and obtain the load balancer address (when ready) using:
-
-```sh
-$ kubectl describe ingress sourcegraph-frontend
-```
-
-**3** – Upon obtaining the allocated address of the load balancer, you should create a DNS record for the `sourcegraph.company.com` domain that resolves to the load balancer address.
-
-It is recommended to enable TLS and configure the certificate properly on your load balancer. You may consider using an [Azure-managed certificate](https://azure.github.io/application-gateway-kubernetes-ingress/features/appgw-ssl-certificate/) and add the following annotations to Ingress.
-
-```yaml
-frontend:
- ingress:
- annotations:
- kubernetes.io/ingress.class: azure/application-gateway
- # Name of the Azure-managed TLS certificate
- appgw.ingress.kubernetes.io/appgw-ssl-certificate: azure-key-vault-managed-ssl-cert
-```
-
-**4** – Validate the deployment
-Sourcegraph should now be available via the address set.
-Browsing to the url should now provide access to the Sourcegraph UI to create the initial administrator account.
-
-**5** – Further configuration
-
-Now the deployment is complete, more information on configuring the Sourcegraph application can be found here:
-[Configuring Sourcegraph](/admin/config/)
-
-#### References
-
-- [Expose an AKS service over HTTP or HTTPS using Application Gateway](https://docs.microsoft.com/en-us/azure/application-gateway/ingress-controller-expose-service-over-http-https)
-- [Supported Azure Application Gateway Ingress Controller annotations](https://azure.github.io/application-gateway-kubernetes-ingress/annotations/)
-- [What is Application Gateway Ingress Controller?](https://docs.microsoft.com/en-us/azure/application-gateway/ingress-controller-overview)
-
-
-### Configure Sourcegraph on other Cloud providers or on-prem
-
-#### Prerequisites
-
-1. You need to have a Kubernetes cluster (>=1.19) with the following components installed:
- - [x] Ingress Controller, e.g. Cloud providers-native solution, [NGINX Ingress Controller]
- - [x] Block Storage CSI driver
-2. Your account should have sufficient access privileges, equivalent to the `cluster-admin` ClusterRole.
-3. Connect to your cluster (via either the console or the command line using the relevant CLI tool) and ensure the cluster is up and running using: `kubectl get nodes` (several `ready` nodes should be listed)
-4. Have the [Helm CLI](https://helm.sh/docs/intro/install/) installed and run the following command to link to the Sourcegraph helm repository (on the machine used to interact with your cluster):
-
-```sh
-$ helm repo add sourcegraph https://helm.sourcegraph.com/release
-```
-
-#### Steps
-
-**1** – Create your override file and add in any configuration override settings you need—see [configuration](#configuration) for more information on override files and the options around what can be configured.
-
-[Read](https://kubernetes.io/docs/concepts/storage/storage-classes/) to configure the `storageClass.provisioner` and `storageClass.parameters` fields for your cloud provider or consult documentation of the storage solution in your on-prem environment.
-
-The following will need to be included in your `override.yaml`, once adapted to your environment.
-
-```yaml
-frontend:
- ingress:
- enabled: true
- annotations:
- kubernetes.io/ingress.class: ingress-class-name # replace with actual ingress class name
- # additional ingress controller supported annotations
- # ...
- # replace with your actual domain
- host: sourcegraph.company.com
-
-storageClass:
- create: true
- provisioner:
- volumeBindingMode: WaitForFirstConsumer
- reclaimPolicy: Retain
- parameters:
- key1: value1
-```
-
-> ℹ️ Optionally, you can review the changes using one of [three mechanisms](#reviewing-changes) that can be used to assess the customizations made. This is not required, but may be useful the first time you deploy Sourcegraph, for peace of mind.
-
-**2** – Install the chart
-
-```sh
-$ helm upgrade --install --values ./override.yaml --version 5.3.0 sourcegraph sourcegraph/sourcegraph
-```
-
-It may take some time before your ingress is up and ready to proceed. Depending on how your Ingress Controller works, you may be able to check on its status and obtain the public address of your Ingress using:
-
-```sh
-$ kubectl describe ingress sourcegraph-frontend
-```
-
-**3** – You should create a DNS record for the `sourcegraph.company.com` domain that resolves to the Ingress public address.
-
-It is recommended to enable TLS and configure a certificate properly on your Ingress. You can utilize managed certificate solutions provided by Cloud providers, or your own method.
-
-Alternatively, you may consider configuring [cert-manager with Let's Encrypt](https://cert-manager.io/docs/configuration/acme/) in your cluster and add the following override to Ingress.
-
-```yaml
-frontend:
- ingress:
- enabled: true
- annotations:
- kubernetes.io/ingress.class: ingress-class-name # replace with actual ingress class name
- # additional ingress controller supported annotations
- # ...
- # cert-managed annotations
- cert-manager.io/cluster-issuer: letsencrypt # replace with actual cluster-issuer name
- tlsSecret: sourcegraph-frontend-tls # cert-manager will store the created certificate in this secret.
- # replace with your actual domain
- host: sourcegraph.company.com
-```
-
-You also have the option to manually configure TLS certificate via [TLS Secrets](https://kubernetes.io/docs/concepts/configuration/secret/#tls-secrets).
-
-Create a file with the following and save it as `sourcegraph-frontend-tls.Secret.yaml`
-```yaml
-apiVersion: v1
-kind: Secret
-metadata:
- name: sourcegraph-frontend-tls
-type: kubernetes.io/tls
-data:
- # the data is abbreviated in this example
- tls.crt: |
- MIIC2DCCAcCgAwIBAgIBATANBgkqh ...
- tls.key: |
- MIIEpgIBAAKCAQEA7yn3bRHQ5FHMQ ...
-```
-
-```sh
-$ kubectl apply -f ./sourcegraph-frontend-tls.Secret.yaml
-```
-
-Add the following values to your override file.
-
-```yaml
-frontend:
- ingress:
- enabled: true
- annotations:
- kubernetes.io/ingress.class: ingress-class-name # replace with actual ingress class name
- # additional ingress controller supported annotations
- # ...
- tlsSecret: sourcegraph-frontend-tls # reference the created TLS Secret
- # replace with your actual domain
- host: sourcegraph.company.com
-```
-
-**4** – Validate the deployment
-Sourcegraph should now be available via the address set.
-Browsing to the url should now provide access to the Sourcegraph UI to create the initial administrator account.
-
-**5** – Further configuration
-
-Now the deployment is complete, more information on configuring the Sourcegraph application can be found here:
-[Configuring Sourcegraph](/admin/config/)
-
-## Upgrading Sourcegraph
-
-The following procedures describe the process to update a Helm Sourcegraph instance. If you are unfamiliar with sourcegraph versioning or releases see our [general concepts documentation](/admin/updates/).
-
-> ***⚠️ Attention: Always consult the [release notes](/admin/updates/kubernetes) for the versions your upgrade will pass over and end on.***
-
-### Standard upgrades
-
-A [standard upgrade](/admin/updates/#upgrade-types) occurs between a Sourcegraph version and the minor or major version released immediately after it. If you would like to jump forward several versions, you must perform a [multi-version upgrade](#multi-version-upgrades) instead.
-
-1. Review [Helm Changelog] and [Sourcegraph Changelog] and select the most recent version compatible with your current Sourcegraph version.
-
-> ⚠️ You can only upgrade one minor version of Sourcegraph at a time.
-
-2. Update your copy of the Sourcegraph Helm repo to ensure you have all the latest versions:
-
-```sh
-$ helm repo update sourcegraph
-```
-
-3. (Optional) Review the changes that will be applied—see [Reviewing Changes](#reviewing-changes) for options.
-
-4. Install the new version:
-
-```sh
-$ helm upgrade --install -f override.yaml --version 5.3.0 sourcegraph sourcegraph/sourcegraph
-```
-
-5. Verify the installation has started:
-
-```sh
-$ kubectl get pods --watch
-```
-
-When all pods have restarted and show as Running, you can browse to your Sourcegraph deployment and login to verify the instance is working as expected. For troubleshooting, refer to the [Operations guide](https://docs.sourcegraph.com/admin/install/kubernetes/operations) for common commands to gather more information about failures.
-
-### Multi-version upgrades
-
-If you are upgrading to **Sourcegraph 5.1 or later**, we encourage you to perform an [**automatic multi-version upgrade**](/admin/updates/automatic). The following instructions are still applicable, just the manual version of what automatic multi-version upgrade do for you now (and therefore is valuable information during a bumpy upgrade).
-
----
-
-> **⚠️ Attention:** please see our [cautionary note](/admin/updates/#best-practices) on upgrades, if you have any concerns about running a multiversion upgrade, please reach out to us at [support@sourcegraph.com](mailto:support@sourcegraph.com) for advisement.
-
-### Multi-version upgrade procedure
-
-1. **Check Upgrade Readiness**:
- - Check the [upgrade notes](/admin/updates/kubernetes#kubernetes-upgrade-notes) for the version range you're passing through.
- - Check the `Site Admin > Updates` page to determine [upgrade readiness](/admin/updates/#upgrade-readiness).
-
-2. **Scale down `deployments` and `statefulSets` that access the database**, _this step prevents services from accessing the database while schema migrations are in process._
- The following services must have their replicas scaled to 0:
- - Deployments (e.g., `kubectl scale deployment --replicas=0`)
- - precise-code-intel-worker
- - repo-updater
- - searcher
- - sourcegraph-frontend
- - sourcegraph-frontend-internal
- - symbols
- - worker
- - Stateful sets (e.g., `kubectl scale sts --replicas=0`):
- - gitserver
- - indexed-search
-
- The following convenience commands provide an example of scaling down the necessary services in a single command:
-
- Deployments:
- ```sh
- $ kubectl get -n sourcegraph deploy --no-headers | awk '{print $1}' | xargs -n 1 -P 8 -I % kubectl -n sourcegraph scale deployment % --replicas=0
- ```
- StatefulSets:
- ```sh
- $ kubectl -n sourcegraph get sts --selector 'app.kubernetes.io/component!=codeinsights-db,app.kubernetes.io/component!=codeintel-db,app.kubernetes.io/component!=pgsql' --no-headers | awk '{print $1}' | xargs -n 1 -P 8 -I % kubectl -n sourcegraph scale sts % --replicas=0
- ```
-
- > NOTE: The commands above use the `sourcegraph` namespace and are specific to the kubernetes-helm deployment.
-3. **Run the migrator `upgrade` command**
- - The following command is the general template for running an upgrade
- ```sh
- $ helm upgrade --install -n --set "migrator.args={upgrade,--from=,--to=}" sourcegraph-migrator sourcegraph/sourcegraph-migrator --version
- ```
- > NOTE: The command above is general and you'll need to substitute in your own namespace, target sourcegraph version, and desired migrator image version. In general run the most recent version of migrator.
-
- **Example:**
- ```sh
- $ helm upgrade --install -n sourcegraph --set "migrator.args={upgrade,--from=3.41.0,--to=4.5.1}" sourcegraph-migrator sourcegraph/sourcegraph-migrator --version 5.3.0
- Release "sourcegraph-migrator" has been upgraded. Happy Helming!
- NAME: sourcegraph-migrator
- LAST DEPLOYED: Tue Mar 7 18:23:56 2023
- NAMESPACE: sourcegraph
- STATUS: deployed
- REVISION: 2
- TEST SUITE: None
- ✅ Out of band migrations complete
- 👉 Migrating to v4.5 (step 3 of 3)
- 👉 Running schema migrations
- ✅ Schema migrations complete
- ```
-
- You can learn more about running migrator operations in helm in the [migrator operations doc](/admin/updates/migrator/migrator-operations#kubernetes-helm).
-4. **Upgrade your instance via `helm upgrade`**
- - Now that the databases have been migrated to the latest versions, services can be scaled up and upgrade via the [standard procedure](#standard-upgrades). For example:
- ```sh
- $ helm upgrade -n --install -f override.yaml --version sourcegraph sourcegraph/sourcegraph
- ```
-
-### Rollback
-
-You can revert to a previous version with the following command:
-
-```sh
-$ helm rollback sourcegraph
-```
-
-If you are rolling back more than a single version, then you must also [rollback your database](/admin/how-to/rollback_database), as database migrations (which may have run at some point during the upgrade) are guaranteed to be compatible with one previous minor version.
-
-### Database Migrations
-
-By default, database migrations will be performed during application startup by a `migrator` init container running prior to the `frontend` deployment. These migrations **must** succeed before Sourcegraph will become available. If the databases are large, these migrations may take a long time.
-
-In some situations, administrators may wish to migrate their databases before upgrading the rest of the system to reduce downtime. Sourcegraph guarantees database backward compatibility to the most recent minor point release so the database can safely be upgraded before the application code.
-
-To execute the database migrations independently, you can use the [Sourcegraph Migrator] helm chart.
-
-## Reviewing Changes
-
-When configuring an override file or performing an upgrade, we recommend reviewing the changes before applying them.
-
-### Using helm template
-
-The helm template command can be used to render manifests for review and comparison. This is particularly useful to confirm the effect of changes to your override file. This approach does not require access to the Kubernetes server.
-
-For example:
-
-1. Render the initial manifests from your existing deployment setup to an output file:
-
-```sh
-$ CHART_VERSION=0.7.0 # Currently deployed version
-$ helm template sourcegraph -f override.yaml --version $CHART_VERSION sourcegraph sourcegraph/sourcegraph > original_manifests
-```
-
-2. Make changes to your override file, and/or update the chart version, then render that output:
-
-```sh
-$ CHART_VERSION=3.39.0 # Not yet deployed version
-$ helm template sourcegraph -f override.yaml --version $CHART_VERSION sourcegraph sourcegraph/sourcegraph > new_manifests
-```
-
-3. Compare the two outputs:
-
-```sh
-$ diff original_manifests new_manifests
-```
-
-### Using helm upgrade --dry-run
-
-Similar to `helm template`, the `helm upgrade --dry-run` command can be used to render manifests for review and comparison. This requires access to the Kubernetes server but has the benefit of validating the Kubernetes manifests.
-
-The following command will render and validate the manifests:
-
-```sh
-$ helm upgrade --install --dry-run -f override.yaml sourcegraph sourcegraph/sourcegraph
-```
-
-Any validation errors will be displayed instead of the rendered manifests.
-
-If you are having difficulty tracking down the cause of an issue, add the `--debug` flag to enable verbose logging:
-
-```sh
-$ helm upgrade --install --dry-run --debug -f override.yaml sourcegraph sourcegraph/sourcegraph
-```
-
-The `--debug` flag will enable verbose logging and additional context, including the computed values used by the chart. This is useful when confirming your overrides have been interpreted correctly.
-
-### Using Helm Diff plugin
-
-The [Helm Diff] plugin can provide a diff against a deployed chart. It is similar to the `helm upgrade --dry-run` option but can run against the live deployment. This requires access to the Kubernetes server.
-
-To install the plugin, run:
-
-```sh
-$ helm plugin install https://github.com/databus23/helm-diff
-```
-
-Then, display a diff between a live deployment and an upgrade, with 5 lines of context:
-
-```sh
-$ helm diff upgrade -f override.yaml sourcegraph sourcegraph/sourcegraph -C 5
-```
-
-For more examples and configuration options, reference the [Helm Diff] plugin documentation.
-
-## Uninstalling Sourcegraph
-
-Sourcegraph can be uninstalled by running the following command:
-
-```sh
-$ helm uninstall sourcegraph
-```
-
-Some Persistent Volumes may be retained after the uninstall is complete. In your cloud provider, check for unattached disks and delete them as necessary.
-
-[backendconfig]: https://cloud.google.com/kubernetes-engine/docs/how-to/ingress-features#create_backendconfig
-[azure application gateway]: https://docs.microsoft.com/en-us/azure/application-gateway/overview
-[Container-native load balancing]: https://cloud.google.com/kubernetes-engine/docs/how-to/container-native-load-balancing
-[Compute Engine persistent disk]: https://cloud.google.com/kubernetes-engine/docs/how-to/persistent-volumes/gce-pd-csi-driver
-[AWS Load Balancer Controller]: https://docs.aws.amazon.com/eks/latest/userguide/aws-load-balancer-controller.html
-[AWS EBS CSI driver]: https://docs.aws.amazon.com/eks/latest/userguide/managing-ebs-csi.html
-[NGINX Ingress Controller]: https://github.com/kubernetes/ingress-nginx
-[Helm Changelog]: https://github.com/sourcegraph/deploy-sourcegraph-helm/blob/main/charts/sourcegraph/CHANGELOG
-[Sourcegraph Changelog]: https://github.com/sourcegraph/sourcegraph/blob/main/CHANGELOG
-[Sourcegraph Migrator]: https://github.com/sourcegraph/deploy-sourcegraph-helm/blob/main/charts/sourcegraph-migrator
-[Helm Diff]: https://github.com/databus23/helm-diff
-[Secrets]: https://kubernetes.io/docs/concepts/configuration/secret/
diff --git a/docs/versioned/5.2/admin/deploy/kubernetes/index.mdx b/docs/versioned/5.2/admin/deploy/kubernetes/index.mdx
deleted file mode 100644
index 3c930a799..000000000
--- a/docs/versioned/5.2/admin/deploy/kubernetes/index.mdx
+++ /dev/null
@@ -1,218 +0,0 @@
-# Sourcegraph on Kubernetes
-
-Deploying on Kubernetes is for organizations that need highly scalable and available code search and code navigation.
-
-
-
-
-
-
-
-
-
-
-Below is an overview of installing Sourcegraph on Kubernetes using Kustomize.
-
-### Prerequisites
-
-* [kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl/) (v1.19 or later) with [Kustomize](https://kustomize.io/) (built into [kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl/) in version >= 1.14)
-* A [Kubernetes](https://kubernetes.io/) cluster ([v1.19 or later](https://kubernetes.io/blog/2020/08/26/kubernetes-release-1.19-accentuate-the-paw-sitive/))
- - Support for Persistent Volumes with SSDs
- - You can optionally refer to our [terraform configurations](https://github.com/sourcegraph/tf-k8s-configs) for setting up clusters on:
- - [Amazon Web Services EKS](https://github.com/sourcegraph/tf-k8s-configs/tree/main/aws)
- - [Azure AKS](https://github.com/sourcegraph/tf-k8s-configs/tree/main/azure)
- - [Google Cloud Platform GKE](https://github.com/sourcegraph/tf-k8s-configs/tree/main/gcp)
-
->WARNING: **If your Sourcegraph version is older than `v4.5.0` or hasn't [migrated](/admin/deploy/kubernetes/kustomize/migrate) to [`deploy-sourcegraph-k8s`](https://github.com/sourcegraph/deploy-sourcegraph-k8s), please refer to the [legacy deployment docs for Kubernetes](https://docs.sourcegraph.com/@v4.4.2/admin/deploy/kubernetes).**
-
-### **Step 1**: Set up a release branch
-
-Create a release branch from the default branch (or [an available tag](https://github.com/sourcegraph/deploy-sourcegraph-k8s/tags)) in your local fork of the [deploy-sourcegraph-k8s](https://github.com/sourcegraph/deploy-sourcegraph-k8s) repository.
-
-See the [docs on reference repository](/admin/deploy/repositories) for detailed instructions on creating a local fork.
-
-```bash
- # Recommended: replace the URL with your private fork
- $ git clone https://github.com/sourcegraph/deploy-sourcegraph-k8s.git
- $ cd deploy-sourcegraph-k8s
- $ git checkout v4.5.1 && git checkout -b release
-```
-
-### **Step 2**: Set up a directory for your instance
-
-Create a copy of the [instances/template](/admin/deploy/kubernetes/kustomize/#template) directory and rename it to `instances/my-sourcegraph`:
-
-```bash
- $ cp -R instances/template instances/my-sourcegraph
-```
-
->NOTE: In Kustomize, this directory is referred to as an [overlay](https://kubectl.docs.kubernetes.io/references/kustomize/glossary/#overlay).
-
-### **Step 3**: Set up the configuration files
-
-**1.** Rename the [kustomization.template.yaml](/admin/deploy/kubernetes/kustomize/#kustomization-yaml) file in `instances/my-sourcegraph` to `kustomization.yaml`.
-
-- The `kustomization.yaml` file is used to configure your Sourcegraph instance.
-
-```bash
- $ mv instances/my-sourcegraph/kustomization.template.yaml instances/my-sourcegraph/kustomization.yaml
-```
-
-**2.** Rename the [buildConfig.template.yaml](/admin/deploy/kubernetes/kustomize/#buildconfig-yaml) file in `instances/my-sourcegraph` to `buildConfig.yaml`.
-
-- The `buildConfig.yaml` file is used to configure components included in your `kustomization` file if required.
-
-```bash
- $ mv instances/my-sourcegraph/buildConfig.template.yaml instances/my-sourcegraph/buildConfig.yaml
-```
-
-### **Step 4**: Set namespace
-
-By default, the provided `kustomization.yaml` template deploys Sourcegraph into the `ns-sourcegraph` namespace.
-
-If you intend to deploy Sourcegraph into a different namespace, replace `ns-sourcegraph` with the name of the existing namespace in your cluster, or set it to `default` to deploy into the default namespace.
-
- ```yaml
- # instances/my-sourcegraph/kustomization.yaml
- namespace: sourcegraph
- ```
-
-### **Step 5**: Set storage class
-
-A storage class must be created and configured before deploying Sourcegraph. SSD storage is not required but is strongly recommended for optimal performance.
-
-#### Option 1: Create a new storage class
-
-We recommend using a preconfigured storage class component for your cloud provider if you can create cluster-wide resources:
-
-```yaml
-# instances/my-sourcegraph/kustomization.yaml
- components:
- # Select a component that corresponds to your cluster provider
- - ../../components/storage-class/aws/aws-ebs
- - ../../components/storage-class/aws/ebs-csi
- - ../../components/storage-class/azure
- - ../../components/storage-class/gke
-```
-
-See our [configurations guide](/admin/deploy/kubernetes/configure) for the full list of available storage class components.
-
-#### Option 2: Use an existing storage class
-
-If you cannot create a new storage class and/or want to use an existing one with SSDs:
-
-
- Show instruction
-
-**1.** Include the `storage-class/name-update` component under the components list
-
- ```yaml
- # instances/my-sourcegraph/kustomization.yaml
- components:
- # This updates storageClassName to
- # the STORAGECLASS_NAME value from buildConfig.yaml
- - ../../components/storage-class/name-update
- ```
-
-**2.** Input the storage class name by setting the value of `STORAGECLASS_NAME` in `buildConfig.yaml`.
-
-For example, set `STORAGECLASS_NAME=sourcegraph` if `sourcegraph` is the name of an existing storage class:
-
- ```yaml
- # instances/my-sourcegraph/buildConfig.yaml
- kind: ConfigMap
- metadata:
- name: sourcegraph-kustomize-build-config
- data:
- STORAGECLASS_NAME: sourcegraph # -- [ACTION] Update storage class name here
- ```
-
-
-#### Option 3: Use default storage class
-
-Skip this step to use the default storage class without SSD support for non-production environments. However, you must recreate the cluster with SSDs configured for production environments later.
-
->WARNING: Search performance will suffer tremendously without SSDs provisioned.
-
-### **Step 6**: Build manifests with Kustomize
-
-Generate a new set of manifests locally using the configuration applied to the `my-sourcegraph` subdirectory without applying to the cluster.
-
- ```bash
- $ kubectl kustomize instances/my-sourcegraph -o cluster.yaml
- ```
-
-### **Step 7**: Review manifests
-
-Review the generated manifests to ensure they match your intended configuration.
-
- ```bash
- $ less cluster.yaml
- ```
-
-### **Step 8**: Deploy the generated manifests
-
-Apply the manifests from the ouput file `cluster.yaml` to your cluster:
-
- ```bash
- $ kubectl apply --prune -l deploy=sourcegraph -f cluster.yaml
- ```
-
-### **Step 9**: Monitor the deployment
-
-Monitor the deployment status to ensure all components are running properly.
-
- ```bash
- $ kubectl get pods -A -o wide --watch
- ```
-
-### **Step 10**: Access Sourcegraph in Browser
-
-To verify that the deployment was successful, port-forward the frontend pod with the following command:
-
- ```bash
- $ kubectl port-forward svc/sourcegraph-frontend 3080:30080
- ```
-
-Then access your new Sourcegraph instance at http://localhost:3080 to proceed to the site-admin setup step.
-
- ```bash
- $ open http://localhost:3080
- ```
-
----
-
-## Configure
-
-After the initial deployment, additional configuration might be required for Sourcegraph to customize your deployment to suit your specific needs.
-
-Common configurations that are strongly recommended for all Sourcegraph deployments:
-
-- [Enable the Sourcegraph monitoring stack](/admin/deploy/kubernetes/configure#monitoring-stack)
-- [Enable tracing](/admin/deploy/kubernetes/configure#tracing)
-- [Adjust resource allocations](/admin/deploy/kubernetes/configure#instance-size-based-resources)
-- [Adjust storage sizes](/admin/deploy/kubernetes/configure#adjust-storage-sizes)
-- [Configure ingress](/admin/deploy/kubernetes/configure#ingress)
-- [Enable TLS](/admin/deploy/kubernetes/configure#tls)
-- [Enable Embeddings Service](/admin/deploy/kubernetes/configure#enable-embeddings-service)
-
-Other common configurations include:
-
-- [Set up an external PostgreSQL Database](/admin/deploy/kubernetes/configure#external-postgres)
-- [Set up SSH connection for cloning repositories](/admin/deploy/kubernetes/configure#ssh-for-cloning)
-
-See the [configuration guide for Kustomize](/admin/deploy/kubernetes/configure) for more configuration options.
-
-## Helm Charts
-
-We recommend deploying Sourcegraph on Kubernetes with Kustomize due to the flexibility it provides. If your organization uses Helm to deploy on Kubernetes, please refer to the documentation for the [Sourcegraph Helm Charts](/admin/deploy/kubernetes/helm) instead.
-
-## Learn more
-
-- [Scaling Sourcegraph on Kubernetes](/admin/deploy/kubernetes/scale)
-- Examples of deploying Sourcegraph to the cloud provider listed below:
- - [Amazon EKS](/admin/deploy/kubernetes/kustomize/eks)
- - [Google GKE](/admin/deploy/kubernetes/kustomize/gke)
-- [Migration guide](/admin/deploy/kubernetes/kustomize/migrate) on migrating from [deploy-sourcegraph](https://github.com/sourcegraph/deploy-sourcegraph) to [deploy-sourcegraph-k8s](https://github.com/sourcegraph/deploy-sourcegraph-k8s)
-- [Other deployment options](/admin/deploy/)
-- [Troubleshooting](/admin/deploy/kubernetes/troubleshoot)
diff --git a/docs/versioned/5.2/admin/deploy/kubernetes/kustomize/eks.mdx b/docs/versioned/5.2/admin/deploy/kubernetes/kustomize/eks.mdx
deleted file mode 100644
index 088cbbf77..000000000
--- a/docs/versioned/5.2/admin/deploy/kubernetes/kustomize/eks.mdx
+++ /dev/null
@@ -1,134 +0,0 @@
-# Installation Guide - Amazon Elastic Kubernetes Service (EKS)
-
-This section is aimed at providing high-level guidance on deploying Sourcegraph using a Kustomize overlay on Amazon Elastic Kubernetes Service (EKS).
-
-## Overview
-
-The installation instructions below will guide you through deploying Sourcegraph on Elastic Kubernetes Service (EKS) with our quick-start overlay.
-
-The overlay will:
-
-- Deploy a Sourcegraph instance without RBAC resources
-- Configure Ingress to use [AWS Load Balancer Controller](https://docs.aws.amazon.com/eks/latest/userguide/aws-load-balancer-controller.html) to expose Sourcegraph publicly on your domain
-- Configure the Storage Class to use [AWS EBS CSI driver](https://docs.aws.amazon.com/eks/latest/userguide/managing-ebs-csi.html) (installed as adds-on)
-
-## Prerequisites
-
-- A EKS cluster (>=1.19) with the following addons enabled:
- - [AWS Load Balancer Controller](https://docs.aws.amazon.com/eks/latest/userguide/aws-load-balancer-controller.html)
- - [AWS EBS CSI driver](https://docs.aws.amazon.com/eks/latest/userguide/managing-ebs-csi.html)
-- Minimum Kubernetes version: [v1.19](https://kubernetes.io/blog/2020/08/26/kubernetes-release-1.19-accentuate-the-paw-sitive/) with [kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl/) v1.19 or later
-- [Kustomize](https://kustomize.io/) (built into `kubectl` in version >= 1.14)
-
-## Quick Start
-
-You must complete **all** the prerequisites listed above before installing Sourcegraph with following steps.
-
-### Step 1: Deploy Sourcegraph
-
-Deploy Sourcegraph main app without the monitoring stacks to your cluster:
-
-```bash
-$ kubectl apply --prune -l deploy=sourcegraph -k https://github.com/sourcegraph/deploy-sourcegraph-k8s/examples/aws
-```
-
-Monitor the deployment status to make sure everything is up and running:
-
-```bash
-kubectl get pods -n ns-sourcegraph -o wide --watch
-```
-
-### Step 2: Access Sourcegraph in Browser
-
-To check the status of the load balancer and obtain its IP:
-
-```bash
-$ kubectl describe ingress sourcegraph-frontend -n ns-sourcegraph
-```
-
-From you output, look for the IP address of the load balancer, which is listed under `Address`.
-
-```bash
-# Sample output:
-Name: sourcegraph-frontend
-Namespace: default
-Address: 12.345.678.0
-```
-
-Once the load balancer is ready, you can access your new Sourcegraph instance at the returned IP address in your browser via HTTP. Accessing the IP address with HTTPS will return errors because TLS must be enabled first.
-
-It might take about 10 minutes for the load balancer to be fully ready. In the meantime, you can access Sourcegraph using the port forward method as described below.
-
-#### Port forward
-
-Forward the remote port so that you can access Sourcegraph without network configuration temporarily.
-
-```bash
-kubectl port-forward svc/sourcegraph-frontend 3080:30080 -n ns-sourcegraph
-```
-
-You should now be able to access your new Sourcegraph instance at http://localhost:3080 🎉
-
-### Further configuration
-
-The steps above have guided you to deploy Sourcegraph using the [quick-start/aws/eks](https://github.com/sourcegraph/deploy-sourcegraph-k8s/tree/master/examples/aws) overlay preconfigured by us.
-
-If you would like to make other configurations to your existing instance, you can create a new overlay using its kustomization.yaml file shown below and build on top of it. For example, you can upgrade your instance from size XS to L, or add the monitoring stacks.
-
-```yaml
-# overlays/$INSTANCE_NAME/kustomization.yaml
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-namespace: ns-sourcegraph
-resources:
- # Deploy Sourcegraph main stack
- - ../../base/sourcegraph
- # Deploy Sourcegraph monitoring stack
- - ../../base/monitoring
-components:
- # Use resources for a size-XS instance
- - ../../components/sizes/xs
- # Apply configurations for AWS EKS storage class and ALB
- - ../../components/clusters/aws/eks-ebs
-```
-
-#### Enable TLS
-
-Once you have created a new overlay using the kustomization file from our quick-start overlay for AWS EKS, we strongly recommend that you:
-- create a DNS A record for your Sourcegraph instance domain
-- enable TLS is highly recommended.
-
-If you would like to enable TLS with your own certificate, please read the [TLS configuration guide](/admin/deploy/kubernetes/configure#tls) for detailed instructions.
-
-##### AWS-managed certificate
-
-In order to use a managed certificate from [AWS Certificate Manager](https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html) to enable TLS:
-
-Step 1: Add the `aws/mange-cert` component to your overlay:
-
-```yaml
-# instances/$INSTANCE_NAME/buildConfig.yaml
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-namespace: ns-sourcegraph
-resources:
- - ../../base/sourcegraph
- - ../../base/monitoring
-components:
- - ../../components/resources/namespace
- - ../../components/sizes/xs
- - ../../components/clusters/aws/eks-ebs
- - ../../components/clusters/aws/managed-cert
-```
-
-Step 2: Set the `AWS_MANAGED_CERT_ARN` variable with the `ARN of your AWS-managed TLS certificate` under the [BUILD CONFIGURATIONS](/admin/deploy/kubernetes/kustomize/#buildconfig-yaml) section:
-
-```yaml
-# instances/$INSTANCE_NAME/buildConfig.yaml
-kind: SourcegraphBuildConfig
-metadata:
- name: sourcegraph-kustomize-config
-data:
- # ARN of the AWS-managed TLS certificate
- AWS_MANAGED_CERT_ARN: arn:aws:acm:us-west-2:xxxxx:certificate/xxxxxxx
-```
diff --git a/docs/versioned/5.2/admin/deploy/kubernetes/kustomize/gke.mdx b/docs/versioned/5.2/admin/deploy/kubernetes/kustomize/gke.mdx
deleted file mode 100644
index 78cfae771..000000000
--- a/docs/versioned/5.2/admin/deploy/kubernetes/kustomize/gke.mdx
+++ /dev/null
@@ -1,159 +0,0 @@
-# Installation Guide - Google Kubernetes Engine (GKE)
-
-This section is aimed at providing high-level guidance on deploying Sourcegraph using a Kustomize overlay on GKE.
-
-## Overview
-
-The installation guide below will walk you through deploying Sourcegraph on Google Kubernetes Engine (GKE) using our GKE example overlay.
-
-The GKE overlay will:
-
-- Deploy a Sourcegraph instance without RBAC resources
-- Create [BackendConfig](https://cloud.google.com/kubernetes-engine/docs/how-to/ingress-configuration#create_backendconfig) CRD. This is necessary to instruct the GCP load balancer on how to perform health checks on our deployment.
-- Configure ingress to use [Container-native load balancing](https://cloud.google.com/kubernetes-engine/docs/how-to/container-native-load-balancing) to expose Sourcegraph publicly on a domain of your choosing and
-- Create Storage Class to use [Compute Engine persistent disk](https://cloud.google.com/kubernetes-engine/docs/how-to/persistent-volumes/gce-pd-csi-driver).
-
-## Prerequisites
-
-- A running GKE cluster with the following configurations:
- - **Enable HTTP load balancing** in Networking
- - **SSD persistent disk** as book disk type
-- Minimum Kubernetes version: [v1.19](https://kubernetes.io/blog/2020/08/26/kubernetes-release-1.19-accentuate-the-paw-sitive/) with [kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl/) v1.19 or later
-- [Kustomize](https://kustomize.io/) (built into `kubectl` in version >= 1.14)
-
-## Quick Start
-
-You must complete **all** the prerequisites listed above before installing Sourcegraph with following steps.
-
-### Step 1: Deploy Sourcegraph
-
-Deploy Sourcegraph to your cluster:
-
-```bash
-$ kubectl apply --prune -l deploy=sourcegraph -k https://github.com/sourcegraph/deploy-sourcegraph-k8s/examples/gke
-```
-
-Monitor the deployment status to make sure everything is up and running:
-
-```bash
-kubectl get pods -n ns-sourcegraph -o wide --watch
-```
-
-### Step 2: Access Sourcegraph in Browser
-
-To check the status of the load balancer and obtain its IP:
-
-```bash
-$ kubectl describe ingress sourcegraph-frontend -n ns-sourcegraph
-```
-
-From you output, look for the IP address of the load balancer, which is listed under `Address`.
-
-```bash
-# Sample output:
-Name: sourcegraph-frontend
-Namespace: default
-Address: 12.345.678.0
-```
-
-Once the load balancer is ready, you can access your new Sourcegraph instance at the returned IP address in your browser via HTTP. Accessing the IP address with HTTPS returns errors because TLS must be enabled first.
-
-It might take about 10 minutes for the load balancer to be fully ready. In the meantime, you can access Sourcegraph using the port forward method as described below.
-
-#### Port forward
-
-Forward the remote port so that you can access Sourcegraph without network configuration temporarily.
-
-```bash
-kubectl port-forward svc/sourcegraph-frontend 3080:30080 -n ns-sourcegraph
-```
-
-You should now be able to access your new Sourcegraph instance at http://localhost:3080 🎉
-
-### Further configuration
-
-The steps above have guided you to deploy Sourcegraph using the [examples/gke](https://github.com/sourcegraph/deploy-sourcegraph-k8s/tree/master/examples/gke) overlay preconfigured by us.
-
-If you would like to make other configurations to your existing instance, you can create a new overlay using its kustomization.yaml file shown below and build on top of it. For example, you can upgrade your instance from size XS to L, or add cAdvisor.
-
-```yaml
-# overlays/$INSTANCE_NAME/kustomization.yaml
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-namespace: ns-sourcegraph
-resources:
- # Deploy Sourcegraph main stack
- - ../../base/sourcegraph
- # Deploy Sourcegraph monitoring stack
- - ../../base/monitoring
-components:
- # Create a namespace for ns-sourcegraph
- - ../../components/resources/namespace
- # Use resources for a size-XS instance
- - ../../components/sizes/xs
- # Apply configurations for GKE
- - ../../components/clusters/gke/configure
-```
-
-#### Enable TLS
-
-Once you have created a new overlay using the kustomization file from our examples overlay for gke, we strongly recommend you to:
-- create a DNS A record for your Sourcegraph instance domain
-- enable TLS is highly recommended.
-
-If you would like to enable TLS with your own certificate, please read the [TLS configuration guide](/admin/deploy/kubernetes/configure#tls) for detailed instructions.
-
-##### Google-managed certificate
-
-In order to use [Google-managed SSL certificates](https://cloud.google.com/kubernetes-engine/docs/how-to/managed-certs) to enable TLS:
-
-Step 1: Add the `gke mange-cert` component to your overlay:
-
-```yaml
-# instances/$INSTANCE_NAME/kustomization.yaml
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-namespace: ns-sourcegraph
-resources:
- - ../../base/sourcegraph
- - ../../base/monitoring
-components:
- - ../../components/resources/namespace
- - ../../components/sizes/xs
- - ../../components/clusters/gke/configure
- - ../../components/clusters/gke/managed-cert
-```
-
-Step 2: Set the `GKE_MANAGED_CERT_NAME` variable with your Google-managed certificate name under the [BUILD CONFIGURATIONS](/admin/deploy/kubernetes/kustomize#buildconfig-yaml) section:
-
-```yaml
-# instances/$INSTANCE_NAME/buildConfig.yaml
-kind: SourcegraphBuildConfig
-metadata:
- name: sourcegraph-kustomize-config
-data:
- GKE_MANAGED_CERT_NAME: your-managed-cert-name
-```
-
-### Remote Build
-
-You can also make a copy of this remote kustomization file locally and build on top of it.
-
-```bash
-$ kustomize create --resources https://github.com/sourcegraph/deploy-sourcegraph-k8s/examples/gke
-```
-
-You can also add remote components, but not components that required additional input in buildConfig.yaml.
-
-```yaml
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-namespace: ns-sourcegraph
-resources:
- - https://github.com/sourcegraph/deploy-sourcegraph-k8s/examples/gke
-components:
- # Add components here
- - https://github.com/sourcegraph/deploy-sourcegraph-k8s/components/monitoring/cadvisor
- - https://github.com/sourcegraph/deploy-sourcegraph-k8s/components/monitoring/tracing
-
-```
diff --git a/docs/versioned/5.2/admin/deploy/kubernetes/kustomize/index.mdx b/docs/versioned/5.2/admin/deploy/kubernetes/kustomize/index.mdx
deleted file mode 100644
index 5de23fddc..000000000
--- a/docs/versioned/5.2/admin/deploy/kubernetes/kustomize/index.mdx
+++ /dev/null
@@ -1,261 +0,0 @@
-# Kustomize for Sourcegraph
-
-An introduction to Kustomize created for Sourcegraph.
-
-
-
-
-
-
-
-
-
-
-## Overview
-
- Kustomize enables us to decompose our **[base](#base)** application into smaller building blocks, with multiple versions of each block preconfigured as **[components](#components)** for various use cases. This modular approach enables the mixing and matching of the building blocks to construct a customized version of the application by creating **[overlays](#overlay)**. This feature provides a high degree of flexibility and facilitates the maintenance and evolution of the application over time.
-
- ## Quick Start
-
- To deploy Sourcegraph into the `ns-sourcegraph`:
-
-```bash
-$ kubectl apply --prune -l deploy=sourcegraph -k https://github.com/sourcegraph/deploy-sourcegraph-k8s/examples/base/xs?ref=v4.5.1
-```
-
-## Build process
-
-During the build process, Kustomize will:
-
-1. First build the resources from the base layer of the application.
-2. If generators are used, it will then create ConfigMaps and Secrets. These resources can be generated from files, or from data stored in ConfigMaps, or from image metadata.
-3. Next, Kustomize will apply patches specified by the components to selectively overwrite resources in the base layer. Patching allows you to modify the resources defined in the base layer without changing the original source files. This is useful for making small, targeted changes to the resources that are needed for your specific deployment.
-4. Finally, Kustomize will perform validation to ensure that the modified resources are valid and conform to the Kubernetes API. This is to ensure that the customized deployment is ready for use.
-
-Once the validation is passed, the modified resources are grouped into a single file, known as the output. After that, you can use kubectl to apply the overlaid resources to your cluster.
-
-## Deployment repository
-
-You can find all the configuration files and components needed to deploy Sourcegraph with Kustomize in the [deploy-sourcegraph-k8s](https://github.com/sourcegraph/deploy-sourcegraph-k8s) repository.
-
-Here is the file structure:
-
-```bash
-# github.com/sourcegraph/deploy-sourcegraph-k8s
-├── base
-│ ├── sourcegraph
-│ └── monitoring
-├── components
-├── examples
-└── instances
- └── template
- └── buildConfig.template.yaml
- └── kustomization.template.yaml
-
-```
-
-> WARNING: Please create your own sets of overlays within the 'instances' directory and refrain from making changes to the other directories to prevent potential merge conflicts during future updates.
-
-## Base
-
-**Base** refers to a set of YAML files created for the purpose of deploying a Sourcegraph instance to a Kubernetes cluster. These files come preconfigured with default values that can be used to quickly deploy a Sourcegraph instance.
-
-However, deploying with these default settings may not be suitable for all environments and specific use cases. For example, the default resource allocation may not match the requirements for your specific instance size, or the default deployments may include RBAC resources that you would like to remove. To address these issues, creating a Kustomize overlay can be an effective solution. It allows you to customize the resources defined in the base layer to suit the specific requirements of the deployment.
-
-## Overlays
-
-The **instances directory** is used to store customizations specific to your deployment environment. It allows you to create different overlays for different instances for different purposes, such as an instance for production and another for staging. It is best practice to avoid making changes to files outside of the **instances directory** in order to prevent merge conflicts during future updates.
-
-An [overlay](https://kubernetes.io/docs/tasks/manage-kubernetes-objects/kustomization/#bases-and-overlays) acts as a **customization layer** that contains a [kustomization file](https://kubectl.docs.kubernetes.io/references/kustomize/kustomization/), where components are defined as the **configuration layer** to include a set of instructions for Kustomize to generate and apply configurations to the **base layer**.
-
-Here is an example of a `kustomization` file from one of our [examples](#examples-overlays) that is configured for deploying a size XS instance to a k3s cluster:
-
-```yaml
-# examples/k3s/xs/kustomization.yaml
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-namespace: sourcegraph-example
-resources:
- - ../../base/sourcegraph # Deploy Sourcegraph main stack
- - ../../base/monitoring # Deploy Sourcegraph monitoring stack
-components:
- # Configurs the deployment for k3s cluster
- - ../../components/clusters/k3s
- # Configurs the resources we added above for a size XS instance
- - ../../components/sizes/xs
-```
-
-### Examples overlays
-
- In addition to providing a template for creating new overlays, we also provide a set of examples that are pre-configured for different environments. These pre-built overlays can be found inside the [examples](https://github.com/sourcegraph/deploy-sourcegraph-k8s/tree/master/examples) directory.
-
-## Overlay
-
-In this section, we will take a quick look at the essential part that make up a Kustomize overlay tailored for Sourcegraph.
-
-### Template
-
-An overlay is a directory that contains various files used to configure a deployment for a specific scenario. These files include the [kustomization.yaml file](#kustomization-yaml), which is used to specify how the resources defined in the base manifests should be customized and configured, as well as other files such as environment variable files, configuration files, and patches.
-
-File structure:
-
-```bash
-# github.com/sourcegraph/deploy-sourcegraph-k8s
-└── instances
- ├── $INSTANCE_NAME
- │ ├── kustomization.yaml
- │ ├── buildConfig.yaml
- │ └── patches
- │ └── additional config files go here...
- └── template
- └── buildConfig.template.yaml
- └── kustomization.template.yaml
-```
-
-All custom overlays built for a specific instance should be stored in the [instances directory](https://github.com/sourcegraph/deploy-sourcegraph-k8s/tree/master/instances), where you can find the [instances/template folder](https://github.com/sourcegraph/deploy-sourcegraph-k8s/tree/master/instances/template). This folder contains a [kustomization.template.yaml file](#kustomization-yaml) that is preconfigured to construct an overlay for deploying Sourcegraph, and a [buildConfig.template.yaml](#buildconfig-yaml).
-
-### kustomization.yaml
-
-The [kustomization.yaml file](#kustomization-yaml) is a fundamental element of a Kustomize overlay. It is situated in the root directory of the overlay and serves as a means of customizing and configuring the resources defined in the base manifests, as outlined in our [configuration documentation](/admin/deploy/kubernetes/configure).
-
-To correctly configure your Sourcegraph deployment, it is crucial to create an overlay using the `kustomization.template.yaml` file provided. This [kustomization.yaml file](#kustomization-yaml) is specifically designed for Sourcegraph deployments, making the configuration process more manageable. The file includes various options and sections, allowing for the creation of a Sourcegraph instance that is tailored to the specific environment.
-
-#### components-list
-
-The order of components in the [kustomization.template.yaml file](#kustomization-yaml) is important and should be maintained. The components are listed in a specific order to ensure proper dependency management and compatibility between components. Reordering components can introduce conflicts or prevent components from interacting as expected. Only modify the component order if explicitly instructed to do so by the documentation. Otherwise, leave the component order as-is to avoid issues.
-
-### buildConfig.yaml
-
-Some Kustomize components may require additional configuration. These inputs typically specify environment/use-case-specific settings. For example, the name of your private registry to update images.
-Only update the values inside the `buildConfig.yaml` file if a component's documentation explicitly instructs you to do so. Not all components need extra configuration, and some have suitable defaults.
-Modifying `buildConfig.yaml` unnecessarily can cause errors or unintended behavior. Always check the [configuration docs](/admin/deploy/kubernetes/configure) or comments in [kustomization.yaml](#kustomization-yaml) before changing this file.
-
-### patches directory
-
-The `patches directory` is designated to store configuration files that Kustomize uses to customize your deployment. These files can include Kustomize overlays, supplementary kustomization.yaml files, modified ConfigMaps, copies of base manifests, and other configuration files necessary for patching the base cluster.
-
-When instructed by the configuration docs to set up the necessary files for configuring your Sourcegraph instance:
-
-1. Create a directory called 'patches': `mkdir patches`
-2. Create the required files within the 'patches' directory
-
-This will ensure the files are in the correct location for the configuration process to access them.
-
-> NOTE: Creating the patches directory is not mandatory unless instructed by the components defined in your overlay.
-
-### Create a Sourcegraph overlay
-
-The [instances/template](#template) directory serves as a starting point for creating a custom overlay for your deployment. It includes the template files that includes a list of components that are commonly used in Sourcegraph deployments. To create a new overlay, you can copy this directory to a new directory. Then, you can enable or disable specific components by commenting or uncommenting them in the overlay file `kustomization.yaml` inside the new directory. This allows you to customize your deployment to suit your specific needs.
-
-
-**Step 1**: Set up a directory for your instance
-
-Create a copy of the [instances/template](#template) directory within the `instances` subdirectory.
-
-The name of this directory, `$INSTANCE_NAME`, serves as the name of your overlay for the specific instance, for example, `dev`, `prod`, `staging`, etc.
-
-```bash
-# from the root of the deploy-sourcegraph-k8s repository
-$ export INSTANCE_NAME=staging # Update 'staging' to your instance name
-$ cp -R instances/template instances/$INSTANCE_NAME
-```
-
-**Step 2**: Set up the configuration files
-
-As described above, you can find two configuration files within the `$INSTANCE_NAME` directory:
-
-1. The `kustomization.yaml` file is used to configure your Sourcegraph instance.
-2. The `buildConfig.yaml` file is used to configure components included in your `kustomization` file when required.
-
-Follow the steps listed below to set up the configuration files for your instance overlay: `$INSTANCE_NAME`.
-
-#### kustomization.yaml
-
-Rename the [kustomization.template.yaml](#kustomization-yaml) file in `instances/$INSTANCE_NAME` to `kustomization.yaml`:
-
-```bash
- $ mv instances/template/kustomization.template.yaml instances/$INSTANCE_NAME/kustomization.yaml
-```
-
-#### buildConfig.yaml
-
-Rename the [buildConfig.template.yaml](#buildconfig-yaml) file in `instances/$INSTANCE_NAME` to `buildConfig.yaml`:
-
-```bash
- $ mv instances/template/buildConfig.template.yaml instances/$INSTANCE_NAME/buildConfig.yaml
-```
-**Step 3**: You can begin customizing your Sourcegraph deployment by updating the [kustomization.yaml file](#kustomization-yaml) inside your overlay, following our [configuration guides](/admin/deploy/kubernetes/configure) for guidance.
-
-## Components
-
-An overlay in Kustomize is a set of configuration files that are used to customize the base resources. To understand an overlay, it's important to examine its components, which are listed under the components field inside the [kustomization.yaml file](#kustomization-yaml) of the overlay.
-
-Most of our components are designed to be reusable for different environments and use cases. They can be used to add common labels and annotations, apply common configurations, or even generate resources. By using these components, you can minimize the amount of duplicated code in your overlays and make them more maintainable.
-
-### Rule of thumbs
-
-It is important to understand how each component covered in the [configuration guide](/admin/deploy/kubernetes/configure) is used to configure your Sourcegraph deployment. Each component has specific configuration options and settings that need to be configured correctly in order for your deployment to function properly. By reading the details and understanding how each component is used, you can make informed decisions about which components to enable or disable in your overlay file, and how to configure them to meet your needs. It also helps to learn how to troubleshoot if something goes wrong.
-
-Here are some **rule of thumbs** to follow when combining different components to ensure that they work together seamlessly and avoid any conflicts:
-
-- Understand the dependencies between components: Some components may depend on others to function properly. For example, if you include a component to remove a daemonset, you should also include the monitoring component to make sure that there is something for the component to remove. If you don't, the overlay build process will fail because there is nothing for the component to remove.
-
-- Be aware of the configuration settings of each component: Each component has its own configuration settings that need to be configured correctly. For example, if you include a component that adds RBAC resources to your deployment when your cluster is RBAC-disabled, it will cause the overlay build process to fail.
-
-- Understand the resources each component creates: Each component creates its own set of resources that need to be managed. For example, if you include a component that creates a service and another component that creates a deployment, you need to make sure that the service points to the deployment.
-
-- Be careful when disabling components: Some components may depend on others to function properly. When disabling a component, you need to consider the impact it may have on other components.
-
-By following these rule of thumbs, you can ensure that the components you include in your overlay work together seamlessly and avoid any conflicts. It is also a good practice to review the manifests generated by the overlay before deploying them to the production environment, to make sure that the overlay is configured as desired.
-
-## Remote build
-
-Remote build feature allows you to deploy an overlay using a git URL, but it should be noted that it does not support custom configurations as the resources are hosted remotely.
-
-To create manifests using a remote overlay, you can use the following command:
-
-```bash
-# Replace the $REMOTE_OVERLAY_URL with a URL of an overlays.
-$ kubectl kustomize $REMOTE_OVERLAY_URL -o cluster.yaml
-```
-
-The command above will download the overlay specified in the $REMOTE_OVERLAY_URL and apply the customizations to the base resources and output the resulting customized manifests to the file cluster.yaml. This command allows you to preview the resources before running the apply command below to deploy using the remote overlay.
-
-```bash
-$ kubectl apply --prune -l deploy=sourcegraph -f cluster.yaml
-```
-
-## Preview manifests
-
-To create a customized deployment using your overlay, run the following command from the root directory of your deployment repository.
-
-```bash
-$ kubectl kustomize $PATH_TO_OVERLAY -o cluster.yaml
-```
-
-This command will apply the customizations specified in the overlay located at $PATH_TO_OVERLAY to the base resources and output the customized manifests to the file `cluster.yaml`.
-
-The $PATH_TO_OVERLAY path can be a local path or remote path. For example:
-
-```bash
-# Local
-$ kubectl kustomize examples/k3s/xs -o cluster.yaml
-# Remote
-$ kubectl kustomize https://github.com/sourcegraph/deploy-sourcegraph-k8s/examples/k3s/xs -o cluster.yaml
-```
-
-> NOTE: This command will only generate the customized manifests and will not apply them to the cluster. It does not affect your current deployment until you run the apply command.
-
-## Kustomize with Helm
-
-Kustomize can be used in conjunction with Helm to configure Sourcegraph, as outlined in [this guidance](/admin/deploy/kubernetes/helm#integrate-kustomize-with-helm-chart). However, this approach is only recommended as a temporary workaround while Sourcegraph adds support for previously unsupported customizations in its Helm chart. This means that using Kustomize with Helm is not a long-term solution.
-
-## Deprecated
-
-The previous Kustomize structure we built for our Kubernetes deployments depends on scripting to create deployment manifests. It does not provide flexibility and requires direct changes made to the base manifests.
-
-With the new Kustomize we have introduced in this documentation, these issues can now be avoided. The previous version of the Sourcegraph Kustomize Overlays are still available, but they should not be used for any new Kubernetes deployment.
-
-See the [old deployment docs for deploying Sourcegraph on Kubernetes](https://docs.sourcegraph.com/@v4.4.2/admin/deploy/kubernetes).
-
-> NOTE: The latest version of our Kustomize overlays does not work on instances that are older than v4.5.0.
diff --git a/docs/versioned/5.2/admin/deploy/kubernetes/kustomize/migrate.mdx b/docs/versioned/5.2/admin/deploy/kubernetes/kustomize/migrate.mdx
deleted file mode 100644
index fdccce108..000000000
--- a/docs/versioned/5.2/admin/deploy/kubernetes/kustomize/migrate.mdx
+++ /dev/null
@@ -1,232 +0,0 @@
-# Migration Docs for Kustomize
-
-The old method of deploying Sourcegraph with custom scripts has been deprecated. Instead, the new setup uses Kustomize, a Kubernetes-native tool, for configurations. This guide explains how to migrate from the old setup ([deploy-sourcegraph](https://github.com/sourcegraph/deploy-sourcegraph)) to the new one ([deploy-sourcegraph-k8s](https://github.com/sourcegraph/deploy-sourcegraph-k8s)).
-
->NOTE: Both the old custom scripts and Kustomize only create manifests for deployment and don’t change any existing resources in an active cluster.
-
-## Why migrate?
-
-Here are the benefits of the new base cluster with the new Kustomize setup compared to the old one:
-
-- Improved security defaults:
- * Runs in non-privileged mode
- * Uses non-root users
- * Does not require RBAC resources
-- Streamlined resource allocation process:
- * Allocates resources based on the size of the instance
- * Optimized through load testing
- * The searcher and symbols use StatefulSets and do not require ephemeral storage
-- Utilizes the Kubernetes-native tool Kustomize:
- * Built into kubectl
- * No additional scripting required
- * More extensible and composable
- * Highly reusable that enables creation of multiple instances with the same base resources and components
-- Effortless configurations:
- * A comprehensive list of components pre-configured for different use cases
- * Designed to work seamlessly with Sourcegraph’s design and functionality
- * Prevents merge conflicts during upgrades
-
----
-
-## Migration process
-
-The migration process for transitioning from the Kustomize setup in [deploy-sourcegraph](https://github.com/sourcegraph/deploy-sourcegraph) to [deploy-sourcegraph-k8s](https://github.com/sourcegraph/deploy-sourcegraph-k8s) involves the steps shown below.
-
-The goal of this migration process is to create a new overlay that will generate similiar resources as the current cluster, ensuring a smooth deployment process without disrupting existing resources.
-
-## Step 1: Upgrade current instance with the old repository
-
-Upgrade your current instance to the latest version of Sourcegraph (must be 4.5.0 or above) following the [standard upgrade process](/admin/deploy/kubernetes/upgrade#standard-upgrades) for the repository ([deploy-sourcegraph](https://github.com/sourcegraph/deploy-sourcegraph)) your instance was deployed with.
-
-### From Privileged to Non-privileged
-
-Sourcegraph's deployment mode changed from privileged (containers run as root) to non-privileged (containers run as non-root) as the default in the new Kustomize setup. If your instance is currently running in privileged mode and you want to upgrade to `non-privileged` mode, use the [migrate-to-nonprivileged overlay](https://github.com/sourcegraph/deploy-sourcegraph/tree/master/overlays/migrate-to-nonprivileged) from the Sourcegraph [deploy-sourcegraph](https://github.com/sourcegraph/deploy-sourcegraph) repository when following the [standard upgrade process](/admin/deploy/kubernetes/upgrade#standard-upgrades) to perform your upgrade.
-
->NOTE: Applying the [migrate-to-nonprivileged overlay](https://github.com/sourcegraph/deploy-sourcegraph/tree/master/overlays/migrate-to-nonprivileged) will convert your deployment to run in non-privileged mode
-
-## Step 2: Set up a release branch for the new repository
-
-Set up a release branch from the latest version branch in your local fork of the [deploy-sourcegraph-k8s](https://github.com/sourcegraph/deploy-sourcegraph-k8s) repository.
-
-```bash
- # Recommended: replace the URL with your private fork
- $ git clone https://github.com/sourcegraph/deploy-sourcegraph-k8s.git
- $ cd deploy-sourcegraph-k8s
- $ git checkout v4.5.1 && git checkout -b release
-```
-
-## Step 3: Set up a directory for your instance
-
-Create a copy of the [instances/template](/admin/deploy/kubernetes/kustomize/#template) directory and rename it to `instances/my-sourcegraph`:
-
-```bash
- $ cp -R instances/template instances/my-sourcegraph
-```
-
->NOTE: In Kustomize, this directory is referred to as an [overlay](https://kubectl.docs.kubernetes.io/references/kustomize/glossary/#overlay).
-
-## Step 4: Set up the configuration files
-
-#### kustomization.yaml
-
-The `kustomization.yaml` file is used to configure your Sourcegraph instance.
-
-**1.** Rename the [kustomization.template.yaml](/admin/deploy/kubernetes/kustomize/#kustomization-yaml) file in `instances/my-sourcegraph` to `kustomization.yaml`.
-
-- The `kustomization.yaml` file is used to configure your Sourcegraph instance.
-
-```bash
- $ mv instances/my-sourcegraph/kustomization.template.yaml instances/my-sourcegraph/kustomization.yaml
-```
-
-#### buildConfig.yaml
-
-**2.** Rename the [buildConfig.template.yaml](/admin/deploy/kubernetes/kustomize/#buildconfig-yaml) file in `instances/my-sourcegraph` to `buildConfig.yaml`.
-
-- The `buildConfig.yaml` file is used to configure components included in your `kustomization` file when required.
-
-```bash
- $ mv instances/my-sourcegraph/buildConfig.template.yaml instances/my-sourcegraph/buildConfig.yaml
-```
-
-## Step 5: Set namespace
-
-Replace `ns-sourcegraph` with a namespace that matches the existing namespace for your current instance.
-
-You may set `namespace: default` to deploy to the default namespace.
-
- ```yaml
- # instances/my-sourcegraph/kustomization.yaml
- namespace: ns-sourcegraph
- ```
-
-## Step 6: Set storage class
-
-To add the storage class name that your current instance is using for all associated resources:
-
-6.1. Include the `storage-class/name-update` component under the components list.
-
- ```yaml
- # instances/my-sourcegraph/kustomization.yaml
- components:
- # This updates storageClassName to
- # the STORAGECLASS_NAME value from buildConfig.yaml
- - ../../components/storage-class/name-update
- ```
-
-6.2. Input the storage class name by setting the value of `STORAGECLASS_NAME` in `buildConfig.yaml`.
-
-For example, set `STORAGECLASS_NAME=sourcegraph` if `sourcegraph` is the name of an existing storage class:
-
- ```yaml
- # instances/my-sourcegraph/buildConfig.yaml
- kind: ConfigMap
- metadata:
- name: sourcegraph-kustomize-build-config
- data:
- STORAGECLASS_NAME: sourcegraph # -- [ACTION] Update storage class name here
- ```
-
-## Step 7: Recreate overlay (OPTIONAL)
-
->NOTE: You may skip this step if your instance was not deployed using overlays from the [deploy-sourcegraph](https://github.com/sourcegraph/deploy-sourcegraph) repository.
-
-If your running instance was deployed using an existing overlay from the [deploy-sourcegraph](https://github.com/sourcegraph/deploy-sourcegraph) repository (except migrate-to-nonprivileged):
-
-1. Copy and paste everything (except `kustomization.yaml`) from the old overlay directory to `instances/my-sourcegraph`.
-2. Manually merge the contexts from the old `kustomization.yaml` file into `instances/my-sourcegraph/kustomization.yaml`.
-3. In the new `kustomization.yaml` file, replace the old base resources (`bases/deployments`, `bases/pvcs`) with the new base resources that include:
- - `buildConfig.yaml`
- - `base/sourcegraph`
- - `base/monitoring`
-
-For example:
-
-```diff
-# instances/my-sourcegraph/kustomization.yaml
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-namespace: default
-resources:
-- - ../bases/deployments
-- - ../bases/pvcs
-+ - buildConfig.yaml
-+ - ../../base/sourcegraph
-+ - ../../base/monitoring
-```
-
-## Step 8: Recreate instance resources
-
-Follow our [configuration guide](/admin/deploy/kubernetes/configure) to recreate your running instance with the provided components.
-
-It is recommended to refrain from introducing any changes to the characteristics of a running Kubernetes cluster during a migration. For example, if the cluster is currently running in privileged mode with root user access, deploying the instance in non-privileized mode could cause permission errors.
-
-Ensure the following configurations are present/ consistent for your Sourcegraph instance during migrations:
-- [Storage size for all services](/admin/deploy/kubernetes/configure#adjust-storage-sizes)
-- [Permission settings](/admin/deploy/kubernetes/configure#base-cluster) (privileged or non-privileged mode)
-- [Networking](/admin/deploy/kubernetes/configure#network-access)
-- [Ingress](/admin/deploy/kubernetes/configure#ingress)
-- [Storage class](/admin/deploy/kubernetes/configure#storage-class)
-- [Storage class name](/admin/deploy/kubernetes/configure#update-storageclassname)
-- [Namespace](/admin/deploy/kubernetes/configure#namespace)
-- [cAdvisor](/admin/deploy/kubernetes/configure#deploy-cadvisor)
-- [Tracing services](/admin/deploy/kubernetes/configure#tracing) (OpenTelemetry and Jaeger for example)
-
-If you have previously made changes directly to the files inside [the base directory](https://github.com/sourcegraph/deploy-sourcegraph/tree/master/base), please convert these changes into [patches](https://kubectl.docs.kubernetes.io/references/kustomize/kustomization/patches/) before adding them to your `kustomization.yaml` file as patches.
-
-### Privileged
-
-If your Sourcegraph instance is currently running in privileged mode, start building your overlay with the `clusters/old-base` component, which generates resources similar to the base cluster in deploy-sourcegraph.
-
-```yaml
-# instances/my-sourcegraph/kustomization.yaml
- components:
- - ../../components/clusters/old-base
-```
-
-### Non-privileged
-
-The default cluster now runs in non-privileged mode.
-
-If your instance was deployed using the non-privileged overlay, you can follow the [configuration guide](/admin/deploy/kubernetes/configure) without adding the `clusters/old-base` component.
-
-## Step 9: Build and review new manifests
-
-`pgsql`, `codeinsights-db`, `searcher`, `symbols`, and `codeintel-db` have been changed from `Deployments` to `StatefulSets`. However, redeploying these services as StatefulSets should not affect your existing deployment as they are all configured to use the same PVCs.
-
-### From Deployment to StatefulSet
-
-`searcher` and `symbols` are now StatefulSet that run as headless services. If your current `searcher` and `symbols` are running as Deployment, you will need to remove their services before re-deploying them as StatefulSet:
-
-```bash
- $ kubectl delete service/searcher
- $ kubectl delete service/symbols
-```
-
-**1.** Generate new manifests with the overlay:
-
-```bash
- $ kubectl kustomize my-sourcegraph -o cluster.yaml
-```
-
-**2.** Review the changes to ensure that the manifests generated by your new overlay are similar to the ones currently being used by your active cluster.
-
-[Compare the manifests](/admin/deploy/kubernetes/kustomize/#between-an-overlay-and-a-running-cluster) generated by your new overlay with the ones in your running cluster using the command below:
-
-```bash
- $ kubectl diff -l deploy=sourcegraph -f cluster.yaml
-```
-
-
-## Step 10: Deploy new manifests
-
-Once you are satisfied with the overlay output, you can now deploy the new overlay using these commands:
-
-```bash
- # Build manifests again with overlay
- $ kubectl kustomize $PATH_TO_OVERLAY -o cluster.yaml
- # Apply manifests to cluster
- $ kubectl apply --prune -l deploy=sourcegraph -f cluster.yaml
-```
-
-> WARNING: Make sure to test the new overlay and the migration process in a non-production environment before applying it to your production cluster.
diff --git a/docs/versioned/5.2/admin/deploy/kubernetes/operations.mdx b/docs/versioned/5.2/admin/deploy/kubernetes/operations.mdx
deleted file mode 100644
index cc9181cef..000000000
--- a/docs/versioned/5.2/admin/deploy/kubernetes/operations.mdx
+++ /dev/null
@@ -1,452 +0,0 @@
-# Operations guides for Sourcegraph on Kubernetes
-
-Operations guides specific to managing [Sourcegraph on Kubernetes](/admin/deploy/kubernetes/) installations.
-
-
-
-
-
-
-
-
-
-
-
-## Featured guides
-
-Trying to deploy Sourcegraph on Kubernetes? Refer to our [installation guide](/admin/deploy/kubernetes/#installation).
-
-## Configure
-
-We strongly recommend referring to our [Configuration guide](/admin/deploy/kubernetes/configure) to learn about how to configure your Sourcegraph with Kubernetes instance.
-
-## Deploy
-
-Refer to our [installation guide](/admin/deploy/kubernetes/) for details on how to deploy Sourcegraph.
-
-Migrating from another [deployment type](/admin/deploy/)? Refer to our [migration guides](/admin/deploy/migrate-backup).
-
-## Deploy with Kustomize
-
-In order to deploy Sourcegraph that is configured for your cluster:
-
-#### Building manifests
-
-Build a new set of manifests using an overlay you've created following our [configuration guide for Kustomize](/admin/deploy/kubernetes/kustomize/):
-
-```bash
-$ kubectl kustomize $PATH_TO_OVERLAY -o cluster.yaml
-```
-
-#### Reviewing manifests
-
-Review the manifests generated in the previous step:
-
-```bash
-$ less cluster.yaml
-```
-
-#### Applying manifests
-
-Run the command below to apply the manifests from the ouput file `cluster.yaml` to the connected cluster:
-
-```bash
-$ kubectl apply --prune -l deploy=sourcegraph -f cluster.yaml
-```
-
-Once you have applied your changes:
-
-- *Watch* - verify your deployment has started:
-
- ```bash
- $ kubectl get pods -A -o wide --watch
- ```
-
-- *Port-foward* - verify Sourcegraph is running by temporarily making the frontend port accessible:
-
- ```sh
- $ kubectl port-forward svc/sourcegraph-frontend 3080:30080
- ```
-
-- *Log in* - browse to your Sourcegraph deployment, login, and verify the instance is working as expected.
-
-
-## Compare overlays
-
-Below are the commands that will output the differences between the two overlays, allowing you to review and compare the changes and ensure that the new overlay produces similar resources as the ones currently being used by the active cluster or another overlay you want to compare with, before applying the new overlay.
-
-### Between two overlays
-
-To compare resources between two different Kustomize overlays:
-
-```bash
-$ diff \
- <(kubectl kustomize $PATH_TO_OVERLAY_1) \
- <(kubectl kustomize $PATH_TO_OVERLAY_2) |\
- more
-```
-
-Example 1: compare diff between resources generated by the k3s overlay for size xs instance and the k3s overlay for size xl instance:
-
-```bash
-$ diff \
- <(kubectl kustomize examples/k3s/xs) \
- <(kubectl kustomize examples/k3s/xl) |\
- more
-```
-
-Example 2: compare diff between the new base cluster and the old cluster:
-
-```bash
-$ diff \
- <(kubectl kustomize examples/base) \
- <(kubectl kustomize examples/old-cluster) |\
- more
-```
-
-Example 3: compare diff between the output files from two different overlay builds:
-
-```bash
-$ kubectl kustomize examples/old-cluster -o old-cluster.yaml
-$ kubectl kustomize examples/base -o new-cluster.yaml
-
-$ diff old-cluster.yaml new-cluster.yaml
-```
-
-### Between an overlay and a running cluster
-
-To compare the difference between the manifests generated by an overlay and the resources that are being used by the running cluster connected to the kubectl tool:
-
-```bash
-$ kubectl kustomize $PATH_TO_OVERLAY | kubectl diff -f -
-```
-
-The command will output the differences between the customizations specified in the overlay and the resources currently running in the cluster, allowing you to review the changes and ensure that the overlay produces similar resources to the ones currently being used by the active cluster before applying the new overlay.
-
-Example: compare diff between the k3s overlay for size xl instance and the instance that is connected with `kubectl`:
-
-```bash
-$ kubectl kustomize examples/k3s/xl | kubectl diff -f -
-```
-
-## List pods in cluster
-
-List all pods in your cluster and the corresponding health status of each pod:
-
-```bash
-$ kubectl get pods -o=wide
-```
-
-## Tail logs for specific pod
-
-Tail the logs for the specified pod:
-
-```bash
-$ kubectl logs -f $POD_NAME
-```
-
-If Sourcegraph is unavailable and the `sourcegraph-frontend-*` pod(s) are not in status `Running`, then view their logs with `$ kubectl logs -f sourcegraph-frontend-$POD_ID` (filling in `$POD_ID` from the `$ kubectl get pods` output). Inspect both the log messages printed at startup (at the beginning of the log output) and recent log messages.
-
-## Retrieving resource information
-
-Display detailed information about the status of a single pod:
-
-```bash
-$ kubectl describe $POD_NAME
-```
-
-List all Persistent Volume Claims (PVCs) and their statuses:
-
-```bash
-$ kubectl get pvc
-```
-
-List all Persistent Volumes (PVs) that have been provisioned.
-In a healthy cluster, there should be a one-to-one mapping between PVs and PVCs:
-
-```bash
-$ kubectl get pv
-```
-
-List all events in the cluster's history:
-
-```bash
-$ kubectl get events
-```
-
-Delete failing pod so it gets recreated, possibly on a different node:
-
-```bash
-$ kubectl delete pod $POD_NAME
-```
-
-Remove all pods from a node and mark it as unschedulable to prevent new pods from arriving
-
-```bash
-$ kubectl drain --force --ignore-daemonsets --delete-local-data $NODE
-```
-
-Restarting Sourcegraph Instance:
-
-```bash
-$ kubectl rollout restart deployment sourcegraph-frontend
-```
-
-## Access the database
-
-Get the id of one `pgsql` Pod:
-
-```bash
-$ kubectl get pods -l app=pgsql
-NAME READY STATUS RESTARTS AGE
-pgsql-76a4bfcd64-rt4cn 2/2 Running 0 19m
-```
-
-Make sure you are operating under the correct namespace (i.e. add `-n prod` if your pod is under the `prod` namespace).
-
-Open a PostgreSQL interactive terminal:
-
-```bash
-$ kubectl exec -it pgsql-76a4bfcd64-rt4cn -- psql -U sg
-```
-
-Run your SQL query:
-
-```sql
-SELECT * FROM users;
-```
-
-> NOTE: To execute an SQL query against the database without first creating an interactive session (as below), append `--command "SELECT * FROM users;"` to the docker container exec command.
-
-## Backup and restore
-
-The following instructions are specific to backing up and restoring the sourcegraph databases in a Kubernetes deployment. These do not apply to other deployment types.
-
-> WARNING: **Only core data will be backed up**.
->
-> These instructions will only back up core data including user accounts, configuration, repository-metadata, etc. Other data will be regenerated automatically:
->
-> - Repositories will be re-cloned
-> - Search indexes will be rebuilt from scratch
->
-> The above may take a while if you have a lot of repositories. In the meantime, searches may be slow or return incomplete results. This process rarely takes longer than 6 hours and is usually **much** faster.
-
-> NOTE: In some places you will see `$NAMESPACE` used. Add `-n $NAMESPACE` to commands if you are not using the default namespace
-> More kubectl configuration options can be found here: [kubectl Cheat Sheet](https://kubernetes.io/docs/reference/kubectl/cheatsheet/)
-
-### Back up Sourcegraph databases
-
-These instructions will back up the primary `sourcegraph` database and the [codeintel](/code_navigation/) database.
-
-A. Verify deployment running
-
-```bash
-$ kubectl get pods -A
-```
-
-B. Stop all connections to the database by removing the frontend deployment
-
-```bash
-$ kubectl scale --replicas=0 deployment/sourcegraph-frontend
-# or
-$ kubectl delete deployment sourcegraph-frontend
-```
-
-C. Check for corrupt database indexes. If amcheck returns errors, please reach out to [support@sourcegraph.com](mailto:support@sourcegraph.com)
-
-```sql
-create extension amcheck;
-
-select bt_index_parent_check(c.oid, true), c.relname, c.relpages
-from pg_index i
-join pg_opclass op ON i.indclass[0] = op.oid
-join pg_am am ON op.opcmethod = am.oid
-join pg_class c ON i.indexrelid = c.oid
-join pg_namespace n ON c.relnamespace = n.oid
-where am.amname = 'btree'
--- Don't check temp tables, which may be from another session:
-and c.relpersistence != 't'
--- Function may throw an error when this is omitted:
-and i.indisready AND i.indisvalid;
-```
-
-D. Generate the database dumps
-
-```bash
-$ kubectl exec -it $pgsql_POD_NAME -- bash -c 'pg_dump -C --clean --if-exists --username sg sg' > sourcegraph_db.out
-$ kubectl exec -it $codeintel-db_POD_NAME -- bash -c 'pg_dump -C --clean --if-exists --username sg sg' > codeintel_db.out
-$ kubectl exec -it $codeinsights-db_POD_NAME -- bash -c 'pg_dump -C --clean --if-exists --username postgres postgres' > codeinsights_db.out
-```
-
-Ensure the `sourcegraph_db.out`, `codeintel_db.out` and `codeinsights_db.out` files are moved to a safe and secure location.
-
-### Restore Sourcegraph databases
-
-#### Restoring Sourcegraph databases into a new environment
-
-The following instructions apply only if you are restoring your databases into a new deployment of Sourcegraph ie: a new virtual machine
-
-If you are restoring a previously running environment, see the instructions for [restoring a previously running deployment](#restoring-sourcegraph-databases-into-an-existing-environment)
-
-A. Copy the database dump files (eg. `sourcegraph_db.out`, `codeintel_db.out` and `codeinsights_db.out`) into the root of the `deploy-sourcegraph` directory
-
-B. Start the database services by running the following command from the root of the [deploy-sourcegraph](https://github.com/sourcegraph/deploy-sourcegraph) directory
-
-```bash
-$ kubectl rollout restart deployment pgsql
-$ kubectl rollout restart deployment codeintel-db
-$ kubectl rollout restart deployment codeinsights-db
-```
-
-C. Copy the database files into the pods by running the following command from the root of the [deploy-sourcegraph](https://github.com/sourcegraph/deploy-sourcegraph) directory
-
-```bash
-$ kubectl cp sourcegraph_db.out $NAMESPACE/$pgsql_POD_NAME:/tmp/sourcegraph_db.out
-$ kubectl cp codeintel_db.out $NAMESPACE/$codeintel-db_POD_NAME:/tmp/codeintel_db.out
-$ kubectl cp codeinsights_db.out $NAMESPACE/$codeinsights-db_POD_NAME:/tmp/codeinsights_db.out
-```
-
-D. Restore the databases
-
-```bash
-$ kubectl exec -it $pgsql_POD_NAME -- bash -c 'psql -v ERROR_ON_STOP=1 --username sg -f /tmp/sourcegraph_db.out sg'
-$ kubectl exec -it $codeintel-db_POD_NAME -- bash -c 'psql -v ERROR_ON_STOP=1 --username sg -f /tmp/condeintel_db.out sg'
-$ kubectl exec -it $codeinsights-db_POD_NAME -- bash -c 'psql -v ERROR_ON_STOP=1 --username postgres -f /tmp/codeinsights_db.out postgres'
-```
-
-E. Check for corrupt database indexes. If amcheck returns errors, please reach out to [support@sourcegraph.com](mailto:support@sourcegraph.com)
-
-```sql
-create extension amcheck;
-
-select bt_index_parent_check(c.oid, true), c.relname, c.relpages
-from pg_index i
-join pg_opclass op ON i.indclass[0] = op.oid
-join pg_am am ON op.opcmethod = am.oid
-join pg_class c ON i.indexrelid = c.oid
-join pg_namespace n ON c.relnamespace = n.oid
-where am.amname = 'btree'
--- Don't check temp tables, which may be from another session:
-and c.relpersistence != 't'
--- Function may throw an error when this is omitted:
-and i.indisready AND i.indisvalid;
-```
-
-F. Start the remaining Sourcegraph services by following the steps in [applying manifests](#applying-manifests).
-
-#### Restoring Sourcegraph databases into an existing environment
-
-A. Stop the existing deployment by removing the frontend deployment
-
-```bash
-$ kubectl scale --replicas=0 deployment/sourcegraph-frontend
-# or
-$ kubectl delete deployment sourcegraph-frontend
-```
-
-B. Remove any existing volumes for the databases in the existing deployment
-
-```bash
-$ kubectl delete pvc pgsql
-$ kubectl delete pvc codeintel-db
-$ kubectl delete pvc codeinsights-db
-$ kubectl delete pv $pgsql_PV_NAME --force
-$ kubectl delete pv $codeintel-db_PV_NAME --force
-$ kubectl delete pv $codeinsights-db_PV_NAME --force
-```
-
-C. Copy the database dump files (eg. `sourcegraph_db.out`, `codeintel_db.out` and `codeinsights_db.out`) into the root of the `deploy-sourcegraph` directory
-
-D. Start the database services only
-
-```bash
-$ kubectl rollout restart deployment pgsql
-$ kubectl rollout restart deployment codeintel-db
-$ kubectl rollout restart deployment codeinsights-db
-```
-
-E. Copy the database files into the pods by running the following command from the root of the [deploy-sourcegraph](https://github.com/sourcegraph/deploy-sourcegraph) directory
-
-```bash
-$ kubectl cp sourcegraph_db.out $NAMESPACE/$pgsql_POD_NAME:/tmp/sourcegraph_db.out
-$ kubectl cp codeintel_db.out $NAMESPACE/$codeintel-db_POD_NAME:/tmp/codeintel_db.out
-$ kubectl cp codeinsights_db.out $NAMESPACE/$codeinsights-db_POD_NAME:/tmp/codeinsights_db.out
-```
-
-F. Restore the databases
-
-```bash
-$ kubectl exec -it $pgsql_POD_NAME -- bash -c 'psql -v ERROR_ON_STOP=1 --username sg -f /tmp/sourcegraph_db.out sg'
-$ kubectl exec -it $codeintel-db_POD_NAME -- bash -c 'psql -v ERROR_ON_STOP=1 --username sg -f /tmp/condeintel_db.out sg'
-$ kubectl exec -it $codeinsights-db_POD_NAME -- bash -c 'psql -v ERROR_ON_STOP=1 --username postgres -f /tmp/codeinsights_db.out postgres'
-```
-
-G. Check for corrupt database indexes. If amcheck returns errors, please reach out to [support@sourcegraph.com](mailto:support@sourcegraph.com)
-
-```sql
-create extension amcheck;
-
-select bt_index_parent_check(c.oid, true), c.relname, c.relpages
-from pg_index i
-join pg_opclass op ON i.indclass[0] = op.oid
-join pg_am am ON op.opcmethod = am.oid
-join pg_class c ON i.indexrelid = c.oid
-join pg_namespace n ON c.relnamespace = n.oid
-where am.amname = 'btree'
--- Don't check temp tables, which may be from another session:
-and c.relpersistence != 't'
--- Function may throw an error when this is omitted:
-and i.indisready AND i.indisvalid;
-```
-
-H. Start the remaining Sourcegraph services by following the steps in [applying manifests](#applying-manifests).
-
-## List of ports
-
-To see a list of ports that are currently being used by your Sourcegraph instance:
-
-```bash
-$ kubectl get services
-```
-
-Example output:
-
-```bash
-NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
-blobstore ClusterIP 10.72.3.144 9000/TCP 25h
-cadvisor ClusterIP 10.72.14.130 48080/TCP 23h
-codeinsights-db ClusterIP 10.72.6.240 5432/TCP,9187/TCP 25h
-codeintel-db ClusterIP 10.72.5.10 5432/TCP,9187/TCP 25h
-gitserver ClusterIP None 10811/TCP 25h
-grafana ClusterIP 10.72.6.245 30070/TCP 25h
-indexed-search ClusterIP None 6070/TCP 25h
-indexed-search-indexer ClusterIP None 6072/TCP 25h
-kubernetes ClusterIP 10.72.0.1 443/TCP 25h
-node-exporter ClusterIP 10.72.5.60 9100/TCP 25h
-otel-collector ClusterIP 10.72.9.221 4317/TCP,4318/TCP,8888/TCP 25h
-pgsql ClusterIP 10.72.6.23 5432/TCP,9187/TCP 25h
-precise-code-intel-worker ClusterIP 10.72.11.102 3188/TCP,6060/TCP 25h
-prometheus ClusterIP 10.72.12.201 30090/TCP 25h
-redis-cache ClusterIP 10.72.15.138 6379/TCP,9121/TCP 25h
-redis-store ClusterIP 10.72.4.162 6379/TCP,9121/TCP 25h
-repo-updater ClusterIP 10.72.11.176 3182/TCP,6060/TCP 25h
-searcher ClusterIP None 3181/TCP,6060/TCP 23h
-sourcegraph-frontend ClusterIP 10.72.12.103 30080/TCP,6060/TCP 25h
-sourcegraph-frontend-internal ClusterIP 10.72.9.155 80/TCP 25h
-symbols ClusterIP None 3184/TCP,6060/TCP 23h
-syntect-server ClusterIP 10.72.14.49 9238/TCP,6060/TCP 25h
-worker ClusterIP 10.72.7.72 3189/TCP,6060/TCP 25h
-```
-
-## Migrate to Kustomize
-
-See the [migration docs for Kustomize](/admin/deploy/kubernetes/kustomize/migrate) for more information.
-
-## Upgrade
-
-- See the [Updating Sourcegraph docs](/admin/updates/) on how to upgrade.
-- See the [Updating a Kubernetes Sourcegraph instance docs](/admin/deploy/kubernetes/upgrade) for details on changes in each version to determine if manual migration steps are necessary.
-
-## Troubleshoot
-
-See the [Troubleshooting docs](/admin/deploy/kubernetes/troubleshoot).
diff --git a/docs/versioned/5.2/admin/deploy/kubernetes/scale.mdx b/docs/versioned/5.2/admin/deploy/kubernetes/scale.mdx
deleted file mode 100644
index f50068638..000000000
--- a/docs/versioned/5.2/admin/deploy/kubernetes/scale.mdx
+++ /dev/null
@@ -1,52 +0,0 @@
-# Scaling Sourcegraph on Kubernetes
-
-Sourcegraph can scale to accommodate large codebases and many users.
-
-Increase resources according to the [Scaling Overview per Service](/admin/deploy/scale) if you notice slower search or navigation.
-
-## Cluster resource guidelines
-
-For production environments, we recommend allocate resources based on your [instance size](/admin/deploy/instance-size). See our [resource estimator](https://docs.sourcegraph.com/admin/deploy/resource_estimator) for estimates.
-
----
-
-## Improving performance with a large number of repositories
-
-Here is a simplified list of the key parameters to tune when scaling Sourcegraph to many repositories:
-
-- `sourcegraph-frontend` CPU/memory resource allocations
-- `searcher` replica count
-- `indexedSearch` replica count and CPU/memory resource allocations
-- `gitserver` replica count
-- `symbols` replica count and CPU/memory resource allocations
-- `gitMaxConcurrentClones`, because `git clone` and `git fetch` operations are IO and CPU-intensive
-- `repoListUpdateInterval` (in minutes), because each interval triggers `git fetch` operations for all repositories
-
-Notes:
-
-- If your change requires restarting `gitserver` pods and they are rescheduled to other nodes, they may go offline briefly (showing a `Multi-Attach` error). This is due to volume detach/reattach. [Contact us](https://about.sourcegraph.com/contact/) for mitigation steps depending on your cloud provider.
-- See the docs to understand each service's role:
- - [Sourcegraph Architecture Overview](/dev/background-information/architecture/)
- - [Scaling Overview per Service](/admin/deploy/scale)
-
----
-
-## Improving performance with large monorepos
-
-Here is a simplified list of key parameters to tune when scaling Sourcegraph to large monorepos:
-
-- `sourcegraph-frontend` CPU/memory resource allocations
-- `searcher` CPU/memory resource allocations (allocate enough memory to hold all non-binary files in your repositories)
-- `indexedSearch` CPU/memory resource allocations (for the `zoekt-indexserver` pod, allocate enough memory to hold all non-binary files in your largest repository; for the `zoekt-webserver` pod, allocate enough memory to hold ~2.7x the size of all non-binary files in your repositories)
-- `symbols` CPU/memory resource allocations
-- `gitserver` CPU/memory resource allocations (allocate enough memory to hold your Git packed bare repositories)
-
----
-
-## Configuring faster disk I/O for caches
-
-Many parts of Sourcegraph's infrastructure benefit from using SSDs for caches. This is especially
-important for search performance. By default, disk caches will use the
-Kubernetes [hostPath](https://kubernetes.io/docs/concepts/storage/volumes/#hostpath) and will be the
-same IO speed as the underlying node's disk. Even if the node's default disk is a SSD, however, it
-is likely network-mounted rather than local.
diff --git a/docs/versioned/5.2/admin/deploy/kubernetes/troubleshoot.mdx b/docs/versioned/5.2/admin/deploy/kubernetes/troubleshoot.mdx
deleted file mode 100644
index e7cd61940..000000000
--- a/docs/versioned/5.2/admin/deploy/kubernetes/troubleshoot.mdx
+++ /dev/null
@@ -1,168 +0,0 @@
-# Troubleshoot Sourcegraph with Kubernetes
-
-If [Sourcegraph with Kubernetes](/admin/deploy/kubernetes/) does not start up or shows unexpected behavior, there are a variety of ways you can determine the root cause of the failure.
-
-See our [operations guide](/admin/deploy/kubernetes/operations) for more useful commands and operations.
-
-## Common errors
-
-#### Error: Error from server (Forbidden): error when creating "base/frontend/sourcegraph-frontend.Role.yaml": roles.rbac.authorization.k8s.io "sourcegraph-frontend" is forbidden: attempt to grant extra privileges.
-
-The account you are using to apply the Kubernetes configuration doesn't have sufficient permissions to create roles, which can be resolved by creating a cluster-admin role for your user with the following command:
-
-```bash
-$ kubectl create clusterrolebinding cluster-admin-binding \
- --clusterrole cluster-admin \
- --user $YOUR_EMAIL
- --namespace $YOUR_NAMESPACE
-```
-
-#### "kubectl get pv" shows no Persistent Volumes, and/or "kubectl get events" shows a `Failed to provision volume with StorageClass "sourcegraph"` error.
-
-Make sure a storage class named "sourcegraph" exists in your cluster within the same zone.
-
-```bash
-$ kubectl get storageclass sourcegraph -o=yaml \
- --namespace $YOUR_NAMESPACE
-```
-
-> NOTE: Google Cloud Platform users may need to [request an increase in storage quota](https://cloud.google.com/compute/quotas).
-
-
-#### Error: error retrieving RESTMappings to prune: invalid resource networking.k8s.io/v1, Kind=Ingress, Namespaced=true: no matches for kind "Ingress" in version "networking.k8s.io/v1".
-
-Run `kubectl version` to verify the __Client Version__ matches the __Server Version__.
-
-Run `kubectl get ingresses -A` to check if there is more than one ingress for `sourcegraph-frontend`. You can delete the duplicate with `kubectl delete ingress sourcegraph-frontend --namespace $YOUR_NAMESPACE`
-
-> NOTE: See our ["configuration guide"](/admin/deploy/kubernetes/configure#security-configure-network-access) for more information on network access.
-
-
-#### Error: error when creating "base/cadvisor/cadvisor.ClusterRoleBinding.yaml": subjects[0].namespace: Required value
-
-Add `namespace: default` to the [base/cadvisor/cadvisor.ClusterRoleBinding.yaml](https://github.com/sourcegraph/deploy-sourcegraph/blob/master/base/cadvisor/cadvisor.ClusterRoleBinding.yaml) file under `subjects`.
-
-
-#### Multiple pods are stuck in Pending.
-
-Lack of resources could be a contributing factor. Dump current cluster state and look for error messages. Below is an example of a message that indicates the cluster is currently under provisioned.
-
-```sh
-# dump.txt
- "Reason": "FailedScheduling",
- "Message": "0/3 nodes are available: 1 Insufficient memory, 3 Insufficient cpu.",
-```
-
-> NOTE: The default node type for clusters on Google Cloud Platform is `n1-standard-1`, a machine with only one CPU, while some components require a 2-CPU node. We recommend setting machine-type to `n1-standard-16`.
-
-#### ImagePullBackOff / 429 Too Many Requests Errors.
-
-This indicates the instance is getting rate-limited by Docker Hub([link](https://www.docker.com/increase-rate-limits)), where our images are stored, as unauthenticated users are limited to 100 image pulls within a 6 hour period. Possible solutions included:
-
-1. Create a Docker Hub account with a higher rate limit
-2. Configure an `ImagePullSecrets` K8S object with your Docker Hub service that contains your docker credentials ([link to tutorial](https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/))
-3. Add these credentials to the default service account within the same namespace as your Sourcegraph deployment ([link to tutorial](https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#add-imagepullsecrets-to-a-service-account))
-
-Alternatively, you can wait until the rate limits are reset.
-
-[**OPTIONAL**] You can also upgrade your account to a Docker Pro or Team subscription with higher rate-limits. ([See Docker Hub for more information](https://www.docker.com/increase-rate-limits)).
-
-
-#### Irrelevant cAdvisor metrics are causing strange alerts and performance issues.
-
-This is most likely due to cAdvisor picking up other metrics from the cluster.
-A workaround is available: [Filtering cAdvisor metrics](/admin/deploy/kubernetes/configure#filtering-cadvisor-metrics).
-
-#### I don't see any metrics on my Grafana Dashboard.
-
-Missing metrics indicate Sourcegraph is having issues connecting to the Kubernetes API. For instance, running a Sourcegraph instance as non-privileged prevents services from picking up metrics through the Kubernetes API. One of the potential solutions is to grant Prometheus and cAdvisor root access.
-
-
-#### Which metrics are using the most resources?
-
-1. Access the UI for Prometheus temporarily with port-forward:
- ```bash
- $ kubectl port-forward svc/prometheus 9090:30090
- ```
-2. Open [http://localhost:9090/](http://localhost:9090/) in your browser
- ```bash
- $ open http://localhost:9090
- ```
-3. Run `topk(10, count by (__name__)({__name__=~".+"}))` to check the values
-
-
-#### You can't access Sourcegraph.
-
-Make sure the namespace of the ingress-controller is `ingress-nginx`. See the [Troubleshooting ingress-nginx docs](https://kubernetes.github.io/ingress-nginx/troubleshooting/) for more information.
-
-#### Healthcheck failing with Strconv.Atoi: parsing `{$portName}`: invalid syntax error
-
-This can occur when the Readiness or Liveness probe is referring to a port that is not defined. Please ensure the port name is consistent with upstream. Foe example:
-
-```yaml
-ports:
- - containerPort: 3188
- name: minio
-...
-livenessProbe:
- httpGet:
- path: /minio/health/live
- port: minio #this port name MUST exist in the same spec
-```
-
-## Service mesh
-
-Known issues when using a service mesh (e.g. Istio, Linkerd, etc.)
-
-#### Error message: `Git command [git rev-parse HEAD] failed (stderr: ""): strconv.Atoi: parsing "": invalid syntax`
-
-
-
-This error occurs because Envoy, the proxy used by Istio, [drops proxied trailers for the requests made over HTTP/1.1 protocol by default](https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/core/v3/protocol.proto#config-core-v3-http1protocoloptions). To resolve this issue, enable trailers in your instance following the examples provided for [Kubernetes](https://github.com/sourcegraph/deploy-sourcegraph/tree/master/overlays) and [Kubernetes with Helm](https://github.com/sourcegraph/deploy-sourcegraph-helm/tree/main/charts/sourcegraph/examples).
-
-#### Symbols sidebar and hovers are not working
-
-
-
-In a service mesh like Istio, communication between services is secured using a feature called mutual Transport Layer Security (mTLS). mTLS relies on services communicating with each other using DNS names, rather than IP addresses, to identify the specific services or pods that the communication is intended for.
-
-To illustrate this, consider the following examples of communication flows between the "frontend" component and the "symbols" component:
-
-Example 1: Approved Communication Flow
-
-1. Frontend sends a request to `http://symbol_pod_ip:3184`
-2. The Envoy sidecar intercepts the request
-3. Envoy looks up the upstream service using the DNS name "symbols"
-4. Envoy forwards the request to the symbols component
-
-Example 2: Disapproved Communication Flow
-
-1. Frontend sends a request to `http://symbol_pod_ip:3184`
-2. The Envoy sidecar intercepts the request
-3. Envoy tries to look up the upstream service using the IP address `symbol_pod_ip`
-4. Envoy is unable to find the upstream service because it's an IP address not a DNS name
-5. Envoy will not forward the request to the symbols component
-
-> NOTE: When using mTLS, communication between services must be made using the DNS names of the services, rather than their IP addresses. This is to ensure that the service mesh can properly identify and secure the communication.
-
-To resolve this issue, the solution is to redeploy the frontend after specifying the service address for symbols by setting the SYMBOLS_URL environment variable in frontend.
-
-Please make sure the old frontend pods are removed.
-
-```yaml
-SYMBOLS_URL=http:symbols:3184
-```
-
-> WARNING: **This option is recommended only for symbols with a single replica**. Enabling this option will negatively impact the performance of the symbols service when it has multiple replicas, as it will no longer be able to distribute requests by repository/commit.
-
-#### Squirrel.LocalCodeIntel http status 502
-
-
-The issue described is related to the Code Intel hover feature, where it may get stuck in a loading state or return a 502 error with the message `Squirrel.LocalCodeIntel http status 502`. This is caused by the same issue described in [Symbols sidebar and hovers are not working](#symbols-sidebar-and-hovers-are-not-working"). See that section for solution.
-
-## Help request
-
-Still need additional help? Please contact us using one of the methods listed below:
-- Twitter [@sourcegraph](https://twitter.com/sourcegraph)
-- Email us at [support@sourcegraph.com](mailto:support@sourcegraph.com)
-- File issues with our [public issue tracker](https://github.com/sourcegraph/issues/issues)
diff --git a/docs/versioned/5.2/admin/deploy/kubernetes/upgrade.mdx b/docs/versioned/5.2/admin/deploy/kubernetes/upgrade.mdx
deleted file mode 100644
index 999a833ff..000000000
--- a/docs/versioned/5.2/admin/deploy/kubernetes/upgrade.mdx
+++ /dev/null
@@ -1,318 +0,0 @@
-# Updating Sourcegraph with Kubernetes
-
-This document describes the process to update a **Kubernetes Kustomize** or **Kubernetes Legacy** Sourcegraph instance. If you are unfamiliar with Sourcegraph versioning or releases see our [general concepts documentation](/admin/updates/).
-
-This guide is **not for use with Helm**. Please refer to the [Upgrading Sourcegraph with Helm docs](/admin/deploy/kubernetes/helm#upgrading-sourcegraph) for Helm deployments.
-
-
-> ***⚠️ Attention:***
-> - ***Always consult the [release notes](/admin/updates/kubernetes) for the versions your upgrade will pass over and end on.***
->
-> - *This guide assumes you have created a `release` branch following the [reference repositories docs](/admin/deploy/repositories)*
->
-> - ***please see our [cautionary note](/admin/updates/#best-practices) on upgrades**, if you have any concerns about running a multiversion upgrade, please reach out to us at [support@sourcegraph.com](mailto:support@sourcegraph.com) for advisement.*
-
-## Standard upgrades
-
-A [standard upgrade](/admin/updates/#upgrade-types) occurs between a Sourcegraph version and the minor or major version released immediately after it. If you would like to jump forward several versions, you must perform a [multi-version upgrade](#multi-version-upgrades) instead.
-
-### Upgrade with Kubernetes Kustomize
-
-The following procedure is for performing a **standard upgrade** with Sourcegraph instances version **`v4.5.0` and above**, which have [**migrated**](/admin/deploy/kubernetes/kustomize/migrate) to the [deploy-sourcegraph-k8s repo](https://github.com/sourcegraph/deploy-sourcegraph-k8s).
-
-**Step 1**: Create a backup copy of the deployment configuration file
-
-Make a duplicate of the current `cluster.yaml` deployment configuration file that was used to deploy the current Sourcegraph instance.
-
-If the Sourcegraph upgrade fails, you can redeploy using the current `cluster.yaml` file to roll back and restore the instance to its previous state before the failed upgrade.
-
----
-
-**Step 2**: Merge the new version of Sourcegraph into your release branch.
-
- ```sh
- cd $DEPLOY_SOURCEGRAPH_FORK
- # get updates
- git fetch upstream
- # to merge the upstream release tag into your release branch.
- git checkout release
- # Choose which version you want to deploy from https://github.com/sourcegraph/deploy-sourcegraph-k8s/tags
- git merge $NEW_VERSION
- ```
-
----
-
-**Step 3**: Build new manifests with Kustomize
-
-Generate a new set of manifests locally using your current overlay `instances/$INSTANCE_NAME` (e.g. INSTANCE_NAME=my-sourcegraph) without applying to the cluster.
-
- ```sh
- $ kubectl kustomize instances/my-sourcegraph -o cluster.yaml
- ```
-
-Review the generated manifests to ensure they match your intended configuration and have the images for the `$NEW_VERSION` version.
-
- ```sh
- $ less cluster.yaml
- ```
-
----
-
-**Step 4**: Deploy the generated manifests
-
-Apply the new manifests from the ouput file `cluster.yaml` to your cluster:
-
- ```sh
- $ kubectl apply --prune -l deploy=sourcegraph -f cluster.yaml
- ```
-
----
-
-**Step 5**: Monitor the status of the deployment to determine its success.
-
- ```sh
- $ kubectl get pods -o wide --watch
- ```
-
----
-
-### Upgrade with Legacy Kubernetes
-
-The following procedure is for performing a **standard upgrade** with Sourcegraph instances in versions **prior to `v4.5.0`**, or which **have not** [**migrated**](/admin/deploy/kubernetes/kustomize/migrate) and still use [deploy-sourcegraph](https://github.com/sourcegraph/deploy-sourcegraph).
-
-**Step 1**: Merge the new version of Sourcegraph into your release branch.
-
- ```sh
- cd $DEPLOY_SOURCEGRAPH_FORK
- # get updates
- git fetch upstream
- # to merge the upstream release tag into your release branch.
- git checkout release
- # Choose which version you want to deploy from https://github.com/sourcegraph/deploy-sourcegraph/tags
- git merge $NEW_VERSION
- ```
-
----
-
-**Step 2**: Update your install script `kubectl-apply-all.sh`
-
-By default, the install script `kubectl-apply-all.sh` applies our base manifests using [`kubectl apply` command](https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#apply) with a variety of arguments specific to the layout of the [deploy-sourcegraph reference repository](https://github.com/sourcegraph/deploy-sourcegraph).
-
-If you have specific commands that should be run whenever you apply your manifests, you should modify this script accordingly.
-
-For example, if you use [overlays to make changes to the manifests](https://github.com/sourcegraph/deploy-sourcegraph/tree/master/overlays), you should modify this script to apply the manifests from the `generated cluster` directory instead.
-
----
-
-**Step 3**: Apply the updates to your cluster.
-
- ```sh
- $ ./kubectl-apply-all.sh
- ```
-
-**Step 4**: Monitor the status of the deployment to determine its success.
-
- ```sh
- $ kubectl get pods -o wide --watch
- ```
-
----
-
-## Multi-version upgrades
-
-If you are upgrading to **Sourcegraph 5.1 or later**, we encourage you to perform an [**automatic multi-version upgrade**](/admin/updates/automatic). The following procedure has been automated, but is still applicable should errors occur in an automated upgrade.
-
----
-
-> **⚠️ Attention:** please see our [cautionary note](/admin/updates/#best-practices) on upgrades, if you have any concerns about running a multiversion upgrade, please reach out to us at [support@sourcegraph.com](mailto:support@sourcegraph.com) for advisement.
-
-To perform a **manual** multi-version upgrade on a Sourcegraph instance running on our **kubernetes** repo follow the procedure below:
-
-1. **Check Upgrade Readiness**:
- - Check the [upgrade notes](/admin/updates/kubernetes#kubernetes-upgrade-notes) for the version range you're passing through.
- - Check the `Site Admin > Updates` page to determine [upgrade readiness](/admin/updates/#upgrade-readiness).
-
-2. **Disable Connections to the Database**:
- - The following services must have their replicas scaled to 0:
- - Deployments (e.g., `kubectl scale deployment --replicas=0`)
- - precise-code-intel-worker
- - repo-updater
- - searcher
- - sourcegraph-frontend
- - sourcegraph-frontend-internal
- - symbols
- - worker
- - Stateful sets (e.g., `kubectl scale sts --replicas=0`):
- - gitserver
- - indexed-search
-
- *convenience command:*
- ```sh
- $ kubectl scale deployment precise-code-intel-worker repo-updater searcher sourcegraph-frontend sourcegraph-frontend-internal symbols worker --replicas=0 && kubectl scale sts gitserver indexed-search --replicas=0
- ```
-
-3. **Run Migrator with the `upgrade` command**:
- - The following procedure describes running migrator in brief, for more detailed instructions and available command flags see our [migrator docs](/admin/updates/migrator/migrator-operations#kubernetes-kustomize).
- 1. In the `configure/migrator/migrator.Job.yaml` manifest ([kustomize](https://github.com/sourcegraph/deploy-sourcegraph/blob/master/configure/migrator/migrator.Job.yaml) or [legacy](https://github.com/sourcegraph/deploy-sourcegraph/blob/master/configure/migrator/migrator.Job.yaml)):
- - set the `image:` to the **latest** release of `migrator`
- - set the `args:` value to `upgrade`. **Example:**
- ```yaml
- - name: migrator
- image: "index.docker.io/sourcegraph/migrator:5.0.3"
- args: ["upgrade", "--from=v3.41.0", "--to=v4.5.1"]
- env:
- ```
- > *Note:*
- > - *Always use the latest image version of migrator for migrator commands, except the startup command `up`*
- > - *You may add the `--dry-run` flag to the `command:` to test things out before altering the dbs*
- 2. Run the following commands to schedule the migrator job with the upgrade command and monitor its progress:
- ```sh
- # To ensure no previous job invocations will conflict with our current invocation
- kubectl delete -f configure/migrator/migrator.Job.yaml
- # Start the migrator job
- kubectl apply -f configure/migrator/migrator.Job.yaml
- # Stream the migrator's stdout logs for progress
- kubectl logs job.batch/migrator -f
- ```
- **Example:**
- ```sh
- $ kubectl -n sourcegraph apply -f ./migrator.Job.yaml
- job.batch/migrator created
- $ kubectl -n sourcegraph get jobs
- NAME COMPLETIONS DURATION AGE
- migrator 0/1 9s 9s
- $ kubectl -n sourcegraph logs job/migrator
- ❗️ An error was returned when detecting the terminal size and capabilities:
-
- GetWinsize: inappropriate ioctl for device
-
- Execution will continue, but please report this, along with your operating
- system, terminal, and any other details, to:
- https://github.com/sourcegraph/sourcegraph/issues/new
-
- ✱ Sourcegraph migrator 4.5.1
- 👉 Migrating to v3.43 (step 1 of 3)
- 👉 Running schema migrations
- ✅ Schema migrations complete
- 👉 Running out of band migrations [1 2 4 5 7 13 14 15 16]
- ✅ Out of band migrations complete
- 👉 Migrating to v4.3 (step 2 of 3)
- 👉 Running schema migrations
- ✅ Schema migrations complete
- 👉 Running out of band migrations [17 18]
- ✅ Out of band migrations complete
- 👉 Migrating to v4.5 (step 3 of 3)
- 👉 Running schema migrations
- ✅ Schema migrations complete
- $ kubectl -n sourcegraph get jobs
- NAME COMPLETIONS DURATION AGE
- migrator 1/1 9s 35s
- ```
-
-4. **Pull and merge upstream changes**:
- - Follow the [standard legacy upgrade procedure](#upgrade-with-legacy-kubernetes) to pull and merge upstream changes from the version you are upgrading to to your `release` branch.
-
-5. **Scale your replicas back up and apply new manifests**:
- - The [legacy kubernetes upgrade procedure](#upgrade-with-legacy-kubernetes) describes this step in more detail.
- - Ensure that the replica counts adjusted in the previous steps are turned back up.
- - Run `./kubectl-apply-all.sh` to deploy the new pods to the Kubernetes cluster.
- - Monitor the status of the deployment via `kubectl get pods -o wide --watch`.
-
----
-
-### Using MVU to Migrate to Kustomize
-
-Due to limitations with the Kustomize deployment method introduced in Sourcegraph `v4.5.0`, multi-version upgrades (e.g. `v4.2.0` -> `v5.0.3`), migrations to `deploy-sourcegraph-k8s` should be conducted seperately from a full upgrade.
-
-Admins upgrading a Sourcegraph instance older than `v4.5.0` and migrating from our [legacy kubernetes](https://github.com/sourcegraph/deploy-sourcegraph) offering to our new [kustomize manifests](https://github.com/sourcegraph/deploy-sourcegraph-k8s) should upgrade to `v4.5.0` perform the `migrate` [procedure](/admin/deploy/kubernetes/kustomize/migrate) and then perfom the remaining upgrade to bring Sourcegraph up to the desired version.
-
-## Rollback
-
-## Rollback
-
-You can rollback by resetting your `release` branch to the old state before redeploying the instance.
-
-If you are rolling back more than a single version, then you must also [rollback your database](/admin/how-to/rollback_database), as database migrations (which may have run at some point during the upgrade) are guaranteed to be compatible with one previous minor version.
-
-### Rollback with Kustomize
-
-**For Sourcegraph version 4.5.0 and above, which have [migrated](/admin/deploy/kubernetes/kustomize/migrate) to [deploy-sourcegraph-k8s](https://github.com/sourcegraph/deploy-sourcegraph-k8s).**
-
-For instances deployed using the [deploy-sourcegraph-k8s](https://github.com/sourcegraph/deploy-sourcegraph-k8s) repository:
-
- ```sh
- # Re-generate manifests
- kubectl kustomize instances/$YOUR_INSTANCE -o cluster-rollback.yaml
- # Review manifests
- less cluster-rollback.yaml
- # Re-deploy
- kubectl apply --prune -l deploy=sourcegraph -f cluster-rollback.yaml
- ```
-
-### Rollback without Kustomize
-
-**For Sourcegraph version prior to 4.5.0 using our legacy [deploy-sourcegraph](https://github.com/sourcegraph/deploy-sourcegraph) manifests.**
-
-For instances deployed using the old [deploy-sourcegraph](https://github.com/sourcegraph/deploy-sourcegraph) repository:
-
- ```sh
- $ ./kubectl-apply-all.sh
- ```
-
-### Rollback with `migrator downgrade`
-
-For rolling back a multiversion upgrade use the `migrator` [downgrade](/admin/updates/migrator/migrator-operations#downgrade) command. Learn mor in our [downgrade docs](/admin/updates/migrator/downgrading).
-
----
-
-## Database migrations
-
-In some situations, administrators may wish to migrate their databases before upgrading the rest of the system to reduce downtime. Sourcegraph guarantees database backward compatibility to the most recent minor point release so the database can safely be upgraded before the application code.
-
-To execute the database migrations independently, follow the [Kubernetes instructions on how to manually run database migrations](/admin/updates/migrator/migrator-operations). Running the `up` (default) command on the `migrator` of the *version you are upgrading to* will apply all migrations required by the next version of Sourcegraph.
-
-## Improving update reliability and latency with node selectors
-
-Some of the services that comprise Sourcegraph require more resources than others, especially if the
-default CPU or memory allocations have been overridden. During an update when many services restart,
-you may observe that the more resource-hungry pods (e.g., `gitserver`, `indexed-search`) fail to
-restart, because no single node has enough available CPU or memory to accommodate them. This may be
-especially true if the cluster is heterogeneous (i.e., not all nodes have the same amount of
-CPU/memory).
-
-If this happens, do the following:
-
-- Use `kubectl drain $NODE` to drain a node of existing pods, so it has enough allocation for the larger
- service.
-- Run `watch kubectl get pods -o wide` and wait until the node has been drained. Run `kubectl get pods` to check that all pods except for the resource-hungry one(s) have been assigned to a node.
-- Run `kubectl uncordon $NODE` to enable the larger pod(s) to be scheduled on the drained node.
-
-Note that the need to run the above steps can be prevented altogether with [node
-selectors](https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector), which
-tell Kubernetes to assign certain pods to specific nodes.
-
----
-
-## High-availability updates
-
-Sourcegraph is designed to be a high-availability (HA) service, but upgrades by default require a 10m downtime
-window. If you need zero-downtime upgrades, please contact us. Services employ health checks to test the health
-of newly updated components before switching live traffic over to them by default. HA-enabling features include
-the following:
-
-- Replication: nearly all of the critical services within Sourcegraph are replicated. If a single instance of a
- service fails, that instance is restarted and removed from operation until it comes online again.
-- Updates are applied in a rolling fashion to each service such that a subset of instances are updated first while
- traffic continues to flow to the old instances. Once the health check determines the set of new instances is
- healthy, traffic is directed to the new set and the old set is terminated. By default, some database operations
- may fail during this time as migrations occur so a scheduled 10m downtime window is required.
-- Each service includes a health check that detects whether the service is in a healthy state. This check is specific to
- the service. These are used to check the health of new instances after an update and during regular operation to
- determine if an instance goes down.
-- Database migrations are handled automatically on update when they are necessary.
-
----
-
-## Troubleshooting
-
-See the [troubleshooting page](/admin/deploy/kubernetes/troubleshoot).
diff --git a/docs/versioned/5.2/admin/deploy/machine-images/aws-ami.mdx b/docs/versioned/5.2/admin/deploy/machine-images/aws-ami.mdx
deleted file mode 100644
index 9bed4091c..000000000
--- a/docs/versioned/5.2/admin/deploy/machine-images/aws-ami.mdx
+++ /dev/null
@@ -1,225 +0,0 @@
-# Sourcegraph AWS AMI instances
-
-Sourcegraph [Amazon Machine Images (AMIs)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instances-and-amis.html) allow you to quickly deploy a production-ready Sourcegraph instance tuned to your organization's scale in just a few clicks.
-
-Following these docs will provision the following resources:
-
-- An EC2 node running Sourcegraph
-- A root EBS volume with 50GB of storage
-- An additional EBS volume with 500GB of storage for storing code and search indices
-
-### Instance size chart
-
-Select an AMI according and instance type to the number of users and repositories you have using this table. If you fall between two sizes, choose the larger of the two.
-
-For example, if you have 8,000 users with 80,000 repositories, your instance size would be **L**. If you have 1,000 users with 80,000 repositories, you should still go with size **M**.
-
-| | **XS** | **S** | **M** | **L** | **XL** |
-|------------------|------------|-------------|-------------|-------------|-------------|
-| **Users** | greater than or equal to 500 | greater than or equal to 1,000 | greater than or equal to 5,000 | greater than or equal to 10,000 | greater than or equal to 20,000 |
-| **Repositories** | greater than or equal to 5,000 | greater than or equal to 10,000 | greater than or equal to 50,000 | greater than or equal to 100,000| greater than or equal to 250,000|
-| **Recommended Type** | m6a.2xlarge | m6a.4xlarge | m6a.8xlarge | m6a.12xlarge | m6a.24xlarge |
-| **Minimum Type** | m6a.2xlarge | m6a.2xlarge | m6a.4xlarge | m6a.8xlarge | m6a.12xlarge |
-| **AMIs List** | [size-XS AMIs](https://console.aws.amazon.com/ec2/v2/home#Images:visibility=public-images;imageName=Sourcegraph-XS) | [size-S AMIs](https://console.aws.amazon.com/ec2/v2/home#Images:visibility=public-images;imageName=Sourcegraph-S) | [size-M AMIs](https://console.aws.amazon.com/ec2/v2/home#Images:visibility=public-images;imageName=Sourcegraph-M) | [size-L AMIs](https://console.aws.amazon.com/ec2/v2/home#Images:visibility=public-images;imageName=Sourcegraph-L) | [size-XL AMIs](https://console.aws.amazon.com/ec2/v2/home#Images:visibility=public-images;imageName=Sourcegraph-XL) |
-
-Click [here](https://github.com/sourcegraph/deploy#amazon-ec2-amis) to see the completed list of AMI IDs published in each region.
-
-IMPORTANT: The default AMI user name is **ec2-user**.
-
-> NOTE: AMIs are optimized for the specific set of resources provided by the instance type, please ensure you use the correct AMI for the associated EC2 instance type. You can [resize your EC2 instance anytime](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-resize.html), but your Sourcegraph AMI must match accordingly. If needed, follow the [upgrade steps](#upgrade) to switch to the correct AMI image that is optimized for your EC2 instance type.
-
-
----
-
-## Deploy Sourcegraph
-
-1. In the [instance size chart](#instance-size-chart), click the link for the AMI that matches your deployment size.
-2. Choose **Launch instance from AMI**.
-3. Name your instance.
-4. Select an **instance type** according to [the sizing chart](#instance-size-chart).
-5. **Key pair (login)**: Select or create a new Key Pair for connecting to your instance securely (this may be required in the event you need support).
-6. **Network settings**:
- - Under "Auto-assign public IP" select "Enable".
- - Select a **Security Group** for the instance, or create one with the following rules:
- - Allow SSH from Anywhere (port range 22, source 0.0.0.0/0, ::/0)
- - Allow HTTPS from the internet (port range 443, source 0.0.0.0/0, ::/0)
- - Allow HTTP traffic from the internet (port range 80, source 0.0.0.0/0, ::/0)
- - **NOTE**: If you do not wish to have HTTP/HTTPS exposed to the public internet, you may later choose to remove these rules so that all traffic routes through your AWS load balancer.
-7. **Configure storage**:
- - Root Volume: 50GB
- - EBS Volume: 500GB - this should be at least 25-50% *more* than the size of all your repositories on disk (you may check your GitHub/BitBucket/GitLab instance's disk usage.)
-8. Click **Launch instance**, and navigate to the public IP address in your browser. (Look for the IPv4 Public IP value in your EC2
- instance page under the Description panel.)
-
-Once the instance has started, please allow ~5 minutes for Sourcegraph to initialize. During this time you may observe a `404 page not found` response.
-
-To configure SSL, and lock down the instance from the public internet, see the [networking](#networking) section.
-
-> NOTE: If you cannot access the Sourcegraph homepage after 10 minutes, please try reboot your instance.
-
-### Executors
-Executors are supported using [native kubernetes executors](/admin/executors/deploy_executors_kubernetes).
-
-Executors support [auto-indexing](/code_navigation/explanations/auto_indexing) and [server-side batch changes](/batch_changes/explanations/server_side).
-
-To enable executors you must do the following:
-1. Connect to the AMI instance using `ssh`
-2. Run `cd /home/ec2-user/deploy/install/`
-3. Replace the placeholder `executor.frontendPassword` in `override.yaml`
-4. Run the following command to update the executor
-```
-helm upgrade -i -f ./override.yaml --version "$(cat /home/ec2-user/.sourcegraph-version)" executor ./sourcegraph-executor-k8s-charts.tgz
-```
-5. Add the following to the site-admin config using the password you chose previously
-```
-"executors.accessToken": "",
-"executors.frontendURL": "http://sourcegraph-frontend:30080",
-"codeIntelAutoIndexing.enabled": true
-```
-6. Check `Site-Admin > Executors > Instances` to verify the executor connected successfully. If it does not appear try reboot the instance
-
-To use server-side batch changes you will need to enable the `native-ssbc-execution` [feature flag](/admin/executors/native_execution#enable).
-
----
-
-## Networking
-
-We suggest using an AWS Application Load Balancer (ALB) to manage HTTPS connections to Sourcegraph. This makes managing SSL certificates easy.
-
-### Creating an AWS Load Balancer
-
-> NOTE: You must own a domain name before you can proceed with the following steps.
-
-1. Request a certificate for the domain name in [AWS Certificate Manager](https://aws.amazon.com/certificate-manager/)
-2. Create a [target group](https://console.aws.amazon.com/ec2#TargetGroups) for `HTTPS Port 443` that links to the instance's `Port 443`
-3. Create a new subnet inside the instance VPC
-4. Create a new Application Load Balancer via [AWS Load Balancers](https://console.aws.amazon.com/ec2#LoadBalancers)
-
-#### Step 1: Request certificate
-
-
-
-Open the [AWS Certificate Manager console](https://console.aws.amazon.com/acm) to **Request a certificate**:
-
-- **Domain names**: Fully qualified domain name: your domain
-- **Select validation method**: DNS validation—recommended
-
-After the certificate has been created, you will need to attach the `CNAME name` and `CNAME values` to your DNS.
-
-Follow the steps below to attach the CNAME to your DNS if your DNS is hosted in [AWS route 53](https://console.aws.amazon.com/route53):
-
-1. Click **Create record in route 53** in the certificate dashboard
-2. Select the DNS you would like to attach the certificate to
-3. Click **Create records** once you have verified the information is correct
-4. Wait ~30 mins before the validation is completed
-
-#### Step 2: Create a target group
-
-1. Click **Create a target group** on your [EC2 Target groups dashboard](https://console.aws.amazon.com/ec2#TargetGroups)
- - Choose a target type: Instance
- - Target group name: name
- - Protocol: HTTPS
- - Port: 443
- - VPC: Select the VPC where your instance is located
- - Protocol version: HTTP2
- - Health checks: Use Default
-2. Click **Include as pending below**
-
-#### Step 3: Create subnets
-
-Click **Create subnet** in your VPC subnets dashboard:
-
-- **VPC ID**: Selected the VPC that the instance is in
-- **Subnet name**: name the subnet
-- **Availability Zone**: select an availability zone that is different from the current zone
-- Click **Create subnet**
-
-#### Step 4: Create an Application Load Balancer
-
-1. Open your [EC2 Load Balancers dashboard](https://console.aws.amazon.com/ec2#LoadBalancers) to **Create Load Balancer**.
-2. Choose **Application Load Balancer** as the Load balancer types using the following configurations:
-
-- **Basic configuration**
- - Load balancer name: name
- - Scheme: Internet-facing
- - IP address type: IPv4
-- **Network mapping**
- - VPC: Selected the VPC that the instance is in
- - Mapping: Select two subnets associated with the selected VPC
- - Security groups
- - Security groups: Make sure only the security group associated with the instance is selected
-- **Listeners and routing**
- - Protocol: HTTPS
- - Port: 443
- - Default action: Select the HTTPS target group created for the instance
-
-### Securing your instance
-
-[Configure user authentication](/admin/auth) (SSO, SAML, OpenID Connect, etc.) to give users of your Sourcegraph instance access to it.
-
-Now that your instance is confirmed to be working, and you have HTTPS working through an Amazon load balancer, you may choose to secure your Sourcegraph instance further by modifying the security group/firewall rules to prevent access from the public internet. You can do this by modifying the security group/firewall rules.
-
----
-
-## Upgrade
-
-> WARNING: This upgrade process works with **Sourcegraph AWS AMI instances only**. Do not use these if you deployed Sourcegraph through other means.
-
-Please take time to review the following before proceeding with the upgrades:
-
-- [Changelog](https://docs.sourcegraph.com/CHANGELOG)
-- [Update policy](https://docs.sourcegraph.com/admin/updates#update-policy)
-- [Update notes](https://docs.sourcegraph.com/admin/updates/kubernetes)
-- [Multi-version upgrade procedure](https://docs.sourcegraph.com/admin/updates/kubernetes#multi-version-upgrade-procedure)
-
-IMPORTANT: **Back up your volumes before each upgrade**
-
-#### Step 1: Stop the current instance
-
-1. Stop your current Sourcegraph AMI instance
- - Go to the ECS console for your instance
- - Click Instance State to Stop Instance
-2. Detach the non-root data volume (Device name: /dev/sdb/)
- - Go to the Storage section in your instance console
- - Find the volume with the device name **/dev/sdb**
- - Select the volume, then click Actions to **Detach Volume**
- - Give the volume a name for identification purposes
-3. Make a note of the VPC name
-
-#### Step 2: Launch a new instance
-
-1. Launch a new Sourcegraph instance from an AMI with the latest version of Sourcegraph
-2. Name the instance
-3. Select the appropriate **instance type**
-4. Under **Key Pair**
- - Select the **Key Pair** used by the old instance
-5. Under **Network settings**
- - Select the **Security Group** used by the old instance
-6. Under **Configure storage**
- - Remove the **second** EBS volume
-7. After reviewing the settings, click **Launch Instance**
-8. Attach the detached volume to the new instance
- - Go to the Volumes section in your ECS Console
- - Select the volume you've detached earlier
- - Click **Actions > Attach Volume**
-9. On the `Attach volume` page:
- - **Instance**: select the new Sourcegraph AMI instance
- - **Device name**: /dev/sdb
-10. **Reboot** the new instance
-
-You can terminate the stopped Sourcegraph AMI instance once you have confirmed the new instance is up and running.
-
-## Downgrade
-
-Please refer to the upgrade procedure above if you wish to rollback your instance.
-
----
-
-## Storage and Backups
-
-We strongly recommend you taking [snapshots of the entire EBS volume](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-creating-snapshot.html) on an [automatic, scheduled basis](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/snapshot-lifecycle.html).
-
-## Additional resources
-
-- [Increase the size of an Amazon EBS volume on an EC2 instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/modify-ebs-volume-on-instance.html)
-- [Change the instance type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-resize.html)
diff --git a/docs/versioned/5.2/admin/deploy/machine-images/gce.mdx b/docs/versioned/5.2/admin/deploy/machine-images/gce.mdx
deleted file mode 100644
index 76c6f6e55..000000000
--- a/docs/versioned/5.2/admin/deploy/machine-images/gce.mdx
+++ /dev/null
@@ -1,211 +0,0 @@
-# Sourcegraph GCE Instances
-
-Sourcegraph [Google Compute Engine (GCE) Images](https://cloud.google.com/compute/docs/images) allow you to quickly deploy a production-ready Sourcegraph instance tuned to your organization's scale in just a few clicks.
-
-Following these docs will provision the following resources:
-
-- A pre-configured Sourcegraph instance running on the latest version
-- A root EBS volume with 50GB of storage
-- An additional EBS volume for storing code and search indices
-
-> WARNING: Connection to the internet is required to pull Docker images at first launch.
-
-## Instance size chart
-
-Select a deployment image and machine type according to the number of users and repositories you have using this table.
-
-If you fall between two sizes, choose the larger of the two. For example, if you have 8,000 users with 80,000 repositories, your instance size would be **L**. If you have 1,000 users with 80,000 repositories, you should still go with size **M**.
-
-| | **XS** | **S** | **M** | **L** | **XL** |
-|------------------|------------|-------------|-------------|-------------|-------------|
-| **Users** | greater than or equal to 500 | greater than or equal to 1,000 | greater than or equal to 5,000 | greater than or equal to 10,000 | greater than or equal to 20,000 |
-| **Repositories** | greater than or equal to 5,000 | greater than or equal to 10,000 | greater than or equal to 50,000 | greater than or equal to 100,000| greater than or equal to 250,000|
-| **Series** | N2 | N2 | N2 | N2 | N2 |
-| **Recommended** | standard-8 | standard-16 | standard-32 | standard-48 | standard-96 |
-| **Minimum** | standard-8 | standard-8 | standard-16 | standard-32 | standard-64 |
-| **Lastest Version Links** | [download](https://storage.googleapis.com/sourcegraph-images/latest/Sourcegraph-XS.tar.gz) | [download](https://storage.googleapis.com/sourcegraph-images/latest/Sourcegraph-S.tar.gz) | [download](https://storage.googleapis.com/sourcegraph-images/latest/Sourcegraph-M.tar.gz) | [download](https://storage.googleapis.com/sourcegraph-images/latest/Sourcegraph-L.tar.gz) | [download](https://storage.googleapis.com/sourcegraph-images/latest/Sourcegraph-XL.tar.gz) |
-
-> NOTE: Sourcegraph GCE images are optimized for the specific set of resources provided by the machine type, please ensure you use the correct GCE image for the associated GCE machine type. You can [resize your machine type anytime](https://cloud.google.com/compute/docs/instances/changing-machine-type-of-stopped-instance), but your Sourcegraph GCE image must match accordingly. If needed, follow the [upgrade steps](#upgrade) to switch to the correct GCE image that is optimized for your machine type.
-
----
-
-## Deploy Sourcegraph
-
-#### Step 1: Upload the Sourcegraph instance image to your Google Cloud Storage
-
-
-
-1. Download the image (`tar.gz`) file that matches your deployment size from the [instance size chart](#instance-size-chart)
-2. Navigate to [Google Cloud Storage](https://console.cloud.google.com/storage) and select a project where you will store the image and deploy the instance in
-3. **Upload** the `tar.gz` file to a bucket (create one if needed)
-4. Copy the **URL**
-
-#### Step 2: Create a new custom image
-
-
-
-1. Click **CREATE IMAGE** on top of the [GCE Images Console](https://console.cloud.google.com/compute/images)
- - Name: [Any]
- - Source: Cloud Storage file
- - Cloud Storage file: Click **Browse** and look for the image you uploaded in step 1
- - Select location: select one that works best for you
- - Family: sourcegraph
-2. Click **CREATE** to create your custom image of Sourcegraph
-
-#### Step 3: Launch a new instance
-
-
-
-1. Create a new VM instance from your [GCE Console](https://console.cloud.google.com/compute)
-2. Name the instance
-3. Select a **machine type** (see [instance size chart](#instance-size-chart))
-4. Under the **Boot disk** section, click **CHANGE** and navigate to the **CUSTOM IMAGES** tab
- - Image: Select the Sourcegraph image created in the previous step
- - Boot disk type: SSD persistent disk
-5. Under the **Firewall** section
- - Allow both `HTTP` and `HTTPS` traffic if needed
-6. Under the **Advanced options > Disk** section
- - Select **+ ADD NEW DISK**
- - Disk source type: Blank disk
- - Disk type: SSD persistent disk (REQUIRED)
- - Size: 500GB or more --_this should be at least 25-50% *more* than the size of all your repositories on disk. Please refer to the disk usage of your code host instances (eg. GitHub/BitBucket/GitLab) in order to adjust disk size accordingly._
- - Deletion rule: Keep disk
-7. RECOMMENDED Configure your network setting under the **Advanced options > Network** section
-
-> NOTE: Please allow ~5 minutes for Sourcegraph to initialize. During this time you may observe a `404 page not found` response. If you cannot access the Sourcegraph homepage after 10 minutes, please try reboot your instance.
-
-### SSH
-
-**sourcegraph** is the default username for all GCE image instances.
-
-To SSH into the instance as user `sourcegraph`, add the username in front of your instance name. For example:
-
-```bash
-# sourcegraph is the username
-$ gcloud compute ssh sourcegraph@your-instance-name --zone=us-central1-a
-```
-Your can also switch users in the terminal with the command below:
-
-```bash
-$ sudo su sourcegraph
-```
-
-### Executors
-Executors are supported using [native kubernetes executors](/admin/executors/deploy_executors_kubernetes).
-
-Executors support [auto-indexing](/code_navigation/explanations/auto_indexing) and [server-side batch changes](/batch_changes/explanations/server_side).
-
-To enable executors you must do the following:
-1. Connect to the instance using `ssh`
-2. Run `cd /home/sourcegraph/deploy/install/`
-3. Replace the placeholder `executor.frontendPassword` in `override.yaml`
-4. Run the following command to update the executor
-```
-helm upgrade -i -f ./override.yaml --version "$(cat /home/sourcegraph/.sourcegraph-version)" executor sourcegraph/sourcegraph-executor-k8s
-```
-5. Adding the following to the site-admin config using the password you chose previously
-```
-"executors.accessToken": "",
-"executors.frontendURL": "http://sourcegraph-frontend:30080",
-"codeIntelAutoIndexing.enabled": true
-```
-6. Check `Site-Admin > Executors > Instances` to verify the executor connected successfully. If it does not appear try reboot the instance
-
-To use server-side batch changes you will need to enable the `native-ssbc-execution` [feature flag](/admin/executors/native_execution#enable).
-
-
----
-
-## Networking
-
-An ephemeral external IP address is assigned to all VM instances by default; however, the IP address is not static, meaning it changes everytime the VM is rebooted.
-
-As a result, setting up a static IP for your Sourcegraph instance is strongly recommended in production so that you can point your DNS to the static IP easily.
-
-## Upgrade
-
-> WARNING: This upgrade process works with **Sourcegraph instances set up with GCE Images only**. Do not follow this upgrade procedure if you deployed Sourcegraph through other means.
-
-Please take time to review the following before proceeding with the upgrades:
-
-- [Changelog](https://docs.sourcegraph.com/CHANGELOG)
-- [Update policy](https://docs.sourcegraph.com/admin/updates#update-policy)
-- [Update notes](https://docs.sourcegraph.com/admin/updates/kubernetes)
-- [Multi-version upgrade procedure](https://docs.sourcegraph.com/admin/updates/kubernetes#multi-version-upgrade-procedure)
-
-IMPORTANT: **Back up your volumes before each upgrade**
-
-#### Option 1
-
-SSH into the VM as user `sourcegraph` and run the following command:
-
-```bash
-# Please update the version number according to the upgrade notes
-helm upgrade -i -f /home/sourcegraph/deploy/install/override.yaml --version 5.3.0 sourcegraph sourcegraph/sourcegraph
-# Note: /home/sourcegraph/deploy/install/override.yaml is the override file for your instance size
-```
-
-#### Option 2
-
-##### Step 1: Stop the current instance
-
-
-
-
-1. *Stop* your current Sourcegraph GCP Image instance from the [GCE Console](https://console.cloud.google.com/compute)
-2. Navigate to your instance console after your instance is stopped
-3. Detach the local disk
- - Click the **EDIT** button located on top of the page in your instance console
- - Remove the **Existing disk** under **Additional disks**
- - **SAVE** the changes
-
-##### Step 2: Launch a new instance
-
-1. Launch a new Sourcegraph instance from a GCE image with a newer version of Sourcegraph
-2. Name the instance
-3. Select the appropriate **machine type**
-4. Under the **Firewall** section
- - Allow both `HTTP` and `HTTPS` traffic if needed
-5. Under the **Advanced options > Disk** section
- - Select **+ ATTACH EXISTING DISK**
- - Select the volume you've detached in step 1
- - Deletion rule: Keep disk
-6. Under the **Advanced options > Management > Automation** section
- - Copy and paste the following script into the `Startup script` box to upgrade to a specified version
-
- ```bash
- # Replace version number to the version you are trying to upgrade to
- VERSION='4.0.0'
- echo $VERSION | sudo tee home/sourcegraph/.sourcegraph-version
- ```
-
-You can terminate the stopped Sourcegraph Google Image instance once you have confirmed the new instance is up and running.
-
-> WARNING: You must follow the [multi-version upgrade procedure](https://docs.sourcegraph.com/admin/updates/kubernetes#multi-version-upgrade-procedure) if you are
-
-## Downgrade
-
-Please refer to the upgrade procedure above if you wish to rollback your instance.
-
----
-
-## Networking
-
-An ephemeral external IP address is assigned to all VM instances by default; however, the IP address is not static, meaning it changes everytime the VM is rebooted. As a result, setting up a static IP for your Sourcegraph instance is strongly recommended in production so that you can point your DNS to the static IP easily.
-
-See the [official docs by Google on configuring IP addresses](https://cloud.google.com/compute/docs/ip-addresses/reserve-static-external-ip-address#promote_ephemeral_ip) for detailed instructions.
-
-Alternatively, you can set up a GCP HTTP(S) Load Balancer for your Sourcegraph GCE Image instance. For more information, please refer to the [official load balancing docs by Google](https://cloud.google.com/load-balancing/docs/https), including [how to use self-managed SSL certificates](https://cloud.google.com/load-balancing/docs/ssl-certificates/self-managed-certs).
-
-## Storage and Backups
-
-We strongly recommend you taking [snapshots of the entire data volume](https://cloud.google.com/compute/docs/disks/create-snapshots) automatically using a [snapshot schedule](https://cloud.google.com/compute/docs/disks/scheduled-snapshots). You can also set up a [snapshot schedule](https://cloud.google.com/compute/docs/disks/scheduled-snapshots) after your instance has been created.
-
-## Manual deploy on GCE
-
-Click [here](../docker-compose/google_cloud) to view install instructions for deploying on GCE manually.
-
-## Additional resources
-
-- [GCP Docs: Resize a persistent disk](https://cloud.google.com/compute/docs/disks/resize-persistent-disk)
-- [GCP Docs: Changing the machine type](https://cloud.google.com/compute/docs/instances/changing-machine-type-of-stopped-instance)
diff --git a/docs/versioned/5.2/admin/deploy/machine-images/index.mdx b/docs/versioned/5.2/admin/deploy/machine-images/index.mdx
deleted file mode 100644
index 6de261105..000000000
--- a/docs/versioned/5.2/admin/deploy/machine-images/index.mdx
+++ /dev/null
@@ -1,93 +0,0 @@
-# Sourcegraph Machine Images
-
-We aim to improve the overall deployment experience for our users through customized machine images.
-
-All Sourcegraph image instances are deployed into a single K3s server cluster, running on a single node with an embedded SQLite Database. It allows us to package all the Sourcegraph services with necessary components into one single launcher image so that you can spin up a Sourcegraph instance with just a few clicks in less than 10 minutes.
-
-This deployment method is highly recommended for customers who do not wish to spend too much time on looking for the right configurations and maintenance, while still having full control over their instances. The Sourcegraph image instances also provide high-availability and flexibility in resource usage, with the capability for scaling and making additional customizations easy whenever your needs have changed, by simply adjusting the worker/agent nodes, while still being on a single node environment. See the official K3s docs to learn more about [the architecture of a K3s server](https://docs.k3s.io/architecture).
-
-Most importantly, everything we use to build and publish the images can be found in our [public deployment repository](https://sourcegraph.com/github.com/sourcegraph/deploy) so that you can oversee our image creation and development process. You are also welcome to check out and follow our progress and updates there.
-
-Our deployment and release process is also documented in the [deployment docs](https://sourcegraph.com/github.com/sourcegraph/deploy@v4.0.1/-/blob/doc/development.md).
-
-All Sourcegraph machine images are free to download, and we strongly encourage you to spin up a Sourcegraph AMI instance to experiment with.
-
-## Sourcegraph Machine Image Instance Overview
-
-- Self-hosted
-- Single node
-- Preconfigured according to your business size
-- Deployed with our [Helm Charts](https://sourcegraph.com/github.com/sourcegraph/deploy-sourcegraph-helm) to a K3s, a highly available lightweight Kubernetes distribution cluster, using the containerd run time with built-in ingress, load balancer provider, and local storage provisioner ([Click here for the full K3s dependency list](https://sourcegraph.com/github.com/k3s-io/k3s#what-is-this))
-- Easy to maintain and configure
-- Supports all Sourcegraph features
-- Ability to perform upgrades easily with or without SSH access
-- [Executors](../executors) are not included in machine images and need to be deployed separately
-
-The use of [external services](../external_services/) such as managed Postgres databases or third party object storage services is not supported when using Sourcegraph Machine Images.
-
-### Sourcegraph AWS AMI Instances
-
-All AMI instances are currently pinned with a Sourcegraph version that the instance is launched with to ensure restarting the instance will not cause upgrades accidentally. The version number is saved into a text file on both the root (file path: /home/ec2-user/.sourcegraph-version) and data volumes (file path: /mnt/data/.sourcegraph-version) where it will be read by the [reboot script](https://sourcegraph.com/github.com/sourcegraph/deploy@v5.2.5/-/blob/install/reboot.sh) on each reboot. Upgrades will only happen on reboot if the version numbers from both volumes are different.
-
-Detailed deployment and upgrade instructions can be found in our [AWS AMIs docs](./machine-images/aws-ami).
-
-Unique AMI IDs can be found in our [release page](https://github.com/sourcegraph/deploy/releases).
-
-#### Creation procress
-
-Our AWS AMIs are all based on the HVM method, which provides us with the ability to create a Sourcegraph instance directly on the virtual machine using the verified Amazon Linux 2 Kernel 5.10 x86_64 HVM as the base image. The following steps are performed during the AMI creation process through our [install script](https://sourcegraph.com/github.com/sourcegraph/deploy@v4.0.1/-/blob/install/install.sh):
-
-1. De-escalate to `ec2-user` to make sure tasks are performed by non-root user
-1. Install Git
-1. Clone the [deployment repository](https://github.com/sourcegraph/deploy)
-1. Data volumes are formatted and labeled for the AMI instance to mount later
-1. [Add configurations to the kernel](https://sourcegraph.com/github.com/sourcegraph/deploy@v4.0.1/-/blob/install/install.sh?L64-73) that would otherwise limit Sourcegraph search performance
-1. [Adjust the local firewall settings](https://sourcegraph.com/github.com/sourcegraph/deploy@v4.0.1/-/blob/install/install.sh?L78-84) to ensure K3s cluster networking/DNS can pass through
-1. Link the ephemeral kubelet/pod storage to our data disk
-1. Link the persistent volume pod storage to our data disk
-1. Link the K3s's embedded database to our data disk
-1. Install K3s on root volume
-1. Correct permission of the K3s kube config file located in `/etc/rancher/k3s/k3s.yaml`
-1. Install Helm on root volume
-1. Download Sourcegraph Helm Charts on root volume
-1. Deploy Sourcegraph using the local Helm Charts
-1. Save the version number to both root and data volumes
-1. Add a cronjob to run the [reboot script](https://sourcegraph.com/github.com/sourcegraph/deploy@v4.0.1/-/blob/install/reboot.sh) on each reboot
-1. K3s is stopped and disabled
-1. The instance will then be stopped to create an AMI using the attached volumes
-
-#### Data volumes
-
-Each AWS AMI comes with two Amazon EBS volumes, one is for root, and the other one is for data:
-
-- The root volume contains all the files inside the sourcegraph/deploy repository that are used to build that image and deploy the Sourcegraph instance that lives inside that specific image
- - File path to the deployment repo sourcegraph/deploy: `/home/ec2-user/deploy/`
- - A local copy of the helm charts that were used to create the AMI: `/home/ec2-user/deploy/install/sourcegraph-charts.tar`
- - Version number of the AMI Instance: `/mnt/data/.sourcegraph-version`
- - Create a copy of the kube config file from `/etc/rancher/k3s/k3s.yaml` allows you to manage the k3s cluster from outside the cluster
-- The data volume is where all your Sourcegraph data will be stored after the instance has been launched. The K3s embedded SQLite database is also mounted onto that volume to make back-up, upgrade, and recovery of the volumes easier.
- - Data of your cluster are stored in the mounted path: `/mnt/data`
- - Version number of the deployment on disk: `/mnt/data/.sourcegraph-version`
-
-Sourcegraph does not have access to your cluster and data.
-
-#### Network and Security
-
-
-
-- K3s exposes the kubelet API to the Kubernetes control plane node through a websocket tunnel in order to eliminate the need to expose extra ports on the worker nodes.
-- No ingress requirements which allow cluster owners to restrict inbound traffic to only traffic within their network
-- Built-in certificate rotation with the expiration date of 12 months [docs](https://docs.k3s.io/advanced)
-- Enable custom certificates through [etcdctl](https://docs.k3s.io/advanced#using-etcdctl) as recommended by K3s.
-- Ability to launch an AMI instance on EC2 with custom encryption [docs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIEncryption.html#AMI-encryption-launch).
-
-Please refer to the official [CIS hardening guide](https://docs.k3s.io/security/hardening-guide) by K3s for more details and general tips on how to improve security of your cluster.
-
-> NOTE: See [Sourcegraph Vulnerability Management Policy](https://handbook.sourcegraph.com/departments/engineering/dev/policies/vulnerability-management-policy/#vulnerability-service-level-agreements) to learn more about our vulnerability and patching policy as well as the current [vulnerability service level agreements](https://handbook.sourcegraph.com/departments/engineering/dev/policies/vulnerability-management-policy/#vulnerability-service-level-agreements).
-
-
-## Additional resources
-
-- [sourcegraph/deploy](https://sourcegraph.com/github.com/sourcegraph/deploy)
-- [Scripts used for building the AWS AMIs](https://sourcegraph.com/github.com/sourcegraph/deploy@v4.0.1/-/blob/install/install.sh)
-- [Sourcegraph machine images deployment and release process](https://sourcegraph.com/github.com/sourcegraph/deploy@v4.0.1/-/blob/doc/development.md)
diff --git a/docs/versioned/5.2/admin/deploy/migrate-backup.mdx b/docs/versioned/5.2/admin/deploy/migrate-backup.mdx
deleted file mode 100644
index 269acb631..000000000
--- a/docs/versioned/5.2/admin/deploy/migrate-backup.mdx
+++ /dev/null
@@ -1,103 +0,0 @@
-# Back up or migrate Sourcegraph data to a new instance
-
-In some circumstances it may be necessary or advantageous to migrate from one Sourcegraph instance or deployment to another. This page describes how to execute such a migration.
-
-## Specific guides
-
-- [Migrate from the single Docker image to Docker Compose](/admin/deploy/docker-compose/migrate)
-
-## Data stores
-
-While much of Sourcegraph's data can be regenerated, some state can be stored in multiple locations.
-
-### Configuration JSON
-
-Most parts of Sourcegraph's configuration are managed in the webapp via text editors. These files are typically stored in the Postgres database (described below), but are translated into text for editing in the web UI.
-
-These files are the most essential pieces of information required for a migration to work.
-
-|Data|Can it be recreated without a backup?|Notes|
-|---|---|---|
-|[Site configuration](/admin/config/site_config)|No|This file contains key configuration that defines how the product works.|
-|[Code host connection configuration(s)](/admin/external_service/)|No|Each connection to an external code host has its own short configuration file.|
-|[Global settings](/admin/config/settings#editing-global-settings-for-site-admins)|No|Default settings can be set by administrators for all users by editing this file.|
-
-Backing up this data is as simple as copy-pasting the text from the files described above on the old Sourcegraph instance into the new one.
-
-### Internal database (Postgresql)
-
-Sourcegraph's internal database houses most of Sourcegraph's state. While many of these pieces of data can be restored after a migration, some cannot.
-
-This list is not guaranteed to be complete, but rather representative of the types of data stored here.
-
-|Data|Can it be recreated without a backup?|Notes|
-|---|---|---|
-|Repository metadata (e.g. clone URLs, whether it is a fork or archive, etc.)|Yes||
-|User accounts|Yes (if using [SSO authentication](/admin/auth/)), No if using builtin authentication||
-|[Repository permissions](/admin/permissions/)|Yes||
-|[Organizations](/admin/organizations)|No||
-|[User and org settings](/admin/config/settings)|No|Global settings can be backed up as described above, but user- and org-level settings cannot.|
-|[Saved searches](/code-search/working/saved_searches)|No||
-|User-generated access tokens|No||
-|[Batch Changes](/batch_changes/)|No||
-|[Code graph metadata](/code_navigation/explanations/precise_code_navigation)|Yes (if manually regenerated)|This can be regenerated by re-running the indexing and upload process for affected repositories and revisions, but will not be regenerated by default.|
-|[User survey responses](/admin/user_surveys)|No||
-|[Usage statistics and event logs](/admin/usage_statistics)|No|Event logs allow admins to track and audit usage, but are not necessary for Sourcegraph to work|
-
-### Data stored on disk
-
-Git data, search indexes, precise code-intel data, Prometheus metrics, and some other large data sources are stored on disk.
-
-This list is not guaranteed to be complete, but rather representative of the types of data stored here.
-
-|Data|Can it be recreated without a backup?|Notes|
-|---|---|---|
-|Repository (git) data|Yes||
-|Search indexes|Yes||
-|[Code graph data](/code_navigation/explanations/precise_code_navigation)|No|This can be regenerated by re-running the indexing and upload process for affected repositories and revisions, but will not be regenerated by default.|
-|[Prometheus metrics](/admin/observability/metrics)|No||
-|blobstore|Yes|This is where unprocessed uploads are stored.|
-
-### Ephemeral data (Redis)
-
-Short-lived data, including session data and some usage statistics, are stored in Redis. This data can all be recreated without backups.
-
-### External data
-
-Certain categories of data can be stored outside of the Sourcegraph deployment. For example, [configuration JSON files can be loaded from disk](/admin/config/advanced_config_file), and Sourcegraph can connect to [external services (PostgreSQL, Redis, S3/GCS)](/admin/external_services/) instead of using PostgreSQL, Redis, and blobstore internally.
-
-In these cases, no migration should be necessary—simply re-use the existing external data sources on the new Sourcegraph instance.
-
-## Migration and backup options
-
-### Option 1: Configuration only
-
-The easiest option is to simply back up or migrate [configuration JSON data](#configuration-json). Simply back up (by copying) the configuration files listed above and they can be pasted into a new Sourcegraph instance's UI after startup.
-
-### Option 2: All Postgres data
-
-This option provides a more complete backup, and ensures that almost all state will be restored. Repositories will have to be recloned and reindexed, so some downtime will be required while these operations complete.
-
-Follow the instructions in our [Docker to Docker Compose migration guide](/admin/deploy/docker-compose/migrate#backup-single-docker-image-database) to generate a dump of Sourcegraph's Postgres database. [Contact us](https://about.sourcegraph.com/contact/sales) for specific recommendations for your deployment type.
-
-### Option 3: All data
-
-Backing up all persistent volumes is the most complete option. Instructions for doing this depends on the deployment
-method and the cloud host. [Contact us](https://about.sourcegraph.com/contact/sales) to discuss more.
-
-## Persistent data backup in Kubernetes
-
-Please use the below table for reference when migrating your data from a Kubernetes Cluster:
-
-|Name|Recreatable|Notes|
-|---|---|---|
-|codeinsights-db|Yes|
-|codeintel-db|Yes|While the data is recreateable, we suggest including the disk during your migration as it often contains a lot of data that would take awhile to regenerate|
-|indexed-search|Yes||
-|gitserver|Yes||
-|grafana|Yes||
-|blobstore|Yes||
-|pgsql|**NO**|This is the main database of Sourcegraph where most of the data are stored|
-|prometheus|YES||
-|redis-cache|YES||
-|redis-store|YES||
diff --git a/docs/versioned/5.2/admin/deploy/repositories.mdx b/docs/versioned/5.2/admin/deploy/repositories.mdx
deleted file mode 100644
index 1a8df238c..000000000
--- a/docs/versioned/5.2/admin/deploy/repositories.mdx
+++ /dev/null
@@ -1,82 +0,0 @@
-# Reference Repositories
-
-Sourcegraph provides reference repositories with branches corresponding to the version of Sourcegraph you wish to deploy for each supported deployment type. The reference repository contains everything you need to spin up and configure your instance depending on your deployment type, which also assists in your upgrade process going forward.
-
-## List
-
-| **Deployment type** | **Link to reference repository** |
-|:--------------------------|:---------------------------------------------------------|
-| Kubernetes | https://github.com/deploy-sourcegraph-k8s |
-| Helm | https://github.com/sourcegraph/deploy-sourcegraph-helm |
-| Docker and Docker Compose | https://github.com/sourcegraph/deploy-sourcegraph-docker |
-
-> WARNING: [deploy-sourcegrap](https://github.com/deploy-sourcegrap) has been deprecated
-
-## Create a private copy
-
-### Step 1: Create an empty repository
-
-Follow the [official GitHub docs](https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-new-repository) on creating a new **empty** repository.
-
-### Step 2: Set the environment variables
-
-Export the following environment variables for the next steps.
-
-- `SG_DEPLOY_REPO_NAME`: name of the deployment repository
- - `deploy-sourcegraph-k8s` for Kubernetes with Kustomize deployment
- - `deploy-sourcegraph-docker` for Docker and Docker Compose deployment
-- `DEPLOY_GITHUB_USERNAME`: the account name that is hosting the empty repository created in step 1
-- `SG_PRIVATE_DEPLOY_REPO_NAME`: default to the same name as $SG_DEPLOY_REPO_NAME
-- `SG_DEPLOY_VERSION`: latest version number of Sourcegraph
-
-Update the environment variables in the command below before running it in your terminal:
-
-```bash
-export SG_DEPLOY_GITHUB_USERNAME="YOUR_USERNAME"
-export SG_DEPLOY_REPO_NAME="deploy-sourcegraph-k8s"
-export SG_PRIVATE_DEPLOY_REPO_NAME="$SG_DEPLOY_REPO_NAME"
-export SG_DEPLOY_VERSION="v4.5.0"
-```
-
-### Step 3: Create remote and local copies
-
-Once the required environment variables are exported, run the following commands in the same terminal:
-
-```bash
-git clone --bare https://github.com/sourcegraph/$SG_DEPLOY_REPO_NAME
-cd $DEPLOY_REPO.git
-git push --mirror https://github.com/SG_DEPLOY_GITHUB_USERNAME/$SG_PRIVATE_DEPLOY_REPO_NAME.git
-cd ..
-rm -rf $DEPLOY_REPO.git
-git clone https://github.com/SG_DEPLOY_GITHUB_USERNAME/$SG_PRIVATE_DEPLOY_REPO_NAME.git
-```
-
-### Step 4: Create a release branch
-
-Create a `release` branch to track all of your customizations to Sourcegraph. This branch will be used to [upgrade Sourcegraph](/admin/updates) and [install your Sourcegraph instance](/admin/deploy/#installation).
-
-```bash
-cd $SG_PRIVATE_DEPLOY_REPO_NAME
-git checkout $SG_DEPLOY_VERSION -b release-$SG_DEPLOY_VERSION
-```
-
-You can now deploy using your private copy of the repository you've just created. Please follow the installation and configuration docs for your specific deployment type for next steps.
-
-## Update your private copy
-
-Before you can upgrade Sourcegraph, you will first update your private copy with the upstream branch, and then merge the upstream release tag for the next minor version into your release branch.
-
-In the following example, the release branch is being upgraded to v4.5.1.
-
-```bash
-export YOUR_RELEASE_BRANCH=release-$SG_DEPLOY_VERSION
-# first, checkout the release branch
-git checkout $YOUR_RELEASE_BRANCH
-# fetch updates
-git fetch upstream
-# merge the upstream release tag into your release branch
-git checkout $YOUR_RELEASE_BRANCH
-git merge v4.5.1
-```
-
-A [standard upgrade](/admin/updates#standard-upgrades) occurs between two minor versions of Sourcegraph. If you are looking to jump forward several versions, you must perform a [multi-version upgrade](/admin/updates#multi-version-upgrades) instead.
diff --git a/docs/versioned/5.2/admin/deploy/scale.mdx b/docs/versioned/5.2/admin/deploy/scale.mdx
deleted file mode 100644
index 5d6b232d6..000000000
--- a/docs/versioned/5.2/admin/deploy/scale.mdx
+++ /dev/null
@@ -1,768 +0,0 @@
-# Scaling Overview for Services
-
-This page provides a comprehensive overview of how each Sourcegraph service scales.
-In order to support the growth of your instance usage, it is recommended to scale Sourcegraph based on the scaling factors suggested below.
-
-Grafana should be the first stop you make if you plan to expand on one of the scaling factors or when you are experiencing a system performance issue.
-
-Please use the following scaling guideline for services that are using more than 80% of their assigned resources.
-
-Scaling is unnecessary if your resource usage is kept below 80%.
-
-For example, if you plan to add 100% more engaged users, and the resource usage for all services is currently at around 70%, we’d recommend using this documentation as a reference to adjust the resources that list “Number of active users” as one of their scaling factors. You can also use the output from the Resource Estimator as references alternatively.
-
- For assistance when scaling and tuning Sourcegraph, [contact us](https://sourcegraph.com/contact/). We're happy to help!
-
----
-
-## Components Overview
-
-Here is a list of components you can find in a typical Sourcegraph deployment:
-
-### Core Components
-
-| | |
-| :-------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| [`frontend`](/admin/deploy/scale#frontend) | Serves the web application, extensions, and graphQL services. Almost every service has a link back to the frontend, from which it gathers configuration updates. |
-| [`gitserver`](/admin/deploy/scale#gitserver) | Mirrors repositories from their code host. All other Sourcegraph services talk to gitserver when they need data from git. |
-| [`precise-code-intel`](/admin/deploy/scale#precise-code-intel) | Converts LSIF upload file into Postgres data. The entire index must be read into memory to be correlated. |
-| [`repo-updater`](/admin/deploy/scale#repo-updater) | Tracks the state of repositories. It is responsible for automatically scheduling updates using gitserver and for synchronizing metadata between code hosts and external services. |
-| [`searcher`](/admin/deploy/scale#searcher) | Provides on-demand unindexed search for repositories. It fetches archives from gitserver and searches them with regexp. |
-| [`symbols`](/admin/deploy/scale#symbols) | Indexes symbols in repositories using Ctags. |
-| [`syntect-server`](/admin/deploy/scale#syntect-server) | An HTTP server that exposes the Rust Syntect syntax highlighting library for use by other services. |
-| [`worker`](/admin/deploy/scale#worker) | Runs a collection of background jobs periodically in response to internal requests and external events. It is currently janitorial and commit based. |
-| [`zoekt-indexserver`](/admin/deploy/scale#zoekt-indexserver) | Indexes all enabled repositories on Sourcegraph and keeps the indexes up to date. Lives inside the indexed-search pod in a Kubernetes deployment. |
-| [`zoekt-webserver`](/admin/deploy/scale#zoekt-webserver) | Runs searches from indexes stored in memory and disk. The indexes are persisted to disk to avoid re-indexing on startup. Lives inside the indexed-search pod in a Kubernetes deployment. |
-
-### External Services
-
-A list of services that can be externalized. See our docs on [Using external services with Sourcegraph](/admin/external_service/) for detailed instruction.
-
-| | |
-| :-------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| [`codeinsights-db`](/admin/deploy/scale#codeinsights-db) | A PostgreSQL instance for storing code insights data. |
-| [`codeintel-db`](/admin/deploy/scale#codeintel-db) | A PostgreSQL instance for storing large-volume code graph data. |
-| [`jaeger`](/admin/deploy/scale#jeager) | A Jaeger instance for end-to-end distributed tracing. |
-| [`blobstore`](/admin/deploy/scale#blobstore) | A blobstore instance that serves as a local S3-compatible object storage to hold user uploads for code-intel before they can be processed. |
-| [`pgsql`](/admin/deploy/scale#pgsql) | A PostgreSQL instance for storing long-term information, such as user information when using Sourcegraph’s built-in authentication provider instead of an external one. |
-| [`redis-cache`](/admin/deploy/scale#redis-cache) | A Redis instance for storing cache data. |
-| [`redis-store`](/admin/deploy/scale#redis-store) | A Redis instance for storing short-term information such as user sessions. |
-
-### Monitoring Tools
-
-Sourcegraph provides a number of tools to monitor the health and usage of your deployment. See our [Observability docs](/admin/observability/) for more information.
-You can also learn more about the architecture of Sourcegraph’s monitoring stack in [Sourcegraph monitoring architecture](https://handbook.sourcegraph.com/departments/engineering/dev/tools/observability/monitoring_architecture)
-
-| | |
-| :---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
-| [`cadvisor`](/admin/deploy/scale#cadvisor) | A custom cAdvisor instance that exports container monitoring metrics scraped by Prometheus and visualized in Grafana. |
-| [`grafana`](/admin/deploy/scale#grafana) | A Grafana instance that displays data from Prometheus and Jaeger. It is shipped with customized dashboards for Sourcegraph services. |
-| [`prometheus`](/admin/deploy/scale#prometheus) | A customized Prometheus instance for collecting high-level and low-cardinality, metrics across services. |
-
----
-
-## Scaling Guideline
-
-> This section provides you with a high-level overview of how each Sourcegraph service works with resources, with a list of scaling factors and basic guideline.
-
-### cAdvisor
-
-```
-A cAdvisor instance.
-It exports container monitoring metrics scraped by Prometheus and visualized in Grafana.
-```
-
-| Resources | |
-| :---------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `Overview` | Scaling is not necessary as it is designed to be a small footprint service |
-| `Factors` | Its primary traffic are the requests coming from Prometheus |
-| `Guideline` | Read [the list of known issues](/dev/background-information/observability/cadvisor#known-issues) that can cause performance issues for cAdvisor |
-
----
-
-### codeinsights-db
-
-```
-A PostgreSQL instance for storing code insights data.
-```
-
-| Replica | |
-| :---------- | :------------------------------------------------------ |
-| `Overview` | Singleton |
-| `Factors` | - |
-| `Guideline` | A Singleton service should not have more than 1 replica |
-
-
-| CPU | |
-| :------------ | :-------------------------------------------------- |
-| `Overview` | Executes queries |
-| ``Factors`` | Number of active users |
-| | Number of repositories |
-| | Number of insight series defined |
-| | Number of matches per insight series |
-| | Compression ratio of insight data |
-| ``Guideline`` | Keep the total memory larger than the largest index |
-
-| Memory | |
-| :---------- | :-------------------------------------------------- |
-| `Overview` | Process Indexes |
-| `Factors` | Number of active users |
-| | Size of all repositories |
-| | Number of repositories |
-| | Number of insight series defined |
-| | Number of matches per insight series |
-| | Compression ratio of insight data |
-| `Guideline` | Keep the total memory larger than the largest index |
-
-| Storage | |
-| :---------- | :------------------------------------------------------------------------- |
-| `Overview` | Stores code insights data |
-| `Factors` | Number of insight series defined |
-| | Number of matches per insight series |
-| | Compression ratio of insight data |
-| `Guideline` | Depends entirely on usage and the specific Insights that are being created |
-| `Type` | Persistent Volumes for Kubernetes |
-| | Persistent SSD for Docker Compose |
-
-The database must be configured properly to consume resources effectively and efficiently for better performance and to avoid regular usage from overwhelming built-in utilities (like autovacuum for example). For example, a Postgres database running out of memory indicates that it is currently misconfigured, and the amount of memory each worker can utilize should be reduced. See our [Postgres database configuration guide](/admin/config/postgres-conf) for more information.
-
----
-
-### codeintel-db
-
-```
-A PostgreSQL instance for storing large-volume code graph data.
-```
-
-| Replica | |
-| :---------- | :------------------------------------------------------ |
-| `Overview` | Singleton |
-| `Factors` | - |
-| `Guideline` | A Singleton service should not have more than 1 replica |
-
-| CPU | |
-| :---------- | :------------------------------------------------------------------------------------------------ |
-| `Overview` | Executes queries |
-| `Factors` | Number of active users |
-| | Frequency with which the instance runs precise code navigation queries |
-| `Guideline` | The default value should work for all deployments. Please refer to the note below for more detail |
-
-| Memory | |
-| :---------- | :------------------------------------------------------------------------------------------------------------------------ |
-| `Overview` | Process LSIF indexes |
-| `Factors` | Number of active users |
-| | Frequency with which the instance runs precise code navigation queries |
-| | Total size of repositories indexed by Rockskip |
-| `Guideline` | The database must be configured properly to consume resources effectively and efficiently. See note below for more detail |
-| | The amount of memory each Postgres worker can utilize must be adjusted according to the memory assigned to the database |
-| | Increase the memory assigned to each worker proportionally when database queries are slow |
-
-| Storage | |
-| :---------- | :--------------------------------------------------------------------------- |
-| `Overview` | Stores processed upload data |
-| `Factors` | Number and size of precise code graph data uploads |
-| | Indexer used |
-| `Guideline` | The index size and processed size are currently based on indexer used |
-| | Requires about 4 times of the total size of repositories indexed by Rockskip |
-| | SCIP provides a more stable approximation of index size -> processed |
-| `Type` | Persistent Volumes for Kubernetes |
-| | Persistent SSD for Docker Compose |
-
- The database must be configured properly to consume resources effectively and efficiently for better performance and to avoid regular usage from overwhelming built-in utilities (like autovacuum for example). For example, a Postgres database running out of memory indicates that it is currently misconfigured, and the amount of memory each worker can utilize should be reduced. See our [Postgres database configuration guide](/admin/config/postgres-conf) for more information.
-
----
-
-### frontend
-
-```
-Serves the Sourcegraph web application, extensions, and graphQL API services.
-```
-
-| Replica | |
-| :---------- | :------------------------------------------------------------------------------------------------ |
-| `Overview` | Almost every service has a link back to the frontend, from which it gathers configuration updates |
-| `Factors` | Number of active users |
-| | Number of services connected |
-| `Guideline` | More engaged users = more replicas |
-
-| CPU | |
-| :---------- | :-------------------------------------------------------------------------------------------------- |
-| `Overview` | At least one goroutine is dispatched per HTTP request. It is also used to serve Code Insight series |
-| `Factors` | Number of active users |
-| | Number of user actions performed |
-| | Number of insight series defined |
-| `Guideline` | More engaged users = more replicas |
-
-| Memory | |
-| :---------- | :------------------------------------------------ |
-| `Overview` | Aggregates results before serving them to clients |
-| `Factors` | Number of active users |
-| | Number of repositories |
-| `Guideline` | More engaged users = more Memory |
-
-| Storage | |
-| :---------- | :--- |
-| `Overview` | - |
-| `Factors` | - |
-| `Guideline` | - |
-| `Type` | None |
-
----
-
-### gitserver
-
-```
-Mirrors repositories from their code host.
-Other Sourcegraph services communicate with gitserver when they need data from git.
-```
-
-| Replica | |
-| :---------- | :--------------------------------------------------------------------- |
-| `Overview` | Handles requests from other Sourcegraph services for git information |
-| `Factors` | Size of all repositories |
-| `Guideline` | When the total size of repositories is too large to fit in one replica |
-
-| CPU | |
-| :---------- | :----------------------------------------------------------------------------------- |
-| `Overview` | Runs git commands concurrently |
-| `Factors` | Number of active users |
-| | Size of all repositories |
-| | Size of the largest repository |
-| `Guideline` | Depends on the amount of git commands need to perform --more git commands = more CPU |
-
-| Memory | |
-| :---------- | :--------------------------------------------------------------------------------------------- |
-| `Overview` | Data associate with the running git commands |
-| `Factors` | Size of all repositories |
-| | Size of the largest repository |
-| `Guideline` | Depends on the git commands to be executed --the more or larger the git commands = more memory |
-
-| Storage | |
-| :---------- | :------------------------------------------------------------------------------------------------------------------- |
-| `Overview` | Repositories are cloned to disk |
-| `Factors` | Size of all repositories |
-| `Guideline` | Greater than 20% free space accounting for the size of all repositories on disk, including soft-deleted repositories |
-| | It can also be customized via a variable named SRC_REPOS_DESIRED_PERCENT_FREE |
-| | Update disk size of indexserver per adjustments made for gitserver disk size |
-| `Type` | Persistent Volumes for Kubernetes |
-| | Persistent SSD for Docker Compose |
-
----
-
-### grafana
-
-```
-A Grafana instance that displays data from Prometheus and Jaeger.
-It is shipped with customized dashboards for Sourcegraph services.
-```
-
-| Resources | |
-| :---------- | :---------------------------------------------------------- |
-| `Overview` | Not designed to be a high-traffic service |
-| `Factors` | Number of Site Admins |
-| `Guideline` | The default setup should be sufficient for most deployments |
-
----
-
-### jeager
-
-```
-A Jaeger instance for end-to-end distributed tracing
-```
-
-| Resources | |
-| :---------- | :----------------------------------------------------------------------------------------------------- |
-| `Overview` | A debugging tool that is not designed to be a high-traffic service |
-| `Factors` | Number of Site Admins |
-| `Guideline` | Memory depends on the size of buffers, like the number of traces and the size of the queue for example |
-
- The jaeger service does not have to be enabled for Sourcegraph work, however, the ability to troubleshoot the system will be disabled.
-
----
-
-### blobstore
-
-```
-A blobstore instance that serves as local S3-compatible object storage. It
-holds files such as search jobs results and index uploads for precise code
-navigation.
-
-```
-
-| Replica | |
-| :---------- | :------------------------------------------------------ |
-| `Overview` | Singleton |
-| `Factors` | - |
-| `Guideline` | A Singleton service should not have more than 1 replica |
-
-| CPU | |
-| :---------- | :---------------------------------------------------------- |
-| `Overview` | The default setup should be sufficient for most deployments |
-| `Factors` | - |
-| `Guideline` | - |
-
-| Memory | |
-| :---------- | :---------------------------------------------------------- |
-| `Overview` | The default setup should be sufficient for most deployments |
-| `Factors` | - |
-| `Guideline` | - |
-
-| Storage | |
-| :---------- | :------------------------------------------------ |
-| `Overview` | A temporary storage location for the LSIF uploads |
-| `Factors` | Size of the largest LSIF index |
-| `Guideline` | Equal to the size of the largest LSIF index file |
-| `Type` | Persistent Volumes for Kubernetes |
-| | Persistent SSD for Docker Compose |
-
----
-
-### pgsql
-
-```
-The main database. A PostgreSQL instance.
-Data stored include repo lists, user data, worker queue , and site-config files etc.
-Data for code-insights related to running queries are also stored here.
-Basically anything not related to code-intel.
-```
-
-| Replica | |
-| :---------- | :------------------------------------------------------ |
-| `Overview` | Singleton |
-| `Factors` | - |
-| `Guideline` | A Singleton service should not have more than 1 replica |
-
-| CPU | |
-| :---------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `Overview` | Executes queries |
-| `Factors` | The default setup should be sufficient for most deployments |
-| `Guideline` | The database must be configured properly following our [Postgres configuration guide](/admin/config/postgres-conf) to use the assigned resources efficiently |
-
-| Memory | |
-| :---------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `Overview` | Linear to the concurrent number of API requests proxied |
-| `Factors` | The default setup should be sufficient for most deployments |
-| `Guideline` | The database must be configured properly following our [Postgres configuration guide](/admin/config/postgres-conf) to use the assigned resources efficiently |
-
-| Storage | |
-| :---------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `Overview` | The Postgres instance will use memory by bringing OS pages into resident memory where it will control its own allocations |
-| `Factors` | Size of all repositories |
-| | Number of insight queries |
-| `Guideline` | Starts at default as the value grows depending on the number of active users and activity |
-| | The database must be configured properly following our [Postgres configuration guide](/admin/config/postgres-conf) to use the assigned resources efficiently |
-| `Type` | Persistent Volumes for Kubernetes |
-| | Persistent SSD for Docker Compose |
-
- The database must be configured properly to consume resources effectively and efficiently for better performance and to avoid regular usage from overwhelming built-in utilities (like autovacuum for example). For example, a Postgres database running out of memory indicates that it is currently misconfigured and the amount of memory each worker can utilize should be reduced. See our [Postgres database configuration guide](/admin/config/postgres-conf) for more information.
-
----
-
-### precise-code-intel
-
-```
-Handles conversion of uploaded code graph data bundles.
-It converts LSIF upload file into Postgres data.
-```
-
-| Replica | |
-| :---------- | :-------------------------------------------------------------------------------------------- |
-| `Overview` | Process uploads queue |
-| `Factors` | Number of jobs in the upload queue |
-| `Guideline` | When there is a large queue backlog to increase the throughput at which uploads are processed |
-
-| CPU | |
-| :---------- | :-------------------------------------------------------------------------------------------------------------------------------- |
-| `Overview` | This service is I/O bound: reading from blobstore/GCS/S3 and writing to pgsql/codeintel-db. Correlation has been fairly optimized |
-| `Factors` | Number of jobs in the upload queue |
-| `Guideline` | Upload jobs may finish faster if the CPU is increased, but having it at a reasonable minimum should be the ideal target here |
-
-| MEM | |
-| :---------- | :------------------------------------------------------------------------------------------------------------------ |
-| `Overview` | The entire LSIF index file must be read into memory to be correlated, and causes uploads to fail when out of memory |
-| `Factors` | Size of the largest LSIF index |
-| `Guideline` | The entire index must be read into memory to be correlated |
-| | Add memory when the uploaded index is too large to be processed without OOMing |
-| | Requires two times of the size of the largest LSIF index times upload_concurrency in memory |
-
-| Storage | |
-| :---------- | :--- |
-| `Overview` | - |
-| `Factors` | - |
-| `Guideline` | - |
-| `Type` | None |
-
----
-
-### prometheus
-
-```
-A customized Prometheus instance for collecting high-level and low-cardinality, metrics across services.
-It currently bundles Alertmanager as well as integrations to the Sourcegraph web application.
-```
-
-| Resources | |
-| :---------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `Overview` | The default setup should be sufficient for most deployments |
-| `Factors` | Number of active users |
-| `Guideline` | For Kubernetes deployments, please follow the [instruction here](/admin/deploy/kubernetes/configure#filtering-cadvisor-metrics) to prevent Prometheus from scraping metrics outside of your Sourcegraph namespace |
-
----
-
-### redis-cache
-
-```
-A Redis instance for storing cache data for frontend.
-```
-
-| Replica | |
-| :---------- | :------------------------------------------------------ |
-| `Overview` | Singleton |
-| `Factors` | - |
-| `Guideline` | A Singleton service should not have more than 1 replica |
-
-| CPU | |
-| :---------- | :---------------------------------------------------------- |
-| `Overview` | The default setup should be sufficient for most deployments |
-| `Factors` | - |
-| `Guideline` | - |
-
-| Memory | |
-| :---------- | :---------------------------------------------------------- |
-| `Overview` | The default setup should be sufficient for most deployments |
-| `Factors` | - |
-| `Guideline` | - |
-
-| Storage | |
-| :---------- | :---------------------------------------------- |
-| `Overview` | A temporary storage location for cache data |
-| `Factors` | Size of all repositories |
-| `Guideline` | Adjust based on the size of cloned repositories |
-| | Depends on the size of the API response body |
-| `Type` | Ephemeral storage for Kubernetes |
-| | Persistent SSD for Docker Compose |
-
----
-
-### redis-store
-
-```
-A Redis instance for storing short-term information such as user sessions.
-```
-
-| Replica | |
-| :---------- | :------------------------------------------------------ |
-| `Overview` | Singleton |
-| `Factors` | - |
-| `Guideline` | A Singleton service should not have more than 1 replica |
-
-| CPU | |
-| :---------- | :---------------------------------------------------------- |
-| `Overview` | The default setup should be sufficient for most deployments |
-| `Factors` | - |
-| `Guideline` | - |
-
-| Memory | |
-| :---------- | :--------------------------------------------------------------------------------------------------------------- |
-| `Overview` | The default setup should be sufficient for most deployments |
-| `Factors` | Number of active users |
-| `Guideline` | Increase memory based on the number of active user sessions (including both anonymous users and signed-in users) |
-| | Each anonymous session is counted independently |
-
-| Storage | |
-| :---------- | :-------------------------------------------------------------------------------------------------------- |
-| `Overview` | Stores user sessions |
-| `Factors` | Size of all repositories |
-| `Guideline` | TIncrease based on the number of active user sessions (including both anonymous users and signed-in users |
-| | each anonymous session is counted independently |
-| `Type` | Ephemeral storage for Kubernetes |
-| | Persistent SSD for Docker Compose |
-
----
-
-### repo-updater
-
-```
-Repo-updater tracks the state of repositories.
-It is responsible for automatically scheduling updates using gitserver.
-It is also responsible for synchronizing metadata between code hosts and external services.
-Services that desire updates or fetch must communicate with repo-updater instead of gitserver.
-```
-
-| Replica | |
-| :---------- | :------------------------------------------------------ |
-| `Overview` | Singleton |
-| `Factors` | - |
-| `Guideline` | A Singleton service should not have more than 1 replica |
-
-| CPU | |
-| :---------- | :--------------------------------------------------------------------------------------- |
-| `Overview` | Most operations are not CPU bound |
-| `Factors` | Most of the syncing jobs are related more to internal and code host-specific rate limits |
-| `Guideline` | - |
-
-| Memory | |
-| :---------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `Overview` | The queue of repositories that need to be updated is stored in memory. It uses an in-memory queue and is mostly network intensive as it makes API calls and processes and writes those newly available data to the pgsql database |
-| `Factors` | Number of repositories |
-| `Guideline` | This service is safe to restart at any time. The existing in-memory update queue is reset upon restart |
-| | Not memory intensive |
-
-| Storage | |
-| :---------- | :------------------------------------------------------------- |
-| `Overview` | A stateless service that directly writes to the pgsql database |
-| `Factors` | - |
-| `Guideline` | - |
-| `Type` | None |
-
----
-
-### searcher
-
-```
-Provides on-demand unindexed search for repositories.
-It relies on the OS file page cache to speed up future searches
-```
-
-| Replica | |
-| :---------- | :------------------------------------------------------------------ |
-| `Overview` | Depending on the number of concurrent requests for unindexed search |
-| `Factors` | Number of active users |
-| `Guideline` | More engaged users = more replicas |
-
-
-| CPU | |
-| :---------- | :--------------------------------------------------------------------------------------------- |
-| `Overview` | Searcher is IO and CPU bound. It fetches archives from gitserver and searches them with regexp |
-| `Factors` | Number of active users |
-| `Guideline` | More engaged users = more CPU |
-
-| Memory | |
-| :---------- | :-------------------------------------------------------------------- |
-| `Overview` | Searcher fetches archives from gitserver and stores them on disk |
-| `Factors` | Number of active users |
-| `Guideline` | Not a memory-intensive service as the search results are streamed out |
-| | Memory usage is based on the number of concurrent search requests |
-| | More memory will be useful around page cache |
-
-| Storage | |
-| :---------- | :----------------------------------------------------------------------------- |
-| `Overview` | Searcher primarily uses disk space to cache archives for unindexed search |
-| `Factors` | Size of the largest repository |
-| `Guideline` | Requires enough disk space to store the largest repository |
-| | The most important thing is to ensure fast IO for storage |
-| | Add more disks or replicas if you have lots of unindexed searches |
-| | More disk space will help speed up future caches |
-| `Type` | Ephemeral storage for Kubernetes deployments |
-| | The request size of the ephemeral storage is used as a limit for the zip cache |
-| | Non-persistent SSD for Docker Compose |
-
- For example, if you search all branches on all repositories, that translates into lots of concurrent unindexed requests.
-
----
-
-### symbols
-
-```
-The backend for symbols operations.
-Indexes symbols in repositories using Ctags.
-```
-
-| Replica | |
-| :---------- | :-------------------------------------------------------------------------- |
-| `Overview` | Process unindexed search |
-| `Factors` | Number of active users |
-| `Guideline` | More requests for distinct commits in different repositories = more replica |
-
-
-| CPU | |
-| :---------- | :------------------------------------------------------------------------------------- |
-| `Overview` | Runs Ctags over code, stores symbol data in SQLite (or codeintel-db if using Rockskip) |
-| `Factors` | Size of all repositories |
-| `Guideline` | Scale with the size of repositories |
-
-
-| Memory | |
-| :---------- | :------------------------------------------------------------------ |
-| `Overview` | Stores symbol data in SQLite and/or Postgres if Rockskip is enabled |
-| `Factors` | Size of all repositories |
-| `Guideline` | Scale with the size of repositories |
-
-| Storage | |
-| :---------- | :------------------------------------------------------------------------------------------------------------------- |
-| `Overview` | Saves SQLite DBs as files on disk in LRU fashion and copies an old one to a new file when a user visits a new commit |
-| `Factors` | Size of the largest repository |
-| `Guideline` | At least 20% more than the size of your largest repository |
-| | Using SSD is highly preferred |
-| `Type` | Ephemeral storage for Kubernetes deployments |
-| | Non-persistent SSD for Docker Compose |
-
- If Rockskip is enabled, the symbols for repositories indexed by [Rockskip](/code_navigation/explanations/rockskip) are stored in codeintel-db instead.
-
----
-
-### syntect-server
-
-```
-An HTTP server that exposes the Rust Syntect syntax highlighting library to other services.
-```
-
-| Replica | |
-| :---------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `Overview` | The constant overhead applies per worker process. Having a large number of processes is not necessarily useful (consumes more memory while idling) if there aren't many active users |
-| `Factors` | Number of active users |
-| `Guideline` | More users = more CPU and replicas |
-| | Add replica when syntax highlighting queries take a long duration because of existing traffic |
-
-| CPU | |
-| :---------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `Overview` | There are a number of worker processes, each with some number of threads. When a syntax highlighting request comes in, it is dispatched to a process, which further sends it to the worker thread. When there are no requests, CPU consumption should be minimal |
-| `Factors` | Number of active users |
-| `Guideline` | More users = more CPU and replicas |
-
-| Memory | |
-| :---------- | :-------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `Overview` | A lot of the highlighting themes and compiled grammars are loaded into memory at start up |
-| `Factors` | Number of active users |
-| `Guideline` | There is additional memory consumption on receiving requests (< 25 MB), although, that's generally much smaller than the constant overhead (1-2 GB) |
-
-| Storage | |
-| :---------- | :--- |
-| `Overview` | - |
-| `Factors` | - |
-| `Guideline` | - |
-| `Type` | None |
-
----
-
-### worker
-
-```
-Runs a collection of background jobs periodically in response to internal requests and external events.
-```
-
- See the docs on [Worker services](/admin/workers#worker-jobs) for a list of worker jobs.
-
-| Replica | |
-| :---------- | :------------------------------------------------------ |
-| `Overview` | Singleton |
-| `Factors` | - |
-| `Guideline` | A Singleton service should not have more than 1 replica |
-
-| CPU | |
-| :---------- | :--------------------------------------------- |
-| `Overview` | One goroutine per worker |
-| `Factors` | Number of repositories |
-| | Size of all repositories |
-| | Size of the largest repository |
-| | Number of insight series defined |
-| `Guideline` | Rate limited / concurrency limited worker pool |
-
-| Memory | |
-| :---------- | :------------------------------------------------------------- |
-| `Overview` | Abulating search results to generate Code Insights time series |
-| `Factors` | Number of repositories |
-| | Number of insight series defined |
-| `Guideline` | Grow with the number of repositories and code-insight users |
-
-| Storage | |
-| :---------- | :--- |
-| `Overview` | - |
-| `Factors` | - |
-| `Guideline` | - |
-| `Type` | None |
-
----
-
-### zoekt-indexserver
-
-```
-Indexes all enabled repositories on Sourcegraph.
-It also keeps the indexes up to date.
-Lives inside the indexed-search pod in a Kubernetes deployment.
-The main guideline for scaling a zoekt-indexserver is the size of your largest repository.
-```
-
- As indexserver currently only indexes one repository at a time, having more CPU and memory are not as important here than in webserver.
-
-| Replica | |
-| :---------- | :---------------------------------------------------- |
-| `Overview` | Parallel with zoekt-webserver |
-| `Factors` | Size of the largest repository |
-| `Guideline` | Scales with zoekt-webserver |
-| | Replicas number must be parallel with zoekt-webserver |
-
-| CPU | |
-| :---------- | :------------------------------------------------------------------------------------------- |
-| `Overview` | Indexes one repository at a time |
-| `Factors` | Size of the largest repository |
-| `Guideline` | More CPU results in lower lag between a new commit and the time it takes to index for search |
-
-| Memory | |
-| :---------- | :---------------------------------------------------------------------------------------------------------------- |
-| `Overview` | Scans for symbols |
-| `Factors` | Size of the largest repository |
-| `Guideline` | In general the amount of RAM used will max out at 100MB * number of CPUS * constant factor (around 5 in practice) |
-
-| Storage | |
-| :---------- | :-------------------------------------------------------------------- |
-| `Overview` | Stores index. Storage is shared with zoekt-webserver |
-| `Factors` | Size of all repositories |
-| `Guideline` | 50% of the gitserver disk size |
-| | Disk IO is important as it constantly reads from disk during searches |
-| | Scale with zoekt-webserver |
-| `Type` | Persistent Volumes for Kubernetes |
-| | Persistent SSD for Docker Compose |
-
- We recommend providing zoekt-indexserver with more resources when trying to add a lot of new repositories that requires indexing from a new external service, and then scale down once indexing is completed.
-
----
-
-### zoekt-webserver
-
-```
-Runs searches from indexes stored in memory and disk.
-It serves and processes data from zoekt-indexserver.
-The indexes are persisted to disk to avoid re-indexing on startup.
-Lives inside the indexed-search pod in a Kubernetes deployment.
-```
-
- Adding more CPU and memory helps speed up searches.
-
-| Replica | |
-| :---------- | :------------------------------------------------------ |
-| `Overview` | Parallel with zoekt-indexserver |
-| `Factors` | Number of repositories |
-| | Size of all repositories |
-| `Guideline` | More repositories = more CPU and replicas |
-| | Replicas number must be parallel with zoekt-indexserver |
-
-| CPU | |
-| :---------- | :------------------------------------------- |
-| `Overview` | Goroutines are dispatched per search query |
-| `Factors` | Number of repositories |
-| | Number of active users |
-| `Guideline` | Scales with the number of search requests |
-| | More search requests = more CPU and replicas |
-
-| Memory | |
-| :---------- | :-------------------------------------- |
-| `Overview` | Parts of the index are stored in memory |
-| `Factors` | Number of repositories |
-| | Size of all repositories |
-| `Guideline` | Scales with the number of repositories |
-| | More repositories = more memory |
-
-| Storage | |
-| :---------- | :-------------------------------------------------------------------- |
-| `Overview` | Stores index. Storage is shared with zoekt-indexserver. |
-| `Factors` | Size of all repositories |
-| `Guideline` | 50% of the gitserver disk size |
-| | Disk IO is important as it constantly reads from disk during searches |
-| | Scale with zoekt-indexserver |
-| `Type` | Persistent Volumes for Kubernetes |
-| | Persistent SSD for Docker Compose |
-
- Check the peak bursts rather than the average over time when monitoring CPU usage for zoekt as it depends on when the searches happen.
-
----
diff --git a/docs/versioned/5.2/admin/deploy/single-node/index.mdx b/docs/versioned/5.2/admin/deploy/single-node/index.mdx
deleted file mode 100644
index 29e55a4f5..000000000
--- a/docs/versioned/5.2/admin/deploy/single-node/index.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
-# Sourcegraph Single-Node Instance
-
-For customers who want to self-host, we recommend one of the single-node deployment options.
-
-- Cloud
- - [Machine images](/admin/deploy/machine-images)
- - [Docker Compose](/admin/deploy/docker-compose)
- - [Shell Script](/admin/deploy/single-node/script)
-- Local
- - [Docker](/admin/deploy/docker-single-container)
diff --git a/docs/versioned/5.2/admin/deploy/single-node/script.mdx b/docs/versioned/5.2/admin/deploy/single-node/script.mdx
deleted file mode 100644
index e04c32254..000000000
--- a/docs/versioned/5.2/admin/deploy/single-node/script.mdx
+++ /dev/null
@@ -1,93 +0,0 @@
-# Install Sourcegraph via Shell Script
-
-Following these docs will launch a pre-configured single node Sourcegraph instance via shell script.
-
-
-## Supported Distros
-The script can be run on the following distros.
-
-- Debian
-- Ubuntu
-- Fedora
-- RHEL
-- Amazon Linux 2
-
-As it is impossible to test all possible deployment environments it is possible albeit unlikely to encounter an error. We highly suggest using one of our
-curated [Machine Images](/admin/deploy/machine-images/) if possible.
-
-## Instance Size Chart
-
-Determine the instance type required to support the number of users and repositories you have using this table. If you fall between two sizes, choose the larger of the two.
-
-For example, if you have 8,000 users with 80,000 repositories, your instance size would be **L**. If you have 1,000 users with 80,000 repositories, you should go with size **M**.
-
-| | **XS** | **S** | **M** | **L** | **XL** |
-|----------------------------|------------|-------------|--------------|--------------|--------------|
-| **Users** | greater than or equal to 500 | greater than or equal to 1,000 | greater than or equal to 5,000 | greater than or equal to 10,000 | greater than or equal to 20,000 |
-| **Repositories** | greater than or equal to 5,000 | greater than or equal to 10,000 | greater than or equal to 50,000 | greater than or equal to 100,000 | greater than or equal to 250,000 |
-| **Recommended vCPU / RAM** | 8 / 32 GiB | 16 / 64 GiB | 32 / 128 GiB | 48 / 192 GiB | 96 / 384 GiB |
-| **Minimum vCPU / RAM** | 8 / 32 GiB | 8 / 32 GiB | 16 / 64 GiB | 32 / 128 GiB | 48 / 192 GiB |
-
-
-## Machine Prerequisites
-Before running the install script please ensure ensure the target machine meets the following prerequisites.
-
-1. Sufficient CPU and RAM according to the [instance size chart](#instance-size-chart)
-2. A root disk size with `50 GiB` free space for ephemeral data.
-3. A secondary disk of size `250 GiB` **minimum**. Adjust to your specific needs.
-4. A non-root user with `sudo` permissions to execute the script
-
-IMPORTANT For optimal performance both disks should be backed by SSDs or equivalently fast storage.
-
-## Deploy Sourcegraph
-
-The script accepts the following parameters:
-#### Required
-
-- `-d `
-
- The data disk where Sourcegraph persistent data should be stored e.g. `-d /dev/sdb`
-
- The script will format the disk if it has not been formatted already.
- If you choose to format and mount the disk yourself it must be mounted to `/mnt/data`
- MUST be a separate disk than e.g. the base OS for upgrades.
-
-#### Optional
-- `-s `
-
- The Instance Size to use. Defaults to `XS`
-- `-v `
-
- The Sourcegraph version to deploy. Defaults to the latest version
-
-```sh
-curl -sfL https://raw.githubusercontent.com/sourcegraph/deploy/main/install/scripts/k3s/install.sh | bash -s --
-```
-
-> NOTE: Please allow up to ~5 minutes for Sourcegraph to initialize
-
-## Networking
-Sourcegraph will be available on ports 80 and 443 (using a self signed certificate).
-
-We recommend deploying your own reverse proxy to terminate TLS connections with a properly signed certificate.
-
-## Upgrade
-- [Changelog](https://docs.sourcegraph.com/CHANGELOG)
-- [Update policy](https://docs.sourcegraph.com/admin/updates#update-policy)
-- [Update notes](https://docs.sourcegraph.com/admin/updates/kubernetes)
-- [Multi-version upgrade procedure](https://docs.sourcegraph.com/admin/updates/kubernetes#multi-version-upgrade-procedure)
-
-> Important: Back up your volumes before each upgrade
-
-1. Shutdown the current machine running the Sourcegraph instance
-2. Detach the data disk
-3. Launch a new machine with the same specification as the current instance
- - Use the existing data disk in place of creating a new one
-4. Run the install script targeting the data disk.
-5. Wait for Sourcegraph to start.
-
-## Downgrade
-Please refer to the upgrade procedure above if you wish to rollback your instance.
-
-## Storage and Backups
-We strongly recommend taking snaphots of the data disk on an automatic, scheduled basis.
diff --git a/docs/versioned/5.2/admin/deployment_best_practices.mdx b/docs/versioned/5.2/admin/deployment_best_practices.mdx
deleted file mode 100644
index 37880831c..000000000
--- a/docs/versioned/5.2/admin/deployment_best_practices.mdx
+++ /dev/null
@@ -1,82 +0,0 @@
-# Sourcegraph Deployment Best Practices
-
-## What does "best practice" mean to us?
-
-Sourcegraph is a highly scalable and configurable application. As an open source company we hope our customers will feel empowered to customize Sourcegraph to meet their unique needs, but we cannot guarantee whether deviations from the below guidelines will work or be supportable by Sourcegraph. If in doubt, please contact your Customer Engineer or [reach out to support](/#get-help).
-
-## Sourcegraph Performance Dependencies
-
-- number of users associated to instance
-- user's engagement level
-- number and size of code repositories synced to Sourcegraph.
-
-_To get a better idea of your resource requirements for your instance use our [resource estimator](https://docs.sourcegraph.com/admin/deploy/resource_estimator).
-
-## Deployment Best Practices
-
-A comparison table of supported self-hosted deployment methodologies can be [found here](/admin/deploy/#deployment-types).
-
-### Docker Compose
-
-- Be sure your deployment meets our [Docker Compose requirements](/admin/deploy/docker-compose/#requirements).
-- Review the [configuration section](/admin/deploy/docker-compose/#configuration) of our [Docker Compose deployment docs](/admin/deploy/docker-compose/).
-
-### Kubernetes
-
-Kubernetes deployments may be customized in a variety of ways, we consider the following best practice:
-
-- Users should configure and deploy using Helm, as covered in our guide to [using Helm with Sourcegraph](/admin/deploy/kubernetes/helm).
- - If Helm cannot be used, [Kustomize can be used to apply configuration changes](/admin/deploy/kubernetes/kustomize).
- - As a last resort, the [manifests can be edited in a forked copy of the Sourcegraph repository](/admin/deploy/kubernetes/).
-- The suggested Kubernetes version is the current [GKE Stable release version](https://cloud.google.com/kubernetes-engine/docs/release-notes-stable)
-- We attempt to support new versions of Kubernetes 2-3 months after their release.
-- Users are expected to run a compliant Kubernetes version ([a CNCF certified Kubernetes distribution](https://github.com/cncf/k8s-conformance))
-- The cluster must have access to persistent SSD storage
-- We test against Google Kubernetes Engine
-
-_Unless scale, resiliency, or some other legitimate need exists that necessitates the use of Kubernetes (over a much simpler Docker Compose installation), it's recommended that Docker-Compose be used._
-
-_Any major modifications outside of what we ship in the [standard deployment](https://github.com/sourcegraph/deploy-sourcegraph) are the responsibility of the user to manage, including but not limited to: Helm templates, Terraform configuration, and other ops/infrastructure tooling._
-
-### Sourcegraph Server (single Docker container)
-
-Sourcegraph Server is best used for trying out Sourcegraph. It's not intended for enterprise production deployments for the following reasons:
-
-- Limited logging information for debugging
-- Performance issues with:
- - more than 100 repositories
- - more than 10 active users
-- Some Sourcegraph features do not have full functionality (Ex: Code Insights)
-
-_It is possible to migrate your data to a Docker-Compose or Kubernetes deployment, contact your Customer Engineer or reach out to support and we'll be happy to assist you in upgrading your deployment._
-
-## Additional support information
-
-### Precise code navigation and Batch Changes
-
-- The list of languages currently supported for precise code navigation can be found [here](/code-search/faq#what-languages-are-supported)
-- Requirements to set-up Batch Changes can be found [here](https://docs.sourcegraph.com/batch_changes/references/requirements)
-
-### Browser extensions
-
-- Sourcegraph and its extensions are supported on the latest versions of Chrome, Firefox, and Safari.
-
-### Editor extensions
-
-Only the latest versions of IDEs are generally supported, but most versions within a few months up-to-date generally work.
-
-- VS Code: [https://github.com/sourcegraph/sourcegraph/tree/main/client/vscode](https://github.com/sourcegraph/sourcegraph/tree/main/client/vscode); we don't yet support VSCodium
-- JetBrains IDEs: [https://github.com/sourcegraph/sourcegraph/tree/main/client/jetbrains](https://github.com/sourcegraph/sourcegraph/tree/main/client/jetbrains) – we mainly test the plugin with IntelliJ IDEA, but it should work with no issues in all JetBrains IDEs, including:
- - IntelliJ IDEA
- - IntelliJ IDEA Community Edition
- - PhpStorm
- - WebStorm
- - PyCharm
- - PyCharm Community Edition
- - RubyMine
- - AppCode
- - CLion
- - GoLand
- - DataGrip
- - Rider
- - Android Studio
diff --git a/docs/versioned/5.2/admin/enterprise_getting_started_guide/index.mdx b/docs/versioned/5.2/admin/enterprise_getting_started_guide/index.mdx
deleted file mode 100644
index d6fd92fdd..000000000
--- a/docs/versioned/5.2/admin/enterprise_getting_started_guide/index.mdx
+++ /dev/null
@@ -1,40 +0,0 @@
-# Enterprise Getting Started Guide
-
-If you're deploying a new Enterprise instance, this page covers our most frequently referenced pieces of documentation. Admins will be interested in the documentation for their specific deployment method; users will want to check out info on our search syntax, operators, batch changes, and browser extension.
-
-## Admin articles
-
-### General
-- [Deployment overview](/admin/deploy/)
-- [Resource estimator](https://docs.sourcegraph.com/admin/deploy/resource_estimator)
-- [SAML config](/admin/auth/saml/)
-- [Configuring authorization and authentication](/admin/config/authorization_and_authentication) - We recommend starting here for access and permissions configuration before moving on to the more specific pages on these topics.
-- [Built-in password authentication](/admin/auth/#builtin-password-authentication)
-- [GitHub authentication](/admin/auth/#github)
-- [GitLab authentication](/admin/auth/#gitlab)
-- [OpenID connect](/admin/auth/#openid-connect)
-- [HTTP authentication proxy](/admin/auth/#http-authentication-proxies)
-- [GitLab integration](/integration/gitlab)
-- [GitHub integration](/integration/github)
-- [All code host integrations (not GitLab or GitHub)](/integration/#integrations)
-- [Full guide to site config options](/admin/config/site_config#auth-sessionExpiry)
-- [Changelog](https://sourcegraph.com/github.com/sourcegraph/sourcegraph/-/blob/CHANGELOG) to track releases and updates
-
-### Docker-compose
-- [Basic installation guide](/admin/deploy/docker-compose/)
-- [AWS installation](/admin/deploy/docker-compose/aws)
-- [Digital Ocean installation](/admin/deploy/docker-compose/digitalocean)
-- [Google Cloud installlation](/admin/deploy/docker-compose/google_cloud)
-
-### Kubernetes admin
-- [All Kubernetes with Helm guidance](/admin/deploy/kubernetes/helm)
-- [Amazon EKS](/admin/deploy/kubernetes/helm#configure-sourcegraph-on-elastic-kubernetes-service-eks)
-- [Google GKE](/admin/deploy/kubernetes/helm#configure-sourcegraph-on-google-kubernetes-engine-gke)
-- [Azure](/admin/deploy/kubernetes/helm#configure-sourcegraph-on-azure-managed-kubernetes-service-aks)
-- [Configure Sourcegraph on other Cloud providers or on-prem](/admin/deploy/kubernetes/helm#configure-sourcegraph-on-other-cloud-providers-or-on-prem)
-
-## User articles
-- [Search syntax](/code-search/queries)
-- [Search filters](/code-search/queries#filters-all-searches)
-- [Example batch changes](/batch_changes/tutorials/)
-- [Sourcegraph browser extension](/integration/browser_extension)
diff --git a/docs/versioned/5.2/admin/executors/deploy_executors.mdx b/docs/versioned/5.2/admin/executors/deploy_executors.mdx
deleted file mode 100644
index e9ba1464b..000000000
--- a/docs/versioned/5.2/admin/executors/deploy_executors.mdx
+++ /dev/null
@@ -1,275 +0,0 @@
-# Deploying Sourcegraph executors
-
-Executors can be deployed in a variety of manners. The supported deployment options are:
-
-- [Linux Binary Service](/admin/executors/deploy_executors_binary)
-- [Terraform on AWS or GCP](/admin/executors/deploy_executors_terraform)
-- (Beta) [Native Kubernetes](/admin/executors/deploy_executors_kubernetes)
-- (Beta) [Docker-in-Docker on Kubernetes](/admin/executors/deploy_executors_dind)
-- (Beta) [Docker-Compose](/admin/executors/deploy_executors_docker)
-
-See [deciding which executor deployment method to use ](../executors#deciding-which-executor-deployment-method-to-use) for more information on these different deployment options.
-
-Executors are available with no additional setup required on Sourcegraph Cloud.
-
-### Resource recommendations
-
-It is recommended to set the resources based on the number of jobs an instance will process in parallel.
-
-A single job should have the following resources available.
-
-- **CPU:** 4
-- **Memory:** 12GB
-- **Disk:** 20GB
-
-So, if you expect an Executor instance to process up to 4 jobs in parallel, the recommended resources for the machine are
-
-- **CPU:** 16
-- **Memory:** 48GB
-- **Disk:** 80GB
-
-The above recommended resources can be changed to fit your constraints. See below for configuring resources for a Job.
-
-Note: the smallest machine type on AWS that can support Executors with Firecracker is `c5n.metal` (72 vCPU and
-192GB of Memory), but concurrency can be turned up for the additional cost.
-
-#### Job configuration
-
-The maximum number of Jobs an Executor instance can run in parallel is configured by the Environment Variable `EXECUTOR_MAXIMUM_NUM_JOBS`.
-
-The CPU and Memory usage of an individual Job is configured by the Environment Variables `EXECUTOR_JOB_NUM_CPUS`
-and `EXECUTOR_JOB_MEMORY`.
-
-See [executor configuration](/admin/executors/executors_config) for a full list of configuration options.
-
-Note: changing CPU and Memory for jobs will affect the overall requirements for an Executor instance.
-
-#### AWS
-
-It is recommended to add the following **Disk** configuration in AWS.
-
-- **IOPS:** Equal to the Disk Size (so if **Disk** is 100GB, then IOPS is 100)
-- **Throughput:** 125MiB/s
-
-### Supported infrastructures
-
-- **Operating System:** Linux-based
-- **Architecture:** AMD64
-
-#### Firecracker requirements
-
-To run Executors with Firecracker enabled requires the machine to support [Kernel-based Virtual Machine](https://en.wikipedia.org/wiki/Kernel-based_Virtual_Machine).
-See [deploying Executors binary](/admin/executors/deploy_executors_binary) for additional information on configuring Linux Machines.
-
-#### Cloud providers
-
-Machines on Cloud Providers have additional constraints for use with firecracker.
-
-- **AWS:** machine type must be
- a [metal instance (`.metal`)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html)
-- **GCP:** the instance
- must [enable nested virtualization](https://cloud.google.com/compute/docs/instances/nested-virtualization/enabling)
-## Executor authentication
-
-Executors must be run separately from your Sourcegraph instance.
-
-Since they must still be able to reach the Sourcegraph instance in order to dequeue and perform work, requests between the Sourcegraph instance and the executors are authenticated via a shared secret.
-
-Before starting any executors, generate an arbitrary secret string (with at least 20 characters) and [set it as the `executors.accessToken` key in your Sourcegraph instance's site-config](/admin/config/site_config#view-and-edit-site-configuration). The `EXECUTOR_FRONTEND_PASSWORD` environment variable on the executor instance will need to be configured with the same secret string.
-
-## Executor installation
-
-Once the shared secret is set in Sourcegraph, you can start setting up executors that can use that access token to talk to the Sourcegraph instance.
-
-### Supported installation types
-
-
-
-
-
-
-
-
-
-## Validating executor deployments
-
-If executor instances boot correctly and can authenticate with the Sourcegraph frontend, they will show up in the **Executors** page under **Site admin > Maintenance**.
-
-
-
-## Using private registries
-
-If you want to use docker images stored in a private registry that requires authentication, follow this section to configure it.
-
-Depending on the executor runtime that is being used, different options exist for provisioning access to private container registries:
-
-- Through a special secret called `DOCKER_AUTH_CONFIG`, set in [executor secrets](/admin/executors/executor_secrets) in Sourcegraph.
-- Through the `EXECUTOR_DOCKER_AUTH_CONFIG` environment variable (also available as a variable in the terraform modules for executors).
-- Through the [`config.json` file in `~/.docker`](https://docs.docker.com/engine/reference/commandline/login/). **If using executors with firecracker enabled (recommended) this option is not available.**
-
-When multiple of the above options are combined, executors will use them in the following order:
-
-- If a `DOCKER_AUTH_CONFIG` executor secret is configured, that will be preferred. That is so that users can overwrite the credentials being used in their user-settings. This is the only option available in Sourcegraph Cloud.
-- If the `EXECUTOR_DOCKER_AUTH_CONFIG` environment variable is set, this will be used as the next option.
-- Finally, if neither of the above are set, executors will fall back to the `config.json` file in the user home directory of the user that is owning the executor process. NOTE: This is not available in the firecracker runtime, as the rootfs is not shared with the host.
-
-The docker CLI supports three ways to use credentials:
-
-- Using static credentials
-- Using [credential helpers](https://docs.docker.com/engine/reference/commandline/login/#credential-helpers)
-- Using [credential stores](https://docs.docker.com/engine/reference/commandline/login/#credentials-store)
-
-Credential helpers and credential stores are only available for use with the `config.json` configuration option, as they require additional infrastructural changes. Thus, those options are not available on Sourcegraph Cloud.
-
-### Using static credentials
-
-The `EXECUTOR_DOCKER_AUTH_CONFIG` environment variable and the `DOCKER_AUTH_CONFIG` secret expect a docker config with only the necessary properties set for configuring authentication.
-The format of this config supports multiple registries to be configured and looks like this:
-
-```json
-{
- "auths": {
- "myregistry.example.com[:port]": {
- "auth": "base64(username:password)"
- },
- "myregistry2.example.com[:port]": {
- "auth": "base64(username:password)"
- }
- }
-}
-```
-
-You can either create this config yourself by hand, or let docker do it for you by running:
-
-```bash
-TMP_FILE="$(mktemp -d)" bash -c 'echo "" | docker --config "${TMP_FILE}" login --username "" --password-stdin "" && cat "${TMP_FILE}/config.json" && rm -rf "${TMP_FILE}"'
-```
-
-> NOTE: This doesn't work on Docker for Mac if "Securely store Docker logins in macOS keychain" is enabled, as it would store it in the credentials store instead.
-
-You can also run the following:
-
-```bash
-echo "username:password" | base64
-```
-
-and then paste the result of that into a JSON string like this:
-
-```json
-{
- "auths": {
- "myregistry.example.com[:port]": {
- "auth": ""
- }
- }
-}
-```
-
-For Google Container Registry, [follow this guide](https://cloud.google.com/container-registry/docs/advanced-authentication#json-key) for how to obtain long-lived static credentials.
-
-### Configuring the auth config for use in executors
-
-Now that the config has been obtained, it can be used for the `EXECUTOR_DOCKER_AUTH_CONFIG` environment variable (and terraform variable `docker_auth_config`) or you can create an [executor secret](/admin/executors/executor_secrets#creating-a-new-secret) called `DOCKER_AUTH_CONFIG`. Global executor secrets will be available to every execution, while user and organization level executor secrets will only be available to the namespaces executions.
-
-## Using custom certificates with executors
-
-By default, executors will search for certificates in the following files and directories:
-
-| Directory or file | Distribution |
-|-----------------------------------------------------|---------------------------|
-| `/etc/ssl/certs/ca-certificates.crt` | Debian/Ubuntu/Gentoo etc. |
-| `/etc/pki/tls/certs/ca-bundle.crt` | Fedora/RHEL 6 |
-| `/etc/ssl/ca-bundle.pem` | OpenSUSE |
-| `/etc/pki/tls/cacert.pem` | OpenELEC |
-| `/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem` | CentOS/RHEL 7 |
-| `/etc/ssl/cert.pem` | Alpine Linux |
-| `/etc/ssl/certs` | SLES10/SLES11 |
-| `/etc/pki/tls/certs` | Fedora/RHEL |
-| `/system/etc/security/cacerts` | Android |
-
-If your environment makes use of custom certificates, you can add them to one of these locations in order for executors to pick them up.
-
-### Adding certificates to a binary deployment
-> NOTE: see the [troubleshooting guide](/admin/executors/executors_troubleshooting#connecting-to-cloud-provider-executor-instances) for instructions on how to connect to cloud provider VMs.
-
-After successfully [deploying binaries](/admin/executors/deploy_executors_binary), follow these steps:
-1. Copy your certificates to `/etc/ssl/certs`.
-1. If you are using systemd, run `systemctl restart executor`. If not, proceed to the next step.
-1. Run `executor run` on the VM in order to restart the executor service.
-
-#### Adding certificates with Firecracker
-
-When running executors with the [firecracker runtime](/admin/executors/#firecracker), custom certificates need to be added in
-the container that is running within the Firecracker VM. To add custom certificates, you must create a new Docker image
-that contains the certificates. For example,
-
-```dockerfile
-FROM upstream:tag
-
-# Copy the certificates into the container
-COPY customcert.crt /usr/local/share/ca-certificates/customcert.crt
-# Update the certificate store
-RUN chmod 644 /usr/local/share/ca-certificates/customcert.crt && update-ca-certificates
-# ...
-```
-
-##### Code Intel
-
-Once the custom image is built, you can configure the executor to use it by setting
-the `codeIntelAutoIndexing.indexerMap` to use the custom image. For example,
-
-```json
-"codeIntelAutoIndexing.indexerMap": {
- "go": "myregistry.company.com/scip-go:custom"
-}
-```
-
-### Adding certificates to a Kubernetes deployment using manifests
-
-First, add the certificate data as a secret in your preferred namespace:
-```shell
-SECRET_NAME=custom-certs
-CERT_PATH=/path/to/cert.pem
-kubectl create secret generic $SECRET_NAME --from-file=customcert.crt=$CERT_PATH
-```
-
-Or as a declarative manifest:
-```yaml
-apiVersion: v1
-kind: Secret
-metadata:
- name: custom-certs
-data:
- customcert.crt: $(base64 -i /path/to/cert.pem)
-type: Opaque
-```
-
-Next, mount the secret in the executor deployment. Add the following snippet to `spec.template.spec.volumes` of each executor deployment:
-```yaml
-- name: custom-certs
- secret:
- secretName: custom-certs
-```
-
-Also add this snippet to `spec.template.spec.containers.volumeMounts` of each executor deployment (specifically, the executor container, in case you inject any sidecars):
-```yaml
-- mountPath: /etc/ssl/certs
- name: custom-certs
- readOnly: true
-```
-
-Next, apply the updated YAML manifests. Once the executors have rolled out, they should be picking up your custom certificates.
-
-### Adding certificates to a Kubernetes deployment using Helm
-
-You may follow the same instructions for the manifest deployment to set custom certificates.
-
-### Adding certificates to a Docker Compose deployment
-
-First, ensure that the certificate file is present on the host machine. Next, add the volume to the [executor compose file](https://sourcegraph.com/github.com/sourcegraph/deploy-sourcegraph-docker/-/blob/docker-compose/executors/executor.docker-compose.yaml?L26-30):
-
-```yaml
-- '/path/to/certs:/etc/ssl/certs'
-```
-
-Next, restart the deployment with `docker-compose down` and `docker-compose up -d`.
diff --git a/docs/versioned/5.2/admin/executors/deploy_executors_binary.mdx b/docs/versioned/5.2/admin/executors/deploy_executors_binary.mdx
deleted file mode 100644
index 9a9656dbb..000000000
--- a/docs/versioned/5.2/admin/executors/deploy_executors_binary.mdx
+++ /dev/null
@@ -1,192 +0,0 @@
-# Deploying Sourcegraph executors on linux machines
-
-## Installation
-
-> Note: See [offline installation guide](/admin/executors/deploy_executors_binary_offline) for instructions on how to install executors in an air-gapped environment.
-
-The following steps will guide you through the process of installing executors on a linux machine.
-
-### Dependencies
-
-In order to run executors on your machine, a few things need to be set up correctly before proceeding.
-
-- Executors only support linux-based machine with amd64 processors
-- Docker has to be installed on the machine (`curl -fsSL https://get.docker.com | sh`)
-- Git has to be installed at a version `>= v2.26`
-- The ability to run commands as `root` on the host machine and configure networking routes
-
-If [Firecracker isolation will be used](/admin/executors/firecracker): _(recommended)_
-
-- The host has to support KVM (for AWS that means a [metal instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html), on GCP that means [enabling nested virtualization](https://cloud.google.com/compute/docs/instances/nested-virtualization/enabling))
-- The following additional dependencies need to be installed:
- - `dmsetup`
- - `losetup`
- - `mkfs.ext4`
- - `iptables`
- - `strings` (part of binutils)
- - `systemd` (optional)
-
-### **Step 0:** Confirm that virtualization is enabled (if using Firecracker)
-
-KVM (virtualization) support is required for our [sandboxing model](/admin/executors/#sandboxing-model) with Firecracker. The following command checks whether virtualization is enabled on the machine (it should print something):
-
-```bash
-$ lscpu | grep Virtualization
-
-Virtualization: VT-x
-Virtualization type: full
-```
-
-On Ubuntu-based distributions, you can also use the tool `kvm-ok` available in the `cpu-checker` package to reliably validate KVM support on your host:
-
-```bash
-# Install cpu-checker
-$ apt-get update && apt-get install -y cpu-checker
-
-# Check for KVM support
-$ kvm-ok
-INFO: /dev/kvm exists
-KVM acceleration can be used
-```
-
-### **Step 1:** Download the latest executor binary
-
-Below are the download links for the *latest* release of executors:
-
-**Note:** Executors need to match the version of Sourcegraph they're running against. Latest will usually only work for you when
-you run the latest version of Sourcegraph.
-
-* [`linux-amd64/executor`](https://storage.googleapis.com/sourcegraph-artifacts/executor/latest/linux-amd64/executor)
-* [`linux-amd64/executor_SHA256SUM`](https://storage.googleapis.com/sourcegraph-artifacts/executor/latest/linux-amd64/executor_SHA256SUM)
-* [`Build info`](https://storage.googleapis.com/sourcegraph-artifacts/executor/latest/info.txt)
-
-Download and setup the `executor` binary:
-
-```bash
-# Plug in the version of your Sourcegraph instance, like v4.1.0.
-# Before Sourcegraph 3.43.0, tagged releases of executors are not available and you should default to using "latest" instead.
-# Using latest is NOT recommended, because it might be incompatible with your Sourcegraph version.
-curl -sfLo executor https://storage.googleapis.com/sourcegraph-artifacts/executor/${SOURCEGRAPH_VERSION}/linux-amd64/executor
-chmod +x executor
-# Assuming /usr/local/bin is in $PATH.
-mv executor /usr/local/bin
-```
-
-### **Step 2:** Setup environment variables
-
-The executor Linux binary is configured through environment variables which need to be passed to it when you run it (including for the `install`, `validate` and `test-vm` comamnds). You can add these to your shell profile, or an environment file. The `EXECUTOR_FRONTEND_URL`, `EXECUTOR_FRONTEND_PASSWORD` and `EXECUTOR_QUEUE_NAME` **or** `EXECUTOR_QUEUE_NAMES` are _required_ and will need to be set prior to running the executor service for the first time.
-
-See [Executor configuration](/admin/executors/executors_config) for a full list of configuration options for the executor service.
-
-```bash
-# Example:
-export EXECUTOR_FRONTEND_URL=http://sourcegraph.yourcompany.com
-export EXECUTOR_FRONTEND_PASSWORD=SUPER_SECRET_SHARED_TOKEN
-export EXECUTOR_QUEUE_NAMES=batches,codeintel
-```
-
-### **Step 3:** Configure your machine
-
-To be able to run workloads in isolation, a few dependencies need to be installed and configured. The executor CLI can do all of that automatically.
-
-To run all of the required setup steps, just run the following commands as `root`:
-
-```bash
-executor install all
-# OR run the following, to see how to install/configure components separately.
-executor install --help
-```
-
-### **Step 4:** Validate your machine is ready to receive workloads
-
-All set up! Before letting the executor start receiving workloads from your Sourcegraph instance, you might want to verify your setup. Run the following command:
-
-```bash
-executor validate
-```
-
-If any issues are found, correct them before proceeding.
-
-If you use our [sandboxing model](/admin/executors/#sandboxing-model) with Firecracker _(recommended)_, you can also verify that the executor is able to spin up the isolation VMs properly. For that, use the following command:
-
-```bash
-# Optionally provide a repo to clone into the VMs workspace, to verify that cloning works properly as well.
-executor test-vm [--repo=github.com/sourcegraph/sourcegraph --revision=main]
-```
-
-This should succeed and print a command to use to attach to the guest VM. If it is able to spin up properly, that is usually good indication that everything is set up properly. If you need to debug some issue further, this can be helpful as you can exec into the guest VM from here.
-
-### **Step 5:** Make executor a systemd service (optional, systemd-based distributions only)
-
-To make sure that the executor runs post-boot of the machine, you might want to wrap it in a systemd service. This is an example of how that could look like:
-
-```bash
-cat </etc/systemd/system/executor.service
-[Unit]
-Description=Sourcegraph executor
-After=docker.service
-BindsTo=docker.service
-
-[Service]
-ExecStart=/usr/local/bin/executor
-Restart=on-failure
-EnvironmentFile=/etc/systemd/system/executor.env
-Environment=HOME="%h"
-Environment=SRC_LOG_LEVEL=dbug
-
-[Install]
-WantedBy=multi-user.target
-EOF
-
-# Create environment file (this can also be sourced in your shell)
-cat </etc/systemd/system/executor.env
-EXECUTOR_FRONTEND_URL="https://sourcegraph.yourcompany.com"
-EXECUTOR_FRONTEND_PASSWORD="SUPER_SECRET_SHARED_TOKEN"
-EXECUTOR_QUEUE_NAMES="batches,codeintel"
-EOF
-
-systemctl enable executor
-```
-
-### **Step 6:** Start receiving workloads
-
-If you use the systemd service, simply run `systemctl start executor`, otherwise run `executor run`. Your executor should start listening for jobs now! All done!
-
-## Upgrading executors
-
-Upgrading executors is relatively uninvolved. Simply follow the instructions below.
-Also, check the [changelog](https://sourcegraph.com/github.com/sourcegraph/sourcegraph@main/-/blob/CHANGELOG) for any Executors related breaking changes or new features that you might want to configure.
-
-### **Step 1:** First, grab the executor binary for the new target Sourcegraph version.
-
-> NOTE: Keep in mind that only one minor version bumps are guaranteed to be disruption-free.
-
-```bash
-curl -sfLo executor https://storage.googleapis.com/sourcegraph-artifacts/executor/${SOURCEGRAPH_VERSION}/linux-amd64/executor
-chmod +x executor
-# Assuming /usr/local/bin is in $PATH.
-mv executor /usr/local/bin
-```
-
-### **Step 2:** Make sure all ambient dependencies and configurations are up-to-date:
-
-Ensure [env vars](#step-2-setup-environment-variables) has been configured.
-
-```bash
-executor install all
-# OR run the following, to see how to install/configure components separately.
-executor install --help
-```
-
-### **Step 3:** Validate your machine is ready to receive workloads
-
-All set up! Before letting the executor start receiving workloads from your Sourcegraph instance, you might want to verify your setup. Run the following command:
-
-```bash
-executor validate
-```
-
-### **Step 4:** Restart your running executor / spin up a new machine
-
-Depending on how you set up executors, you might want to restart the systemd service, or restart/replace the machine running them, so the new binary is running.
-If you use the systemd service, simply run `systemctl start executor`, otherwise run `executor run`. Your executor should start listening for jobs now and be visible under the `Executors > Instances` section of the Site Configuration.
diff --git a/docs/versioned/5.2/admin/executors/deploy_executors_binary_offline.mdx b/docs/versioned/5.2/admin/executors/deploy_executors_binary_offline.mdx
deleted file mode 100644
index 0c6aa04f8..000000000
--- a/docs/versioned/5.2/admin/executors/deploy_executors_binary_offline.mdx
+++ /dev/null
@@ -1,195 +0,0 @@
-# Deploying Executors Binary Offline
-
-When running in an air-gap environment, the executor binary can be deployed with this guide.
-
-## Initial Dependencies
-
-Executors
-require [initial dependencies](https://docs.sourcegraph.com/admin/executors/deploy_executors_binary#dependencies) to
-be installed on the host machine. The minimum dependencies (when not using [Firecracker](/admin/executors/#firecracker)
-Isolation) are:
-
-- [Docker](https://docs.docker.com/engine/install/binaries/#install-daemon-and-client-binaries-on-linux)
-- [Git](https://git-scm.com/download/linux)
-
-## Install Binary
-
-1. Download the executor binary version that matches your deployed Sourcegraph Version (e.g. `v4.1.0`) from a machine
- with internet access
- ```shell
- curl -sfLo executor https://storage.googleapis.com/sourcegraph-artifacts/executor/${SOURCEGRAPH_VERSION}/linux-amd64/executor
- ```
-2. Copy the `executor` binary to the offline host machine
-3. Set the binary as executable: `chmod +x executor`
-4. Move the binary to a location in your `$PATH` (e.g. `/usr/local/bin`)
-
-## Configure Docker
-
-`executor` requires the ability to connect to a Docker Registry to pull Docker Images. The offline host machine needs to
-be able to connect to an internal Docker Registry (e.g. JFrog Artifactory) to be able to
-pull the images.
-
-## Environment Variables
-
-See [deploy executors binary](/admin/executors/deploy_executors_binary#step-2-setup-environment-variables) for a list of environment
-variables that are configurable.
-
-## Batch Changes
-
-Batch Changes requires either `src-cli` to be installed on the host machine or
-for [Native Execution](/admin/executors/native_execution) to be enabled.
-
-### src-cli
-
-Executors requires the `src-cli` to be installed on the host machine, if not
-using [Native Execution](/admin/executors/native_execution) for Batch Changes. To install `src-cli`:
-
-1. Download the `src-cli` binary [version](https://github.com/sourcegraph/src-cli/releases) that matches your deployed
- Sourcegraph Version (e.g. `v4.1.0`) from a machine with internet access.
-2. Copy the `src` binary to the offline host machine
-3. Extract the binary from the archive
- ```shell
- $ tar -zxcf src-cli_${VERSION}_linux_amd64.tar.gz
- ```
-4. Set the binary as executable by running `chmod +x src`
-5. Move the binary to a location in your `$PATH` (e.g. `/usr/local/bin`)
-6. Confirm `src` is installed by running `src`
- ```shell
- $ src version
- Current version: 4.1.0
- ```
-
-### Native Execution
-
-See [Native Execution](native_execution) for details on how to enable Native Execution. Ensure the
-image `sourcegraph/batcheshelper` is available in the internal Docker Registry.
-
-## Auto Indexing
-
-Auto Indexing requires images to be available in the internal Docker Registry. The images for languages can be found in
-the [Code Navigation](/code_navigation/index) page.
-
-Once the images are available in the internal Docker Registry, the `executor` can be configured to use the images by
-updating `codeIntelAutoIndexing.indexerMap` in the **Site configuration**. For example,
-
-```json
-"codeIntelAutoIndexing.indexerMap": {
- "go": "my.company/lsif-go:custom",
-}
-```
-
-## Firecracker Setup
-
-See [Firecracker details](/admin/executors/firecracker) to determine if firecracker fits your use case. If you are using
-Firecracker, you will need to install additional dependencies.
-
-If you are not using Firecracker, ensure the environment variable `EXECUTOR_USE_FIRECRACKER` is set to `false`.
-
-### Initial Dependencies
-
-Executors running Firecracker Isolation
-require [initial dependencies](https://docs.sourcegraph.com/admin/executors/deploy_executors_binary#dependencies) to
-be installed on the host machine.
-
-- `dmsetup`
-- `losetup`
-- `mkfs.ext4`
-- `strings`
- - If not already installed (part of `binutils`)
-
-### Install CNI
-
-In order for `ignite` to function properly, CNI Plugins must be installed. To install CNI Plugins:
-
-1. Download
- the [CNI Plugins](https://github.com/containernetworking/plugins/releases/download/v0.9.1/cni-plugins-linux-amd64-v0.9.1.tgz)
- and [CNI Isolation](https://github.com/AkihiroSuda/cni-isolation/releases/download/v0.0.4/cni-isolation-amd64.tgz)
- archives on a machine with internet access
-2. Copy the archives to the offline host machine
-3. Create the `/opt/cni/bin` directory
- ```shell
- $ mkdir -p /opt/cni/bin
- ```
-4. Extract the archives to the `/opt/cni/bin` directory
- ```shell
- $ tar -zxcf cni-plugins-linux-amd64-v0.9.1.tgz -C /opt/cni/bin
- $ tar -zxcf cni-isolation-amd64.tgz -C /opt/cni/bin
- ```
-
-### Install Ignite
-
-Executors use `ignite` to spawn Firecracker VMs to run code in isolation. To install `ignite`:
-
-1. Download [`ignite`](https://github.com/sourcegraph/ignite/releases/download/v0.10.5/ignite-amd64) on a machine with
- internet access
-2. Copy `ignite-amd64` to the offline host machine
-3. Set the binary as executable by running `chmod +x ignite-amd64`
-4. Move the binary to a location in your `$PATH` (e.g. `/usr/local/bin`)
-5. Confirm `ignite` is installed by running `ignite`
- ```shell
- $ ignite version
- Ignite version: version.Info{Major:"0", Minor:"8", GitVersion:"v0.10.0", GitCommit:"...", GitTreeState:"clean", BuildDate:"...", GoVersion:"...", Compiler:"gc", Platform:"linux/amd64"}
- Firecracker version: v0.22.4
- Runtime: containerd
- ```
-
-### Install IPTables
-
-IPTables prevent Firecracker from talking on Private IPv4 Address (
-see [Firecracker details](/admin/executors/firecracker#known-caveats)). To install IPTables, the `executor` binary has a command to
-install IPTables rules:
-
-```shell
-$ executor install iptables-rules
-```
-
-### Install Images
-
-`ignite` requires three Docker Images to be made available on the offline host machine. To install the images, the
-offline host machine needs to be able to connect to an internal Docker Registry (e.g. JFrog Artifactory) to be able to
-pull the images.
-
-#### Executor VM Image
-
-To install the `executor-vm` image (ensure the version of the image matches your deployment version), import the image using `ignite`.
-
-```shell
-$ ignite image import --runtime docker
-```
-
-If you are using a custom image instead of the Sourcegraph image, you will need to set the environment variable
-`EXECUTOR_FIRECRACKER_IMAGE` to match the image name.
-
-#### Sandbox Image
-
-To install the Firecracker sandbox image, import the image using `docker`.
-
-```shell
-$ docker pull
-```
-
-> Note: Check the [version](https://sourcegraph.com/github.com/sourcegraph/sourcegraph@main/-/blob/cmd/executor/internal/config/consts.go?L15) against the version of executors being installed.
-
-If you are using a custom image instead of the Sourcegraph image, you will need to set the environment variable
-`EXECUTOR_FIRECRACKER_SANDBOX_IMAGE` to match the image name.
-
-#### Kernel Image
-
-To install the Firecracker Kernel image, import the image (`sourcegraph/ignite-kernel:5.10.135-amd64`) using `ignite`.
-
-```shell
-$ ignite kernel import --runtime docker
-```
-
-> Note: Check the [version](https://sourcegraph.com/github.com/sourcegraph/sourcegraph@main/-/blob/cmd/executor/internal/config/consts.go?L18) against the version of executors being installed.
-
-If you are using a custom image instead of the Sourcegraph image, you will need to set the environment variable
-`EXECUTOR_FIRECRACKER_KERNEL_IMAGE` to match the image name.
-
-## Validation
-
-Once the `executor` binary is installed and dependencies are met, you can validate the installation by running:
-
-```shell
-$ executor validate
-```
diff --git a/docs/versioned/5.2/admin/executors/deploy_executors_dind.mdx b/docs/versioned/5.2/admin/executors/deploy_executors_dind.mdx
deleted file mode 100644
index e786a8023..000000000
--- a/docs/versioned/5.2/admin/executors/deploy_executors_dind.mdx
+++ /dev/null
@@ -1,43 +0,0 @@
-# Deploying Sourcegraph executors on Kubernetes (docker-in-docker)
-
-This feature is in Beta stage.
-
-[Kubernetes manifests](https://github.com/sourcegraph/deploy-sourcegraph-k8s) are provided to deploy Sourcegraph Executors on a running Kubernetes cluster. If you are deploying Sourcegraph with helm, charts are available [here](https://github.com/sourcegraph/deploy-sourcegraph-helm).
-
-## Deployment
-
-Executors on kubernetes machines require privileged access to a container runtime daemon in order to operate correctly. In order to ensure maximum capability across Kubernetes versions and container runtimes, a [Docker in Docker](https://www.docker.com/blog/docker-can-now-run-within-docker/) sidecar is deployed with each executor pod to avoid accessing the host container runtime directly.
-
-### Step-by-step Guide
-
-Ensure you have the following tools installed:
-
-- [kubectl](https://kubernetes.io/docs/tasks/tools/#kubectl)
-- [Helm](https://helm.sh/) if you're installing Sourcegraph with `helm`.
-
-#### Deployment via Kustomize
-
-Please refer to the [Sourcegraph Kustomize docs](https://docs.sourcegraph.com/admin/deploy/kubernetes/kustomize) for the latest instructions.
-
-To include Executors dind, see [configure Sourcegraph with Kustomize](/admin/deploy/kubernetes/configure) on how to specify the component.
-
-#### Deployment via Helm
-
-Please refer to the [Sourcegraph Helm docs](/admin/deploy/kubernetes/helm#quickstart) for the latest instructions.
-
-To specifically deploy Executors,
-1. Create an overrides file, `override.yaml`, with any other customizations you may require.
- 1. See [details on configurations](/admin/deploy/kubernetes/helm#configuration)
- 2. See [here](/admin/executors/executors_config) for a full list of executor environment variables
-
-2. Run the following command:
- ```bash
- helm upgrade --install --values ./override.yaml --version sg-executor sourcegraph/sourcegraph-executor-dind
- ```
-3. Confirm executors are working by checking the _Executors_ page under **Site admin > Executors > Instances** .
-
-## Note
-
-Executors deployed in kubernetes do not use [Firecracker](/admin/executors/#how-it-works), meaning they require [privileged access](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/) to the docker daemon running in a sidecar alongside the executor pod.
-
-If you have security concerns, consider deploying via [terraform](/admin/executors/deploy_executors_terraform) or [installing the binary](/admin/executors/deploy_executors_binary) directly.
diff --git a/docs/versioned/5.2/admin/executors/deploy_executors_docker.mdx b/docs/versioned/5.2/admin/executors/deploy_executors_docker.mdx
deleted file mode 100644
index 679070fb0..000000000
--- a/docs/versioned/5.2/admin/executors/deploy_executors_docker.mdx
+++ /dev/null
@@ -1,26 +0,0 @@
-# Deploying Sourcegraph executors using Docker Compose
-
-This feature is in beta and might change in the future.
-
-A [docker-compose file](https://github.com/sourcegraph/deploy-sourcegraph-docker/blob/master/docker-compose/executors/executor.docker-compose.yaml) is provided to deploy executors standlone, or alongside your existing Sourcegraph deployment.
-
-## Requirements
-
-Privileged containers are required to run executors in docker-compose. This is because executors require access to the docker daemon running on the host.
-
-## Deployment
-
-### Prerequisites
-
- - Install [Docker Compose](https://docs.docker.com/compose/) on the server
- - Minimum Docker [v20.10.0](https://docs.docker.com/engine/release-notes/#20100) and Docker Compose [v1.29.0](https://docs.docker.com/compose/release-notes/#1290)
- - Docker Swarm mode is **not** supported
- - Clone the [deploy-sourcegraph-docker](https://github.com/sourcegraph/deploy-sourcegraph-docker)
- - Edit the `deploy-sourcegraph-docker/docker-compose/executors/executor.docker-compose.yaml` and update the [environment variables](/admin/executors/executors_config)
- - Follow the instructions in the `README` for more specific deployment instructions.
-
-## Note
-
-Executors deployed via docker-compose do not use [Firecracker](/admin/executors/#how-it-works), meaning they require [privileged access](https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) to the docker daemon running on the host.
-
-If you have security concerns, consider deploying via [terraform](/admin/executors/deploy_executors_terraform) or [installing the binary](/admin/executors/deploy_executors_binary) directly.
diff --git a/docs/versioned/5.2/admin/executors/deploy_executors_kubernetes.mdx b/docs/versioned/5.2/admin/executors/deploy_executors_kubernetes.mdx
deleted file mode 100644
index 009535015..000000000
--- a/docs/versioned/5.2/admin/executors/deploy_executors_kubernetes.mdx
+++ /dev/null
@@ -1,151 +0,0 @@
-# Deploying Sourcegraph executors natively on Kubernetes
-
-This feature is in beta and is available in Sourcegraph 5.1.0 and later.
-
-[Kubernetes manifests](https://github.com/sourcegraph/deploy-sourcegraph-k8s) are provided to deploy Sourcegraph Executors on a running Kubernetes cluster. If you are deploying Sourcegraph with helm, charts are available [here](https://github.com/sourcegraph/deploy-sourcegraph-helm).
-
-## Requirements
-
-### Feature flag
-To instruct Sourcegraph to use Kubernetes-deployed executors, you will need to enable the `native-ssbc-execution` [feature flag](/admin/executors/native_execution#enable).
-
-### RBAC Roles
-
-Executors interact with the Kubernetes API to handle jobs. The following are the RBAC Roles needed to run Executors on
-Kubernetes.
-
-| API Groups | Resources | Verbs | Reason |
-| ---------- | ------------------ | ---------------------- | ----------------------------------------------------------------------------------------- |
-| `batch` | `jobs` | `create`, `delete` | Executors create Job pods to run processes. Once Jobs are completed, they are cleaned up. |
-| | `pods`, `pods/log` | `get`, `list`, `watch` | Executors need to look up and steam logs from the Job Pods. |
-
-See the [example Role YAML](https://sourcegraph.com/github.com/sourcegraph/sourcegraph@main/-/blob/cmd/executor/kubernetes/batches/executor-batches.Role.yml)
-for details.
-
-### Docker Image
-
-The Executor Docker image is available on Docker Hub
-at [`sourcegraph/executor-kubernetes`](https://hub.docker.com/r/sourcegraph/executor-kubernetes/tags).
-
-### Environment Variables
-
-The following are Environment Variables that are specific to the Kubernetes deployment method. These environment variables can be
-set on the Executor `Deployment` and will configure the `Job`s that it spawns. Executor environment variables can also be defined on a Kubernetes `ConfigMap` or `Secret` that is [mounted to the executor deployment](https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/#configure-all-key-value-pairs-in-a-configmap-as-container-environment-variables).
-
-| Name | Default Value | Description |
-| ------------------------------------------------------------ | :---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
-| `EXECUTOR_KUBERNETES_CONFIG_PATH` | N/A | The path to the Kubernetes configuration file. If not specified, the in cluster config is used. |
-| `EXECUTOR_KUBERNETES_NODE_NAME` | N/A | The name of the Kubernetes Node to create Jobs in. If not specified, the Pods are created in the first available node. |
-| `EXECUTOR_KUBERNETES_NODE_SELECTOR` | N/A | A comma separated list of values to use as a node selector for Kubernetes Jobs. e.g. `foo=bar,app=my-app` |
-| `EXECUTOR_KUBERNETES_NODE_REQUIRED_AFFINITY_MATCH_EXPRESSION` | N/A | The JSON encoded required affinity match expressions for Kubernetes Jobs. e.g. `[{"key": "foo", "operator": "In", "values": ["bar"]}]` |
-| `EXECUTOR_KUBERNETES_NODE_REQUIRED_AFFINITY_MATCH_FIELDS` | N/A | The JSON encoded required affinity match fields for Kubernetes Jobs. e.g. `[{"key": "foo", "operator": "In", "values": ["bar"]}]` |
-| `EXECUTOR_KUBERNETES_POD_AFFINITY` | N/A | The JSON encoded pod affinity for Kubernetes Jobs. e.g. `[{"labelSelector": {"matchExpressions": [{"key": "foo", "operator": "In", "values": ["bar"]}]}, "topologyKey": "kubernetes.io/hostname"}]` |
-| `EXECUTOR_KUBERNETES_POD_ANTI_AFFINITY` | N/A | The JSON encoded pod anti-affinity for Kubernetes Jobs. e.g. `[{"labelSelector": {"matchExpressions": [{"key": "foo", "operator": "In", "values": ["bar"]}]}, "topologyKey": "kubernetes.io/hostname"}]` |
-| `EXECUTOR_KUBERNETES_NODE_TOLERATIONS` | N/A | The JSON encoded tolerations for Kubernetes Jobs. e.g. `[{"key": "foo", "operator": "Equal", "value": "bar", "effect": "NoSchedule"}]` |
-| `EXECUTOR_KUBERNETES_NAMESPACE` | `default` | The Kubernetes namespace in which the executor service will spawn executor jobs (K8s Jobs) in. |
-| `EXECUTOR_KUBERNETES_PERSISTENCE_VOLUME_NAME` | `sg-executor-pvc` | The name of the Executor Persistence Volume. Must match the `PersistentVolumeClaim` configured for the instance. |
-| `EXECUTOR_KUBERNETES_RESOURCE_LIMIT_CPU` | N/A | The maximum CPU resource for Kubernetes Jobs. |
-| `EXECUTOR_KUBERNETES_RESOURCE_LIMIT_MEMORY` | `12Gi` | The maximum memory resource for Kubernetes Jobs. |
-| `EXECUTOR_KUBERNETES_RESOURCE_REQUEST_CPU` | N/A | The minimum CPU resource for Kubernetes Jobs. |
-| `EXECUTOR_KUBERNETES_RESOURCE_REQUEST_MEMORY` | `12Gi` | The minimum memory resource for Kubernetes Jobs. |
-| `KUBERNETES_JOB_DEADLINE` | `1200` | The number of seconds after which a Kubernetes job will be terminated. |
-| `KUBERNETES_RUN_AS_USER` | N/A | The user ID to run Kubernetes jobs as. |
-| `KUBERNETES_RUN_AS_GROUP` | N/A | The group ID to run Kubernetes jobs as. |
-| `KUBERNETES_FS_GROUP` | `1000` | The group ID to run all containers in the Kubernetes jobs as. |
-| `KUBERNETES_KEEP_JOBS` | `false` | If true, Kubernetes jobs will not be deleted after they complete. Useful for debugging. |
-| `KUBERNETES_JOB_ANNOTATIONS` | N/A | The JSON encoded annotations to add to the Kubernetes Jobs. e.g. `{"foo": "bar", "faz": "baz"}` |
-| `KUBERNETES_JOB_POD_ANNOTATIONS` | N/A | The JSON encoded annotations to add to the Kubernetes Job Pods. e.g. `{"foo": "bar", "faz": "baz"}` |
-| `KUBERNETES_IMAGE_PULL_SECRETS` | N/A | The names of Kubernetes image pull secrets to use for pulling images. e.g. my-secret,my-other-secret |
-
-Note: `EXECUTOR_KUBERNETES_NAMESPACE` should be set to either "default" or the specific namespace where your Executor is deployed.
-
-Note: `executor.frontendUrl` must be set in the Site configuration for Executors to work correctly.
-
-See other possible executor configuration environment variables [here](/admin/executors/executors_config).
-
-### Job Scheduling
-
-> Note: Kubernetes has a max of 110 pods per node. If you run into this limit, you can lower the number of Job Pods running on a node by setting the environment variable `EXECUTOR_MAXIMUM_NUM_JOBS`.
-
-Executors deployed on Kubernetes require Jobs to be scheduled on the same Node as the Executor. This is to ensure that
-Jobs are able to access the same Persistence Volume as the Executor.
-
-To ensure that Jobs are scheduled on the same Node as the Executor, the following environment variables can be set,
-
-- `EXECUTOR_KUBERNETES_NODE_NAME`
-- `EXECUTOR_KUBERNETES_NODE_SELECTOR`
-- `EXECUTOR_KUBERNETES_NODE_REQUIRED_AFFINITY_MATCH_EXPRESSIONS`
-- `EXECUTOR_KUBERNETES_NODE_REQUIRED_AFFINITY_MATCH_FIELDS`
-
-#### Node Name
-
-Using the [Downward API](https://kubernetes.io/docs/concepts/workloads/pods/downward-api/#downwardapi-fieldRef), the
-property `spec.nodeName` can be used to set the `EXECUTOR_KUBERNETES_NODE_NAME` environment variable.
-
-```yaml
- - name: EXECUTOR_KUBERNETES_NODE_NAME
- valueFrom:
- fieldRef:
- fieldPath: spec.nodeName
-```
-
-This ensures that the Job is scheduled on the same Node as the Executor.
-
-However, if the node does not have enough resources to run the Job, the Job will not be scheduled.
-
-### Firewall Rules
-
-The following are Firewall rules that are _highly recommended_ when running Executors on Kubernetes in a Cloud
-Environment.
-
-- Disable access to internal resources.
-- Disable access to `169.254.169.254` (AWS / GCP Instance Metadata Service).
-
-### Batch Changes
-
-To run [Batch Changes](/batch_changes/) on
-Kubernetes, [Native Server-Side Batch Changes](/admin/executors/native_execution) must be enabled.
-
-### Example Configuration YAML
-
-See
-the [local development YAMLs](https://sourcegraph.com/github.com/sourcegraph/sourcegraph@main/-/blob/cmd/executor/kubernetes)
-for an example of how to configure the Executor in Kubernetes.
-
-## Deployment
-
-Executors on Kubernetes require specific RBAC rules to be configured in order to operate correctly.
-See [RBAC Roles](#rbac-roles) for more information.
-
-### Step-by-step Guide
-
-Ensure you have the following tools installed:
-
-- [kubectl](https://kubernetes.io/docs/tasks/tools/#kubectl)
-- [Helm](https://helm.sh/) if you're installing Sourcegraph with `helm`.
-
-#### Deployment via Kustomize
-
-Please refer to the [Sourcegraph Kustomize docs](https://docs.sourcegraph.com/admin/deploy/kubernetes/kustomize) for the latest instructions.
-
-To include Native Kubernetes Executors, see [configure Sourcegraph with Kustomize](https://docs.sourcegraph.com/admin/deploy/kubernetes/configure) on how to specify the component (`components/executors/k8s`).
-
-#### Deployment via Helm
-
-Please refer to the [Sourcegraph Helm docs](https://docs.sourcegraph.com/admin/deploy/kubernetes/helm#quickstart) for the latest instructions.
-
-To specifically deploy Executors,
-1. Create an overrides file, `override.yaml`, with any other customizations you may require.
- 1. See [details on configurations](https://docs.sourcegraph.com/admin/deploy/kubernetes/helm#configuration).
-2. Run the following command:
- ```bash
- helm upgrade --install --values ./override.yaml --version sg-executor sourcegraph/sourcegraph-executor-k8s
- ```
-3. Confirm executors are working by checking the _Executors_ page under **Site admin > Executors > Instances** .
-
-## Note
-
-Executors deployed on Kubernetes do not use [Firecracker](/admin/executors/#how-it-works).
-
-If you have security concerns, consider deploying via [terraform](/admin/executors/deploy_executors_terraform)
-or [installing the binary](/admin/executors/deploy_executors_binary) directly.
diff --git a/docs/versioned/5.2/admin/executors/deploy_executors_terraform.mdx b/docs/versioned/5.2/admin/executors/deploy_executors_terraform.mdx
deleted file mode 100644
index d0ad1faaa..000000000
--- a/docs/versioned/5.2/admin/executors/deploy_executors_terraform.mdx
+++ /dev/null
@@ -1,449 +0,0 @@
-# Deploying Sourcegraph executors using Terraform on AWS or GCP
-
-[Terraform modules](https://learn.hashicorp.com/tutorials/terraform/module-use?in=terraform/modules) are provided to
-provision machines running executors on [AWS](https://sourcegraph.com/github.com/sourcegraph/terraform-aws-executors)
-and [Google Cloud](https://sourcegraph.com/github.com/sourcegraph/terraform-google-executors).
-
-## Basic Definition
-
-The following is the minimum required definition to deploy an executor.
-
-```terraform
-module "executors" {
- source = "sourcegraph/executors/"
-
- # Find the latest version matching your Sourcegraph version here:
- # - https://github.com/sourcegraph/terraform-google-executors/tags
- # - https://github.com/sourcegraph/terraform-aws-executors/tags
- version = ""
-
- # AWS specific
- availability_zone = ""
- # Google specific
- region = ""
- zone = ""
-
- executor_sourcegraph_external_url = ""
- executor_sourcegraph_executor_proxy_password = ""
-
- # Either:
- executor_queue_name = ""
- # Or:
- executor_queue_names = "codeintel,batches"
-
- executor_instance_tag = ""
- executor_metrics_environment_label = ""
-}
-```
-
-| Variable | Description |
-|------------------------------------------------ |-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| `availability_zone` | The **AWS** availability zone to create the instance in |
-| `region` | The **Google** region to provision the executor resources in. |
-| `zone` | The **Google** zone to provision the executor resources in. |
-| `executor_sourcegraph_external_url` | The public URL of your Sourcegraph instance. This corresponds to the `externalURL` value in your Sourcegraph instance’s site configuration and must be resolvable from the provisioned executor compute resources. |
-| `executor_sourcegraph_executor_proxy_password` | The access token corresponding to the `executors.accessToken` in your Sourcegraph instance's site configuration. |
-| `executor_queue_name` | The single queue from which the executor should pull jobs - [`codeintel`](/code_navigation/explanations/auto_indexing) or [`batches`](/batch_changes/explanations/server_side). Either this or `executor_queue_names` must be set. |
-| `executor_queue_names` | The multiple queues from which the executor should pull jobs - one or more of [`codeintel`](/code_navigation/explanations/auto_indexing) and [`batches`](/batch_changes/explanations/server_side). Either this or `executor_queue_name` must be set. |
-| `executor_instance_tag` | A label tag to add to all the executors; can be used for filtering out the right instances in stackdriver monitoring |
-| `executor_metrics_environment_label` | The value for environment by which to filter the custom metrics. |
-
-See the Terraform Modules for additional configurations.
-
-- [AWS](https://sourcegraph.com/github.com/sourcegraph/terraform-aws-executors/-/blob/modules/executors/variables.tf)
-- [Google](https://sourcegraph.com/github.com/sourcegraph/terraform-google-executors/-/blob/modules/executors/variables.tf)
-
-## Terraform Version
-
-Terraform modules `4.2.x` and above allow Terraform from `1.1.x` to `< 2.x` to be used.
-
-If using a Terraform module `4.1.x` or below, use [tfenv](https://sourcegraph.com/github.com/tfutils/tfenv) to install Terraform
-1.1+.
-
-```shell
-tfenv install 1.1.9
-tfenv use 1.1.9
-```
-
-## Permissions
-
-In order to provision executor resources, specific permissions must be granted.
-
-### AWS
-
-Access to get and create in the following resources.
-
-- Auto Scaling
-- CloudWatch Logs
-- EBS (EC2)
-- EC2 (Elastic Compute Cloud)
-- IAM (Identity & Access Management)
-- VPC (Virtual Private Cloud)
-
-### Google
-
-Ensure the [IAM API](https://console.cloud.google.com/apis/api/iam.googleapis.com/overview) is enabled.
-
-- appengine.applications.get
-- clientauthconfig.brands.*
-- clientauthconfig.clients.*
-- cloudasset.assets.searchAllResources
-- cloudnotifications.activities.list
-- cloudtrace.insights.get
-- cloudtrace.insights.list
-- cloudtrace.stats.get
-- cloudtrace.tasks.*
-- cloudtrace.traces.list
-- compute.addresses.*
-- compute.autoscalers.*
-- compute.disks.*
-- compute.firewalls.*
-- compute.globalOperations.get
-- compute.instanceGroupManagers.*
-- compute.instanceGroups.create
-- compute.instances.*
-- compute.instanceTemplates.*
-- compute.networks.*
-- compute.regionOperations.get
-- compute.subnetworks.*
-- compute.zoneOperations.get
-- compute.zones.get
-- container.clusters.list
-- iam.roles.*
-- iam.serviceAccountKeys.*
-- logging.logEntries.list
-- logging.privateLogEntries.list
-- monitoring.timeSeries.list
-- oauthconfig.testusers.update
-- oauthconfig.verification.update
-- orgpolicy.policy.get
-- resourcemanager.projects.*
-- secretmanager.locations.list
-- secretmanager.secrets.*
-- secretmanager.versions.*
-
-## Supported Regions
-
-### AWS
-
-- `us-east-1`
-- `us-east-2`
-- `us-west-1`
-- `us-west-2`
-- `eu-west-1`
-- `eu-west-2`
-- `eu-west-3`
-- `eu-north-1`
-- `eu-south-1`
-- `eu-central-1`
-- `ap-northeast-1`
-- `ap-northeast-2`
-- `ap-southeast-1`
-- `ap-southeast-2`
-- `ap-southeast-3`
-- `ap-east-1`
-- `ap-south-1`
-- `sa-east-1`
-- `me-south-1`
-- `af-south-1`
-- `ca-central-1`
-
-### Google
-
-All regions are supported.
-
-## Examples
-
-### Single Executor
-
-The following examples provision a single executor to pull from the `codeintel` queue.
-
-- [AWS example](https://sourcegraph.com/github.com/sourcegraph/terraform-aws-executors/-/tree/examples/single-executor)
-- [Google example](https://sourcegraph.com/github.com/sourcegraph/terraform-google-executors/-/tree/examples/single-executor)
-
-### Multiple Executors
-
-The following examples provision two executors, one to pull from the `codeintel` queue and the other for the `batches`
-queue.
-
-- [AWS example](https://sourcegraph.com/github.com/sourcegraph/terraform-aws-executors/-/tree/examples/multiple-executors)
-- [Google example](https://sourcegraph.com/github.com/sourcegraph/terraform-google-executors/-/tree/examples/multiple-executors)
-
-### Step-by-step Guide
-
-The following is a step-by-step guide on provisioning a single `codeintel` executor on GCP.
-
-#### Provision
-
-1. [Install Terraform](#terraform-version).
-2. Install the [`gcloud CLI`](https://cloud.google.com/sdk/docs/install)
-3. Run `gcloud auth application-default login`
-4. Set up your Sourcegraph instance's Site configuration for executors
- 1. Click on your profile picture in the top right corner
- 2. Select **Site admin**
- 3. Example the **Configuration** section
- 4. Select **Site configuration**
- 5. Set the following,
- - `"externalURL": ""`
- - A URL that is accessible from the GCP VM (e.g. a public URL such as `https://sourcegraph.example.com`)
- - `"executors.accessToken": ""`
- - Can be generated by running `cat /dev/random | base64 | head -c 20`
- - The secret will be as displayed `REDACTED` once it's saved.
- - `"codeIntelAutoIndexing.enabled": true`
- - *This is only for `codeintel` executors.*
-5. Download
- the [example files](https://sourcegraph.com/github.com/sourcegraph/terraform-google-executors/-/blob/examples/single-executor)
-6. Change the following in `providers.tf`
- - `project` to the GCP project to provision the executor in
- - `region` to the GCP region to provision the executor in
- - `zone` to the GCP zone to provision the executor in
-7. Change the following in `main.tf`
- - `executor_sourcegraph_external_url` to the URL configured in your instance's **Site configuration**
- - `executor_sourcegraph_executor_proxy_password` to the access token configured in your instance's **Site
- configuration**
-8. Run `terraform init` to download the Sourcegraph executor modules.
-9. Run `terraform plan` to preview the changes that will occur to your GCP infrastructure.
-10. Run `terraform apply` and enter "yes" after reviewing the proposed changes to create the executor VM
- - Ensure `terraform apply` exited with code 0 and did not print any errors
-11. Go back to the site admin page, expand **Executors**, click **Instances**, and check to see if your executor shows
- up in the list with a green dot 🟢
-
-#### Validation
-
-The following can be done to troubleshoot or double-check that the executor has been properly provisioned.
-
-Ensure the executor is listed in the Compute Engine. Either go to **Compute Engine** in the GCP Console for your project
-or run the following command.
-
-```shell
-$ gcloud compute instances list
-NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS
-sourcegraph-executor-h0rv us-central1-c n1-standard-4 10.0.1.16 RUNNING
-sourcegraph-executors-docker-registry-mirror us-central1-c n1-standard-2 10.0.1.2 RUNNING
-```
-
-You can ssh into to the instance to ensure the service is running. You can open an ssh connection either via the GCP
-Console or by running the following command.
-
-```shell
-gcloud compute ssh sourcegraph-executor-h0rv
-```
-
-Then run the following command to check if the service is running.
-
-```shell
-you@sourcegraph-executor-h0rv:~$ systemctl status executor
-🟢 executor.service - User code executor
- Loaded: loaded (/etc/systemd/system/executor.service; enabled; vendor preset: enabled)
- Active: active (running) since Thu 2021-11-18 02:28:48 UTC; 19s ago
-```
-
-To check the logs, you can either query the **Log Explorer** in the GCP Console or by running the following command
-while connected to the instance.
-
-```shell
-you@sourcegraph-executor-h0rv:~$ journalctl -u executor | less
-Nov 18 02:31:01 sourcegraph-executor-h0rv executor[2465]: t=2021-11-18T02:31:01+0000 lvl=dbug msg="TRACE internal" host=... path=/.executors/queue/codeintel/dequeue code=204 duration=92.131237ms
-Nov 18 02:31:01 sourcegraph-executor-h0rv executor[2465]: t=2021-11-18T02:31:01+0000 lvl=dbug msg="TRACE internal" host=... path=/.executors/queue/codeintel/canceled code=200 duration=90.630467ms
-Nov 18 02:31:02 sourcegraph-executor-h0rv executor[2465]: t=2021-11-18T02:31:02+0000 lvl=dbug msg="TRACE internal" host=... path=/.executors/queue/codeintel/dequeue code=204 duration=91.269106ms
-Nov 18 02:31:02 sourcegraph-executor-h0rv executor[2465]: t=2021-11-18T02:31:02+0000 lvl=dbug msg="TRACE internal" host=... path=/.executors/queue/codeintel/canceled code=200 duration=161.469685ms
-```
-
-Ensure the `EXECUTOR_FRONTEND_URL` and `EXECUTOR_FRONTEND_PASSWORD` in `/etc/systemd/system/executor.env` are correct
-
-```
-cat /etc/systemd/system/executor.env
-```
-
-Ensure the VM can hit your `externalURL`:
-
-```shell
-you@sourcegraph-executor-h0rv:~$ curl
-Found
-```
-
-#### Configure Auto-indexing
-
-1. Go to the **Site admin** page
-2. Expand **Code graph**,
-3. Select **Configuration**
-4. Click **Create new policy**, and fill in:
- - Name: `TEST`
- - Click *add a repository pattern*
- - Repository pattern #1: set this to an existing repository on your Sourcegraph instance (
- e.g. `github.com/gorilla/mux`)
- - Type: `HEAD`
- - Retention: Disabled
- - Auto-indexing: Enabled
-5. Expand **Code graph**
-6. Select **Auto-indexing**, and check to see if an indexing job has appeared. If nothing is there:
- - Try clicking **Enqueue**
- - Try setting a higher update frequency: `PRECISE_CODE_INTEL_AUTO_INDEXING_TASK_INTERVAL=10s`
- - Try setting a lower delay: `PRECISE_CODE_INTEL_AUTO_INDEXING_REPOSITORY_PROCESS_DELAY=10s`
-7. Once you have a completed indexing job, click **Uploads** and check to see that an index has been uploaded.
-8. Once the index has been uploaded, you should see the **`PRECISE`** badge in the hover popover! 🎉
-
-## Auto-scaling
-
-> NOTE: Auto scaling is currently not supported
-> when [downloading and running executor binaries yourself](/admin/executors/deploy_executors_binary),
-> and on managed instances when using self-hosted executors, since it requires deployment adjustments.
-
-Auto-scaling of executor instances can help to increase concurrency of jobs, without paying for unused resources. With auto-scaling, you can scale down to 0 instances when no workload exist and scale up as far as you like and your cloud provider can support. Auto-scaling needs to be configured separately.
-
-Auto-scaling makes use of the auto-scaling capabilities of the respective cloud provider (**AutoScalingGroups** on AWS and **Instance Groups** on GCP). Sourcegraph's `worker` service publishes a scaling metric (that is, the number of jobs in queue) to the cloud providers. Then, based on that reported value, the auto-scalers add and remove compute resources to match the required amount of compute. The autoscaler will attempt to hold 1 instance running per each [`executor_jobs_per_instance_scaling`](https://sourcegraph.com/search?q=context:global+repo:%5Egithub.com/sourcegraph/terraform-.*-executors%24+variable+%22executor_jobs_per_instance_scaling%22&patternType=literal) items in queue.
-
-For example, if `executor_jobs_per_instance_scaling` is set to `20` and the queue size is currently `400`, then `20`instances would be determined as required to handle the load. You might want to tweak this number based on the [machine type](https://sourcegraph.com/search?q=context:global+repo:%5Egithub.com/sourcegraph/terraform-.*-executors%24+variable+%22machine_type%22+-f:docker-mirror&patternType=literal), [concurrency per machine](https://sourcegraph.com/search?q=context:global+repo:%5Egithub.com/sourcegraph/terraform-.*-executors%24+variable+%22maximum_num_jobs%22&patternType=literal) and desired processing speed.
-
-With the Terraform variables [`executor_min_replicas`](https://sourcegraph.com/search?q=context:global+repo:%5Egithub.com/sourcegraph/terraform-.*-executors%24+variable+%22executor_min_replicas%22&patternType=literal) and [`executor_max_replicas`](https://sourcegraph.com/search?q=context:global+repo:%5Egithub.com/sourcegraph/terraform-.*-executors%24+variable+%22executor_max_replicas%22&patternType=literal) in the Terraform modules linked to above, you can configure the minimum and maximum number of compute machines to be run at a given time.
-
-For auto-scaling to work, two things must be true:
-
-1. `executor_min_replicas` must be `>= 0` and `executor_max_replicas` must be `> executor_min_replicas`.
-2. The Sourcegraph instance (its `worker` service, specifically) needs to publish scaling metrics to the used cloud
- provider.
-
-For the latter to work, the Sourcegraph instance needs to be configured with the correct credentials that allow it to access the cloud provider.
-
-The `credentials` submodule in both the [AWS](https://sourcegraph.com/github.com/sourcegraph/terraform-aws-executors/-/tree/modules/credentials) and [Google](https://sourcegraph.com/github.com/sourcegraph/terraform-google-executors/-/tree/modules/credentials) executor modules exists for that purpose. When used, the `credentials` module sets up the credentials on the cloud provider and returns them in the Terraform outputs.
-
-Here's an example of how one would configure auto-scaling.
-
-```terraform
-module "executors" {
- source = "sourcegraph/executors/"
- version = ""
-
- # Basic configuration...
-
- # Auto-scaling
- executor_min_replicas = 0 # Spin down when not in use
- executor_max_replicas = 30
- executor_jobs_per_instance_scaling = 20
-}
-
-module "my-credentials" {
- source = "sourcegraph/executors///modules/credentials"
- version = ""
-
- # AWS
- availability_zone = "" # Removed in 4.2
- # Google
- zone = "" # Removed in 4.1
-
- resource_prefix = ""
-}
-
-# AWS
-output "metric_writer_access_key_id" {
- value = module.my-credentials.metric_writer_access_key_id
-}
-
-output "metric_writer_secret_key" {
- value = module.my-credentials.metric_writer_secret_key
- sensitive = true
-}
-
-# Google
-output "metric_writer_credentials_file" {
- value = module.my-credentials.metric_writer_credentials_file
- sensitive = true
-}
-```
-
-After running `terraform apply`, the outputs are retrieved by running the following commands.
-
-```shell
-# AWS
-$ terraform output metric_writer_access_key_id
-$ terraform output metric_writer_secret_key
-
-# Google
-$ terraform output metric_writer_credentials_file
-```
-
-These outputs are used to configure the Sourcegraph instance (see below).
-
-### AWS
-
-The AWS EC2 auto-scaling groups configured by the Sourcegraph Terraform module respond to changes in metric values written to **CloudWatch**. The target Sourcegraph instance is expected to continuously write these values.
-
-To write the scaling metric to **CloudWatch**, the `worker` service must have defined the following environment variables.
-
-| Environment Variable | Description |
-| --------------------------------------- | -------------------------------------------------------- |
-| `EXECUTOR_METRIC_ENVIRONMENT_LABEL` | Same value as `executor_metrics_environment_label` |
-| `EXECUTOR_METRIC_AWS_NAMESPACE` | Must be set to `sourcegraph-executor` |
-| `EXECUTOR_METRIC_AWS_REGION` | The target AWS region |
-| `EXECUTOR_METRIC_AWS_ACCESS_KEY_ID` | The value of the output of `metric_writer_access_key_id` |
-| `EXECUTOR_METRIC_AWS_SECRET_ACCESS_KEY` | The value of the output of `metric_writer_secret_key` |
-
-### Google
-
-The Google Compute Engine auto-scaling groups configured by the Sourcegraph Terraform module respond to changes in metric values written to Cloud Monitoring. The target Sourcegraph instance is expected to continuously write these values.
-
-To write the scaling metric to **Cloud Monitoring**, the `worker` service must have defined the following environment variables.
-
-| Environment Variable | Description |
-| ----------------------------------- | -------------------------------------------------- |
-| `EXECUTOR_METRIC_ENVIRONMENT_LABEL` | Same value as `executor_metrics_environment_label` |
-| `EXECUTOR_METRIC_GCP_PROJECT_ID` | The GCP Project ID |
-
-Then either one of the following environment variables must be set.
-
-| Environment Variable | Description |
-| ------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- |
-| `EXECUTOR_METRIC_GOOGLE_APPLICATION_CREDENTIALS_FILE_CONTENT` | The **base64-decoded** output of `metric_writer_credentials_file` |
-| `EXECUTOR_METRIC_GOOGLE_APPLICATION_CREDENTIALS_FILE` | The path to the file containing the **base64-decoded** output of `metric_writer_credentials_file` |
-
-### Testing auto scaling
-
-Once the environment variables have been set and the worker service has been restarted, you should be able to find the scaling metrics in your cloud providers dashboards.
-
-To test if the metric is correctly reported into the Cloud provider:
-
-- On AWS, this can be found in the **CloudWatch** metrics section. Under **All metrics**, select the namespace `sourcegraph-executor` and then the metric `environment`, `queueName`. Make sure there are entries returned.
-- On Google Cloud, this can be found in the **Metrics explorer**. Select **Resource type: Global** and then **Metric: `custom/executors/queue/size`**. You should see values reported here. `0` is also an indicator that it works correct.
-
-Next, you can test whether the number of executors rises and shrinks as load spikes occur. Keep in mind that auto-scaling is not a real-time operation on most cloud providers and usually takes a short moment and can have some delays between the metric going down and the desired machine count adjusting.
-
-## Upgrading executors
-
-Upgrading executors is relatively uninvolved. Simply follow the instructions below.
-Also, check the [changelog](https://github.com/sourcegraph/sourcegraph/blob/main/CHANGELOG) for any Executors related breaking changes or new features or flags that you might want to configure. See [Executors maintenance](/admin/executors/deploy_executors#Maintaining-and-upgrading-executors) for version compatability.
-
-### **Step 1:** Update the source version of the terraform modules
-
-> NOTE: Keep in mind that only one minor version bumps are guaranteed to be disruption-free.
-
-```diff
-module "executors" {
- source = "sourcegraph/executors/"
-
- # Find the latest version matching your Sourcegraph version here:
- # - https://github.com/sourcegraph/terraform-google-executors/tags
- # - https://github.com/sourcegraph/terraform-aws-executors/tags
-- version = "4.0.0"
-+ version = "4.1.0"
-
- # AWS specific
- availability_zone = ""
- # Google specific
- region = ""
- zone = ""
-
- executor_sourcegraph_external_url = ""
- executor_sourcegraph_executor_proxy_password = ""
- executor_queue_name = ""
- executor_instance_tag = ""
- executor_metrics_environment_label = ""
-}
-```
-
-### **Step 2:** Reapply the terraform configuration
-
-Simply reapply the terraform configuration and executors will be ready to go again.
-
-```bash
-terraform apply
-```
diff --git a/docs/versioned/5.2/admin/executors/executor_secrets.mdx b/docs/versioned/5.2/admin/executors/executor_secrets.mdx
deleted file mode 100644
index 34700eed4..000000000
--- a/docs/versioned/5.2/admin/executors/executor_secrets.mdx
+++ /dev/null
@@ -1,60 +0,0 @@
-# Executor secrets
-
-Executor secrets can be used to define additional values to be used in Sourcegraph executors.
-
-Secret values are currently only available in server-side batch changes. Use [`step.env`](/batch_changes/references/batch_spec_yaml_reference#steps-env) to reference configured secrets in executions.
-
-## How secrets work
-
-Executor secrets are defined per-feature. If you want to define a secret for server-side batch changes, create a secret for that namespace (examples of namespaces are "Code Graph" and "Batch Changes"). Secrets are [encrypted](/admin/config/encryption) if encryption is on, and always redacted in log outputs.
-
-There are two types of secrets:
-
-- **Global secrets**
-
- These secrets are defined by an admin in the site-admin interface and will be usable by every user on the Sourcegraph instance.
-
-- **Namespaced secrets**
-
- These secrets are set either in org or user settings and are only usable by the user or org members in their respective namespaces. If a namespaced secret has the same name as a global secret, the namespaced secret is preferred.
-
-Examples:
-
-- Global secret `GITHUB_TOKEN`
-
- Can be used by every server-side batch change
-
-- User 1 secret `GITHUB_TOKEN`
-
- Can be used by batch changes created by user 1 in their own namespace, overwrites the global secret
-
-- Org 1 secret `GITHUB_TOKEN`
-
- Can be used by batch changes created by any org member of org 1 in the org namespace, overwrites the global secret
-
-## Creating a new secret
-
-To create a global secret, go to **Site-admin** > **Executors/Secrets** and click **Add secret**.
-To create a user secret, go to your user profile from the navbar > **Settings** > **Executor secrets** and click **Add secret**.
-To create an org secret, go to the org profile from the navbar > **Executor secrets** and click **Add secret**.
-
-Then, fill in a name for the secret. This will be the name of the environment variable it will be accessible as.
-Next, fill in the secret value and hit **Add secret**.
-
-
-
-## Rotating a secret
-
-To rotate a secret or to update the secret value, go to **Executor secrets** (see [Creating a new secret](#creating-a-new-secret)). Next to the secret you want to update or rotate click on **Update**. Fill in the new value and hit **Update secret**.
-
-> Note: When updating secrets server-side batch changes execution caches that reference the secret will be invalidated.
-
-
-
-## Removing a secret
-
-To remove a secret, go to **Executor secrets** (see [Creating a new secret](#creating-a-new-secret)). Next to the secret you want to delete click on **Remove**.
-
-> Note: When removing secrets server-side batch changes execution caches that reference the secret will be invalidated.
-
-
diff --git a/docs/versioned/5.2/admin/executors/executors_config.mdx b/docs/versioned/5.2/admin/executors/executors_config.mdx
deleted file mode 100644
index 4be5492e1..000000000
--- a/docs/versioned/5.2/admin/executors/executors_config.mdx
+++ /dev/null
@@ -1,33 +0,0 @@
-# Executor configuration
-
-The following is a list of all of the configuration options for the executor service. The process for configuring your executor instance will vary depending on the executor deployment method selected, but are generally defined as environment variables either in the executor Docker container or directly on the host machine, depending on whether the service is running in Docker or as a native Linux binary.
-
-| Configuration Key | Description | Example value |
-| ---------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------ |
-| `EXECUTOR_FRONTEND_URL` | The external URL of the Sourcegraph instance. **required** | `http://sourcegraph.example.com` |
-| `EXECUTOR_FRONTEND_PASSWORD` | The shared secret configured in the Sourcegraph instance site config under `executors.accessToken`. **required** | `our-shared-secret` |
-| `EXECUTOR_QUEUE_NAME` | The name of a single queue to pull jobs from. Possible values: `batches` and `codeintel`. **required: either this or `EXECUTOR_QUEUE_NAMES`** | `batches` |
-| `EXECUTOR_QUEUE_NAMES` | The names of multiple queues to pull jobs from, comma-separated. Possible values: `batches` and `codeintel`. **required: either this or `EXECUTOR_QUEUE_NAME`** | `batches,codeintel` |
-| `EXECUTOR_USE_FIRECRACKER` | Whether to isolate jobs in virtual machines. Requires ignite and firecracker. Linux hosts only. Kubernetes is not supported. (default value: "true" when OS is Linux and not on Kubernetes) | `true` |
-| `EXECUTOR_MAXIMUM_NUM_JOBS` | Number of virtual machines or containers that can be running at once. (default value: "1") | `1` |
-| `EXECUTOR_MAXIMUM_RUNTIME_PER_JOB` | The maximum wall time that can be spent on a single job. (default value: "30m") | `30m` |
-| `EXECUTOR_JOB_MEMORY` | How much memory to allocate to each virtual machine or container. A value of zero sets no resource bound (in Docker, but not VMs). (default value: "12G") | `12G` |
-| `EXECUTOR_JOB_NUM_CPUS` | How many CPUs to allocate to each virtual machine or container. A value of zero sets no resource bound (in Docker, but not VMs). (default value: "4") | `4` |
-| `EXECUTOR_DOCKER_REGISTRY_MIRROR_URL` | The address of a docker registry mirror to use in firecracker VMs. | `http://10.0.0.2:5000` |
-| `EXECUTOR_FIRECRACKER_DISK_SPACE` | How much disk space to allocate to each virtual machine. (default value: "20G") | `20G` |
-| `EXECUTOR_FIRECRACKER_BANDWIDTH_EGRESS` | How much bandwidth to allow for egress packets to the VM in bytes/s. (default value: "524288000") | `524288000` |
-| `EXECUTOR_FIRECRACKER_BANDWIDTH_INGRESS` | How much bandwidth to allow for ingress packets to the VM in bytes/s. (default value: "524288000") | `524288000` |
-| `EXECUTOR_KEEP_WORKSPACES` | Whether to skip deletion of workspaces after a job completes (or fails). Note that when Firecracker is enabled that the workspace is initially copied into the VM, so modifications will not be observed. (default value: "false") | `true` |
-| `EXECUTOR_MAX_ACTIVE_TIME` | The maximum time that can be spent by the worker dequeueing records to be handled. (default value: "0") | `100m` |
-| `EXECUTOR_NUM_TOTAL_JOBS` | The maximum number of jobs that will be dequeued by the worker. (default value: "0") | `100` |
-| `EXECUTOR_DOCKER_HOST_MOUNT_PATH` | The target workspace as it resides on the Docker host (used to enable Docker-in-Docker). | `/workspaces` |
-| `EXECUTOR_QUEUE_POLL_INTERVAL` | Interval between dequeue requests. (default value: "1s") | `1s` |
-| `EXECUTOR_CLEANUP_TASK_INTERVAL` | The frequency with which to run periodic cleanup tasks. (default value: "1m") | `1m` |
-| `EXECUTOR_VM_PREFIX` | A name prefix for virtual machines controlled by this instance. (default value: "executor") | `executor` |
-| `EXECUTOR_VM_STARTUP_SCRIPT_PATH` | A path to a file on the host that is loaded into a fresh virtual machine and executed on startup. | `/vm-startup.sh` |
-| `NODE_EXPORTER_URL` | The URL of the node_exporter instance, without the /metrics path. | `http://127.0.0.1:9000` |
-| `EXECUTOR_FIRECRACKER_IMAGE` | The base image to use for virtual machines. | `sourcegraph/executor-vm:insiders` |
-| `EXECUTOR_FIRECRACKER_KERNEL_IMAGE` | The base image containing the kernel binary to use for virtual machines. | `sourcegraph/ignite-kernel:5.10.135-amd64` |
-| `EXECUTOR_FIRECRACKER_SANDBOX_IMAGE` | The OCI image for the ignite VM sandbox. | `sourcegraph/ignite:v0.10.5` |
-| `DOCKER_REGISTRY_NODE_EXPORTER_URL` | The URL of the Docker Registry instance's node_exporter, without the /metrics path. | `http://localhost:9000` |
-| `SRC_LOG_LEVEL` | upper log level to restrict log output to (dbug, info, warn, error, crit) (default value: "warn") | `warn` |
diff --git a/docs/versioned/5.2/admin/executors/executors_troubleshooting.mdx b/docs/versioned/5.2/admin/executors/executors_troubleshooting.mdx
deleted file mode 100644
index ff96f7b0e..000000000
--- a/docs/versioned/5.2/admin/executors/executors_troubleshooting.mdx
+++ /dev/null
@@ -1,244 +0,0 @@
-# Troubleshooting Executors
-This page compiles a list of common troubleshooting steps found during development and administration of executors.
-
-## Checking for issues with an executor instance
-To debug problems you might face with an executor instance, you can apply the following steps.
-
-First, prepare the instance:
-1. `ssh` into the host VM (see [Connecting to cloud provider executor instances](#connecting-to-cloud-provider-executor-instances))
-1. `sudo su` to become the `root` user
-1. `systemctl stop executor` to stop the `executor` service
-1. `export $(cat /etc/systemd/system/executor.env | xargs)` to load the executor environment into your shell
-
-### Validating the executor configuration
-You can now run `executor validate`, which will inform you about any configuration issues. Fix any reported issues before proceeding.
-
-### Creating a debug Firecracker VM
-The next step is to create a temporary Firecracker VM for debugging purposes.
-
-> NOTE: if the host VM is provisioned with the [Sourcegraph terraform modules](/admin/executors/deploy_executors_terraform), the VMs may be configured to stop automatically. Refer to [Disabling the auto-deletion of Executor VMs](#disabling-the-auto-deletion-of-executor-vms) for information to prevent this.
-
-Run one of the following commands `executor test-vm` to generate a test firecracker VM:
-```shell
-# Test if a firecracker VM can be started
-executor test-vm
-
-# Test if a firecracker VM can be started and if a repository can be cloned into the VM's workspace
-executor test-vm [--repo=github.com/sourcegraph/sourcegraph --revision=main]
-```
-
-The command will output a line like:
-```
-Success! Connect to the VM using
-$ ignite attach executor-test-vm-0160f53f-e765-4481-a81e-aa3c704d07bd
-```
-Execute the generated `ignite attach ` command to gain a shell to the Firecracker VM.
-
-## Disabling the auto-deletion of Executor VMs
-> NOTE: These instructions are for users using the VMs deployed via the [Terraform Modules](/admin/executors/deploy_executors_terraform)
-
-The Executor host VMs are configured to automatically tear themselves down once all jobs in the queue are completed. While this is desired behaviour under regular circumstances, it complicates debugging issues in the executor configuration or connections. To prevent the VMs from automatically stopping:
-1. `ssh` into the VM
-1. `sudo su` to become the `root` user
-1. Remove (or rename) the `/shutdown_executor.sh` file
-
-The VM should now persist after all jobs are satisfied.
-
-## Recreating a Firecracker VM
-If a server-side batch change fails unexpectedly, it's possible to recreate the generated Firecracker VM from the batch change execution.
-
-> NOTE: if the host VM is provisioned with the [Sourcegraph terraform modules](/admin/executors/deploy_executors_terraform), the VMs may be configured to stop automatically. Refer to [Disabling the auto-deletion of Executor VMs](#disabling-the-auto-deletion-of-executor-vms) for information to prevent this.
-
-1. Navigate to the failed execution page of the Batch Change
-1. Select a failed Workspace on the left and click the `Diagnostics` link on the right pane
-1. In the modal, expand the `Setup` step by clicking the text or the expansion arrow on the right
-1. Copy the command from the final step of `Setup` starting with `ignite run`
-
-1. `ssh` into the host VM
-1. `sudo su` to become the `root` user
-1. `systemctl stop executor` to stop the `executor` service
-1. `export $(cat /etc/systemd/system/executor.env | xargs)` to load the executor environment into your shell
-1. Paste in the command copied from the batch change. You may need to remove the `--copy-files` and `--volumes` directives as those volumes and files may not exist on the VM any longer. Surround the `--kernel-args` arguments in quotes as well
-1. Execute the command and wait for the VM to start
-1. Run `ignite ps` to list all currently running VMs
-1. Run `ignite attach ` to get a shell to the running VM
-
-## List preferred Linux distros
-An ARM64 (x86_64) linux distro must be used due to the machine type of the VM. You may list available ARM64 distros with the following command, depending on your cloud provider:
-
-### GCP
-```shell
-gcloud compute images list --filter='(family~amd)'
-```
-
-### AWS
-```shell
-aws ec2 describe-instances --filters architecture=x86_64
-```
-
-## Configure the log level of executors
-The log level of executors are set using the environment variable `SRC_LOG_LEVEL`. The following values are allowed:
-* `dbug`
-* `info`
-* `warn` (default)
-* `error`
-* `crit`
-
-Update or set this value in the shell profile or environment file of the instance, then run `executor run` to restart the instance.
-
-## Problems with the Docker mirror instance
-Verify that the Docker mirror instance is functioning properly by testing the following:
-
-### Mirror is reachable from the executor instance
-Run the following command on the executor instance to determine whether it responds properly:
-```shell
-# If EXECUTOR_DOCKER_REGISTRY_MIRROR_URL is set to a custom URL, replace the base endpoint with its value
-curl http://localhost:5000/v2/_catalog
-```
-
-### Registry is mounted in the file system
-Verify that the registry is mounted under the expected path in the file system by running:
-```shell
-# This directory should always be mounted
-ls /mnt/registry
-
-# If jobs have been processed, the following path should exist
-ls /mnt/registry/docker/registry/v2/repositories/
-```
-
-## Connecting to cloud provider executor instances
-The following commands allow you to SSH into an executor instance, depending on your cloud platform of choice.
-
-### GCP
-Find the name of an executor instance with
-```shell
-# optionally provide the --project flag
-gcloud compute instances list --filter="name~executor" --format="get(name)"
-```
-
-Then, using the name of an instance, run
-```shell
-# optionally provide the --project flag
-# use an identity-aware proxy tunnel with --tunnel-through-iap
-gcloud compute ssh ${INSTANCE_NAME}
-```
-
-Alternatively, you may navigate to the compute instance in the GCP web console, where you will be able to connect with SSH in-browser.
-
-### AWS
-In order to connect to an EC2 instance using SSH, you must have [specified a key pair](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html) when the instance was launched. If you have not done so, you can connect to your instance through the web console instead.
-
-Assuming you have specified the key pair, first run
-```shell
-chmod 400 path/to/key.pem
-```
-
-Find the public DNS value of your instance either through the web console or by using `aws ec2 describe-instances`, then run
-```shell
-ssh -i "path/to/key.pem" root@${INSTANCE_PUBLIC_DNS}
-```
-
-## Misconfigured environment variables
-This section lists some common mistakes with environment variables. Some of these will be exposed by running `executor validate` on the executor instance.
-
-| Env var | Common mistakes |
-|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------|
-| `EXECUTOR_FRONTEND_URL` | No protocol included (e.g. `https://` |
-| `EXECUTOR_FRONTEND_PASSWORD` | Not set in `executor.accessToken` in the site config |
-| `EXECUTOR_QUEUE_NAME` | Value doesn't match one of [`codeintel`, `batches`], or neither of `EXECUTOR_QUEUE_NAME` and `EXECUTOR_QUEUE_NAMES` is set |
-| `EXECUTOR_QUEUE_NAMES` | Value doesn't match one of [`codeintel`, `batches`] |
-| `EXECUTOR_MAXIMUM_RUNTIME_PER_JOB` `EXECUTOR_MAX_ACTIVE_TIME` `EXECUTOR_QUEUE_POLL_INTERVAL` `EXECUTOR_CLEANUP_TASK_INTERVAL` | Value format can't be parsed by `time.ParseDuration` |
-| `EXECUTOR_JOB_MEMORY` `EXECUTOR_JOB_NUM_CPUS` | Value format not recognized by virtual machine or Docker |
-| `EXECUTOR_FIRECRACKER_DISK_SPACE` | Value format not recognized by virtual machine |
-| `EXECUTOR_DOCKER_REGISTRY_MIRROR_URL` | Wrong IP or port specified |
-| `EXECUTOR_DOCKER_HOST_MOUNT_PATH` | Workspace does not exist at provided mount path |
-| `EXECUTOR_VM_STARTUP_SCRIPT_PATH` | Script does not exist at provided file path |
-| `EXECUTOR_FIRECRACKER_IMAGE` `EXECUTOR_FIRECRACKER_KERNEL_IMAGE` `EXECUTOR_FIRECRACKER_SANDBOX_IMAGE` | Image does not exist for provided repository, name, or tag |
-| `NODE_EXPORTER_URL` `DOCKER_REGISTRY_NODE_EXPORTER_URL` | `/metrics` path is included or wrong IP or port specified |
-| `SRC_LOG_LEVEL` | not set to one of [`dbug`, `info`, `warn`, `error`, `crit`] |
-
-## Verify Firecracker support
-The VM instance must [support KVM](/admin/executors/deploy_executors#firecracker-requirements). In effect, this means the instance must meet certain requirements depending on the Cloud provider in use.
-
-### GCP
-Nested virtualization must be enabled on the machine.
-1. SSH into the executor instance (see [Connecting to cloud provider executor instances](#connecting-to-cloud-provider-executor-instances))
-1. Run the following command. If it outputs anything other than `0`, nested virtualization is enabled:
- ```shell
- grep -cw vmx /proc/cpuinfo
- ```
-
-### AWS
-Verify that the machine type in use is of type `.metal` (e.g. `M5.metal`).
-
-## Why use `iptables`
-`iptables` provides network isolation, security, and regulated access for Firecracker VMs. It implements NAT of private IP addresses for each VM, and allows forwarding only specific ports to VMs. It also blocks all other traffic, and prevents IP spoofing.
-
-### Allowed traffic
-| Description | Purpose | Relevant rules |
-|------------------------------------------------------|--------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| DNS traffic | DNS resolution | `iptables -A CNI-ADMIN -p udp --dport 53 -j ACCEPT` |
-| Host to guest, established connections guest to host | SSH access | `iptables -A INPUT -d 10.61.0.0/16 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT` |
-| From guest to gateway | Outbound internet access | `iptables -A CNI-ADMIN -s 10.61.0.1/32 -d 10.61.0.0/16 -j ACCEPT` `iptables -A CNI-ADMIN -d 10.61.0.0/16 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT` |
-
-### Blocked traffic
-| Description | Purpose | Relevant rules |
-|---------------------|----------------------------------------------------------------------|---------------------------------------------------------------|
-| Guest to host | Block outbound traffic (e.g. other executors or the Docker registry) | `iptables -A INPUT -s 10.61.0.0/16 -j DROP` |
-| Guest to guest | Block outbound traffic to other Firecracker VMs | `iptables -A INPUT -s 10.61.0.0/16 -d 10.61.0.0/16 -j DROP` |
-| Guest to link-local | Block Cloud provider resources such as instance metadata | `iptables -A INPUT -s 10.61.0.0/16 -d 169.254.0.0/16 -j DROP` |
-
-## Kubernetes Job Scheduling
-
-There are a few environment variables available that can be used to determine which node an Executor Job Pod will be
-scheduled in. The Job Pods need to be scheduled in the same node as the Executor Pod (in order to mount the
-Persistence Volume Claim).
-
-The following environment variables can be used to determine where the Job Pods will be scheduled.
-
-| Name | Default Value | Description |
-|--------------------------------------------------------------|:--------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| EXECUTOR_KUBERNETES_NODE_NAME | N/A | The name of the Kubernetes Node to create Jobs in. If not specified, the Pods are created in the first available node. |
-| EXECUTOR_KUBERNETES_NODE_SELECTOR | N/A | A comma separated list of values to use as a node selector for Kubernetes Jobs. e.g. `foo=bar,app=my-app` |
-| EXECUTOR_KUBERNETES_NODE_REQUIRED_AFFINITY_MATCH_EXPRESSIONS | N/A | The JSON encoded required affinity match expressions for Kubernetes Jobs. e.g. `[{"key": "foo", "operator": "In", "values": ["bar"]}]` |
-| EXECUTOR_KUBERNETES_NODE_REQUIRED_AFFINITY_MATCH_FIELDS | N/A | The JSON encoded required affinity match fields for Kubernetes Jobs. e.g. `[{"key": "foo", "operator": "In", "values": ["bar"]}]` |
-| EXECUTOR_KUBERNETES_POD_AFFINITY | N/A | The JSON encoded pod affinity for Kubernetes Jobs. e.g. `[{"labelSelector": {"matchExpressions": [{"key": "foo", "operator": "In", "values": ["bar"]}]}, "topologyKey": "kubernetes.io/hostname"}]` |
-| EXECUTOR_KUBERNETES_POD_ANTI_AFFINITY | N/A | The JSON encoded pod anti-affinity for Kubernetes Jobs. e.g. `[{"labelSelector": {"matchExpressions": [{"key": "foo", "operator": "In", "values": ["bar"]}]}, "topologyKey": "kubernetes.io/hostname"}]` |
-
-### Scheduling Errors
-
-If you encounter the following errors,
-
-```text
-deleted by scheduler: pod could not be scheduled
-```
-
-or
-
-```text
-unexpected end of watch
-```
-
-Add/update the environment variable `SRC_LOG_LEVEL` to `dbug` to start receiving debug logs. The specific debug logs
-that may help troubleshoot the errors is `Watching pod`
-
-The `Watching pod` debug logs contain `conditions` that may describe _why_ a Job Pod is not being scheduled correctly.
-For example,
-
-```json
-{
- "conditions": {
- "condition[0]": {
- "type": "PodScheduled",
- "status": "False",
- "reason": "Unschedulable",
- "message": "0/1 nodes are available: 1 node(s) didn't match pod affinity rules. preemption: 0/1 nodes are available: 1 Preemption is not helpful for scheduling."
- }
- }
-}
-```
-
-Tells us that the Pod cannot be scheduled because the pod affinity rules (`EXECUTOR_KUBERNETES_POD_AFFINITY`) we
-configured do not match any nodes.
-
-In this case, the `EXECUTOR_KUBERNETES_POD_AFFINITY` needs to be modified to correctly target the node.
diff --git a/docs/versioned/5.2/admin/executors/firecracker.mdx b/docs/versioned/5.2/admin/executors/firecracker.mdx
deleted file mode 100644
index ac540bfad..000000000
--- a/docs/versioned/5.2/admin/executors/firecracker.mdx
+++ /dev/null
@@ -1,44 +0,0 @@
-# Firecracker
-
-[Executors](/admin/executors/), by design, are services that run arbitrary code supplied by a user. The executor jobs produced by precise code intelligence [auto-indexing](/code_navigation/explanations/auto_indexing) and [server-side batch changes](/batch_changes/explanations/server_side) are built to invoke _templated_ execution plans, where some parts of execution may invoke code configured by a Sourcegraph administrator or user. Generating a precise index requires invoking an indexer for that language. Batch changes are configured to run arbitrary tooling over the contents of a repository.
-
-Because Sourcegraph has access to your code and credentials to external tools, we've designed executors to be able to run separately from the Sourcegraph instance (on a raw compute node) with the minimum API surface area and user code exposed to the job required to meet its objective. This effectively reduces the blast radius of a misconfiguration or insecure configuration.
-
-Jobs handled by the executor are defined as a series of Docker (or Docker-like) image invocations sharing the same filesystem workspace initialized with the contents of the repository being indexed or modified. When the executor process is running on a raw compute node (specifically, not using the Kubernetes runner in-cluster), the executor can create a [Firecracker "MicroVM"](https://firecracker-microvm.github.io/) for every job and run the containers in a _completely isolated_ manner. The Docker (or Docker-like) daemon running in a MicroVM is isolated from the host, hence each job is also isolated from one another.
-
-See [this architecture diagram](/admin/executors/#firecracker) detailing Firecracker isolation.
-
-## When to use
-
-Using Firecracker is our **most secure** isolation method, but it is not a **necessary** isolation method. Most users will be fine running containers on the executor host, or deploying bundled executors via Kubernetes jobs. Firecracker isolation was created when our design constrains included multi-tenant environments, and is likely overkill for any on-premise Sourcegraph instance administrated by a single company.
-
-For companies with very high security consciousness, Firecracker isolation is still an option. See the [How to use](/admin/executors/firecracker#how-to-use) for installation instructions and deployment caveats.
-
-> Note: Firecracker relies on some specific kernel extensions to run, which are only available on some classes of compute on Cloud providers such as AWS and GCP.
-
-## How to use
-
-To use Firecracker, the host machine has to support KVM. When deploying on an AWS, that means the compute node must run on a [metal instance (`.metal`)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html). When deploying on GCP, that means the compute node must have [nested virtualization enabled](https://cloud.google.com/compute/docs/instances/nested-virtualization/enabling).
-
-See [deploying Executors binary](/admin/executors/deploy_executors_binary) for additional information on configuring Linux Machines.
-
-### AWS Bare Metal
-
-AWS Bare Metal provides an application with direct access to the processor and memory of the underlying server. This
-allows the application to use the host hardware and kernel directly, no virtualization layer is present.
-
-Using bare metal is expensive to run on. Ideally, Executors on bare metal should be used when there are a lot of Jobs to
-run - this will offset the cost of running a bare metal instance. To get the best performance to cost ratio, it is
-recommended to fine tune the number of CPUs, the Disk Space allocated, and the memory for each Firecracker VM.
-
-Executor can be fined tuned with the following environment variables,
-
-| Environment Variable | Description |
-|-----------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------|
-| `EXECUTOR_FIRECRACKER_DISK_SPACE` | How much disk space to allocate to each virtual machine. (default value: "20G") |
-| `EXECUTOR_JOB_NUM_CPUS` | How many CPUs to allocate to each virtual machine or container. A value of zero sets no resource bound (in Docker, but not VMs). (default value: "4") |
-| `EXECUTOR_JOB_MEMORY` | How much memory to allocate to each virtual machine or container. A value of zero sets no resource bound (in Docker, but not VMs). (default value: "12G") |
-
-## Known caveats
-
-We [configure iptables](https://sourcegraph.com/github.com/sourcegraph/sourcegraph/-/blob/cmd/executor/internal/run/install.go?L229-255) to prevent Firecracker-isolated processes from talking on [Private IPv4 Addresses](https://en.wikipedia.org/wiki/Private_network#Private_IPv4_addresses) (providing network-level isolation). They can talk to DNS and Sourcegraph only, which prevents users from talking to a 10.x.x.x, 172.x.x.x, or 192.168.x.x range IP.
diff --git a/docs/versioned/5.2/admin/executors/index.mdx b/docs/versioned/5.2/admin/executors/index.mdx
deleted file mode 100644
index 6ed8355a8..000000000
--- a/docs/versioned/5.2/admin/executors/index.mdx
+++ /dev/null
@@ -1,177 +0,0 @@
-# Executors
-
-Executors are Sourcegraph's solution for running untrusted code in a secure and controllable way. Executors provide a sandbox that can run resource-intensive or untrusted tasks on behalf of the Sourcegraph instance, such as:
-
-- [Automatically indexing a repository for precise code navigation](/code_navigation/explanations/auto_indexing)
-- [Running batch changes](/batch_changes/explanations/server_side)
-
-## Installation
-
-To deploy executors for your Sourcegraph instance, follow our [executor deployment guide](executors/deploy_executors).
-
-## Why use executors?
-
-Running untrusted code is a core requirement of features such as precise code navigation [auto-indexing](/code_navigation/explanations/auto_indexing), and [running batch changes server-side](/batch_changes/explanations/server_side).
-
-Auto-indexing jobs, in particular, require the invocation of arbitrary and untrusted code to support the resolution of project dependencies. Invocation of post-install hooks, use of insecure [package management tools](https://github.com/golang/go/issues/29230), and package manager proxy attacks can create opportunities in which an adversary can gain unlimited use of compute or exfiltrate data. The latter outcome is particularly dangerous for on-premise installations of Sourcegraph, which is the chosen option for companies wanting to maintain strict privacy of their code property.
-
-Instead of performing this work within the Sourcegraph instance, where code is available on disk and unprotected internal services are available over the local network, we move untrusted compute into a sandboxed environment, the _executor_, that has access only to the clone of a single repository on disk (its _workspace_) and to the public internet.
-
-## Sandboxing Model
-
-Executors can be deployed with [Firecracker](https://sourcegraph.com/github.com/firecracker-microvm/firecracker) isolation in accordance with our [sandboxing model](/admin/executors/#how-it-works) to isolate jobs from each other and the host.
-This requires executors to be run on machines capable of running Linux KVM extensions. On the most popular cloud providers, this either means running executors on bare-metal machines (AWS) or machines capable of nested virtualization (GCP).
-
-Optionally, executors can be run without using KVM-based isolation, which is less secure but might be easier to run on common machines.
-
-## Deciding which executor deployment method to use
-
-Deciding how to deploy the executor depends on your use case. The following flowchart can help you decide which
-deployment option is best for your environment.
-
-
-
-## How it works
-
-Executor instances are capable of being deployed in a variety of ways. Each runtime varies in _how_ jobs are executed.
-
-### Locally with src-cli
-
-
-
-
-1. User runs the `src` (e.g. `src batch`) command from the command line.
-2. `src` calls the Sourcegraph API to clone a repository.
- 1. The repositories are written to a directory.
-3. A Docker Container is created for each "step."
- 1. The directory containing the repository is mounted to the container.
- 2. "Steps" are ran in sequential order.
-4. The container run a defined command against the repository.
-5. Logs from the container are sent back to `src`.
-6. At the end of processing all repositories, the result is sent to a Sourcegraph API.
- 1. e.g. Batch Changes sends a `git diff` to a Sourcegraph API (and invokes other APIs).
-
-### Binary
-
-
-
-
-
-1. The executor binary is installed to a machine.
- 1. Additional executables (e.g. Docker, `src`) are installed as well
-2. The executor instances pulls for available Jobs from a Sourcegraph API
-3. A user initiates a process that creates executor Jobs.
-4. The executor instance "dequeues" a Job.
-5. Executor calls the Sourcegraph API to clone a repository.
- 1. The repositories are written to a directory.
-6. A Docker Container is created for each "step."
- 1. If the Job is `batches` (non-native execution), `src` is invoked
- 2. Docker is invoked directly for other Jobs (`codeintel` and native execution `batches`)
- 3. The directory containing the repository is mounted to the container.
- 4. "Steps" are ran in sequential order.
-7. The container run a defined command against the repository.
-8. Logs from the container are sent back to the executor.
-9. Logs are streamed from the executor to a Sourcegraph API
-10. The executor calls a Sourcegraph API to that "complete" the Job.
-
-### Firecracker
-
-> NOTE: [What the heck is firecracker, anyway](/admin/executors/firecracker)??
-
-
-
-
-
-1. The executor binary is installed to a machine.
- 1. Additional executables (e.g. Docker, `src`) are installed as well
-2. The executor instances pulls for available Jobs from a Sourcegraph API
-3. A user initiates a process that creates executor Jobs.
-4. The executor instance "dequeues" a Job.
-5. Executor calls the Sourcegraph API to clone a repository.
- 1. The repositories are written to a directory.
-6. `ignite` starts up a Docker container that spawns a single Firecracker VM within the Docker container.
- 1. The directory containing the repository is mounted to the VM.
-7. Docker Container is created in the Firecracker VM for each "step."
- 1. If the Job is `batches` (non-native execution), `src` is invoked
- 2. Docker is invoked directly for other Jobs (`codeintel` and native execution `batches`)
- 3. "Steps" are ran in sequential order.
-8. Within each Firecracker VM a single Docker container is created
-9. The container run a defined command against the repository.
-10. Logs from the container are sent back to the executor.
-11. Logs are streamed from the executor to a Sourcegraph API
-12. The executor calls a Sourcegraph API to that "complete" the Job.
-
-### Docker
-
-
-
-
-
-1. The executor image is started as a Docker container on a machine
-2. The executor pulls for available Jobs from a Sourcegraph API
-3. A user initiates a process that creates executor Jobs.
-4. The executor instance "dequeues" a Job.
-5. Executor calls the Sourcegraph API to clone a repository.
- 1. The repositories are written to a directory.
-6. A Docker Container is created for each "step."
- 1. If the Job is `batches` (non-native execution), `src` is invoked
- 2. Docker is invoked directly for other Jobs (`codeintel` and native execution `batches`)
- 3. The directory containing the repository is mounted to the container.
- 4. "Steps" are ran in sequential order.
-7. The container run a defined command against the repository.
-8. Logs from the container are sent back to the executor.
-9. Logs are streamed from the executor to a Sourcegraph API
-10. The executor calls a Sourcegraph API to that "complete" the Job.
-
-### Native Kubernetes
-
-> NOTE: This is an experimental feature.
-
-
-
-
-
-
-1. The executor image is started as a pod in a Kubernetes node
-2. The executor pulls for available Jobs from a Sourcegraph API
-3. A user initiates a process that creates executor Jobs.
-4. The executor instance "dequeues" a Job.
-5. Executor calls the Sourcegraph API to clone a repository.
- 1. The repositories are written to a directory.
-6. A Kubernetes Job is created for each "step."
- 1. The directory containing the repository is mounted to the container.
- 2. "Steps" are ran in sequential order.
-7. The container run a defined command against the repository.
-8. Logs from the container are sent back to the executor.
-9. Logs are streamed from the executor to a Sourcegraph API
-10. The executor calls a Sourcegraph API to that "complete" the Job.
-
-### Native execution
-
-Read more in [Native execution](/admin/executors/native_execution).
-
-### Docker-in-Docker Kubernetes
-
-> NOTE: This is an experimental feature.
-
-
-
-1. The executor image is started as a container in Kubernetes Pod
- 1. The dind image is started as a sidecar container in the same Kubernetes Pod
-2. The executor pulls for available Jobs from a Sourcegraph API
-3. A user initiates a process that creates executor Jobs.
-4. The executor instance "dequeues" a Job.
-5. Executor calls the Sourcegraph API to clone a repository.
- 1. The repositories are written to a directory.
-6. A Docker Container is created for each "step."
- 1. If the Job is `batches` (non-native execution), `src` is invoked
- 2. Docker is invoked directly for other Jobs (`codeintel` and native execution `batches`)
- 3. The directory containing the repository is mounted to the container.
- 4. "Steps" are ran in sequential order.
-7. The container run a defined command against the repository.
-8. Logs from the container are sent back to the executor.
-9. Logs are streamed from the executor to a Sourcegraph API
-10. The executor calls a Sourcegraph API to that "complete" the Job.
-
-## Troubleshooting
-Refer to the [Troubleshooting Executors](/admin/executors/executors_troubleshooting) document for common debugging operations.
diff --git a/docs/versioned/5.2/admin/executors/native_execution.mdx b/docs/versioned/5.2/admin/executors/native_execution.mdx
deleted file mode 100644
index 400d543dc..000000000
--- a/docs/versioned/5.2/admin/executors/native_execution.mdx
+++ /dev/null
@@ -1,39 +0,0 @@
-# Native Execution
-
-This feature is in beta and is available in Sourcegraph 5.1.0 and later.
-
-
-Native Execution is an image that runs Batch Changes without
-requiring [`src-cli`](https://github.com/sourcegraph/src-cli) to be installed on the Executor machine.
-
-Native Execution is required when running Batch Changes in Kubernetes. No docker-in-docker or privileged
-containers are required.
-
-This is also useful for environments where it is difficult to install `src-cli` on the Executor machine, e.g. air-gap
-environments.
-
-## Enable
-
-Native Execution is configured using a feature flag. To enable it,
-
-1. Go to **Site admin**
-2. Under **Configuration** select **Feature flags**
-3. Select **Create feature flag**
-4. Enter `native-ssbc-execution` as the **Name**
-5. Select `Boolean` as the **Type**
-6. Set the **Value** to `True`
-
-## Docker Image
-
-The Native Execution Docker image is available on Docker Hub
-at [`sourcegraph/batcheshelper`](https://hub.docker.com/r/sourcegraph/batcheshelper/tags).
-
-The default image (`sourcegraph/batcheshelper:${VERSION}`) can be overridden by updating the following in the **Site configuration**
-
-- `executors.batcheshelperImage`
-- `executors.batcheshelperImageTag`
-
-## Requirements
-
-The Docker Images that execute the actual Batch Change step require `tee` to be available on the image. Without `tee`,
-the output of the step cannot be captured properly for template variable rendering.
diff --git a/docs/versioned/5.2/admin/external_service/bitbucket_server.mdx b/docs/versioned/5.2/admin/external_service/bitbucket_server.mdx
deleted file mode 100644
index 12eb8c948..000000000
--- a/docs/versioned/5.2/admin/external_service/bitbucket_server.mdx
+++ /dev/null
@@ -1,301 +0,0 @@
-# Bitbucket Server / Bitbucket Data Center
-
-Site admins can sync Git repositories hosted on [Bitbucket Server](https://www.atlassian.com/software/bitbucket/server) or [Bitbucket Data Center](https://www.atlassian.com/enterprise/data-center/bitbucket) with Sourcegraph so that users can search and navigate their repositories.
-
-To connect Bitbucket Server / Bitbucket Data Center to Sourcegraph:
-
-1. Go to **Site admin > Manage code hosts > Add repositories**
-1. Select **Bitbucket Server / Bitbucket Data Center**.
-1. Configure the connection to Bitbucket Server / Bitbucket Data Center using the action buttons above the text field, and additional fields can be added using Cmd/Ctrl+Space for auto-completion. See the [configuration documentation below](#configuration).
-1. Press **Add repositories**.
-
-Also consider installing the [Sourcegraph Bitbucket Server plugin](/integration/bitbucket_server#sourcegraph-bitbucket-server-plugin) which enables native code navigation for every Bitbucket user when browsing code and reviewing pull requests, allows for faster permission syncing between Sourcegraph and Bitbucket Server / Bitbucket Data Center and adds support for webhooks to Bitbucket Server / Bitbucket Data Center.
-
-## Access token permissions
-
-Sourcegraph requires a Bitbucket Server / Bitbucket Data Center personal access token with **read** permissions to sync repositories.
-
-When using [batch changes](/batch_changes/) the access token needs **write** permissions on the project and repository level. See "[Code host interactions in batch changes](/batch_changes/explanations/permissions_in_batch_changes#code-host-interactions-in-batch-changes)" for details.
-
-You can create a personal access token at `https://[your-bitbucket-hostname]/plugins/servlet/access-tokens/add`. Also set the corresponding `username` field.
-
-For Bitbucket Server instances that don't support personal access tokens (Bitbucket Server version 5.4 and older), specify user-password credentials in the `username` and `password` fields.
-
-## Repository syncing
-
-There are four fields for configuring which repositories are mirrored:
-
-- [`repos`](/admin/external_service/bitbucket_server#configuration)
- - A list of repositories in `projectKey/repositorySlug` format. The order determines the order in which we sync repository metadata and is safe to change.
-- [`repositoryQuery`](/admin/external_service/bitbucket_server#configuration)
- - A list of strings with some pre-defined options (`none`, `all`), and/or a [Bitbucket Server / Bitbucket Data Center Repo Search Request Query Parameters](https://docs.atlassian.com/bitbucket-server/rest/6.1.2/bitbucket-rest.html#idp355).
-- [`exclude`](/admin/external_service/bitbucket_server#configuration)
- - A list of repositories to exclude which takes precedence over the `repos`, and `repositoryQuery` fields.
-- [`excludePersonalRepositories`](/admin/external_service/bitbucket_server#configuration)
- - With this enabled, Sourcegraph will exclude any personal repositories from being imported, even if it has access to them.
-
-## Webhooks
-
-Using the `webhooks` property on the external service has been deprecated.
-
-Please consult [this page](/admin/config/webhooks/incoming) in order to configure webhooks.
-
-## Repository permissions
-
-Enforcing Bitbucket Server / Bitbucket Data Center permissions can be configured via the `authorization` setting in its configuration.
-
-> NOTE: It can take some time to complete full cycle of repository permissions sync if you have a large number of users or repositories. [See sync duration time](/admin/permissions/syncing#sync-duration) for more information.
-
-### Prerequisites
-
-1. You have the exact same user accounts, **with matching usernames**, in Sourcegraph and Bitbucket Server / Bitbucket Data Center. This can be accomplished by configuring an [external authentication provider](/admin/auth/) that mirrors user accounts from a central directory like LDAP or Active Directory. The same should be done on Bitbucket Server / Bitbucket Data Center with [external user directories](https://confluence.atlassian.com/bitbucketserver/external-user-directories-776640394.html).
-1. Ensure you have set `auth.enableUsernameChanges` to **`false`** in the [site config](/admin/config/site_config) to prevent users from changing their usernames and **escalating their privileges**.
-
-
-### Setup
-
-This section walks you through the process of setting up an *Application Link between Sourcegraph and Bitbucket Server / Bitbucket Data Center* and configuring the Sourcegraph Bitbucket Server / Bitbucket Data Center configuration with `authorization` settings. It assumes the above prerequisites are met.
-
-As an admin user, go to the "Application Links" page. You can use the sidebar navigation in the admin dashboard, or go directly to [https://bitbucketserver.example.com/plugins/servlet/applinks/listApplicationLinks](https://bitbucketserver.example.com/plugins/servlet/applinks/listApplicationLinks).
-
-> NOTE: There has been some [changes to the flow in Bitbucket v7.20](https://confluence.atlassian.com/bitbucketserver/bitbucket-data-center-and-server-7-20-release-notes-1101934428.html). Depending on your Bitbucket version, the setup is slightly different. Please follow the instructions for the correct version of Bitbucket below:
-
-- [Bitbucket v7.20 and above](#bitbucket-v7-20-and-above)
-- [Bitbucket v7.19 and below](#bitbucket-v7-19-and-below)
-
-#### Bitbucket v7.20 and above
-
-{/* */}
-
-1. Click on **Create link** button.
- 
-1. Make sure **Atlassian product** is selected (This will probably look confusing, but it is the only way to setup legacy OAuth app that Sourcegraph supports).
-Write Sourcegraph's external URL in the **Application URL** field and click **Continue**. Click **Continue** on the next screen again, even if Bitbucket Server / Bitbucket Data Center warns you about the given URL not responding.
- 
-1. Write `Sourcegraph` as the *Application Name* and select `Generic Application` as the *Application Type*. Leave everything else unset and click **Continue**.
- 
-1. Now click the **Edit** button in the `Sourcegraph` Application Link that you just created and select the **Incoming Authentication** panel.
- 
-1. Generate a *Consumer Key* in your terminal with `echo sourcegraph$(openssl rand -hex 16)`. Copy this command's output and paste it in the *Consumer Key* field. Write `Sourcegraph` in the *Consumer Name* field.
- 
-1. Generate an RSA key pair in your terminal with `openssl genrsa -out sourcegraph.pem 4096 && openssl rsa -in sourcegraph.pem -pubout > sourcegraph.pub`. Copy the contents of `sourcegraph.pub` and paste them in the *Public Key* field.
- 
-1. Scroll to the bottom and check the *Allow 2-Legged OAuth* checkbox, then write your admin account's username in the *Execute as* field and, lastly, check the *Allow user impersonation through 2-Legged OAuth* checkbox. Press **Save**.
- 
-1. Go to your Sourcegraph's *Manage code hosts* page (i.e. `https://sourcegraph.example.com/site-admin/external-services`) and either edit or create a new *Bitbucket Server / Bitbucket Data Center* connection. Add the following settings:
- ```json
- {
- // Other config goes here
- "authorization": {
- "identityProvider": {
- "type": "username"
- },
- "oauth": {
- "consumerKey": "",
- "signingKey": ""
- }
- }
- }
- ```
-1. Copy the *Consumer Key* you generated before to the `oauth.consumerKey` field and the output of the command `base64 sourcegraph.pem | tr -d '\n'` to the `oauth.signingKey` field. Finally, **save the configuration**. You're done!
-
-#### Bitbucket v7.19 and below
-
-1. Write Sourcegraph's external URL in the text area (e.g. `https://sourcegraph.example.com`) and click **Create new link**.
-
-1. Click **Continue** even if Bitbucket Server / Bitbucket Data Center warns you about the given URL not responding.
-
-1. Write `Sourcegraph` as the *Application Name* and select `Generic Application` as the *Application Type*. Leave everything else unset and click **Continue**.
-
-1. Now click the edit button in the `Sourcegraph` Application Link that you just created and select the `Incoming Authentication` panel.
-
-1. Generate a *Consumer Key* in your terminal with `echo sourcegraph$(openssl rand -hex 16)`. Copy this command's output and paste it in the *Consumer Key* field. Write `Sourcegraph` in the *Consumer Name* field.
-
-1. Generate an RSA key pair in your terminal with `openssl genrsa -out sourcegraph.pem 4096 && openssl rsa -in sourcegraph.pem -pubout > sourcegraph.pub`. Copy the contents of `sourcegraph.pub` and paste them in the *Public Key* field.
-
-1. Scroll to the bottom and check the *Allow 2-Legged OAuth* checkbox, then write your admin account's username in the *Execute as* field and, lastly, check the *Allow user impersonation through 2-Legged OAuth* checkbox. Press **Save**.
-
-1. Go to your Sourcegraph's *Manage code hosts* page (i.e. `https://sourcegraph.example.com/site-admin/external-services`) and either edit or create a new *Bitbucket Server / Bitbucket Data Center* connection. Add the following settings:
- ```json
- {
- // Other config goes here
- "authorization": {
- "identityProvider": {
- "type": "username"
- },
- "oauth": {
- "consumerKey": "",
- "signingKey": ""
- }
- }
- }
- ```
-1. Copy the *Consumer Key* you generated before to the `oauth.consumerKey` field and the output of the command `base64 sourcegraph.pem | tr -d '\n'` to the `oauth.signingKey` field. Finally, **save the configuration**. You're done!
-
-### Fast permission sync with Bitbucket Server plugin
-
-By installing the [Bitbucket Server plugin](/integration/bitbucket_server), you can make use of the fast permission sync feature that allows using Bitbucket Server / Bitbucket Data Center permissions on larger instances.
-
-### Fast permission syncing
-
-With the [Sourcegraph Bitbucket Server plugin](/integration/bitbucket_server#sourcegraph-bitbucket-server-plugin) you can enable fast permission syncing:
-
-1. Connect Bitbucket Server / Bitbucket Data Center to Sourcegraph (_see instructions above_).
-1. Follow the [instructions to set up repository permissions](#repository-permissions) with Bitbucket Server / Bitbucket Data Center.
-1. Install the [Sourcegraph Bitbucket Server plugin](/integration/bitbucket_server#sourcegraph-bitbucket-server-plugin) on your Bitbucket Server / Bitbucket Data Center instance.
-1. In Sourcegraph, go to **Site admin > Manage code hosts** and edit the Bitbucket Server / Bitbucket Data Center configuration.
-1. Add the `"plugin.permissions"` property:
-
-```json
-{
- // [...]
- "plugin": {
- "permissions": "enabled"
- }
-}
-```
-
-### Authentication for older Bitbucket Server / Bitbucket Data Center versions
-
-Bitbucket Server / Bitbucket Data Center versions older than v5.5 require specifying a less secure username and password combination, as those versions of Bitbucket Server / Bitbucket Data Center do not support [personal access tokens](https://confluence.atlassian.com/bitbucketserver/personal-access-tokens-939515499.html).
-
-### HTTPS cloning
-
-Sourcegraph by default clones repositories from your Bitbucket Server / Bitbucket Data Center via HTTP(S), using the access token or account credentials you provide in the configuration. The [`username`](/admin/external_service/bitbucket_server#configuration) field is always used when cloning, so it is required.
-
-## Repository labels
-
-Sourcegraph will mark repositories as archived if they have the `archived` label on Bitbucket Server / Bitbucket Data Center. You can exclude these repositories in search with `archived:no` [search syntax](/code-search/queries).
-
-## Internal rate limits
-
-See [Internal rate limits](/admin/external_service/rate_limits#internal-rate-limits).
-
-## Configuration
-
-Bitbucket Server / Bitbucket Data Center connections support the following configuration options, which are specified in the JSON editor in the site admin "Manage code hosts" area.
-
-{/* [View page on docs.sourcegraph.com](https://docs.sourcegraph.com/admin/external_service/bitbucket_server) to see rendered content.
*/}
-
-### admin/external_service/bitbucket_server.schema.json
-
-```json
-{
- // If non-null, enforces Bitbucket Server / Bitbucket Data Center repository permissions.
- "authorization": null,
-
- // TLS certificate of the Bitbucket Server / Bitbucket Data Center instance. This is only necessary if the certificate is self-signed or signed by an internal CA. To get the certificate run `openssl s_client -connect HOST:443 -showcerts < /dev/null 2> /dev/null | openssl x509 -outform PEM`. To escape the value into a JSON string, you may want to use a tool like https://json-escape-text.now.sh.
- "certificate": null,
- // Other example values:
- // - "-----BEGIN CERTIFICATE-----\n..."
-
- // A list of repositories to never mirror from this Bitbucket Server / Bitbucket Data Center instance. Takes precedence over "repos" and "repositoryQuery".
- //
- // Supports excluding by name ({"name": "projectKey/repositorySlug"}) or by ID ({"id": 42}).
- "exclude": null,
- // Other example values:
- // - [
- // {
- // "name": "myproject/myrepo"
- // },
- // {
- // "id": 42
- // }
- // ]
- // - [
- // {
- // "name": "myproject/myrepo"
- // },
- // {
- // "name": "myproject/myotherrepo"
- // },
- // {
- // "name": "~USER/theirrepo"
- // },
- // {
- // "pattern": "^topsecretproject/.*"
- // }
- // ]
-
- // Whether or not personal repositories should be excluded or not. When true, Sourcegraph will ignore personal repositories it may have access to. See https://docs.sourcegraph.com/integration/bitbucket_server#excluding-personal-repositories for more information.
- "excludePersonalRepositories": false,
-
- // The type of Git URLs to use for cloning and fetching Git repositories on this Bitbucket Server / Bitbucket Data Center instance.
- //
- // If "http", Sourcegraph will access Bitbucket Server / Bitbucket Data Center repositories using Git URLs of the form http(s)://bitbucket.example.com/scm/myproject/myrepo.git (using https: if the Bitbucket Server / Bitbucket Data Center instance uses HTTPS).
- //
- // If "ssh", Sourcegraph will access Bitbucket Server / Bitbucket Data Center repositories using Git URLs of the form ssh://git@example.bitbucket.org/myproject/myrepo.git. See the documentation for how to provide SSH private keys and known_hosts: https://docs.sourcegraph.com/admin/repo/auth#repositories-that-need-http-s-or-ssh-authentication.
- "gitURLType": "http",
- // Other example values:
- // - "ssh"
-
- // Deprecated and ignored field which will be removed entirely in the next release. BitBucket repositories can no longer be enabled or disabled explicitly.
- "initialRepositoryEnablement": false,
-
- // The password to use when authenticating to the Bitbucket Server / Bitbucket Data Center instance. Also set the corresponding "username" field.
- //
- // For Bitbucket Server / Bitbucket Data Center instances that support personal access tokens (Bitbucket Server / Bitbucket Data Center version 5.5 and newer), it is recommended to provide a token instead (in the "token" field).
- "password": null,
-
- // Configuration for Bitbucket Server / Bitbucket Data Center Sourcegraph plugin
- "plugin": null,
-
- // An array of project key strings that defines a collection of repositories related to their associated project keys
- "projectKeys": null,
-
- // Rate limit applied when making background API requests to BitbucketServer.
- "rateLimit": {
- "enabled": true,
- "requestsPerHour": 28800
- },
-
- // An array of repository "projectKey/repositorySlug" strings specifying repositories to mirror on Sourcegraph.
- "repos": null,
- // Other example values:
- // - [
- // "myproject/myrepo",
- // "myproject/myotherrepo",
- // "~USER/theirrepo"
- // ]
-
- // The pattern used to generate the corresponding Sourcegraph repository name for a Bitbucket Server / Bitbucket Data Center repository.
- //
- // - "{host}" is replaced with the Bitbucket Server / Bitbucket Data Center URL's host (such as bitbucket.example.com)
- // - "{projectKey}" is replaced with the Bitbucket repository's parent project key (such as "PRJ")
- // - "{repositorySlug}" is replaced with the Bitbucket repository's slug key (such as "my-repo").
- //
- // For example, if your Bitbucket Server / Bitbucket Data Center is https://bitbucket.example.com and your Sourcegraph is https://src.example.com, then a repositoryPathPattern of "{host}/{projectKey}/{repositorySlug}" would mean that a Bitbucket Server / Bitbucket Data Center repository at https://bitbucket.example.com/projects/PRJ/repos/my-repo is available on Sourcegraph at https://src.example.com/bitbucket.example.com/PRJ/my-repo.
- //
- // It is important that the Sourcegraph repository name generated with this pattern be unique to this code host. If different code hosts generate repository names that collide, Sourcegraph's behavior is undefined.
- "repositoryPathPattern": "{host}/{projectKey}/{repositorySlug}",
- // Other example values:
- // - "{projectKey}/{repositorySlug}"
-
- // An array of strings specifying which repositories to mirror on Sourcegraph. Each string is a URL query string with parameters that filter the list of returned repos. Examples: "?name=my-repo&projectname=PROJECT&visibility=private".
- //
- // The special string "none" can be used as the only element to disable this feature. Repositories matched by multiple query strings are only imported once. Here's the official Bitbucket Server / Bitbucket Data Center documentation about which query string parameters are valid: https://docs.atlassian.com/bitbucket-server/rest/6.1.2/bitbucket-rest.html#idp355
- "repositoryQuery": [
- "none"
- ],
- // Other example values:
- // - [
- // "?name=my-repo\u0026projectname=PROJECT\u0026visibility=private"
- // ]
-
- // A Bitbucket Server / Bitbucket Data Center personal access token with Read permissions. When using batch changes, the token needs Write permissions. Create one at https://[your-bitbucket-hostname]/plugins/servlet/access-tokens/add. Also set the corresponding "username" field.
- //
- // For Bitbucket Server / Bitbucket Data Center instances that don't support personal access tokens (Bitbucket Server / Bitbucket Data Center version 5.4 and older), specify user-password credentials in the "username" and "password" fields.
- "token": null,
-
- // URL of a Bitbucket Server / Bitbucket Data Center instance, such as https://bitbucket.example.com.
- "url": null,
- // Other example values:
- // - "https://bitbucket.example.com"
-
- // The username to use when authenticating to the Bitbucket Server / Bitbucket Data Center instance. Also set the corresponding "token" or "password" field.
- "username": null,
-
- // DEPRECATED: Switch to "plugin.webhooks"
- "webhooks": null
-}
-```
diff --git a/docs/versioned/5.2/admin/external_service/gerrit.mdx b/docs/versioned/5.2/admin/external_service/gerrit.mdx
deleted file mode 100644
index 2f29d566b..000000000
--- a/docs/versioned/5.2/admin/external_service/gerrit.mdx
+++ /dev/null
@@ -1,121 +0,0 @@
-# Gerrit
-
- This feature is in beta and might change in the future.
-
-A Gerrit instance can be connected to Sourcegraph as follows:
-
-1. [Configure Gerrit as a code host connection](#configure-gerrit-as-a-code-host-connection)
-1. (Optional) [Add Gerrit as an authentication provider](#add-gerrit-as-an-authentication-provider)
-1. (Optional) [Have users authenticate their Sourcegraph accounts using their Gerrit HTTP credentials](#have-users-authenticate-their-sourcegraph-accounts-using-their-gerrit-http-credentials)
-
-## Configure Gerrit as a code host connection
-
-1. In the **Site Admin** settings area, select **Manage code hosts** from the options on the left and select the **Add code host** option.
-
-2. On the following screen, select **Gerrit** as the code host of choice.
-
-3. Next you will have to provide a [configuration](#configuration) for the Gerrit code host connection. Here is an example configuration:
-```json
-{
- "url": "https://gerrit.example.com/", // Be sure to add a trailing slash
- "username": "",
- "password": "",
- "projects": [ // If not set, all projects on the Gerrit instance will be mirrored
- "docs",
- "kubernetes/kubernetes"
- ],
- "exclude": [ // If not set, no repositories will be excluded. Takes precedence over the `projects` option
- { "name": "docs" } // Despite "docs" being specified in "projects", this setting will override it and exclude the "docs" project
- ],
- "authorization": {} // Marks all repositories as private. Users will be required to present valid Gerrit HTTP credentials in order to view repositories
-}
-```
-4. The provided `username` and `password` must be the HTTP credentials of an admin account on Gerrit. See [the Gerrit HTTP documentation](https://gerrit-documentation.storage.googleapis.com/Documentation/2.14.2/user-upload.html#http) for details on how to generate HTTP credentials.
-5. Select **Add Repositories** to create the connection. Sourcegraph will start mirroring the specified projects.
-
-If you added the `"authorization": {}` option to the configuration, and this is the first Gerrit code host connection you have created for this Gerrit instance, you might see a warning like this:
-
-
-Simply follow the steps in the next section to configure a Gerrit authentication provider.
-
-## Add Gerrit as an authentication provider
-
-If the `"authorization": {}` option has been set on a Gerrit code host connection, a Gerrit authentication provider will be required so that authroized users are able to search for and browse the code mirrored by that code host connection.
-
-1. In the **Site Admin** settings area, select [**Site configuration**](/admin/config/site_config) from the options on the left.
-2. Add a Gerrit configuration to the list of `"auth.providers"`.
-
-3. Here is an example configuration:
-```json
-{
- "type": "gerrit",
- "url": "https://gerrit.example.com/" // This must match the URL of the code host connection. Be sure to add a trailing slash
-}
-```
-4. Save the configuration. If there was a warning at the top of the page, it should now disappear.
-
-Users should now be able to authenticate their Sourcegraph accounts using their Gerrit HTTP credentials.
-
-## Have users authenticate their Sourcegraph accounts using their Gerrit HTTP credentials
-
-After [configuring Gerrit as a code host connection](#configure-gerrit-as-code-host-connection) and [adding Gerrit as an authentication provider](#add-gerrit-as-an-authnetication-provider), users will be able to authenticate their Sourcegraph accounts using their Gerrit HTTP credentials:
-
-As a user:
-
-1. Visit your user settings page and select **Account security** from the options on the left.
-
-1. Gerrit should appear in the list of accounts you are able to connect. If it does not appear, try refreshing the page.
-1. Select the **Add** option next to Gerrit.
-1. Provide your Gerrit username and HTTP password. If you are unsure of how to generate an HTTP password, see [the Gerrit HTTP documentation](https://gerrit-documentation.storage.googleapis.com/Documentation/2.14.2/user-upload.html#http).
-1. Once your Gerrit credentials are verified, you'll be able to view your private Gerrit projects within Sourcegraph! If you cannot immediately see any projects you should have access to, try giving it some time, as it can take a while for your Gerrit permissions to reflect on Sourcegraph if there is a high volume of users on the system.
-
-## Configuration
-
-Gerrit connections support the following configuration options, which are specified in the JSON editor in the site admin "Manage code hosts" area.
-
-{/* [View page on docs.sourcegraph.com](https://docs.sourcegraph.com/admin/external_service/gerrit) to see rendered content.
*/}
-
-### admin/external_service/gerrit.schema.json
-
-```json
-{
- // If non-null, enforces Gerrit repository permissions. This requires that there is an item in the [site configuration json](https://docs.sourcegraph.com/admin/config/site_config#auth-providers) `auth.providers` field, of type "gerrit" with the same `url` field as specified in this `GerritConnection`.
- "authorization": null,
-
- // The password associated with the Gerrit username used for authentication.
- "password": null,
-
- // An array of project strings specifying which Gerrit projects to mirror on Sourcegraph. If empty, all projects will be mirrored.
- "projects": null,
- // Other example values:
- // - ["name","owner/name"]
- // - [
- // "docs",
- // "kubernetes/kubernetes",
- // "golang/go",
- // "facebook/react"
- // ]
-
- // A list of repositories to never mirror from this Gerrit instance. Takes precedence over \"projects\" configuration.
- //
- // Supports excluding by name ({"name": "owner/name"})
- "exclude": null,
- // Other example values:
- // - [
- // {
- // "name": "docs"
- // },
- // {
- // "name": "php/php-src"
- // }
- // ]
-
- // URL of a Gerrit instance, such as https://gerrit.example.com.
- "url": null,
- // Other example values:
- // - "https://gerrit.example.com"
-
- // A username for authentication withe the Gerrit code host.
- "username": null
-}
-```
diff --git a/docs/versioned/5.2/admin/external_service/github.mdx b/docs/versioned/5.2/admin/external_service/github.mdx
deleted file mode 100644
index 6888d718e..000000000
--- a/docs/versioned/5.2/admin/external_service/github.mdx
+++ /dev/null
@@ -1,558 +0,0 @@
-# GitHub
-
-Site admins can sync Git repositories hosted on [GitHub.com](https://github.com) and [GitHub Enterprise](https://enterprise.github.com) with Sourcegraph so that users can search and navigate the repositories.
-
-There are 2 ways to connect with GitHub:
-1. [Using a GitHub App (recommended)](#using-a-github-app)
-2. [Using an access token](#using-an-access-token)
-
-## Supported versions
-
-- GitHub.com
-- GitHub Enterprise v2.10 and newer
-
-## Using a GitHub App
-
-Sourcegraph 5.1+
-
-{/* */}
-
-To create a GitHub App and connect it to Sourcegraph:
-
-1. Go to **Site admin > Repositories > Github Apps** on Sourcegraph.
-
-
-
-2. Click **Create GitHub App**.
-3. Enter a name for your app (it must be unique across your GitHub instance) and the URL of your GitHub instance.
-
- You may optionally specify an organization to register the app with. If no organization is specified, the app will be owned by the account of the user who creates it on GitHub. This is the default.
-
- You may also optionally set the App visibility to public. A GitHub App must be made public if you wish to install it on multiple organizations or user accounts. The default is private.
-
-
-
-4. When you click **Create GitHub App**, you will be redirected to GitHub to confirm the details of the App to be created.
-
-
-
-5. To complete the setup on GitHub, you will be asked to review the App permissions and select which repositories the App can access before installing it in a namespace. The default is **All repositories**. Any repositories that you choose to omit will not be able to be synced by Sourcegraph. You can change this later.
-
-
-
-6. Click **Install**. Once complete, you will be redirected back to Sourcegraph, where you will now be able to view and manage the details of your new GitHub App from within Sourcegraph.
-
-
-
-
-
-7. Sourcegraph needs to map Sourcegraph users to GitHub users. Click **Reveal secret** to get the JSON configuration for the auth provider and copy/paste it into the `"auth.providers"` section of your site configuration.
-8. Click **Add connection** under your new installation to create a code host connection to GitHub with this App installation. By default, it will sync all repositories the App can access within the namespace where it was installed. Repository permission enforcement will also be turned on by default.
-
- You can now [select repositories to sync](#selecting-repositories-to-sync) or see more configuration options in the [configuration section](#configuration).
-
-9. (Optional) If you want to sync repositories from other organization or user namespaces and your GitHub App is set to public visibility, you can create additional installations with **Add installation**.
-
-> NOTE: If you are using [Batch Changes](/batch_changes/), you can create a GitHub App to perform [commit signing](/admin/config/batch_changes#commit-signing-for-github) (Beta).
-
-### Multiple installations
-
-The initial GitHub App setup will only install the App on the organization or user account that you registered it with. If your code is spread across multiple organizations or user accounts, you will need to create additional installations for each namespace that you want Sourcegraph to sync repositories from.
-
-By default, Sourcegraph creates a private GitHub App, which only allows the App to be installed on the same organization or user account that it was created in. If you did not set the App to public visibility during creation, you will need to [change the visibility](https://docs.github.com/en/apps/maintaining-github-apps/modifying-a-github-app#changing-the-visibility-of-a-github-app) to public before you can install it in other namespaces. For security considerations, see [GitHub's documentation on private vs public apps](https://docs.github.com/en/apps/creating-github-apps/setting-up-a-github-app/making-a-github-app-public-or-private).
-
-Once public, App can be installed in additional namespaces either from Sourcegraph or from GitHub.
-
-#### Installing from Sourcegraph
-
-1. Go to **Site admin > Repositories > Github Apps** and click **Edit** on the App you want to install in another namespace. You'll be taken to the App details page.
-
-
-
-
-2. Click **Add installation**. You will be redirected to GitHub to pick which other organization to install the App on and finish the installation process.
-
- > NOTE: Only [organization owners](https://docs.github.com/en/organizations/managing-peoples-access-to-your-organization-with-roles/roles-in-an-organization#organization-owners) can install GitHub Apps on an organization. If you are not an owner, you will need to ask an owner to install the App for you.
-
-
-
-
-3. As before, you will be asked to review the App permissions and select which repositories the App can access before installing it in a namespace. Once you click **Install** and the setup completes, you will be redirected back to Sourcegraph, where you will now see your additional installation listed.
-
-
-
-
-4. To sync repositories from this installation, click **Add connection** under your new installation.
-
-#### Installing from GitHub
-
-1. Go to the GitHub App page. You can get here easily from Sourcegraph by clicking **View in GitHub** for the App you want to install in another namespace.
-2. Click **Configure**, or go to **App settings > Install App**, and select the organization or user account you want to install the App on.
-3. As before, you will be asked to review the App permissions and select which repositories the App can access before installing it in a namespace. Once you click **Install** and the setup completes, you will be redirected back to Sourcegraph.
-4. GitHub App installations will be automatically synced in the background. Return to **Site admin > Repositories > Github Apps** and click **Edit** on the App you added the new installation for. You'll be taken to the App details page. Once synced, you will see the new installation listed.
-
-
-
-
-5. To sync repositories from this installation, click **Add connection** under your new installation.
-
-### Uninstalling an App
-
-You can uninstall a GitHub App from a namespace or remove it altogether at any time.
-
-To remove an installation in a single namespace, click **View in GitHub** for the installation you want to remove. If you are able to administer Apps in this namespace, you will see **Uninstall "[APP NAME]"** in the "Danger zone" at the bottom of the page. Click **Uninstall** to remove the App from this namespace. Sourcegraph will periodically sync installations in the background. It may temporarily throw errors related to the missing installation until the sync completes. You can check the GitHub App details page to confirm the installation has been removed.
-
-To remove an App entirely, go to **Site admin > Repositories > Github Apps** and click **Remove** for the App you want to remove. You will be prompted to confirm you want to remove the App from Sourcegraph. Once removed from the Sourcegraph side, Sourcegraph will no longer communicate with your GitHub instance via the App unless explicitly reconnected. However, the App will still exist on GitHub unless manually deleted there, as well.
-
-### GitHub App token use
-
-Sourcegraph uses the tokens from GitHub Apps in the following ways:
-
-#### Installation access tokens
-
-Installation access tokens are short-lived, non-refreshable tokens that give Sourcegraph access to the repositories the GitHub App has been given access to. Sourcegraph uses these tokens to clone repositories and to determine which users should be able to view a repository. These tokens expire after 1 hour.
-
-#### User access tokens
-
-These are OAuth tokens that Sourcegraph receives when a user signs into Sourcegraph using the configured GitHub App. Sourcegraph uses these tokens to link the user's Sourcegraph account to their GitHub account, as well as determine which repositories a user should be able to access. These tokens are refreshable, and by default they expire after 8 hours. Sourcegraph refreshes the user tokens as required.
-
-### Custom Certificates
-
-> NOTE: Feature supported in Sourcegraph 5.1.5+
-
-
-If you are using a self-signed certificate for your GitHub Enterprise instance, configure `tls.external` under `experimentalFeatures`
-in the **Site configuration** with your certificate(s).
-
-```json
-{
- "experimentalFeatures": {
- "tls.external": {
- "certificates": [
- "-----BEGIN CERTIFICATE-----\n..."
- ]
- }
- }
-}
-```
-
-## Using an access token
-
-To connect GitHub to Sourcegraph with an access token:
-
-1. Go to **Site admin > Manage code hosts**
-2. Select **GitHub**.
-3. Configure the connection to GitHub using the action buttons above the text field, and additional fields can be added using Cmd/Ctrl+Space for auto-completion. See the [configuration documentation below](#configuration).
-4. Press **Add repositories**.
-
-In this example, the kubernetes public repository on GitHub is added by selecting **Add a single repository** and replacing `/` with `kubernetes/kubernetes`:
-
-```
-{
- "url": "https://github.com",
- "token": "",
- "orgs": [],
- "repos": [
- "kubernetes/kubernetes"
- ]
-}
-```
-
-## GitHub API access
-
-GitHub requires a `token` in order to access their API. There are different types of tokens that can be supplied. When using GitHub apps, this is handled automatically by Sourcegraph.
-
-- **[GitHub app installation access token](https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/generating-an-installation-access-token-for-a-github-app)**:An installation access token is created automatically when you install a GitHub app. Do not set this token in the code host connection configuration. This token gives Sourcegraph the same level of access to repositories as the GitHub app installation.
-- **[Personal access token](https://help.github.com/en/articles/creating-a-personal-access-token-for-the-command-line)**:This gives Sourcegraph the same level of access to repositories as the account that created the token. If you don't want to mix your personal repositories with your organizations repositories, you could add an entry to the `exclude` array, or you can use a machine user token or a fine-grained access token.
-- **[Fine-grained access token](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token#creating-a-fine-grained-personal-access-token)**:Allows scoping access tokens to specific repositories with specific permissions. Consult the [table below](#fine-grained-access-token-permissions) for the required permissions.
-- **[Machine user token](https://developer.github.com/v3/guides/managing-deploy-keys/#machine-users)**:Generates a token for a machine user that is affiliated with an organization instead of a user account.
-
-### Personal access token scopes
-
-No [token scopes](https://docs.github.com/en/developers/apps/building-oauth-apps/scopes-for-oauth-apps#available-scopes) are required if you only want to sync public repositories and don't want to use any of the following features. Otherwise, the following token scopes are required for specific features:
-
-| Feature | Required token scopes |
-| ----------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
-| [Sync private repositories](#private-repositories) | `repo` |
-| [Sync repository permissions][permissions] | `repo` |
-| [Batch changes][batch-changes] | `repo`, `read:org`, `user:email`, `read:discussion`, and `workflow` ([learn more][batch-changes-interactions]) |
-
-[permissions]: #repository-permissions
-[permissions-caching]: #teams-and-organizations-permissions-caching
-[batch-changes]: /batch_changes/
-[batch-changes-interactions]: /batch_changes/explanations/permissions_in_batch_changes#code-host-interactions-in-batch-changes
-
-
-> WARNING: In addition to the prerequisite token scopes, the account attached to the token must actually have the same level of access to the relevant resources that you are trying to grant. For example:
->
-> - If read access to repositories is required, the token must have `repo` scope *and* the token's account must have read access to the relevant repositories. This can happen by being directly granted read access to repositories, being on a team with read access to the repository, and so on.
-> - If write access to repositories is required, the token must have `repo` scope *and* the token's account must have write access to all repositories. This can happen by being added as a direct contributor, being on a team with write access to the repository, being an admin for the repository's organization, and so on.
-> - If write access to organizations is required, the token must have `write:org` scope *and* the token's account must have write access for all organizations. This can happen by being an admin in all relevant organizations.
->
-> Learn more about how the GitHub API is used and what level of access is required in the corresponding feature documentation.
-
-### Fine-grained access token permissions
-
-Fine-grained tokens can access public repositories, but can only access the private repositories of the account they are scoped to.
-
-When creating your fine-grained access token, select the following permissions depending on the purpose of the token:
-
-| Feature | Required token permissions |
-| ----------------------------------------------------- | ------------------------------------------------------ |
-| [Sync private repositories](#private-repositories) | `Repository permissions: Contents - Access: Read-only` |
-| [Sync repository permissions][permissions] | `Repository permissions: Contents - Access: Read-only` |
-| [Batch changes][batch-changes] | `Unsupported` |
-
-
-
-> WARNING: Fine-grained tokens don't support the `repositoryQuery` code host connection option or batch changes. Both of these features rely on GitHub's GraphQL API, which is [unsupported by fine-grained access tokens](https://docs.github.com/en/graphql/guides/forming-calls-with-graphql#authenticating-with-graphql).
-
-### Private repositories
-
-To clone and search private repositories, we need [a GitHub access token](#github-api-access) with the required scopes and at least read access to the relevant private repositories.
-
-For more details, see [GitHub API access](#github-api-access).
-
-## Selecting repositories to sync
-
-There are four fields for configuring which repositories are mirrored/synchronized:
-
-- [`repos`](/admin/external_service/github#repos)A list of repositories in `owner/name` format. The order determines the order in which we sync repository metadata and is safe to change.
-- [`orgs`](/admin/external_service/github#orgs)A list of organizations (every repository belonging to the organization will be cloned).
-- [`repositoryQuery`](/admin/external_service/github#repositoryQuery)A list of strings with three pre-defined options (`public`, `affiliated`, `none`, none of which are subject to result limitations), and/or a [GitHub advanced search query](https://github.com/search/advanced). Note: There is an existing limitation that requires the latter, GitHub advanced search queries, to return [less than 1000 results](#repositoryquery-returns-first-1000-results-only). See [this issue](https://github.com/sourcegraph/sourcegraph/issues/2562) for ongoing work to address this limitation.
-- [`exclude`](/admin/external_service/github#exclude)A list of repositories to exclude which takes precedence over the `repos`, `orgs`, and `repositoryQuery` fields.
-
-## Rate limits
-
-Always include a token in a configuration for a GitHub.com URL to avoid being denied service by GitHub's [unauthenticated rate limits](https://docs.github.com/en/rest/overview/resources-in-the-rest-api?apiVersion=2022-11-28#rate-limiting). If you don't want to automatically synchronize repositories from the account associated with your personal access token, you can create a token without a [`repo` scope](https://developer.github.com/apps/building-oauth-apps/scopes-for-oauth-apps/#available-scopes) for the purposes of bypassing rate limit restrictions only.
-
-When Sourcegraph hits a rate limit imposed by GitHub, Sourcegraph waits the appropriate amount of time specified by GitHub before retrying the request. This can be several minutes in extreme cases.
-
-### GitHub Enterprise Server rate limits
-
-Rate limiting may not be enabled by default. To check and verify the current rate limit settings, you may make a request to the `/rate_limit` endpoint like this:
-
-```
-$ curl -s https:///api/v3/rate_limit -H "Authorization: Bearer "
-{
- "message": "Rate limiting is not enabled.",
- "documentation_url": "https://docs.github.com/enterprise/3.3/rest/reference/rate-limit#get-rate-limit-status-for-the-authenticated-user"
-}
-```
-
-### Internal rate limits
-
-See [Internal rate limits](/admin/external_service/rate_limits#internal-rate-limits).
-
-## Repository permissions
-
-Prerequisite for configuring repository permission syncing: [Add GitHub as an authentication provider](/admin/auth/#github).
-
-Then, add or edit the GitHub connection as described above and include the `authorization` field:
-
-```json
-{
- // ...
- "authorization": {}
-}
-```
-
-This needs to be done for every github code host connection if there is more than one configured.
-
-Repo-centric permission syncing is done by calling the [list repository collaborators GitHub API endpoint](https://docs.github.com/en/rest/collaborators/collaborators#list-repository-collaborators). To call this API endpoint correctly, we need a [GitHub access token](#github-api-access) with the required scopes and read and write access to all relevant repositories.
-
-> IMPORTANT: We strongly recommend configuring both read and write access to associated repositories for permission syncing due to GitHub's token scope requirements. Without write access, there will be a conflict between [user-centric sync](/admin/permissions/syncing#troubleshooting) and repo-centric sync. In that case, [disable repo-centric permission sync](/admin/permissions/syncing#disable-repo-centric-permission-sync) (supported in Sourcegraph 5.0.4+).
-
-
-
-> IMPORTANT: Optional, but strongly recommended - [continue with configuring webhooks for permissions](/admin/config/webhooks/incoming#user-permissions).
-
-
-
-> NOTE: It can take some time to complete full cycle of repository permissions sync if you have a large number of users or repositories. [See sync duration time](/admin/permissions/syncing#sync-duration) for more information.
-
-### Internal repositories
-
-GitHub Enterprise has internal repositories in addition to the usual public and private repositories. Depending on how your organization structure is configured, you may want to make these internal repositories available to everyone on your Sourcegraph instance without relying on permission syncs. To mark all internal repositories as public, add the following field to the `authorization` field:
-
-```json
-{
- // ...
- "authorization": {
- "markInternalReposAsPublic": true
- }
-}
-```
-
-If you would like internal repositories to remain private, but you're experiencing issues where user permission syncs aren't granting access to internal repositories, you can add the following field instead:
-
-```json
-{
- // ...
- "authorization": {
- "syncInternalRepoPermissions": true
- }
-}
-```
-> NOTE: An explanation on visibility options in GitHub Enterprise. `public`- Only index public GitHub Enterprise repositories visible to all users. This excludes private and internal repos. `private` - Index both public and private GitHub Enterprise repositories. This allows accessing private repos the token has access to. `internal` - Include GitHub Enterprise internal repositories in addition to public/private repos. Internal repos are only visible to org members.
-
-### Trigger permissions sync from GitHub webhooks
-
-Follow the link to [configure webhooks for permissions for Github](/admin/config/webhooks/incoming#user-permissions)
-
-### Teams and organizations permissions caching
-
-> NOTE: This is an experimental feature.
-
-> WARNING: The following section is experimental and might not work properly anymore on new Sourcegraph versions (post 4.0+). Please prefer [configuring webhooks for permissions instead](/admin/config/webhooks/incoming#user-permissions)
-
-Github code host can leverage caching mechanisms to reduce the number of API calls used when syncing permissions. This can significantly reduce the amount of time it takes to perform a full cycle of permissions sync due to reduced instances of being rate limited by the code host, and is useful for code hosts with very large numbers of users and repositories.
-
-Sourcegraph can leverage caching of GitHub [team](https://docs.github.com/en/organizations/managing-access-to-your-organizations-repositories/managing-team-access-to-an-organization-repository) and [organization](https://docs.github.com/en/organizations/managing-access-to-your-organizations-repositories/repository-permission-levels-for-an-organization) permissions.
-
-> NOTE: You should only try this if your GitHub setup makes extensive use of GitHub teams and organizations to distribute access to repositories and your number of `users * avg_repositories` is greater than 250,000 (which roughly corresponds to the scale at which [GitHub rate limits might become an issue](/admin/permissions/syncing#sync-duration)).
-{/* */}
-
-This caching behaviour can be enabled via the `authorization.groupsCacheTTL` field:
-
-```json
-{
- "url": "https://github.example.com",
- "token": "$PERSONAL_ACCESS_TOKEN",
- "authorization": {
- "groupsCacheTTL": 72, // hours
- }
-}
-```
-
-In the corresponding [authorization provider](/admin/auth/#github) in [site configuration](/admin/config/site_config), the `allowGroupsPermissionsSync` field must be set as well for the correct auth scopes to be requested from users:
-
-```json
-{
- // ...
- "auth.providers": [
- {
- "type": "github",
- "url": "https://github.example.com",
- "allowGroupsPermissionsSync": true,
- }
- ]
-}
-```
-
-A [token that has the required scopes](#github-api-access) and both read and write access to all relevant repositories and organizations is needed to fetch repository permissions and team memberships.
-Read-only access will *not* work with cached permissions sync, but will work with careful configuration for [regular GitHub permissions sync](#repository-permissions).
-
-When enabling this feature, we currently recommend a default `groupsCacheTTL` of `72` (hours, or 3 days). A lower value can be set if your teams and organizations change frequently, though the chosen value must be at least several hours for the cache to be leveraged in the event of being rate-limited (which takes [an hour to recover from](https://docs.github.com/en/rest/overview/resources-in-the-rest-api#rate-limiting)).
-
-Cache invalidation happens automatically on certain webhook events, so it is recommended to configure webhook support when using cached permissions sync.
-Caches can also be [manually invalidated](#manually-invalidate-caches) if necessary.
-
-#### Manually invalidate caches
-
-To force a bypass of caches during a sync, you can manually queue users or repositories for sync with the `invalidateCaches` options via the Sourcegraph GraphQL API:
-
-```gql
-mutation {
- scheduleUserPermissionsSync(user: "userid", options: {invalidateCaches: true}) {
- alwaysNil
- }
-}
-```
-
-## User authentication
-
-To configure GitHub as an authentication provider (which will enable sign-in via GitHub), see the
-[authentication documentation](/admin/auth/#github).
-
-## Webhooks
-
-Using the `webhooks` property on the external service has been deprecated.
-
-Please consult [this page](/admin/config/webhooks/incoming) in order to configure webhooks.
-
-## Configuration
-
-GitHub connections support the following configuration options, which are specified in the JSON editor in the site admin "Manage code hosts" area.
-
-{/* [View page on docs.sourcegraph.com](https://docs.sourcegraph.com/admin/external_service/github) to see rendered content.
*/}
-
-### admin/external_service/github.schema.json
-
-```json
-{
- // If non-null, enforces GitHub repository permissions. This requires that there is an item in the [site configuration json](https://docs.sourcegraph.com/admin/config/site_config#auth-providers) `auth.providers` field, of type "github" with the same `url` field as specified in this `GitHubConnection`.
- "authorization": null,
-
- // TLS certificate of the GitHub Enterprise instance. This is only necessary if the certificate is self-signed or signed by an internal CA. To get the certificate run `openssl s_client -connect HOST:443 -showcerts < /dev/null 2> /dev/null | openssl x509 -outform PEM`. To escape the value into a JSON string, you may want to use a tool like https://json-escape-text.now.sh.
- "certificate": null,
- // Other example values:
- // - "-----BEGIN CERTIFICATE-----\n..."
-
- // Only used to override the cloud_default column from a config file specified by EXTSVC_CONFIG_FILE
- "cloudDefault": false,
-
- // When set to true, this external service will be chosen as our 'Global' GitHub service. Only valid on Sourcegraph.com. Only one service can have this flag set.
- "cloudGlobal": false,
-
- // A list of repositories to never mirror from this GitHub instance. Takes precedence over "orgs", "repos", and "repositoryQuery" configuration.
- //
- // Supports excluding by name ({"name": "owner/name"}) or by ID ({"id": "MDEwOlJlcG9zaXRvcnkxMTczMDM0Mg=="}).
- //
- // Note: ID is the GitHub GraphQL ID, not the GitHub database ID. eg: "curl https://api.github.com/repos/vuejs/vue | jq .node_id"
- "exclude": null,
- // Other example values:
- // - [{"forks":true}]
- // - [
- // {
- // "name": "owner/name"
- // },
- // {
- // "id": "MDEwOlJlcG9zaXRvcnkxMTczMDM0Mg=="
- // }
- // ]
- // - [
- // {
- // "name": "vuejs/vue"
- // },
- // {
- // "name": "php/php-src"
- // },
- // {
- // "pattern": "^topsecretorg/.*"
- // }
- // ]
- // - [
- // {
- // "size": "\u003e= 1GB",
- // "stars": "\u003c 100"
- // }
- // ]
-
- // If non-null, this is a GitHub App connection with some additional properties.
- "gitHubAppDetails": null,
-
- // The type of Git URLs to use for cloning and fetching Git repositories on this GitHub instance.
- //
- // If "http", Sourcegraph will access GitHub repositories using Git URLs of the form http(s)://github.com/myteam/myproject.git (using https: if the GitHub instance uses HTTPS).
- //
- // If "ssh", Sourcegraph will access GitHub repositories using Git URLs of the form git@github.com:myteam/myproject.git. See the documentation for how to provide SSH private keys and known_hosts: https://docs.sourcegraph.com/admin/repo/auth#repositories-that-need-http-s-or-ssh-authentication.
- "gitURLType": "http",
-
- // DEPRECATED: The installation ID of the GitHub App.
- "githubAppInstallationID": null,
-
- // Deprecated and ignored field which will be removed entirely in the next release. GitHub repositories can no longer be enabled or disabled explicitly. Configure repositories to be mirrored via "repos", "exclude" and "repositoryQuery" instead.
- "initialRepositoryEnablement": null,
-
- // An array of organization names identifying GitHub organizations whose repositories should be mirrored on Sourcegraph.
- "orgs": null,
- // Other example values:
- // - ["name"]
- // - [
- // "kubernetes",
- // "golang",
- // "facebook"
- // ]
-
- // Whether the code host connection is in a pending state.
- "pending": false,
-
- // Rate limit applied when making background API requests to GitHub.
- "rateLimit": {
- "enabled": true,
- "requestsPerHour": 5000
- },
-
- // An array of repository "owner/name" strings specifying which GitHub or GitHub Enterprise repositories to mirror on Sourcegraph.
- "repos": null,
- // Other example values:
- // - ["owner/name"]
- // - [
- // "kubernetes/kubernetes",
- // "golang/go",
- // "facebook/react"
- // ]
-
- // The pattern used to generate the corresponding Sourcegraph repository name for a GitHub or GitHub Enterprise repository. In the pattern, the variable "{host}" is replaced with the GitHub host (such as github.example.com), and "{nameWithOwner}" is replaced with the GitHub repository's "owner/path" (such as "myorg/myrepo").
- //
- // For example, if your GitHub Enterprise URL is https://github.example.com and your Sourcegraph URL is https://src.example.com, then a repositoryPathPattern of "{host}/{nameWithOwner}" would mean that a GitHub repository at https://github.example.com/myorg/myrepo is available on Sourcegraph at https://src.example.com/github.example.com/myorg/myrepo.
- //
- // It is important that the Sourcegraph repository name generated with this pattern be unique to this code host. If different code hosts generate repository names that collide, Sourcegraph's behavior is undefined.
- "repositoryPathPattern": "{host}/{nameWithOwner}",
-
- // An array of strings specifying which GitHub or GitHub Enterprise repositories to mirror on Sourcegraph. The valid values are:
- //
- // - `public` mirrors all public repositories for GitHub Enterprise and is the equivalent of `none` for GitHub
- //
- // - `affiliated` mirrors all repositories affiliated with the configured token's user:
- // - Private repositories with read access
- // - Public repositories owned by the user or their orgs
- // - Public repositories with write access
- //
- // - `none` mirrors no repositories (except those specified in the `repos` configuration property or added manually)
- //
- // - All other values are executed as a GitHub advanced repository search as described at https://github.com/search/advanced. Example: to sync all repositories from the "sourcegraph" organization including forks the query would be "org:sourcegraph fork:true".
- //
- // If multiple values are provided, their results are unioned.
- //
- // If you need to narrow the set of mirrored repositories further (and don't want to enumerate it with a list or query set as above), create a new bot/machine user on GitHub or GitHub Enterprise that is only affiliated with the desired repositories.
- "repositoryQuery": [
- "none"
- ],
-
- // A GitHub personal access token. Create one for GitHub.com at https://github.com/settings/tokens/new?description=Sourcegraph (for GitHub Enterprise, replace github.com with your instance's hostname). See https://docs.sourcegraph.com/admin/external_service/github#github-api-token-and-access for which scopes are required for which use cases.
- "token": null,
-
- // URL of a GitHub instance, such as https://github.com or https://github-enterprise.example.com.
- "url": null,
- // Other example values:
- // - "https://github.com"
- // - "https://github-enterprise.example.com"
-
- // An array of configurations defining existing GitHub webhooks that send updates back to Sourcegraph.
- "webhooks": null
- // Other example values:
- // - [
- // {
- // "org": "yourorgname",
- // "secret": "webhook-secret"
- // }
- // ]
-}
-```
-
-## Default branch
-
-Sourcegraph displays search results from the default branch of a repository when no `revision:` [parameter](https://docs.sourcegraph.com/code-search/queries#repository-revisions) is specified. If you'd like the search results to be displayed from another branch by default, you may [change a repo's default branch on the github repo settings page](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-branches-in-your-repository/changing-the-default-branch). If this is not an option, consider using [search contexts](/code-search/working/search_contexts) instead.
-
-## Troubleshooting
-
-### Hitting GitHub Search API rate limit with repositoryQuery
-When Sourcegraph syncs repositories configured via `repositoryQuery`, it consumes GitHub API search rate limit, which is lower than the normal rate limit. The `affiliated`, `public` and `none` special values, however, trigger normal API requests instead of search API requests.
-
-When the search rate limit quota is exhausted, an error like `failed to list GitHub repositories for search: page=..., searchString=\"...\"` can be found in logs. To work around this try reducing the frequency with which repository syncing happens by setting a higher value (in minutes) of `repoListUpdateInterval` in your Sourcegraph [site config](https://docs.sourcegraph.com/admin/config/site_config).
-
-`repositoryQuery` is the only repo syncing method that consumes GitHub search API quota, so if setting `repoListUpdateInterval` doesn't work consider switching your syncing method to use another option, like `orgs`, or using one of the special values described above.
-
-### "repositoryQuery": ["public"] does not return archived status of a repo
-
-The `repositoryQuery` option `"public"` is valuable in that it allows sourcegraph to sync all public repositories, however, it does not return whether or not a repo is archived. This can result in archived repos appearing in normal search. You can see an example of what is returned by the GitHub API for a query to "public" [here](https://docs.github.com/en/rest/reference/repos#list-public-repositories).
-
-If you would like to sync all public repositories while omitting archived repos, consider generating a GitHub token with access to only public repositories, then use `repositoryQuery` with option `affiliated` and an `exclude` argument with option `public` as seen in the example below:
-```
-{
- "url": "https://github.example.com",
- "gitURLType": "http",
- "repositoryPathPattern": "devs/{nameWithOwner}",
- "repositoryQuery": [
- "affiliated"
- ],
- "token": "TOKEN_WITH_PUBLIC_ACCESS",
- "exclude": [
- {
- "archived": true
- }
- ]
-}
-```
diff --git a/docs/versioned/5.2/admin/external_service/gitlab.mdx b/docs/versioned/5.2/admin/external_service/gitlab.mdx
deleted file mode 100644
index 7e3aab557..000000000
--- a/docs/versioned/5.2/admin/external_service/gitlab.mdx
+++ /dev/null
@@ -1,349 +0,0 @@
-# GitLab
-
-Site admins can sync Git repositories hosted on [GitLab](https://gitlab.com) (GitLab.com and GitLab CE/EE) with Sourcegraph so that users can search and navigate the repositories.
-
-To connect GitLab to Sourcegraph:
-
-1. Go to **Site admin > Manage code hosts > Add code host**
-2. Select **GitLab** (for GitLab.com) or **GitLab Self-Managed**.
-3. Set **url** to the URL of your GitLab instance, such as https://gitlab.example.com or https://gitlab.com (for GitLab.com).
-4. Create a GitLab access token using these [instructions](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html#creating-a-personal-access-token) with the `read_api` and `read_repository` scopes, and set it to be the value of the token.
-5. Use the [Repository syncing documentation below](#repository-syncing) to select and add your preferred projects/repos to the configuration.
-6. You can use the action buttons above the text field to add the fields, and additional fields can be added using `Cmd/Ctrl+Space` for auto-completion. See the [configuration documentation below](#configuration) for additional fields.
-7. Click **Add repositories**.
-
-Example config:
-```
-{
- "url": "https://gitlab.com",
- "token": "",
- "projectQuery": [
- "groups/mygroup/projects",
- "projects?membership=true&archived=no",
- "?search=",
- "?membership=true\u0026search=foo"
- ],
- "projects": [
- {
- "name": "group/name"
- },
- {
- "id": 42
- }
- ]
-}
-```
-
-## Supported versions
-
-- GitLab.com
-- GitLab CE/EE (v12.0 and newer)
-
-## Repository syncing
-
-There are three fields for configuring which projects are mirrored/synchronized:
-
-- [`projects`](/admin/external_service/gitlab#configuration): A list of projects in `{"name": "group/name"}` or `{"id": id}` format. The order determines the order in which we sync project metadata and is safe to change.
-- [`projectQuery`](/admin/external_service/gitlab#configuration): A list of strings with one pre-defined option (`none`), and/or an URL path and query that targets the [GitLab Projects API endpoint](https://docs.gitlab.com/ee/api/projects.html), returning a list of projects.
-- [`exclude`](/admin/external_service/gitlab#configuration): A list of projects to exclude which takes precedence over the `projects`, and `projectQuery` fields. It has the same format as `projects`.
-
-### Troubleshooting
-
-You can test your access token's permissions by running a cURL command against the GitLab API. This is the same API and the same project list used by Sourcegraph.
-
-Replace `$ACCESS_TOKEN` with the access token you are providing to Sourcegraph, and `$GITLAB_HOSTNAME` with your GitLab hostname:
-
-```
-curl -H 'Private-Token: $ACCESS_TOKEN' -XGET 'https://$GITLAB_HOSTNAME/api/v4/projects'
-```
-
-## Repository permissions
-
-GitLab permissions can be configured in three ways:
-
-1. Set up GitLab as an OAuth sign-on provider for Sourcegraph (recommended)
-2. Use a GitLab administrator (sudo-level) personal access token in conjunction with another SSO provider
- (recommended only if the first option is not possible)
-3. Assume username equivalency between Sourcegraph and GitLab (warning: this is generally unsafe and
- should only be used if you are using strictly `http-header` authentication).
-
-> NOTE: It can take some time to complete full cycle of repository permissions sync if you have a large number of users or repositories. [See sync duration time](/admin/permissions/syncing#sync-duration) for more information.
-
-### OAuth application
-
-Prerequisite: [Add GitLab as an authentication provider.](/admin/auth/#gitlab)
-
-Then, [add or edit a GitLab connection](#repository-syncing) and include the `authorization` field:
-
-```json
-{
- "url": "https://gitlab.com",
- "token": "$PERSONAL_ACCESS_TOKEN",
- // ...
- "authorization": {
- "identityProvider": {
- "type": "oauth"
- }
- }
-}
-```
-
-In this case, a user's OAuth token will be used to get a list of repositories that the user can access.
-[Repository-centric permissions syncing](/admin/permissions/syncing) will be disabled.
-
-### Administrator (sudo-level) access token
-
-This method requires administrator access to GitLab so that Sourcegraph can access the [admin GitLab Users API endpoint](https://docs.gitlab.com/ee/api/users.html#for-admins). For each GitLab user, this endpoint provides the user ID that comes from the authentication provider, so Sourcegraph can associate a user in its system to a user in GitLab.
-
-Prerequisite: Add the [SAML](/admin/auth/#saml) or [OpenID Connect](/admin/auth/#openid-connect)
-authentication provider you use to sign into GitLab.
-
-Then, [add or edit a GitLab connection](#repository-syncing) using an administrator (sudo-level) personal access token, and include the `authorization` field:
-
-```json
-{
- "url": "https://gitlab.com",
- "token": "$PERSONAL_ACCESS_TOKEN",
- // ...
- "authorization": {
- "identityProvider": {
- "type": "external",
- "authProviderID": "$AUTH_PROVIDER_ID",
- "authProviderType": "$AUTH_PROVIDER_TYPE",
- "gitlabProvider": "$AUTH_PROVIDER_GITLAB_ID"
- }
- }
-}
-```
-
-`$AUTH_PROVIDER_ID` and `$AUTH_PROVIDER_TYPE` identify the authentication provider to use and should
-match the fields specified in the authentication provider config
-(`auth.providers`). The authProviderID can be found in the `configID` field of the auth provider config.
-
-`$AUTH_PROVIDER_GITLAB_ID` should match the `identities.provider` returned by
-[the admin GitLab Users API endpoint](https://docs.gitlab.com/ee/api/users.html#for-admins).
-
-### Username
-
-Prerequisite: Ensure that `http-header` is the *only* authentication provider type configured for
-Sourcegraph. If this is not the case, then it will be possible for users to escalate privileges,
-because Sourcegraph usernames are mutable.
-
-[Add or edit a GitLab connection](#repository-syncing) and include the `authorization` field:
-
-```json
-{
- "url": "https://gitlab.com",
- "token": "$PERSONAL_ACCESS_TOKEN",
- // ...
- "authorization": {
- "identityProvider": {
- "type": "username"
- }
- }
-}
-```
-
-## User authentication
-
-To configure GitLab as an authentication provider (which will enable sign-in via GitLab), see the
-[authentication documentation](/admin/auth/#gitlab).
-
-## Internal repositories
-
-GitLab also has internal repositories in addition to the usual public and private repositories. Depending on how your organization structure is configured, you may want to make these internal repositories available to everyone on your Sourcegraph instance without relying on permission syncs. To mark all internal repositories as public, add the following field to the code host connection:
-
-```json
-{
- // ...
- "markInternalReposAsPublic": true
-}
-```
-
-When adding this configuration option, you may also want to configure your GitLab auth provider so that it does [not sync user permissions for internal repositories](/admin/auth/#dont-sync-user-permissions-for-internal-repositories).
-
-## Rate limits
-
-Always include a token in a configuration for a GitLab.com URL to avoid being denied service by GitLab's [unauthenticated rate limits](https://docs.gitlab.com/ee/user/gitlab_com/.html#gitlabcom-specific-rate-limits).
-
-When Sourcegraph hits a rate limit imposed by GitLab, Sourcegraph waits the appropriate amount of time specified by GitLab before retrying the request. This can be several minutes in extreme cases.
-
-### Internal rate limits
-
-See [Internal rate limits](/admin/external_service/rate_limits#internal-rate-limits).
-
-## Configuration
-
-{/* [View page on docs.sourcegraph.com](https://docs.sourcegraph.com/admin/external_service/gitlab) to see rendered content.
*/}
-
-### admin/external_service/gitlab.schema.json
-
-```json
-{
- // If non-null, enforces GitLab repository permissions. This requires that there be an item in the `auth.providers` field of type "gitlab" with the same `url` field as specified in this `GitLabConnection`.
- "authorization": null,
-
- // TLS certificate of the GitLab instance. This is only necessary if the certificate is self-signed or signed by an internal CA. To get the certificate run `openssl s_client -connect HOST:443 -showcerts < /dev/null 2> /dev/null | openssl x509 -outform PEM`. To escape the value into a JSON string, you may want to use a tool like https://json-escape-text.now.sh.
- "certificate": null,
- // Other example values:
- // - "-----BEGIN CERTIFICATE-----\n..."
-
- // Only used to override the cloud_default column from a config file specified by EXTSVC_CONFIG_FILE
- "cloudDefault": false,
-
- // When set to true, this external service will be chosen as our 'Global' GitLab service. Only valid on Sourcegraph.com. Only one service can have this flag set.
- "cloudGlobal": false,
-
- // A list of projects to never mirror from this GitLab instance. Takes precedence over "projects" and "projectQuery" configuration. Supports excluding by name ({"name": "group/name"}) or by ID ({"id": 42}).
- "exclude": null,
- // Other example values:
- // - [
- // {
- // "name": "group/name"
- // },
- // {
- // "id": 42
- // },
- // {
- // "emptyRepos": true
- // }
- // ]
- // - [
- // {
- // "name": "gitlab-org/gitlab-ee"
- // },
- // {
- // "name": "gitlab-com/www-gitlab-com"
- // }
- // ]
-
- // The type of Git URLs to use for cloning and fetching Git repositories on this GitLab instance.
- //
- // If "http", Sourcegraph will access GitLab repositories using Git URLs of the form http(s)://gitlab.example.com/myteam/myproject.git (using https: if the GitLab instance uses HTTPS).
- //
- // If "ssh", Sourcegraph will access GitLab repositories using Git URLs of the form git@example.gitlab.com:myteam/myproject.git. See the documentation for how to provide SSH private keys and known_hosts: https://docs.sourcegraph.com/admin/repo/auth#repositories-that-need-http-s-or-ssh-authentication.
- "gitURLType": "http",
-
- // Deprecated and ignored field which will be removed entirely in the next release. GitLab repositories can no longer be enabled or disabled explicitly.
- "initialRepositoryEnablement": null,
-
- // If true, internal repositories will be accessible to all users on Sourcegraph as if they were public, and user permission syncs will no longer check for public repositories. This overrides repository permissions but allows easier discovery and access to internal repositories, and may be desirable if all users on the Sourcegraph instance should have access to all internal repositories anyways. Defaults to false.
- "markInternalReposAsPublic": false,
-
- // An array of transformations will apply to the repository name. Currently, only regex replacement is supported. All transformations happen after "repositoryPathPattern" is processed.
- "nameTransformations": null,
- // Other example values:
- // - [
- // {
- // "regex": "\\.d/",
- // "replacement": "/"
- // },
- // {
- // "regex": "-git$",
- // "replacement": ""
- // }
- // ]
-
- // An array of strings specifying which GitLab projects to mirror on Sourcegraph. Each string is a URL path and query that targets a GitLab API endpoint returning a list of projects. If the string only contains a query, then "projects" is used as the path. Examples: "?membership=true&search=foo", "groups/mygroup/projects".
- //
- // The special string "none" can be used as the only element to disable this feature. Projects matched by multiple query strings are only imported once. Here are a few endpoints that return a list of projects: https://docs.gitlab.com/ee/api/projects.html#list-all-projects, https://docs.gitlab.com/ee/api/groups.html#list-a-groups-projects, https://docs.gitlab.com/ee/api/search.html#scope-projects.
- "projectQuery": [
- "none"
- ],
- // Other example values:
- // - [
- // "?membership=true\u0026search=foo",
- // "groups/mygroup/projects"
- // ]
-
- // A list of projects to mirror from this GitLab instance. Supports including by name ({"name": "group/name"}) or by ID ({"id": 42}).
- "projects": null,
- // Other example values:
- // - [
- // {
- // "name": "group/name"
- // },
- // {
- // "id": 42
- // }
- // ]
- // - [
- // {
- // "name": "gnachman/iterm2"
- // },
- // {
- // "name": "gitlab-org/gitlab-ce"
- // }
- // ]
-
- // Rate limit applied when making background API requests to GitLab.
- "rateLimit": {
- "enabled": true,
- "requestsPerHour": 36000
- },
-
- // The pattern used to generate a the corresponding Sourcegraph repository name for a GitLab project. In the pattern, the variable "{host}" is replaced with the GitLab URL's host (such as gitlab.example.com), and "{pathWithNamespace}" is replaced with the GitLab project's "namespace/path" (such as "myteam/myproject").
- //
- // For example, if your GitLab is https://gitlab.example.com and your Sourcegraph is https://src.example.com, then a repositoryPathPattern of "{host}/{pathWithNamespace}" would mean that a GitLab project at https://gitlab.example.com/myteam/myproject is available on Sourcegraph at https://src.example.com/gitlab.example.com/myteam/myproject.
- //
- // It is important that the Sourcegraph repository name generated with this pattern be unique to this code host. If different code hosts generate repository names that collide, Sourcegraph's behavior is undefined.
- "repositoryPathPattern": "{host}/{pathWithNamespace}",
-
- // A GitLab access token with "api" scope. Can be a personal access token (PAT) or an OAuth token. If you are enabling permissions with identity provider type "external", this token should also have "sudo" scope.
- "token": null,
-
- // The OAuth token expiry (Unix timestamp in seconds)
- "token.oauth.expiry": null,
-
- // The OAuth refresh token
- "token.oauth.refresh": null,
-
- // The type of the token
- "token.type": "pat",
-
- // URL of a GitLab instance, such as https://gitlab.example.com or (for GitLab.com) https://gitlab.com.
- "url": null,
- // Other example values:
- // - "https://gitlab.com"
- // - "https://gitlab.example.com"
-
- // An array of webhook configurations
- "webhooks": null
-}
-```
-
-## Native integration
-
-To provide out-of-the-box code navigation features to your users on GitLab, you will need to [configure your GitLab instance](https://docs.gitlab.com/ee/integration/sourcegraph.html). If you are using an HTTPS connection to GitLab, you will need to [configure HTTPS](https://docs.sourcegraph.com/admin/http_https_configuration) for your Sourcegraph instance.
-
-The Sourcegraph instance's site admin must [update the `corsOrigin` site config property](/admin/config/site_config) to allow the GitLab instance to communicate with the Sourcegraph instance. For example:
-
-```json
-{
- // ...
- "corsOrigin":
- "https://my-gitlab.example.com"
- // ...
-}
-```
-
-## Access token scopes
-
-Sourcegraph requires an access token with `api` permissions (and `sudo`, if you are using an `external` identity provider type). These permissions are required for the following reasons:
-
-We are actively collaborating with GitLab to improve our integration (e.g. the [Sourcegraph GitLab native integration](https://docs.gitlab.com/ee/integration/sourcegraph.html) and [better APIs for querying repository permissions](https://gitlab.com/gitlab-org/gitlab/issues/20532)).
-
-| Request Type | Required GitLab scope | Sourcegraph usage |
-|--------------|-----------------------|-------------------|
-| [`GET /projects`](https://docs.gitlab.com/ee/api/projects.html#list-all-projects) | `api` or `read_api`| (1) For repository discovery when specifying `projectQuery` in code host configuration; (2) If using an `external` identity provider type, also used as a test query to ensure token is `sudo` (`sudo` not required otherwise). |
-| [`GET /users`](https://docs.gitlab.com/ee/api/users.html#list-users) | `read_user`, `api` or `read_api` | If you are using an `external` identity provider type, used to discover user accounts. |
-| [`GET /users/:id`](https://docs.gitlab.com/ee/api/users.html#single-user) | `read_user`, `api` or `read_api` | If using GitLab OAuth, used to fetch user metadata during the OAuth sign in process. |
-| [`GET /projects/:id`](https://docs.gitlab.com/ee/api/projects.html#get-single-project) | `api` or `read_api` | (1) If using GitLab OAuth and repository permissions, used to determine if a user has access to a given _project_; (2) Used to query repository metadata (e.g. description) for display on Sourcegraph. |
-| [`GET /projects/:id/repository/tree`](https://docs.gitlab.com/ee/api/repositories.html#list-repository-tree) | `api` or `read_api` | If using GitLab OAuth and repository permissions, used to verify a given user has access to the file contents of a repository within a project (i.e. does not merely have `Guest` permissions). |
-| Batch Changes requests | `api` or `read_api`, `read_repository`, `write_repository` | [Batch Changes](/batch_changes/) require write access to push commits and create, update and close merge requests on GitLab repositories. See "[Code host interactions in batch changes](/batch_changes/explanations/permissions_in_batch_changes#code-host-interactions-in-batch-changes)" for details. |
-
-## Webhooks
-
-Using the `webhooks` property on the external service has been deprecated.
-
-Please consult [this page](/admin/config/webhooks/incoming) in order to configure webhooks.
diff --git a/docs/versioned/5.2/admin/external_service/gitolite.mdx b/docs/versioned/5.2/admin/external_service/gitolite.mdx
deleted file mode 100644
index cfbf3b088..000000000
--- a/docs/versioned/5.2/admin/external_service/gitolite.mdx
+++ /dev/null
@@ -1,54 +0,0 @@
-# Gitolite
-
-> NOTE: While it is possible to connect Gitolite repositories to Sourcegraph, we currently do not recommend it. If you have specific questions, please discuss with your account team.
-
-Site admins can link and sync Git repositories on [Gitolite](https://gitolite.com) with Sourcegraph so that users can search and navigate the repositories.
-
-To connect Gitolite to Sourcegraph:
-
-1. Set up [git SSH authentication](/admin/repo/auth) for your gitolite server.
-1. Go to **Site admin > Manage code hosts > Add repositories**
-1. Select **Gitolite**.
-1. Configure the connection to Gitolite using the action buttons above the text field, and additional fields can be added using `Cmd/Ctrl+Space` for auto-completion. See the [configuration documentation below](#configuration).
-1. Press **Add repositories**.
-
-## Configuration
-
-{/* [View page on docs.sourcegraph.com](https://docs.sourcegraph.com/admin/external_service/gitolite) to see rendered content.
*/}
-
-### admin/external_service/gitolite.schema.json
-
-```json
-{
- // A list of repositories to never mirror from this Gitolite instance. Supports excluding by exact name ({"name": "foo"}).
- "exclude": null,
- // Other example values:
- // - [
- // {
- // "name": "myrepo"
- // },
- // {
- // "pattern": ".*secret.*"
- // }
- // ]
-
- // Gitolite host that stores the repositories (e.g., git@gitolite.example.com, ssh://git@gitolite.example.com:2222/).
- "host": null,
- // Other example values:
- // - "git@gitolite.example.com"
- // - "ssh://git@gitolite.example.com:2222/"
-
- // This is DEPRECATED
- "phabricator": null,
-
- // This is DEPRECATED
- "phabricatorMetadataCommand": null,
-
- // Repository name prefix that will map to this Gitolite host. This should likely end with a trailing slash. E.g., "gitolite.example.com/".
- //
- // It is important that the Sourcegraph repository name generated with this prefix be unique to this code host. If different code hosts generate repository names that collide, Sourcegraph's behavior is undefined.
- "prefix": null
- // Other example values:
- // - "gitolite.example.com/"
-}
-```
diff --git a/docs/versioned/5.2/admin/external_service/go.mdx b/docs/versioned/5.2/admin/external_service/go.mdx
deleted file mode 100644
index 3cb37dc06..000000000
--- a/docs/versioned/5.2/admin/external_service/go.mdx
+++ /dev/null
@@ -1,84 +0,0 @@
-# Go dependencies
-
-This feature is experimental and might change or be removed in the future.
-
-
-Site admins can sync Go modules from any from any Go module proxy, including open source code from proxy.golang.org or a private proxy such as [Athens](https://github.com/gomods/athens), to their Sourcegraph instance so that users can search and navigate the repositories.
-
-To add Go dependencies to Sourcegraph you need to setup a Go dependencies code host:
-
-1. As *site admin*: go to **Site admin > Global settings** and enable the experimental feature by adding: `{"experimentalFeatures": {"goPackages": "enabled"} }`
-1. As *site admin*: go to **Site admin > Manage code hosts**
-1. Select **JVM Dependencies**.
-1. Configure the connection by following the instructions above the text field. Additional fields can be added using `Cmd/Ctrl+Space` for auto-completion. See the [configuration documentation below](#configuration).
-1. Press **Add repositories**.
-
-## Repository syncing
-
-There are currently two ways to sync Go dependency repositories.
-
-* **Code host configuration**: manually list dependencies in the `"dependencies"` section of the JSON configuration when creating the Go dependency code host. This method can be useful to verify that the credentials are picked up correctly without having to run a dependencies search.
-
-Sourcegraph tries to find each dependency repository in all configured `"urls"` until it's found. This means you can configure a public proxy first and fallback to a private one second (e.g. `"urls": ["https://proxy.golang.org", "https://admin:foobar@athens.yourcorp.com"]`).
-
-## Credentials
-
-Each entry in the `"urls"` array can contain basic auth if needed (e.g. `https://user:password@athens.yourcorp.com`).
-
-## Rate limiting
-
-By default, requests to the Go module proxies will be rate-limited
-based on a default internal limit. ([source](https://github.com/sourcegraph/sourcegraph/blob/main/schema/go-modules.schema.json))
-
-```json
-"rateLimit": {
- "enabled": true,
- "requestsPerHour": 57600.0
-}
-```
-
-where the `requestsPerHour` field is set based on your requirements.
-
-**Not recommended**: Rate-limiting can be turned off entirely as well.
-This increases the risk of overloading the proxy.
-
-```json
-"rateLimit": {
- "enabled": false
-}
-```
-
-## Configuration
-
-Go dependencies code host connections support the following configuration options, which are specified in the JSON editor in the site admin "Manage code hosts" area.
-
-{/* [View page on docs.sourcegraph.com](https://docs.sourcegraph.com/integration/go) to see rendered content.
*/}
-
-### admin/external_service/go-modules.schema.json
-
-```json
-{
- // An array of strings specifying Go modules to mirror in Sourcegraph.
- "dependencies": null,
- // Other example values:
- // - [
- // "cloud.google.com/go/kms@v1.1.0"
- // ]
-
- // Rate limit applied when making background API requests to the configured Go module proxies.
- "rateLimit": {
- "enabled": true,
- "requestsPerHour": 57600
- },
-
- // The list of Go module proxy URLs to fetch modules from. 404 Not found or 410 Gone responses will result in the next URL to be attempted.
- "urls": [
- "https://proxy.golang.org"
- ]
- // Other example values:
- // - [
- // "https://athens.mycorp.org",
- // "https://proxy.golang.org"
- // ]
-}
-```
diff --git a/docs/versioned/5.2/admin/external_service/index.mdx b/docs/versioned/5.2/admin/external_service/index.mdx
deleted file mode 100644
index 28d2f3ffe..000000000
--- a/docs/versioned/5.2/admin/external_service/index.mdx
+++ /dev/null
@@ -1,88 +0,0 @@
-# Code host connections
-
-Sourcegraph can sync repositories from code hosts and other similar services. We designate code hosts between Tier 1 and Tier 2 based on Sourcegraph's capabilities when used with those code hosts.
-
-## Tier 1 code hosts
-
-Tier 1 code hosts are our highest level of support for code hosts. When leveraging a Tier 1 code host, you can expect:
-
-- Scalable repository syncing - Sourcegraph is able to reliably sync repositories from this code host up to 100k repositories. (SLA TBD)
-- Scalable permissions syncing - Sourcegraph is able to reliably sync permissions from this code host for up to 10k users. (SLA TBD)
-- Authentication - Sourcegraph is able to leverage authentication from this code host (i.e. Login with GitHub).
-- Code Search - A developer can seamlessly search across repositories from this code host. (SLAs TBD)
-- Code Monitors - A developer can create a code monitor to monitor code in this repository.
-- Code Insights - Code Insights reliably works on code sync'd from a tier 1 code host.
-- Batch Changes - A Batch Change can be leveraged to submit code changes back to a tier 1 code host while respecting code host permissions.
-
-| Code Host | Status | Repository Syncing | Permissions Syncing | Authentication | Code Search | Code Monitors | Code Insights | Batch Changes |
-| ----------------------------- | ------ | ------------------ | ------------------- | -------------- | ----------- | ------------- | ------------- | ------------- |
-| GitHub.com | Tier 1 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
-| GitHub Self-Hosted Enterprise | Tier 1 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
-| GitLab.com | Tier 1 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
-| GitLab Self-Hosted | Tier 1 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
-| Bitbucket Cloud | Tier 1 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
-| Bitbucket Server | Tier 1 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
-| Gerrit | Tier 1 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
-| Azure DevOps | Tier 1 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
-| Perforce | Tier 2 | ✓ | ✓ | ✗ | ✓ | ✓ | ✗ | ✗ |
-| Plastic SCM (Enterprise) | Tier 2 | ✓ | ✗ | ✗ | ✓ | ✓ | ✓ | ✗ |
-
-
-#### Status definitions
-
-A code host status is:
-
-- 🟢 _Generally Available:_ Available as a normal product feature up to 100k repositories.
-- 🟡 _Partially available:_ Available, but may be limited in some significant ways (either missing or buggy functionality). If you plan to leverage this, please contact your Customer Engineer.
-- 🔴 _Not available:_ This functionality is not available within Sourcegraph
-
-## Tier 2: Code Hosts
-
-We recognize there are other code hosts including CVS, SVN, and many more. Today, we do not offer native integrations with these code hosts and customers are advised to leverage [Src-srv-git](/admin/external_service/non-git) and the [explicit permissions API](/admin/permissions/api) as a way to ingest code and permissions respectively into Sourcegraph.
-
-[Src-srv-git](/admin/external_service/non-git) and the [explicit permissions API](/admin/permissions/api) follow the same scale guidance shared above (up to 100k repos and 10k users).
-
-## Configure a code host connection
-
-**Site admins** can configure Sourcegraph to sync code from the following code hosts:
-
-- [GitHub](/admin/external_service/github)
-- [GitLab](/admin/external_service/gitlab)
-- [Bitbucket Cloud](/admin/external_service/bitbucket_cloud)
-- [Bitbucket Server / Bitbucket Data Center](/admin/external_service/bitbucket_server)
-- [Azure DevOps](/admin/external_service/azuredevops)
-- [Gerrit](/admin/external_service/gerrit)
-- [Other Git code hosts (using a Git URL)](/admin/external_service/other)
-- [Non-Git code hosts](/admin/external_service/non-git)
- - [Perforce](/admin/repo/perforce)
- - [Plastic SCM](/admin/repo/plasticscm)
- - [Package repository hosts](/admin/external_service/package-repos)
- - [JVM dependencies](/admin/external_service/jvm)
- - [Go dependencies](/admin/external_service/go)
- - [npm dependencies](/admin/external_service/npm)
- - [Python dependencies](/admin/external_service/python)
- - [Ruby dependencies](/admin/external_service/ruby)
- - [Rust dependencies](/admin/external_service/rust)
-
-## Rate limits
-
-For information on code host-related rate limits, see [rate limits](/admin/external_service/rate_limits).
-
-## Temporarily disabling requests to code hosts
-
-It may be the case that you'd like to temporarily disable all `git` and API requests from Sourcegraph to a code host. Adding the following to your site configuration will stop Sourcegraph from sending requests to the configured code host connections:
-
-> WARNING: disabling all git and API requests to codehosts will also disable permissions syncs, batch changes, discovery of new repos, and updates to currently synched repos. Synching with codehosts is a core functionality of Sourcegraph and many other features may also be affected.
-
-```json
-"disableAutoGitUpdates": true,
-"disableAutoCodeHostSyncs": true,
-"gitMaxCodehostRequestsPerSecond": 0,
-"gitMaxConcurrentClones": 0
-```
-
-## Testing Code Host Connections
-
-> WARNING: Sourcegraph 4.4.0 customers are reporting a bug where the connection test is failing when Sourcegraph is running behind proxies where TCP dial cannot be used with ports 80/443. This causes repositories to stop syncing. If you're experiencing this issue, please upgrade to 4.4.1 where normal HTTP requests are used instead.
-
-In Sourcegraph 4.4, site administrators have the ability to test a code host connection via the site-admin UI to improve the debuggability when something goes wrong. This check confirms that Sourcegraph has the ability to connect with the respective code host via TCP dial.
diff --git a/docs/versioned/5.2/admin/external_service/jvm.mdx b/docs/versioned/5.2/admin/external_service/jvm.mdx
deleted file mode 100644
index 495c6f52c..000000000
--- a/docs/versioned/5.2/admin/external_service/jvm.mdx
+++ /dev/null
@@ -1,91 +0,0 @@
-# JVM dependencies
-
-This feature is experimental and might change or be removed in the future.
-
-
-Site admins can sync JVM dependencies from any Maven repository, including Maven Central, Sonatype, or Artifactory, to their Sourcegraph instance so that users can search and navigate the repositories.
-
-To add JVM dependencies to Sourcegraph you need to setup a JVM dependencies code host:
-
-1. As *site admin*: go to **Site admin > Site configuration** and enable the experimental feature by adding: `{"experimentalFeatures": {"jvmPackages": "enabled"} }`
-1. As *site admin*: go to **Site admin > Manage code hosts**
-1. Select **JVM Dependencies**.
-1. [Configure the connection](#configuration) by following the instructions above the text field. Additional fields can be added using `Cmd/Ctrl+Space` for auto-completion. See the [configuration documentation below](#configuration).
-1. Press **Add repositories**.
-
-## Repository syncing
-
-There are two ways to sync JVM dependency repositories.
-
-* **Indexing** (recommended): run [`scip-java`](https://sourcegraph.github.io/scip-java/) against your JVM codebase and upload the generated index to Sourcegraph using the [src-cli](https://github.com/sourcegraph/src-cli) command `src code-intel upload`. This is usually setup to run in a CI pipeline. Sourcegraph automatically synchronizes JVM dependency repositories based on the dependencies that are discovered by `scip-java`.
-* **Code host configuration**: manually list dependencies in the `"dependencies"` section of the [JSON configuration](#configuration) when creating the JVM dependency code host. This method can be useful to verify that the credentials are picked up correctly without having to upload an index.
-
-## Credentials
-
-Sourcegraph uses [Coursier](https://get-coursier.io/) to resolve JVM dependencies.
-Use the `"credentials"` section of the JSON configuration to provide usernames and passwords to access your Maven repository. See the Coursier documentation about [inline credentials](https://get-coursier.io/docs/other-credentials#inline) to learn more about how to format the `"credentials"` configuration, or the example displayed at the bottom of the page.
-
-## Rate limiting
-
-By default, requests to the JVM dependency code host will be rate-limited
-based on a default internal limit. ([source](https://github.com/sourcegraph/sourcegraph/blob/main/schema/jvm-packages.schema.json))
-
-To manually set the value, add the following to your code host configuration:
-
-```json
-"rateLimit": {
- "enabled": true,
- "requestsPerHour": 600
-}
-```
-
-where the `requestsPerHour` field is set based on your requirements.
-
-**Not recommended**: Rate-limiting can be turned off entirely as well.
-This increases the risk of overloading the code host.
-
-```json
-"rateLimit": {
- "enabled": false
-}
-```
-
-## Configuration
-
-JVM dependencies code host connections support the following configuration options, which are specified in the JSON editor in the site admin "Manage code hosts" area.
-
-{/* [View page on docs.sourcegraph.com](https://docs.sourcegraph.com/admin/external_service/jvm) to see rendered content.
*/}
-
-### admin/external_service/jvm-packages.schema.json
-
-```json
-{
- // Configuration for resolving from Maven repositories.
- "maven": {
- "credentials": "",
- "dependencies": [],
- "rateLimit": {
- "enabled": true,
- "requestsPerHour": 7200
- },
- "repositories": []
- }
- // Other example values:
- // - {
- // "maven": {
- // "credentials": "jfrog.frogger.com myuser:supersecret\njfrogmirror.frogger.com(basicauth realm) frog:detective",
- // "dependencies": [
- // "com.sourcegraph:semanticdb-kotlinc:0.1.1"
- // ],
- // "rateLimit": {
- // "enabled": true,
- // "requestsPerHour": 3600
- // },
- // "repositories": [
- // "central",
- // "http://repo.extendedclip.com/content/repositories/public/"
- // ]
- // }
- // }
-}
-```
diff --git a/docs/versioned/5.2/admin/external_service/non-git.mdx b/docs/versioned/5.2/admin/external_service/non-git.mdx
deleted file mode 100644
index 9f346091b..000000000
--- a/docs/versioned/5.2/admin/external_service/non-git.mdx
+++ /dev/null
@@ -1,117 +0,0 @@
-# Non-Git code hosts (Perforce, Mercurial, Subversion, raw text, etc.)
-
-Sourcegraph natively supports all Git-based Version Control Systems (VCSs) and code hosts. For non-Git code hosts, Sourcegraph provides a CLI tool called `src-expose` to periodically sync and continuously serve local directories as Git repositories over HTTP.
-
->NOTE: If using Perforce, see the [Perforce repositories with Sourcegraph guide](/admin/repo/perforce).
-
-## Use `src serve-git`
-
-Since Sourcegraph 3.19 we recommend users to use [`src serve-git`](/admin/external_service/src_serve_git). `src serve-git` only provides the serving of git repositories (no snapshotting). We found users generally wanted to control the git repos and snapshotting complicated the setup. Additionally `src serve-git` uses a fast and modern git transfer protocol.
-
-## Installing `src-expose`
-
-Navigate to the directory that contains the Git repositories that you want to serve, then run the following commands.
-
-For Linux:
-
-```bash
-wget https://storage.googleapis.com/sourcegraph-artifacts/src-expose/latest/linux-amd64/src-expose
-
-chmod +x src-expose
-```
-
-For macOS:
-
-```bash
-wget https://storage.googleapis.com/sourcegraph-artifacts/src-expose/latest/darwin-amd64/src-expose
-
-chmod +x src-expose
-```
-
-You can run `src-expose -h` any time for help.
-
-## Using `src-expose`
-
-`src-expose` can be used in two ways:
-
-- **Serving local Git repositories**
-`src-expose` can serve local Git repositories over the network, and make them available to Sourcegraph (as if they were available on a traditional code host). See [serving repositories](#serving-repositories), or run `src-expose serve -h`.
-
-- **Syncing changes, turning them into Git commits, and serving the resulting Git repositories**
-`src-expose` can periodically run a command to sync changes to the code, and then combine those changes into a new Git commit in the local repository. See [syncing and serving repositories](#syncing-and-serving-repositories), or run `src-expose -h`.
-
-### Serving repositories
-
-`src-expose` serves a list of local Git repositories over HTTP, making them available to Sourcegraph. In addition to simply providing a Git endpoint, it also provides a repository listing API that Sourcegraph expects a code host to have.
-
-If you wish to serve a local directory without running any syncing commands automatically, you can run `src-expose serve` (instead of the default `src-expose`) to only perform this function.
-
-In order to keep the code in the local repository up to date, you will need to run another command periodically to fetch changes. For example, if you are using Perforce, you can set up a cron job to run `git p4 sync` every few minutes or hours to fetch changes and convert them to Git commits that can then be served. Similar options exist for other non-Git VCSs.
-
-### Syncing and serving repositories
-
-In addition to serving a local directory, `src-expose` can periodically run a command of your choice to fetch changes from a remote and combine them into a single new Git commit.
-
-For example, if your `src-expose` is using a [configuration YAML file](#next-steps--advanced-configuration) that contains the following:
-
-```yaml
-# before is a command run before sync. before is run from root.
-before: p4 sync
-# duration defines how often sync should happen. Defaults to 10s.
-duration: 10s
-```
-
-Then Sourcegraph will run `p4 sync` every 10 seconds, and combine all of the fetched changes into a new Git commit. The new Git commit's author will be `src-expose`, and will contain all changes since the last time the syncing command was run.
-
-While this syncing functionality means that the original change history will be lost, it eliminates any slow and costly Perforce-to-Git or Hg-to-Git or similar conversions that would otherwise be required. If you prefer to retain history, see [serving repositories](#serving-repositories).
-
-## Quickstart
-
-1. Start up a Sourcegraph instance or our [full installation documentation](/admin/deploy/).
-
-1. [Install `src-expose`](#installing-src-expose)
-
-1. Pick the directory you want to export from, then run:
-
-```bash
-# Run a command periodically to sync changes, commit those changes as Git commits, and serve over HTTP.
-./src-expose dir1 dir2 dir3
-```
-
-or
-
-```bash
-# Serve local Git repositories over HTTP. This command serves all Git repositories at the provided directory.
-./src-expose serve dir
-```
-
-depending on whether you want to automatically sync and commit changes, or just serve the local directories.
-
-1. `src-expose` will output a configuration to use. It may scroll by quickly due to logging, so if so, just scroll up. However, this configuration should work:
-
-```json
- {
- // url is the HTTP url to src-expose (listening on 127.0.0.1:3434). url should be reachable by Sourcegraph.
- //
- // "http://host.docker.internal:3434" works from Sourcegraph when using Docker for Desktop.
- "url": "http://host.docker.internal:3434",
- // By using the special value ("src-expose") below, Sourcegraph will pull all of the repositories that src-expose is serving.
- "repos": ["src-expose"]
-}
-```
-
-**IMPORTANT:** If you are using a Linux host machine, replace `host.docker.internal` in the above with the IP address of your actual host machine because `host.docker.internal` [does not work on Linux](https://github.com/docker/for-linux/issues/264). You should use the network-accessible IP shown by `ifconfig` (rather than 127.0.0.1 or localhost).
-
-Go to **Admin > Manage code hosts > Add repositories > Single Git repositories**. Input the above configuration. Your directories should now be syncing in Sourcegraph.
-
-### Next steps: advanced configuration
-
-Please consult `src-expose -help` to learn more about the options available.
-
-For more complex setups, configure your `src-expose` by providing a local configuration file:
-
-```bash
-src-expose -snapshot-config config.yaml
-```
-
-See [an example YAML file containing available configuration options](https://github.com/sourcegraph/sourcegraph/blob/main/dev/src-expose/examples/example.yaml).
diff --git a/docs/versioned/5.2/admin/external_service/npm.mdx b/docs/versioned/5.2/admin/external_service/npm.mdx
deleted file mode 100644
index d34e49b39..000000000
--- a/docs/versioned/5.2/admin/external_service/npm.mdx
+++ /dev/null
@@ -1,83 +0,0 @@
-# npm dependencies
-
-This feature is experimental and might change or be removed in the future.
-
-Site admins can sync npm packages from any npm registry, including open source code from npmjs.com or a private registry such as Verdaccio, to their Sourcegraph instance so that users can search and navigate the repositories.
-
-To add npm dependencies to Sourcegraph you need to setup an npm dependencies code host:
-
-1. As *site admin*: go to **Site admin > Global settings** and enable the experimental feature by adding: `{"experimentalFeatures": {"npmPackages": "enabled"} }`
-1. As *site admin*: go to **Site admin > Manage code hosts**
-1. Select **npm Dependencies**.
-1. [Configure the connection](#configuration) by following the instructions above the text field. Additional fields can be added using `Cmd/Ctrl+Space` for auto-completion. See the [configuration documentation below](#configuration).
-1. Press **Add repositories**.
-
-## Repository syncing
-
-There are three ways to sync npm dependency repositories.
-
-* **SCIP** (recommended): run [`scip-typescript`](https://github.com/sourcegraph/scip-typescript) on your JavaScript/TypeScript codebase and upload the generated index to Sourcegraph using the [src-cli](https://github.com/sourcegraph/src-cli) command `src code-intel upload`. Sourcegraph automatically synchronizes npm dependency repositories based on the dependencies that are discovered by `scip-typescript`.
-* **Code host configuration**: manually list dependencies in the `"dependencies"` section of the JSON configuration when creating the npm dependency code host. This method can be useful to verify that the credentials are picked up correctly without having to upload an index.
-
-## Credentials
-
-Use the `"credentials"` section of the JSON configuration to provide an access token for your private npm registry. See the [official npm documentation](https://docs.npmjs.com/about-access-tokens) for more details about how to create, list and view npm access tokens.
-
-## Rate limiting
-
-By default, requests to the npm registry will be rate-limited based on a default [internal limit](https://github.com/sourcegraph/sourcegraph/blob/main/schema/npm-packages.schema.json) which complies with the [documented acceptable use policy](https://docs.npmjs.com/policies/open-source-terms#acceptable-use) of registry.npmjs.org (i.e. max 5 million requests per month).
-
-```json
-"rateLimit": {
- "enabled": true,
- "requestsPerHour": 3000
-}
-```
-
-where the `requestsPerHour` field is set based on your requirements.
-
-**Not recommended**: Rate-limiting can be turned off entirely as well.
-This increases the risk of overloading the code host.
-
-```json
-"rateLimit": {
- "enabled": false
-}
-```
-
-## Configuration
-
-npm dependencies code host connections support the following configuration options, which are specified in the JSON editor in the site admin "Manage code hosts" area.
-
-{/* [View page on docs.sourcegraph.com](https://docs.sourcegraph.com/integration/npm) to see rendered content.
*/}
-
-### admin/external_service/npm-packages.schema.json
-
-```json
-{
- // Access token for logging into the npm registry.
- "credentials": "",
- // Other example values:
- // - "CRs5VaTVbR7pBPcVpaxwQeafrYOId7IdVUiZCkFCqnw="
-
- // An array of "(@scope/)?packageName@version" strings specifying which npm packages to mirror on Sourcegraph.
- "dependencies": null,
- // Other example values:
- // - ["react@17.0.2"]
- // - [
- // "react@latest",
- // "@types/lodash@4.14.177"
- // ]
-
- // Rate limit applied when making background API requests to the npm registry.
- "rateLimit": {
- "enabled": true,
- "requestsPerHour": 6000
- },
-
- // The URL at which the npm registry can be found.
- "registry": "https://registry.npmjs.org"
- // Other example values:
- // - "https://npm-registry.mycompany.com"
-}
-```
diff --git a/docs/versioned/5.2/admin/external_service/other.mdx b/docs/versioned/5.2/admin/external_service/other.mdx
deleted file mode 100644
index f4fb49f5f..000000000
--- a/docs/versioned/5.2/admin/external_service/other.mdx
+++ /dev/null
@@ -1,105 +0,0 @@
-# Other Git repository hosts
-
-Site admins can sync Git repositories on any Git repository host (by Git clone URL) with Sourcegraph so that users can search and navigate the repositories. Use this method only when your repository host is not named as a supported [code host](/admin/external_service/).
-
-To connect generic Git host to Sourcegraph:
-
-1. Go to **Site admin > Manage code hosts > Add repositories**
-1. Select **Generic Git host**.
-1. Configure the connection to generic Git host the action buttons above the text field, and additional fields can be added using `Cmd/Ctrl+Space` for auto-completion. See the [configuration documentation below](#configuration).
-1. Press **Add repositories**.
-
-## Constructing the `url` for SSH access
-
->NOTE: Repository access over SSH is not yet supported on [Sourcegraph Cloud](/cloud/).
-
-If your code host serves git repositories over SSH, make sure your Sourcegraph instance can connect to your code host over SSH:
-
-```
-docker exec $CONTAINER ssh -p $PORT $USER@$HOSTNAME
-```
-
-- $CONTAINER is the name or ID of your sourcegraph/server container
-- $PORT is the port on which your code host's git server is listening for connections
-- $USER is your user on your code host
-- $HOSTNAME is the hostname of your code host from within the sourcegraph/server container (e.g. `githost.example.com`)
-
-Here's an example:
-
-```
-docker exec sourcegraph ssh -p 29418 admin@githost.example.com
-```
-
-The `url` field is then
-
-```json
- "url": "ssh://$USER@$HOSTNAME:$PORT"`
-```
-
-Here's an example:
-
-```json
- "url": "ssh://admin@githost.example.com:29418",
-```
-
-## Adding repositories
-
-Elements of the `repos` field are the same as the repository names. For example, a repository at https://githost.example.com/admin/repos/gorilla/mux will be `"gorilla/mux"` in the `repos` field.
-
-Repositories must be listed individually:
-
-```json
- "repos": [
- "gorilla/mux",
- "sourcegraph/sourcegraph"
- ]
-```
-
-## Configuration
-
-{/* [View page on docs.sourcegraph.com](https://docs.sourcegraph.com/admin/external_service/other) to see rendered content.
*/}
-
-### admin/external_service/other_external_service.schema.json
-
-```json
-{
- // A list of repositories to never mirror by name after applying repositoryPathPattern. Supports excluding by exact name ({"name": "myrepo"}) or regular expression ({"pattern": ".*secret.*"}).
- "exclude": null,
- // Other example values:
- // - [
- // {
- // "name": "myrepo"
- // },
- // {
- // "pattern": ".*secret.*"
- // }
- // ]
-
- // Whether or not these repositories should be marked as public on Sourcegraph.com. Defaults to false.
- "makeReposPublicOnDotCom": false,
-
- "repos": null,
-
- // The pattern used to generate the corresponding Sourcegraph repository name for the repositories. In the pattern, the variable "{base}" is replaced with the Git clone base URL host and path, and "{repo}" is replaced with the repository path taken from the `repos` field.
- //
- // For example, if your Git clone base URL is https://git.example.com/repos and `repos` contains the value "my/repo", then a repositoryPathPattern of "{base}/{repo}" would mean that a repository at https://git.example.com/repos/my/repo is available on Sourcegraph at https://sourcegraph.example.com/git.example.com/repos/my/repo.
- //
- // It is important that the Sourcegraph repository name generated with this pattern be unique to this code host. If different code hosts generate repository names that collide, Sourcegraph's behavior is undefined.
- //
- // Note: These patterns are ignored if using src-expose / src-serve / src-serve-local.
- "repositoryPathPattern": "{base}/{repo}",
- // Other example values:
- // - "pretty-host-name/{repo}"
-
- // The root directory to walk for discovering local git repositories to mirror. To sync with local repositories and use this root property one must run Cody App and define the repos configuration property such as ["src-serve-local"].
- "root": "",
- // Other example values:
- // - "path/to/my/repos"
-
- "url": null
- // Other example values:
- // - "https://github.com/?access_token=secret"
- // - "ssh://user@host.xz:2333/"
- // - "git://host.xz:2333/"
-}
-```
diff --git a/docs/versioned/5.2/admin/external_service/package-repos.mdx b/docs/versioned/5.2/admin/external_service/package-repos.mdx
deleted file mode 100644
index 6380bf421..000000000
--- a/docs/versioned/5.2/admin/external_service/package-repos.mdx
+++ /dev/null
@@ -1,49 +0,0 @@
-# Package repositories
-
-This feature is experimental and might change or be removed in the future.
-
-Sourcegraph package repos can synchronize dependency sources (Rust crates, JVM libraries, Node.js packages, Ruby gems, and more) from public and private artifact hosts (such as NPM, Artifactory etc).
-
-## Enable package repositories
-
-Package repositories can be enabled on a per-ecosystem level in your [site configuration](/admin/config/site_config), for example:
-
-```json
-{
- // ...
- "experimentalFeatures": {
- "jvmPackages": "enabled",
- "goPackagse": "enabled",
- "npmPackages": "enabled",
- "pythonPackagse": "disabled",
- "rubyPackages": "disabled",
- "rustPacakges": "enabled"
- }
- // ...
-}
-```
-
-## Repository syncing
-
-There are generally two ways of syncing package repositories to the Sourcegraph instance.
-
-1. **Indexing** (recommended): package repositories can be added to the Sourcegraph instance when they are referenced in [code graph data uploads](/code_navigation/explanations/uploads). Code graph indexers can derive package repository references during indexing, which will be used on upload to sync them to your instance. An external service for the given ecosystem must be created in order for these referenced package repositories to be synchronized.
-2. **Code host configuration**: each package repository external service supports manually defining versions of packages to sync. See the page specific to the ecosystem you wish to configure. This method can be useful to verify that the credentials are picked up correctly without having to upload an index, as we'll as to poke holes in the filters (detailed below) if necessary.
-
-## Filters
-
-Package repository filters allow you to limit the package repositories and versions that are synced to the Sourcegraph instance. Using glob patterns, you can block or allow certain package repositories or versions on a per-ecosystem level.
-
-There are two kinds of filters:
-
-1. **Package name filters**: these filters match a glob pattern against a package repository's name, and will apply to all versions of matching package repositories.
-2. **Package version filters**: these filters match a glob pattern against versions for a specific package repository. It cannot apply to multiple package repositories.
-
-Filters can also have one of two behaviours:
-
-1. **Block filters**: package repositories or versions matching these filters won't be synced.
-2. **Allow filters**: only package repositories or versions matching these filters (that don't match a block filter) will be synced.
-
-Having no configured _allow_ filters implicitly allows everything. _Block_ filters have priority over _allow_ filters (a blocked package or version will not be synced even if it is explicitly allowed).
-
-Package repository filter updates may require a few minutes to propagate through the system. The blocked status of a package repository will be updated in the UI and the relevant external service may add or remove repositories after syncing (visible in the site-admin page for the external service).
diff --git a/docs/versioned/5.2/admin/external_service/python.mdx b/docs/versioned/5.2/admin/external_service/python.mdx
deleted file mode 100644
index 5244bc413..000000000
--- a/docs/versioned/5.2/admin/external_service/python.mdx
+++ /dev/null
@@ -1,83 +0,0 @@
-# Python dependencies
-
-This feature is experimental and might change or be removed in the future.
-
-Site admins can sync Python packages from any Python package mirror, including open source code from pypi.org or a private mirror such as [Nexus](https://www.sonatype.com/products/nexus-repository), to their Sourcegraph instance so that users can search and navigate the repositories.
-
-To add Python dependencies to Sourcegraph you need to setup a Python dependencies code host:
-
-1. As *site admin*: go to **Site admin > Global settings** and enable the experimental feature by adding: `{"experimentalFeatures": {"pythonPackages": "enabled"} }`
-1. As *site admin*: go to **Site admin > Manage code hosts**
-1. Select **Python Dependencies**.
-1. [Configure the connection](#configuration) by following the instructions above the text field. Additional fields can be added using `Cmd/Ctrl+Space` for auto-completion. See the [configuration documentation below](#configuration).
-1. Press **Add repositories**.
-
-## Repository syncing
-
-There are currently two ways to sync Python dependency repositories.
-
-* **Code host configuration**: manually list dependencies in the `"dependencies"` section of the JSON configuration when creating the Python dependency code host. This method can be useful to verify that the credentials are picked up correctly without having to run a dependencies search.
-
-Sourcegraph tries to find each dependency repository in all configured `"urls"` until it's found. This means you can configure a public mirror first and fallback to a private one second (e.g. `"urls": ["https://pypi.org", "https://admin:foobar@nexus.yourcorp.com"]`).
-
-## Credentials
-
-Each entry in the `"urls"` array can contain basic auth if needed (e.g. `https://user:password@nexus.yourcorp.com`).
-
-## Rate limiting
-
-By default, requests to the Python package mirrors will be rate-limited based on a default internal limit. ([source](https://github.com/sourcegraph/sourcegraph/blob/main/schema/python-packages.schema.json))
-
-```json
-"rateLimit": {
- "enabled": true,
- "requestsPerHour": 57600
-}
-```
-
-where the `requestsPerHour` field is set based on your requirements.
-
-**Not recommended**: Rate-limiting can be turned off entirely as well.
-This increases the risk of overloading the proxy.
-
-```json
-"rateLimit": {
- "enabled": false
-}
-```
-
-## Configuration
-
-Python dependencies code host connections support the following configuration options, which are specified in the JSON editor in the site admin "Manage code hosts" area.
-
-{/* [View page on docs.sourcegraph.com](https://docs.sourcegraph.com/integration/python) to see rendered content.
*/}
-
-### admin/external_service/python-packages.schema.json
-
-```json
-{
- // An array of strings specifying Python packages to mirror in Sourcegraph.
- "dependencies": null,
- // Other example values:
- // - [
- // "numpy==1.22.3",
- // "pytorch==1.0.2"
- // ]
-
- // Rate limit applied when making background API requests to the configured Python simple repository APIs.
- "rateLimit": {
- "enabled": true,
- "requestsPerHour": 57600
- },
-
- // The list of Python simple repository URLs to fetch packages from. 404 Not found or 410 Gone responses will result in the next URL to be attempted.
- "urls": [
- "https://pypi.org/simple"
- ]
- // Other example values:
- // - [
- // "https://private.mycorp.org/simple",
- // "https://pypi.org/simple"
- // ]
-}
-```
diff --git a/docs/versioned/5.2/admin/external_service/rate_limits.mdx b/docs/versioned/5.2/admin/external_service/rate_limits.mdx
deleted file mode 100644
index be5048a85..000000000
--- a/docs/versioned/5.2/admin/external_service/rate_limits.mdx
+++ /dev/null
@@ -1,80 +0,0 @@
-# Rate limits
-
-Sourcegraph respects and enforces various rate limits to ensure optimal and reliable performance. Sourcegraph has two types of rate limits:
-
-- [External rate limits](#external-rate-limits)
-- [Internal rate limits](#internal-rate-limits)
-
-For other ways to control repo update frequency, see [Repository update frequency](/admin/repo/update_frequency).
-
-## External rate limits
-
-External rate limits refer to the rate limits set by external services integrated with Sourcegraph, such as code hosts (GitHub, GitLab, Bitbucket, etc.). Sourcegraph always adheres to and never exceeds the external rate limits of integrated services.
-
-Many code hosts give continuous feedback on rate limiting. Sourcegraph tracks this feedback, if available, and delays automatic background requests (permissions syncing, repo discovery, etc.) if rate limits are encountered.
-
-No configuration is necessary to enable external rate limit monitoring.
-
-> NOTE: When configuring code host connections on Sourcegraph, always include a `token` even if only accessing public repositories, as code hosts impose severe rate limits for unauthenticated requests (see [GitHub](https://docs.github.com/en/rest/overview/resources-in-the-rest-api?apiVersion=2022-11-28#rate-limits-for-requests-from-personal-accounts) for example).
-
-If working with a self-hosted code host, consult the code host documentation to learn how to configure rate limits on your code host.
-
-Sourcegraph monitors external rate limits for the following code hosts:
-- [GitHub](/admin/external_service/github#rate-limits)
-- [GitLab](/admin/external_service/gitlab#rate-limits)
-- [Bitbucket Cloud](/admin/external_service/bitbucket_cloud#rate-limits)
-- [Azure DevOps](/admin/external_service/azuredevops#rate-limits)
-
-## Internal rate limits
-
-Internal rate limits refer to self-imposed rate limits within Sourcegraph. While Sourcegraph adheres to external rate limits, sometimes more control is necessary, or a code host might not have rate limit monitoring available or configured. In these cases, internal rate limits can be configured.
-
-A [global default internal rate limit](/admin/config/site_config#defaultRateLimit) can be configured in the [site configuration](/admin/config/site_config). This limit applies to all code host connections that don't have a specific rate limit configured.
-
-> NOTE: This is the default rate limit _per code host connection_. It is not the total rate limit of all the code host connections.
-
-To configure internal rate limits for a specific code host connection:
-- Within the code connection configuration, add the following:
-```json
-{
- // ...
- "rateLimit": {
- "enabled": true,
- "requestsPerHour": 5000
- }
-}
-```
-
-Requests to the configured code host will be staggered as to not exceed `"requestsPerHour"`. This will override the default rate limit (if configured).
-
-> NOTE: Configuring a rate limit will impact Sourcegraph's ability to stay up to date with repository changes and user permissions. To ensure that Sourcegraph stays up to date, consider configuring [webhooks](/admin/config/webhooks/incoming).
-
-- For Sourcegraph `<=3.38`, if rate limiting is configured more than once for the same code host instance, the most restrictive limit will be used.
-- For Sourcegraph >=3.39, rate limiting should be enabled and configured for each individual code host connection.
-
-To see the status of configured internal rate limits, visit **Site admin > Instrumentation > repo-updater > Rate Limiter State**. This page lists internal rate limits by code host, for example:
-
-```json
-{
- "extsvc:github:1": {
- "Burst": 10,
- "Limit": 2,
- "Infinite": false
- }
-}
-```
-
-This entry tells us that a rate limit is configured for a GitHub external service. `Burst` means that a maximum of 10 requests can be made in quick succession. After that, requests will be limited to 2 (the `Limit` value) per second. If `Infinite` is `true`, no internal rate limiting is applied for this connection.
-
-Sourcegraph supports internal rate limit configuration for the following connections:
-- [GitHub](/admin/external_service/github#rateLimit)
-- [GitLab](/admin/external_service/gitlab#rateLimit)
-- [Bitbucket Cloud](/admin/external_service/bitbucket_cloud#rateLimit)
-- [Bitbucket Server](/admin/external_service/bitbucket_server#rateLimit)
-- [Perforce](/admin/repo/perforce#rateLimit)
-- [Go Modules](/admin/external_service/go#rateLimit)
-- [JVM Packages](/admin/external_service/jvm#rateLimit)
-- [NPM Packages](/admin/external_service/npm#rateLimit)
-- [Python Packages](/admin/external_service/python#rateLimit)
-- [Ruby Packages](/admin/external_service/ruby#rateLimit)
-- [Rust Packages](/admin/external_service/rust#rateLimit)
diff --git a/docs/versioned/5.2/admin/external_service/ruby.mdx b/docs/versioned/5.2/admin/external_service/ruby.mdx
deleted file mode 100644
index 17a607597..000000000
--- a/docs/versioned/5.2/admin/external_service/ruby.mdx
+++ /dev/null
@@ -1,80 +0,0 @@
-# Ruby dependencies
-
-This feature is experimental and might change or be removed in the future.
-
-
-Site admins can sync Ruby dependencies from any RubyGems repositories, including rubygems.org or an internal Artifactory, to their Sourcegraph instance so that users can search and navigate the repositories.
-
-To add Ruby dependencies to Sourcegraph you need to setup a Ruby dependencies code host:
-
-1. As *site admin*: go to **Site admin > Global settings** and enable the experimental feature by adding: `{"experimentalFeatures": {"rubyPackages": "enabled"} }`
-1. As *site admin*: go to **Site admin > Manage code hosts**
-1. Select **Ruby Dependencies**.
-1. [Configure the connection](#configuration) by following the instructions above the text field. Additional fields can be added using `Cmd/Ctrl+Space` for auto-completion. See the [configuration documentation below](#configuration).
-1. Press **Add repositories**.
-
-## Repository syncing
-
-There are two ways to sync Ruby dependency repositories.
-
-* **Indexing** (recommended): run [`scip-ruby`](https://sourcegraph.github.io/scip-ruby/) against your Ruby codebase and upload the generated index to Sourcegraph using the [src-cli](https://github.com/sourcegraph/src-cli) command `src code-intel upload`. This is usually setup to run in a CI pipeline. Sourcegraph automatically synchronizes Ruby dependency repositories based on the dependencies that are discovered by `scip-ruby`.
-* **Code host configuration**: manually list dependencies in the `"dependencies"` section of the [JSON configuration](#configuration) when creating the Ruby dependency code host. This method can be useful to verify that the credentials are picked up correctly without having to upload an index.
-
-## Credentials
-
-The `"repository"` field in the [configuration](#configuration) section is automatically redacted and can optionally include the username and password of an internal [Artifactory RubyGems](https://www.jfrog.com/confluence/display/JFROG/RubyGems+Repositories) repository.
-
-## Rate limiting
-
-By default, requests to the RubyGems repository is 8 request per second.
-
-To manually set the value, add the following to your code host configuration:
-
-```json
-"rateLimit": {
- "enabled": true,
- "requestsPerHour": 600
-}
-```
-
-where the `requestsPerHour` field is set based on your requirements.
-
-**Not recommended**: Rate-limiting can be turned off entirely as well.
-This increases the risk of overloading the code host.
-
-```json
-"rateLimit": {
- "enabled": false
-}
-```
-
-## Configuration
-
-Ruby dependencies code host connections support the following configuration options, which are specified in the JSON editor in the site admin "Manage code hosts" area.
-
-{/* [View page on docs.sourcegraph.com](https://docs.sourcegraph.com/integration/ruby) to see rendered content.
*/}
-
-### admin/external_service/ruby-packages.schema.json
-
-```json
-{
- // An array of strings specifying Ruby packages to mirror in Sourcegraph.
- "dependencies": null,
- // Other example values:
- // - ["shopify_api@12.0.0"]
-
- // Rate limit applied when making background API requests to the configured Ruby repository APIs.
- "rateLimit": {
- "enabled": true,
- "requestsPerHour": 3600
- },
-
- // The URL at which the maven repository can be found.
- "repository": [
- "https://rubygems.org/"
- ]
- // Other example values:
- // - "https://rubygems.org/"
- // - "https://\u003cserver name\u003e.jfrog.io/artifactory/api/gems/\u003crepository key\u003e"
-}
-```
diff --git a/docs/versioned/5.2/admin/external_service/rust.mdx b/docs/versioned/5.2/admin/external_service/rust.mdx
deleted file mode 100644
index 7bc993373..000000000
--- a/docs/versioned/5.2/admin/external_service/rust.mdx
+++ /dev/null
@@ -1,83 +0,0 @@
-# Rust dependencies
-
-This feature is experimental and might change or be removed in the future.
-
-
-Site admins can sync Rust dependencies from any Cargo repository, including crates.io or an internal Artifactory, to their Sourcegraph instance so that users can search and navigate their dependencies.
-
-To add Rust dependencies to Sourcegraph you need to setup a Rust dependencies code host:
-
-1. As *site admin*: go to **Site admin > Global settings** and enable the experimental feature by adding: `{"experimentalFeatures": {"rustPackages": "enabled"} }`
-1. As *site admin*: go to **Site admin > Manage code hosts**
-1. Select **Rust Dependencies**.
-1. [Configure the connection](#configuration) by following the instructions above the text field. Additional fields can be added using `Cmd/Ctrl+Space` for auto-completion. See the [configuration documentation below](#configuration).
-1. Press **Add repositories**.
-
-## Repository syncing
-
-There are two ways to sync Rust dependency repositories.
-
-* **Indexing** (recommended): run [`scip-rust`](https://sourcegraph.github.io/scip-rust/) against your Rust codebase and upload the generated index to Sourcegraph using the [src-cli](https://github.com/sourcegraph/src-cli) command `src code-intel upload`. This is usually setup to run in a CI pipeline. Sourcegraph automatically synchronizes Rust dependency repositories based on the dependencies that are discovered by `scip-rust`.
-* **Code host configuration**: manually list dependencies in the `"dependencies"` section of the [JSON configuration](#configuration) when creating the Rust dependency code host. This method can be useful to verify that the credentials are picked up correctly without having to upload an index.
-
-## Credentials
-
-The `"repository"` field in the [configuration](#configuration) section is automatically redacted and can optionally include the username and password of an internal [Artifactory Cargo](https://www.jfrog.com/confluence/display/JFROG/Cargo+Repositories) repository.
-
-## Rate limiting
-
-By default, requests to the Cargo repository is 8 request per second.
-
-To manually set the value, add the following to your code host configuration:
-
-```json
-"rateLimit": {
- "enabled": true,
- "requestsPerHour": 600
-}
-```
-
-where the `requestsPerHour` field is set based on your requirements.
-
-**Not recommended**: Rate-limiting can be turned off entirely as well.
-This increases the risk of overloading the code host.
-
-```json
-"rateLimit": {
- "enabled": false
-}
-```
-
-## Configuration
-
-Rust dependencies code host connections support the following configuration options, which are specified in the JSON editor in the site admin "Manage code hosts" area.
-
-{/* [View page on docs.sourcegraph.com](https://docs.sourcegraph.com/integration/rust) to see rendered content.
*/}
-
-### admin/external_service/rust-packages.schema.json
-
-```json
-{
- // An array of strings specifying Rust packages to mirror in Sourcegraph.
- "dependencies": null,
- // Other example values:
- // - ["ripgrep@13.0.0"]
-
- // Name of the git repository containing the crates.io index. Only set if you intend to sync every crate from the index. Updating this setting does not trigger a sync immediately, you must wait until the next scheduled sync for the value to get picked up.
- "indexRepositoryName": null,
- // Other example values:
- // - "github.com/crates.io/index"
-
- // How frequently to sync with the index repository. String formatted as a Go time.Duration. The Sourcegraph server needs to be restarted to pick up a new value of this configuration option.
- "indexRepositorySyncInterval": "12h",
- // Other example values:
- // - "12h"
- // - "10s"
-
- // Rate limit applied when making background API requests to the configured Rust repository APIs.
- "rateLimit": {
- "enabled": true,
- "requestsPerHour": 3600
- }
-}
-```
diff --git a/docs/versioned/5.2/admin/external_service/src_serve_git.mdx b/docs/versioned/5.2/admin/external_service/src_serve_git.mdx
deleted file mode 100644
index e2147a192..000000000
--- a/docs/versioned/5.2/admin/external_service/src_serve_git.mdx
+++ /dev/null
@@ -1,55 +0,0 @@
-# Serving local repositories
-
-Sourcegraph is designed to abstract away all repository management operations from the user. However, we still often get the question: "how do I load local repositories?"
-
-The instructions below (using the Sourcegraph CLI to act as a pseudo-code host for Sourcegraph to interact with) do enable this, but they can be quite complex. The root of the challenge is that Sourcegraph assumes that code will change over time. It has been intentionally designed to save the user from the manual effort of keeping repositories up to date (i.e., re-cloning or fetching the latest changes every time you want to search) by [automatically keeping repositories updated](https://docs.sourcegraph.com/admin/repo/update_frequency), keeping the updated content indexed, and making the change history visible and explorable to users.
-
-And, practically, Sourcegraph was built with the assumption that certain tasks, such as getting a list of repositories and running git operations like clones, would be accessible over a network rather than on the same disk (i.e., that there would be HTTP API and git endpoints).
-
-In both the short-term and the long-term, it is far easier for users to [connect Sourcegraph to a code host](https://docs.sourcegraph.com/admin/external_service) than to try to load code from a local disk, and we strongly encourage users, where possible, to connect to their code host of choice instead of trying to follow the instructions below.
-
-When Sourcegraph is connected to a code host, none of that code is ever sent off of your local Sourcegraph deployment, and nobody that you haven't given access to (whether at Sourcegraph or anywhere else) has access to your code. Sourcegraph only maintains a local clone, and does all code analysis and indexing operations locally. Read more specifics about our policies and what we do collect in [our security overview](https://about.sourcegraph.com/security/#Sourcegraph-on-premise).
-
-## Using the Sourcegraph CLI to serve local repositories
-
-The [Sourcegraph CLI (`src)`](https://github.com/sourcegraph/src-cli) provides the command `src serve-git` which will recursively serve up the git repositories it finds in the current directory. It exposes the repositories over HTTP as well as an API for Sourcegraph to query.
-
->NOTE: If using Perforce, see the [Perforce repositories with Sourcegraph guide](/admin/repo/perforce).
-
-The most common use-case for `src serve-git` is to create git repos that do not exist on a code host for Sourcegraph. For example:
-
-- Splitting up a monorepo into a repository per project.
-- Post-processing repositories for search. eg: extracting JAR files or committing files generated in the build process.
-- Using `git p4` to serve up Perforce repositories.
-- Serve up local repositories to Sourcegraph while trialling it.
-
-> WARNING: `src serve-git` is not intended to be used to serve repos from a code host which is already configured to be synced by a seperate code host config. For instance if you have a self managed GitLab code host, it is not advised to use `src serve-git` to serve repos on the gitlab server.
-
-## Quickstart
-
-1. [Install Sourcegraph CLI](https://github.com/sourcegraph/src-cli#installation) (`src`).
-1. Run `src serve-git` in a directory with git repositories. Ensure the address is reachable by Sourcegraph.
-1. Go to **Site admin > Manage code hosts > Add repositories**
-1. Select **Sourcegraph CLI Serve-Git**.
-1. Configure the URL field to the address for `src serve-git`.
-1. Press **Add repositories**.
-
-**IMPORTANT:** If you are running Sourcegraph in docker and are using a Linux host machine, replace `host.docker.internal` in the above with the IP address of your actual host machine because `host.docker.internal` [does not work on Linux](https://github.com/docker/for-linux/issues/264). You should use the network-accessible IP shown by `ifconfig` (rather than 127.0.0.1 or localhost).
-
-## Docker
-
-src-cli publishes Docker images which can be used instead of the binary. For example to publish your current directory run:
-
-```
-docker run \
- --rm=true \
- --publish 3434:3434 \
- --volume $PWD:/data/repos:ro \
- sourcegraph/src-cli:latest serve-git /data/repos
-```
-
-To confirm this is working visit http://localhost:3434
-
-## src-expose
-
-Before Sourcegraph 3.19 we recommend users to still use [`src-expose`](/admin/external_service/non-git).
diff --git a/docs/versioned/5.2/admin/external_services/index.mdx b/docs/versioned/5.2/admin/external_services/index.mdx
deleted file mode 100644
index df5ae5186..000000000
--- a/docs/versioned/5.2/admin/external_services/index.mdx
+++ /dev/null
@@ -1,32 +0,0 @@
-# Using external services with Sourcegraph
-
-Sourcegraph by default provides versions of services it needs to operate, including:
-
-- A [PostgreSQL](https://www.postgresql.org/) instance for storing long-term information, such as user information when using Sourcegraph's built-in authentication provider instead of an external one.
-- A second PostgreSQL instance for storing large-volume precise code graph data.
-- A [Redis](https://redis.io/) instance for storing short-term information such as user sessions.
-- A second Redis instance for storing cache data.
-- A `sourcegraph/blobstore` instance that serves as a local S3-compatible object storage to hold user uploads before they can be processed. _This data is for temporary storage and content will be automatically deleted once processed._
-- A [Jaeger](https://www.jaegertracing.io/) instance for end-to-end distributed tracing (disabled by default).
-
-Your Sourcegraph instance can be configured to use an external or managed version of these services:
-
-- Using a managed version of PostgreSQL can make backups and recovery easier to manage and perform.
-- Using a managed object storage service may decrease your hosting costs as persistent volumes are often more expensive than object storage space.
-
-## External services guides
-
-See the following guides to use an external or managed version of each service type.
-
-- See [Using your own PostgreSQL server](/admin/external_services/postgres) to replace the bundled PostgreSQL instances.
-- See [Using your own Redis server](/admin/external_services/redis) to replace the bundled Redis instances.
-- See [Using a managed object storage service (S3 or GCS)](/admin/external_services/object_storage) to replace the bundled blobstore instance.
-- See [Using an external Jaeger instance](/admin/observability/tracing#Use-an-external-Jaeger-instance) to replace the bundled Jaeger instance.
-
-> NOTE: Using Sourcegraph with an external service is a [paid feature](https://about.sourcegraph.com/pricing). [Contact us](https://about.sourcegraph.com/contact/sales) to get a trial license.
-
-## Cloud alternatives
-
-- Amazon Web Services: [AWS RDS for PostgreSQL](https://aws.amazon.com/rds/), [Amazon ElastiCache](https://aws.amazon.com/elasticache/redis/), and [S3](https://aws.amazon.com/s3/) for storing user uploads.
-- Google Cloud: [Cloud SQL for PostgreSQL](https://cloud.google.com/sql/docs/postgres/), [Cloud Memorystore](https://cloud.google.com/memorystore/), and [Cloud Storage](https://cloud.google.com/storage) for storing user uploads.
-- Digital Ocean: [Digital Ocean Managed Databases](https://www.digitalocean.com/products/managed-databases/) for [Postgres](https://www.digitalocean.com/products/managed-databases-postgresql/), [Redis](https://www.digitalocean.com/products/managed-databases-redis/), and [Spaces](https://www.digitalocean.com/products/spaces/) for storing user uploads.
diff --git a/docs/versioned/5.2/admin/external_services/object_storage.mdx b/docs/versioned/5.2/admin/external_services/object_storage.mdx
deleted file mode 100644
index 91d3c6766..000000000
--- a/docs/versioned/5.2/admin/external_services/object_storage.mdx
+++ /dev/null
@@ -1,44 +0,0 @@
-# Using a managed object storage service (S3 or GCS)
-
-By default, Sourcegraph will use a `sourcegraph/blobstore` server bundled with the instance to temporarily store code graph indexes uploaded by users.
-
-You can alternatively configure your instance to instead store this data in an S3 or GCS bucket. Doing so may decrease your hosting costs as persistent volumes are often more expensive than the same storage space in an object store service.
-
-To target a managed object storage service, you will need to set a handful of environment variables for configuration and authentication to the target service. **If you are running a sourcegraph/server deployment, set the environment variables on the server container. Otherwise, if running via Docker-compose or Kubernetes, set the environment variables on the `frontend`, `worker`, and `precise-code-intel-worker` containers.**
-
-### Using S3
-
-To target an S3 bucket you've already provisioned, set the following environment variables. Authentication can be done through [an access and secret key pair](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys) (and optional session token), or via the EC2 metadata API.
-
-**_Warning:_** Remember never to commit aws access keys in git. Consider using a secret handling service offered by your cloud provider.
-
-- `PRECISE_CODE_INTEL_UPLOAD_BACKEND=S3`
-- `PRECISE_CODE_INTEL_UPLOAD_BUCKET=`
-- `PRECISE_CODE_INTEL_UPLOAD_AWS_ENDPOINT=https://s3.us-east-1.amazonaws.com`
-- `PRECISE_CODE_INTEL_UPLOAD_AWS_ACCESS_KEY_ID=`
-- `PRECISE_CODE_INTEL_UPLOAD_AWS_SECRET_ACCESS_KEY=`
-- `PRECISE_CODE_INTEL_UPLOAD_AWS_SESSION_TOKEN=` (optional)
-- `PRECISE_CODE_INTEL_UPLOAD_AWS_USE_EC2_ROLE_CREDENTIALS=true` (optional; set to use EC2 metadata API over static credentials)
-- `PRECISE_CODE_INTEL_UPLOAD_AWS_REGION=us-east-1` (default)
-
-**_Note:_** If a non-default region is supplied, ensure that the subdomain of the endpoint URL (_the `AWS_ENDPOINT` value_) matches the target region.
-
-> NOTE: You don't need to set the `PRECISE_CODE_INTEL_UPLOAD_AWS_ACCESS_KEY_ID` environment variable when using `PRECISE_CODE_INTEL_UPLOAD_AWS_USE_EC2_ROLE_CREDENTIALS=true` because role credentials will be automatically resolved. Attach the IAM role to the EC2 instances hosting the `frontend`, `worker`, and `precise-code-intel-worker` containers in a multi-node environment.
-
-
-### Using GCS
-
-To target a GCS bucket you've already provisioned, set the following environment variables. Authentication is done through a service account key, supplied as either a path to a volume-mounted file, or the contents read in as an environment variable payload.
-
-- `PRECISE_CODE_INTEL_UPLOAD_BACKEND=GCS`
-- `PRECISE_CODE_INTEL_UPLOAD_BUCKET=`
-- `PRECISE_CODE_INTEL_UPLOAD_GCP_PROJECT_ID=`
-- `PRECISE_CODE_INTEL_UPLOAD_GOOGLE_APPLICATION_CREDENTIALS_FILE=`
-- `PRECISE_CODE_INTEL_UPLOAD_GOOGLE_APPLICATION_CREDENTIALS_FILE_CONTENT=<{"my": "content"}>`
-
-### Provisioning buckets
-
-If you would like to allow your Sourcegraph instance to control the creation and lifecycle configuration management of the target buckets, set the following environment variables:
-
-- `PRECISE_CODE_INTEL_UPLOAD_MANAGE_BUCKET=true`
-- `PRECISE_CODE_INTEL_UPLOAD_TTL=168h` (default)
diff --git a/docs/versioned/5.2/admin/external_services/postgres.mdx b/docs/versioned/5.2/admin/external_services/postgres.mdx
deleted file mode 100644
index eb4877f36..000000000
--- a/docs/versioned/5.2/admin/external_services/postgres.mdx
+++ /dev/null
@@ -1,483 +0,0 @@
-# Using your own PostgreSQL server
-
-You can use your own PostgreSQL v12+ server with Sourcegraph if you wish. For example, you may prefer this if you already have existing backup infrastructure around your own PostgreSQL server, wish to use Amazon RDS, etc.
-
-Please review [the PostgreSQL](/admin/postgres) documentation for a complete list of requirements.
-
-> NOTE: As of version 3.39.0, codeinsights-db no longer relies on the internal TimescaleDB and can be externalized.
-
-
-## General recommendations
-
-If you choose to set up your own PostgreSQL server, please note **we strongly recommend each database to be set up in different servers and/or hosts**. We suggest either:
-
-1. Deploy _codeintel-db_ alongside the other Sourcegraph containers, i.e. not as a managed PostgreSQL instance.
-2. Deploy a separate PostgreSQL instance. The primary reason to not use the same Postgres instance for this data is because code graph data can take up a significant of space (given the amount of indexed repositories is large) and the performance of the database may impact the performance of the general application database. You'll most likely want to be able to scale their resources independently.
-
-We also recommend having backups for the _codeintel-db_ as a best practice. The reason behind this recommendation is that _codeintel-db_ data is uploaded via CI systems. If data is lost, Sourcegraph cannot automatically rebuild it from the repositories, which means you'd have to wait until it is re-uploaded from your CI systems.
-
-## Instructions
-
-The addition of `PG*` environment variables to your Sourcegraph deployment files will instruct Sourcegraph to target an external PostgreSQL server. To externalize the _frontend database_, use the following standard `PG*` variables:
-
-- `PGHOST`
-- `PGPORT`
-- `PGUSER`
-- `PGPASSWORD`
-- `PGDATABASE`
-- `PGSSLMODE`
-
-To externalize the _code navigation database_, use the following prefixed `CODEINTEL_PG*` variables:
-
-- `CODEINTEL_PGHOST`
-- `CODEINTEL_PGPORT`
-- `CODEINTEL_PGUSER`
-- `CODEINTEL_PGPASSWORD`
-- `CODEINTEL_PGDATABASE`
-- `CODEINTEL_PGSSLMODE`
-
-> NOTE: ⚠️ If you have configured both the frontend (pgsql) and code navigation (codeintel-db) databases with the same values, the Sourcegraph instance will refuse to start. Each database should either be configured to point to distinct hosts (recommended), or configured to point to distinct databases on the same host.
-
-### sourcegraph/server
-
-Add the following to your `docker run` command:
-
-```
-docker run [...]
--e PGHOST=psql1.mycompany.org
--e PGUSER=sourcegraph
--e PGPASSWORD=secret
--e PGDATABASE=sourcegraph
--e PGSSLMODE=require
--e CODEINTEL_PGHOST=psql2.mycompany.org
--e CODEINTEL_PGUSER=sourcegraph
--e CODEINTEL_PGPASSWORD=secret
--e CODEINTEL_PGDATABASE=sourcegraph-codeintel
--e CODEINTEL_PGSSLMODE=require
-sourcegraph/server:5.3.1
-```
-
-### Docker Compose
-
-1. Add/modify the following environment variables to all of the `sourcegraph-frontend-*` services, the `sourcegraph-frontend-internal` service, and the `migrator` service (for Sourcegraph versions 3.37+) in [docker-compose.yaml](https://github.com/sourcegraph/deploy-sourcegraph-docker/blob/3.37/docker-compose/docker-compose.yaml):
-
-```
- sourcegraph-frontend-0:
- # ...
- environment:
- # ...
- - 'PGHOST=psql1.mycompany.org'
- - 'PGUSER=sourcegraph'
- - 'PGPASSWORD=secret'
- - 'PGDATABASE=sourcegraph'
- - 'PGSSLMODE=require'
- - 'CODEINTEL_PGHOST=psql2.mycompany.org'
- - 'CODEINTEL_PGUSER=sourcegraph'
- - 'CODEINTEL_PGPASSWORD=secret'
- - 'CODEINTEL_PGDATABASE=sourcegraph-codeintel'
- - 'CODEINTEL_PGSSLMODE=require'
- # ...
-```
-
- See [Environment variables in Compose](https://docs.docker.com/compose/environment-variables/) for other ways to pass these environment variables to the relevant services (including from the command line, a `.env` file, etc.).
-
-1. Comment out / remove the internal `pgsql` and `codeintel-db` services in [docker-compose.yaml](https://github.com/sourcegraph/deploy-sourcegraph-docker/blob/3.37/docker-compose/docker-compose.yaml) since Sourcegraph is using the external one now.
-
-```
- # # Description: PostgreSQL database for various data.
- # #
- # # Disk: 128GB / persistent SSD
- # # Ports exposed to other Sourcegraph services: 5432/TCP 9187/TCP
- # # Ports exposed to the public internet: none
- # #
- # pgsql:
- # container_name: pgsql
- # image: 'index.docker.io/sourcegraph/postgres-11.4:19-11-14_b084311b@sha256:072481559d559cfd9a53ad77c3688b5cf583117457fd452ae238a20405923297'
- # cpus: 4
- # mem_limit: '2g'
- # healthcheck:
- # test: '/liveness.sh'
- # interval: 10s
- # timeout: 1s
- # retries: 3
- # start_period: 15s
- # volumes:
- # - 'pgsql:/data/'
- # networks:
- # - sourcegraph
- # restart: always
-
- # # Description: PostgreSQL database for code navigation data.
- # #
- # # Disk: 128GB / persistent SSD
- # # Ports exposed to other Sourcegraph services: 5432/TCP 9187/TCP
- # # Ports exposed to the public internet: none
- # #
- # codeintel-db:
- # container_name: codeintel-db
- # image: 'index.docker.io/sourcegraph/codeintel-db@sha256:63090799b34b3115a387d96fe2227a37999d432b774a1d9b7966b8c5d81b56ad'
- # cpus: 4
- # mem_limit: '2g'
- # healthcheck:
- # test: '/liveness.sh'
- # interval: 10s
- # timeout: 1s
- # retries: 3
- # start_period: 15s
- # volumes:
- # - 'codeintel-db:/data/'
- # networks:
- # - sourcegraph
- # restart: always
-```
-
-### Kubernetes
-
-Update the `PG*` and `CODEINTEL_PG*` environment variables in the `sourcegraph-frontend` deployment YAML file to point to the external frontend (`pgsql`) and code navigation (`codeintel-db`) PostgreSQL instances, respectively. Again, these must not point to the same database or the Sourcegraph instance will refuse to start.
-
-You are then free to remove the now unused `pgsql` and `codeintel-db` services and deployments from your cluster.
-
-### Version requirements
-
-Please refer to our [Postgres](https://docs.sourcegraph.com/admin/postgres) documentation to learn about version requirements.
-
-### Caveats
-
-> NOTE: If your PostgreSQL server does not support SSL, set `PGSSLMODE=disable` instead of `PGSSLMODE=require`. Note that this is potentially insecure.
-
-Most standard PostgreSQL environment variables may be specified (`PGPORT`, etc). See http://www.postgresql.org/docs/current/static/libpq-envars.html for a full list.
-
-> NOTE: On Mac/Windows, if trying to connect to a PostgreSQL server on the same host machine, remember that Sourcegraph is running inside a Docker container inside of the Docker virtual machine. You may need to specify your actual machine IP address and not `localhost` or `127.0.0.1` as that refers to the Docker VM itself.
-
-----
-
-## Usage with AWS RDS IAM Auth
-
-
-
-Experimental
-This method is experimental and may have performance implication. Please reach out to your account team for support.
-
-
-
-For AWS RDS for Postgres, you have the option to use IAM database authentication to avoid using static database credentials. Learn more from [AWS documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.html).
-
-In order to enable IAM Auth, you first need to:
-
-- enabled [IAM authentication on the RDS instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.Enabling.html)
-- created [the database account using IAM authentication](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.DBAccounts.html#UsingWithRDS.IAMDBAuth.DBAccounts.PostgreSQL)
-- created [IAM policy for IAM database access](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.IAMPolicy.html)
-- created IAM roles for your compute workload and grant the role with the above policy
-- ensured your compute resources can assume those IAM roles
- - For EKS (k8s deployment), use [IAM roles for service accounts](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html)
- - For EC2 (docker-compose deployment), use [IAM roles for Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html)
-
-For [every services that require postgres database connection](https://github.com/sourcegraph/sourcegraph/blob/main/lib/servicecatalog/service-catalog.yaml), ensure below environment variables are configured:
-
-- `PG_CONNECTION_UPDATER=EC2_ROLE_CREDENTIALS`
-- `PGSSLMODE=require`
-- `PGHOST=<>`
-- `PGPORT=<>`
-- `PGUSER=<>` - this should be the database accounts created above
-- `PGDATABASE=<>`
-- `CODEINTEL_PGSSLMODE=require`
-- `CODEINTEL_PGPORT=<>`
-- `CODEINTEL_PGUSER=<>` this should be the database accounts created above
-- `CODEINTEL_PGDATABASE=<>`
-- `CODEINSIGHTS_PGSSLMODE=require`
-- `CODEINSIGHTS_PGHOST=<>`
-- `CODEINSIGHTS_PGPORT=<>`
-- `CODEINSIGHTS_PGUSER=<>` this should be the database accounts created above
-- `CODEINSIGHTS_PGDATABASE=<>`
-
-## Usage with PgBouncer
-
-[PgBouncer] is a lightweight connections pooler for PostgreSQL. It allows more clients to connect with the PostgreSQL database without running into connection limits.
-
-When [PgBouncer] is used, we need to include `statement_cache_mode=describe` in the PostgreSQL connection url. This can be done by configuring the `PGDATASOURCE` and `CODEINSIGHTS_PGDATASOURCE` environment variables to `postgres://username:password@pgbouncer.mycompany.com:5432/sg?statement_cache_mode=describe`
-
-### sourcegraph/server
-
-Add the following to your `docker run` command:
-
-docker run [...] -e PGDATASOURCE="postgres://username:password@sourcegraph-pgbouncer.mycompany.com:5432/sg?statement_cache_mode=describe" -e CODEINSIGHTS_PGDATASOURCE="postgres://username:password@sourcegraph-codeintel-pgbouncer.mycompany.com:5432/sg?statement_cache_mode=describe" sourcegraph/server:5.3.1
-
-### Docker Compose
-
-1. Add/modify the following environment variables to all of the `sourcegraph-frontend-*` services, the `sourcegraph-frontend-internal` service, and the `migrator` service (for Sourcegraph versions 3.37+) in [docker-compose.yaml](https://github.com/sourcegraph/deploy-sourcegraph-docker/blob/3.37/docker-compose/docker-compose.yaml):
-
- ```yml
- sourcegraph-frontend-0:
- # ...
- environment:
- # ...
- - 'PGDATASOURCE=postgres://username:password@sourcegraph-pgbouncer.mycompany.com:5432/sg?statement_cache_mode=describe'
- - 'CODEINSIGHTS_PGDATASOURCE=postgres://username:password@sourcegraph-codeintel-pgbouncer.mycompany.com:5432/sg?statement_cache_mode=describe'
- # ...
- ```
-
- See ["Environment variables in Compose"](https://docs.docker.com/compose/environment-variables/) for other ways to pass these environment variables to the relevant services (including from the command line, a `.env` file, etc.).
-
-1. Comment out / remove the internal `pgsql` and `codeintel-db` services in [docker-compose.yaml](https://github.com/sourcegraph/deploy-sourcegraph-docker/blob/3.37/docker-compose/docker-compose.yaml) since Sourcegraph is using the external one now.
-
- ```yml
- # # Description: PostgreSQL database for various data.
- # #
- # # Disk: 128GB / persistent SSD
- # # Ports exposed to other Sourcegraph services: 5432/TCP 9187/TCP
- # # Ports exposed to the public internet: none
- # #
- # pgsql:
- # container_name: pgsql
- # image: 'index.docker.io/sourcegraph/postgres-11.4:19-11-14_b084311b@sha256:072481559d559cfd9a53ad77c3688b5cf583117457fd452ae238a20405923297'
- # cpus: 4
- # mem_limit: '2g'
- # healthcheck:
- # test: '/liveness.sh'
- # interval: 10s
- # timeout: 1s
- # retries: 3
- # start_period: 15s
- # volumes:
- # - 'pgsql:/data/'
- # networks:
- # - sourcegraph
- # restart: always
-
- # # Description: PostgreSQL database for code navigation data.
- # #
- # # Disk: 128GB / persistent SSD
- # # Ports exposed to other Sourcegraph services: 5432/TCP 9187/TCP
- # # Ports exposed to the public internet: none
- # #
- # codeintel-db:
- # container_name: codeintel-db
- # image: 'index.docker.io/sourcegraph/codeintel-db@sha256:63090799b34b3115a387d96fe2227a37999d432b774a1d9b7966b8c5d81b56ad'
- # cpus: 4
- # mem_limit: '2g'
- # healthcheck:
- # test: '/liveness.sh'
- # interval: 10s
- # timeout: 1s
- # retries: 3
- # start_period: 15s
- # volumes:
- # - 'codeintel-db:/data/'
- # networks:
- # - sourcegraph
- # restart: always
- ```
-
-### Kubernetes
-
-Create a new [Secret](https://kubernetes.io/docs/concepts/configuration/secret/) to store the [PgBouncer] credentials.
-
-```yaml
-apiVersion: v1
-kind: Secret
-metadata:
- name: sourcegraph-pgbouncer-credentials
-data:
- # notes: secrets data has to be base64-encoded
- password: ""
-```
-
-```yaml
-apiVersion: v1
-kind: Secret
-metadata:
- name: sourcegraph-codeintel-pgbouncer-credentials
-data:
- # notes: secrets data has to be base64-encoded
- password: ""
-```
-
-Update the environment variables in the `sourcegraph-frontend` deployment YAML.
-
-```yaml
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: sourcegraph-frontend
-spec:
- template:
- spec:
- containers:
- - name: frontend
- env:
- - name: PGDATABASE
- value: sg
- - name: PGHOST
- value: sourcegraph-pgbouncer
- - name: PGPORT
- value: "5432"
- - name: PGSSLMODE
- value: disable
- - name: PGUSER
- value: sg
- - name: PGPASSWORD
- valueFrom:
- secretKeyRef:
- name: sourcegraph-pgbouncer-credentials
- key: password
- - name: PGDATASOURCE
- value: postgres://$(PGUSER):$(PGPASSWORD)@$(PGHOST):$(PGPORT)/$(PGDATABASE)?statement_cache_mode=describe
- - name: CODEINTEL_PGDATABASE
- value: sg-codeintel
- - name: CODEINTEL_PGHOST
- value: sourcegraph-codeintel-pgbouncer.mycompany.com
- - name: CODEINTEL_PGPORT
- value: "5432"
- - name: CODEINTEL_PGSSLMODE
- value: disable
- - name: CODEINTEL_PGUSER
- value: sg
- - name: CODEINTEL_PGPASSWORD
- valueFrom:
- secretKeyRef:
- name: sourcegraph-codeintel-pgbouncer-credentials
- key: password
- - name: CODEINSIGHTS_PGDATASOURCE
- value: postgres://$(CODEINTEL_PGUSER):$(CODEINTEL_PGPASSWORD)@$(CODEINTEL_PGHOST):$(CODEINTEL_PGPORT)/$(CODEINTEL_PGDATABASE)?statement_cache_mode=describe
-```
-
-----
-
-## Postgres Permissions and Database Migrations
-
-There is a tight coupling between the respective database service accounts for the Frontend DB, CodeIntel DB and Sourcegraph [database migrations](/dev/background-information/sql/migrations).
-
-By default, the migrations that Sourcegraph runs expect `SUPERUSER` permissions. Sourcegraph migrations contain SQL that enable extensions and modify roles.
-
-> NOTE: On AWS RDS, you will need to perform the operations below using the `rds_superuser` role because RDS does not grant SUPERUSER privileges to user database accounts.
-
-This may not be acceptable in all environments. At minimum we expect that the `PGUSER` and `CODEINTEL_PGUSER` have the `ALL` permissions on `PGDATABASE` and `CODEINTEL_PGDATABASE` respectively.
-
-`ALL` privileges on the [Database object](https://www.postgresql.org/docs/current/sql-grant.html) include:
- * `SELECT`
- * `INSERT`
- * `UPDATE`
- * `DELETE`
- * `TRUNCATE`
- * `REFERENCES`
- * `TRIGGER`
- * `CREATE`
- * `CONNECT`
- * `TEMPORARY`
- * `EXECUTE`
- * `USAGE`
-
-### Using restricted permissions for pgsql (frontend DB)
-
-> NOTE: For AWS RDS, refer to the note from this [section](#postgres-permissions-and-database-migrations).
-
-Sourcegraph requires some initial setup that requires `SUPERUSER` permissions. A database administrator needs to perform the necessary actions on behalf of Sourcegraph migrations as `SUPERUSER`.
-
-Update these variables to match your deployment of the Sourcegraph _frontend_ database following [the guidance from the instructions section](#instructions). This database is called `pgsql` in the Docker Compose and Kubernetes deployments.
-
-```bash
-PGHOST=psql
-PGUSER=sourcegraph
-PGPASSWORD=secret
-PGDATABASE=sourcegraph
-```
-
-The SQL script below is intended to be run from by a database administrator with `SUPERUSER` priviledges against the Frontend Database. It creates a database, user, and configures necesasry permissions for use by the Sourcegraph _frontend_ services.
-
-```sql
-# Create the application database
-CREATE DATABASE $PGDATABASE;
-
-# Create the application service user
-CREATE USER $PGUSER with encrypted password '$PGPASSWORD';
-
-# Give the application service permissions to the application database
-GRANT ALL PRIVILEGES ON DATABASE $PGDATABASE to $PGUSER;
-
-# Select the application database
-\c $PGDATABASE;
-
-# Install necessary extensions
-CREATE extension citext;
-CREATE extension hstore;
-CREATE extension pg_stat_statements;
-CREATE extension pg_trgm;
-CREATE extension pgcrypto;
-CREATE extension intarray;
-```
-
-After the database is configured, Sourcegraph will attempt to run migrations. There are a few migrations that may fail as they attempt to run actions that require `SUPERUSER` permissions.
-
-These failures must be interpreted by the database administrator and resolved using guidance from [How to Troubleshoot a Dirty Database](https://docs.sourcegraph.com/admin/how-to/dirty_database). Generally-speaking this will involve looking up the migration source code and manually applying the necessary SQL code.
-
-**Initial Schema Creation**
-
-The first migration fails since it attempts to add `COMMENT`s to installed extensions. You may see the following error message:
-
-```
-failed to run migration for schema "frontend": failed upgrade migration 1528395834: ERROR: current transaction is aborted, commands ignored until end of transaction block (SQLSTATE 25P02)
-```
-
-In this case, locate the UP [migration 1528395834](https://github.com/sourcegraph/sourcegraph/blob/main/migrations/frontend/1528395834_squashed_migrations.up.sql) and apply all SQL after the final `COMMENT ON EXTENSION` command following the [dirty database procedure](https://docs.sourcegraph.com/admin/how-to/dirty_database).
-
-**Dropping the `sg_service` role**
-
-The `sg_service` database role is a legacy role that should be removed from all Sourcegraph installations at this time. Migration `remove_sg_service_role` attempts to enforce this with a `DROP ROLE` command. The `PGUSER` does not have permissions to perform this action, therefore the migration fails. You can safely skip this migration.
-
-----
-
-### Using restricted permissions for CodeIntel DB
-
-> NOTE: For AWS RDS, refer to the note from this [section](#postgres-permissions-and-database-migrations).
-
-CodeIntel requires some initial setup that requires `SUPERUSER` permissions. A database administrator needs to perform the necessary actions on behalf of Sourcegraph migrations as `SUPERUSER`.
-
-```bash
-CODEINTEL_PGHOST=psql2
-CODEINTEL_PGUSER=sourcegraph
-CODEINTEL_PGPASSWORD=secret
-CODEINTEL_PGDATABASE=sourcegraph-codeintel
-CODEINTEL_PGSSLMODE=require
-```
-
-The SQL script below is intended to be run from by a database administrator with `SUPERUSER` priviledges against the CodeIntel Database. It creates a database, user, and configures necesasry permissions for use by the Sourcegraph _frontend_ services.
-
-```sql
-# Create the CodeIntel database
-CREATE DATABASE $CODEINTEL_PGDATABASE;
-
-# Create the CodeIntel service user
-CREATE USER $CODEINTEL_PGUSER with encrypted password '$CODEINTEL_PGPASSWORD';
-
-# Give the CodeIntel permissions to the application database
-GRANT ALL PRIVILEGES ON DATABASE $CODEINTEL_PGDATABASE to $CODEINTEL_PGUSER;
-
-# Select the application database
-\c $CODEINTEL_PGDATABASE;
-
-# Install necessary extensions
-CREATE extension citext;
-CREATE extension hstore;
-CREATE extension pg_stat_statements;
-CREATE extension pg_trgm;
-CREATE extension pgcrypto;
-CREATE extension intarray;
-```
-After the database is configured, Sourcegraph will attempt to run migrations, this time using the CodeIntel DB. There are a few migrations that may fail as they attempt to run actions that require `SUPERUSER` permissions.
-
-These failures must be intepreted by the database administrator and resolved using guidance from [How to Troubleshoot a Dirty Database](https://docs.sourcegraph.com/admin/how-to/dirty_database). Generally-speaking this will involve looking up the migration source code and manually applying the necessary SQL code. The `codeintel_schema_migrations` table should be consulted for dirty migrations in this case.
-
-**Initial CodeIntel schema creation**
-
-Like the failure in the Sourcegraph DB (pgsql) migrations, the CodeIntel initial migration attempts to `COMMENT` on an extension. Resolve this in a similar manner by executing the SQL in the `1000000015_squashed_migrations.up` migration after the `COMMENT` SQL statement.
-
-The following error is a nudge to check the `codeintel_schema_migrations` table in `$CODEINTEL_PGDATABASE`.
-
-```
-Failed to connect to codeintel database: 1 error occurred:
- * dirty database: schema is marked as dirty but no migrator instance appears to be running
-
-The target schema is marked as dirty and no other migration operation is seen running on this schema. The last migration operation over this schema has failed (or, at least, the migrator instance issuing that migration has died). Please contact support@sourcegraph.com for further assistance.
-```
-
-[pgbouncer]: https://www.pgbouncer.org/
diff --git a/docs/versioned/5.2/admin/external_services/redis.mdx b/docs/versioned/5.2/admin/external_services/redis.mdx
deleted file mode 100644
index 8e0f5f8ae..000000000
--- a/docs/versioned/5.2/admin/external_services/redis.mdx
+++ /dev/null
@@ -1,28 +0,0 @@
-# Using your own Redis server
-
-**Version requirements**: We support any version *starting from 6.2*. Redis Cluster and Redis Sentinel are not supported.
-
-Generally, there is no reason to do this as Sourcegraph only stores ephemeral cache and session data in Redis. However, if you want to use an external Redis server with Sourcegraph, you can follow the deployment specific guidance below:
-
-## Single-container
-Add the `REDIS_ENDPOINT` environment variable to your `docker run` command and Sourcegraph will use that Redis server instead of its built-in one. The string must either have the format `$HOST:PORT`
-or follow the [IANA specification for Redis URLs](https://www.iana.org/assignments/uri-schemes/prov/redis) (e.g., `redis://:mypassword@host:6379/2`). For example:
-
-```
-docker run [...]
- -e REDIS_ENDPOINT=redis.mycompany.org:6379
- sourcegraph/server:5.3.1
-```
-
-> NOTE: On Mac/Windows, if trying to connect to a Redis server on the same host machine, remember that Sourcegraph is running inside a Docker container inside of the Docker virtual machine. You may need to specify your actual machine IP address and not `localhost` or `127.0.0.1` as that refers to the Docker VM itself.
-
-If using Docker for Desktop, `host.docker.internal` will resolve to the host IP address.
-
-## Kubernetes
-
-### Kubernetes with Helm
-[See the Helm Redis guidance here](/admin/deploy/kubernetes/helm#using-external-redis-instances)
-
-### Kubernetes without Helm
-- See our documentation for Kubernetes [here](/admin/deploy/kubernetes/configure#external-redis)
- - **Related:** [How to Set a Password for Redis using a ConfigMap](/admin/how-to/redis_configmap)
diff --git a/docs/versioned/5.2/admin/faq.mdx b/docs/versioned/5.2/admin/faq.mdx
deleted file mode 100644
index aab9b8e18..000000000
--- a/docs/versioned/5.2/admin/faq.mdx
+++ /dev/null
@@ -1,120 +0,0 @@
-# Administration FAQ
-
-## How does Sourcegraph store repositories on disk?
-
-Sourcegraph stores bare Git repositories (without a working tree), which is a complete mirror of the repository on your code host.
-
-If you are keen for more details on what bare Git repositories are, [check out this discussion on StackOverflow](https://stackoverflow.com/q/5540883).
-
-The directories should contain just a few files and directories, namely: HEAD, config, description, hooks, info, objects, packed-refs, refs
-
-## Does Sourcegraph support svn?
-
-For Subversion and other non-Git code hosts, the recommended way to make these accessible in
-Sourcegraph is through [`src-expose`](/admin/external_service/other#experimental-src-expose).
-
-Alternatively, you can use [`git-svn`](https://git-scm.com/docs/git-svn) or
-[`svg2git`](https://github.com/svn-all-fast-export/svn2git) to convert Subversion repositories to
-Git repositories. Unlike `src-expose`, this will preserve commit history, but is generally much
-slower.
-
-## How do I access Sourcegraph if my authentication provider experiences an outage?
-
-If you are using an external authentication provider and the provider experiences an outage, users
-will be unable to sign into Sourcegraph. A site administrator can configure an alternate sign-in
-method by modifying the `auth.providers` field in site configuration. However, the site
-administrator may themselves be unable to sign in. If this is the case, then a site administrator
-can update the configuration if they have direct `docker exec` or `kubectl exec` access to the
-Sourcegraph instance. Follow the [instructions to update the site config if the web UI is
-inaccessible](/admin/config/site_config#editing-your-site-configuration-if-you-cannot-access-the-web-ui).
-
-## How do I set up redirect URLs in Sourcegraph?
-
-Sometimes URLs in Sourcegraph may change. For example, if a code host configuration is
-updated to use a different `repositoryPathPattern`, this will change the repository URLs on
-Sourcegraph. Users may wish to preserve links to the old URLs, and this requires adding redirects.
-
-We recommend configuring redirects in a reverse proxy. If you are running Sourcegraph as a single
-Docker image, you can deploy a reverse proxy such as [Caddy](https://caddyserver.com/) or
-[NGINX](https://www.nginx.com) in front of it. Refer to the
-[Caddy](https://github.com/caddyserver/caddy/wiki/v2:-Documentation#rewrite) or
-[NGINX](https://www.nginx.com/blog/creating-nginx-rewrite-rules/) documentation for URL rewrites.
-
-If you are running Sourcegraph as a Kubernetes cluster, you have two additional options:
-
-1. If you are using [NGINX
- ingress](https://github.com/sourcegraph/deploy-sourcegraph/blob/master/docs/configure#ingress-controller)
- (`kubectl get ingress | grep sourcegraph-frontend`), modify
- [`sourcegraph-frontend.Ingress.yaml`](https://github.com/sourcegraph/deploy-sourcegraph/blob/master/base/frontend/sourcegraph-frontend.Ingress.yaml)
- by [adding a rewrite rule](https://kubernetes.github.io/ingress-nginx/examples/rewrite/).
-
-## What external HTTP checks are configured?
-
-We leave the choice of which external HTTP check monitor up to our users. What we provide out-of-the-box is extensive metrics monitoring through Prometheus and Grafana, with builtin alert thresholds and dashboards, and Kubernetes/Docker HTTP health checks which verify that the server is running. Sourcegraph's frontend has a default health check at
-https://$SOURCEGRAPH_BASE_URL/healthz. Some users choose to set up their own external HTTP health checker which tests if the homepage loads, a repository page loads, and if a search GraphQL request returns successfully.
-
-## Monitoring
-
-Please visit our [Observability Docs](https://docs.sourcegraph.com/admin/observability) for more in-depth information about observability in Sourcegraph.
-
-### What should I look at when my instance is having performance issues?
-
-Sourcegraph comes with built-in monitoring in the form of [Grafana](https://docs.sourcegraph.com/admin/observability/metrics#grafana), connected to [Prometheus](https://docs.sourcegraph.com/admin/observability/metrics#prometheus) for metrics and alerting.
-
-Generally, Grafana should be the first stop you make when experiencing a system performance issue. From there you can look for system alerts or metrics that would provide you with more insights on what’s causing the performance issue. You can learn more about [accessing Grafana here](https://docs.sourcegraph.com/admin/observability/metrics#grafana).
-
-### What are the key values/alerts to look for when looking at the Grafana Dashboard?
-
-Please refer to the [Dashboards](https://docs.sourcegraph.com/admin/observability/metrics#dashboards) guide for more on how to use our Grafana dashboards.
-
-Please refer to [Understanding alerts](https://docs.sourcegraph.com/admin/observability/alerting#understanding-alerts) for examples and suggested actions for alerts.
-
-### How do I know when more resources are needed for a specified service?
-
-All resource dashboards contain a section called `Provisioning indicators` that provide information about the current resource usage of containers. These can be used to determine if a scale-up is needed ([example panel](https://docs.sourcegraph.com/admin/observability/dashboards#frontend-provisioning-container-cpu-usage-long-term)).
-
-More information on each available panel in the dashboards is available in the [Dashboards reference](/admin/observability/dashboards).
-
-### What does this `` mean?
-
-See [Alert solutions](/admin/observability/alerts) to learn about each alert and their possible solutions.
-
-### What’s the threshold for each resource?
-
-All resources dashboards contain a section called `Container monitoring` that indicate thresholds at which alerts will fire for each resource ([example alert](https://docs.sourcegraph.com/admin/observability/alerts#frontend-container-cpu-usage)).
-
-More information on each available panel in the dashboards is available in the [Dashboards reference](/admin/observability/dashboards).
-
-### How much resources should I add after receiving alerts about running out of resources?
-
-You should make the decision based on the metrics from the relevant Grafana dashboard linked in each alert.
-
-### What are some of the important alerts that I should be aware of?
-
-We recommend paying closer attention to [critical alerts](https://docs.sourcegraph.com/admin/observability/alerting#understanding-alerts).
-
-### How do I set up alerts?
-
-Please refer to our guide on [setting up alerting](https://docs.sourcegraph.com/admin/observability/alerting#setting-up-alerting).
-
-### How do I create a custom alert?
-
-Creating a custom alert is not recommended and currently not supported by Sourcegraph. However, please provide feedback on the monitoring dashboards and alerts if you find anything could be improved via our issue tracker.
-
-More advanced users can also refer to [our FAQ item about custom consumption of Sourcegraph metrics](#can-i-consume-sourcegraph-s-metrics-in-my-own-monitoring-system-datadog-new-relic-etc).
-
-### Can I consume Sourcegraph's metrics in my own monitoring system (Datadog, New Relic, etc.)?
-
-Sourcegraph provides [high-level alerting metrics](/admin/observability/metrics#high-level-alerting-metrics) which you can integrate into your own monitoring system—see the [alerting custom consumption guide](/admin/observability/alerting_custom_consumption) for more details.
-
-While it is technically possible to consume all of Sourcegraph's metrics in an external system, our recommendation is to utilize the builtin monitoring tools and configure Sourcegraph to [send alerts to your own PagerDuty, Slack, email, etc.](/admin/observability/alerting). Metrics and thresholds can change with each release, therefore manually defining the alerts required to monitor Sourcegraph's health is not recommended. Sourcegraph automatically updates the dashboards and alerts on each release to ensure the displayed information is up-to-date.
-
-Other monitoring systems that support Prometheus scraping (for example, Datadog and New Relic) or [Prometheus federation](https://prometheus.io/docs/prometheus/latest/federation/) can be configured to federate Sourcegraph's [high-level alerting metrics](/admin/observability/metrics#high-level-alerting-metrics). For information on how to configure those systems, please check your provider's documentation.
-
-### I am getting "Error: Cluster information not available" in the Instrumentation page, what should I do?
-
-This error is expected if your instance was not [deployed with Kubernetes](/admin/deploy/kubernetes/). The Instrumentation page is currently only available for Kubernetes instances.
-
-## Troubleshooting
-
-Please refer to our [dedicated troubleshooting page](/admin/troubleshooting).
diff --git a/docs/versioned/5.2/admin/how-to/blobstore_debugging.mdx b/docs/versioned/5.2/admin/how-to/blobstore_debugging.mdx
deleted file mode 100644
index 72e6d8e6d..000000000
--- a/docs/versioned/5.2/admin/how-to/blobstore_debugging.mdx
+++ /dev/null
@@ -1,94 +0,0 @@
-# Blobstore debugging tips
-
-If you recently updated to Sourcegraph v4.2.1+, please be sure to look at the [blobstore update notes](/admin/how-to/blobstore_update_notes)
-
-This page provides more tips on debugging why blobstore may not be working properly.
-
-**Please feel free to contact support@sourcegraph.com** if you are encountering any issues and we can help you work through debugging steps.
-
-## Can I disable blobstore?
-
-Today, Sourcegraph uses blobstore for storing precise code intel (LSIF/SCIP) uploads. You can also configure Sourcegraph to use [S3 or GCS for object storage](/admin/external_services/object_storage) if you prefer.
-
-In the near future, other Sourcegraph features like Batch Changes may also rely on object storage and so, if possible, it's best to make sure it is working.
-
-## How to check blobstore is working as expected
-
-First, grab a root shell into the container, for example in a Docker Compose deployment:
-
-```
-docker exec -u 0 -it blobstore sh
-```
-
-or in a Kubernetes deployment:
-
-```
-kubectl exec -it deployment/blobstore -- sh
-```
-
-Then, try manually creating a bucket by running a curl request like this:
-
-```
-curl -i -X PUT http://127.0.0.1:9000/create-bucket-test-attempt1
-```
-
-You should see a `200 OK` success like this:
-
-```
-HTTP/1.1 200 OK
-Date: Mon, 09 Jan 2023 20:41:49 GMT
-x-amz-request-id: 4442587FB7D0A2F9
-Location: /create-bucket-test-attempt1
-Content-Length: 0
-Server: Jetty(11.0.11)
-```
-
-* If that succeeds -> you are good to go and blobstore is working as expected!
-* If that fails, check file permissions using the following steps.
-
-## Checking file permissions
-
-From a shell inside the container, you can run `ls -lah /data` to check the file permissions, look for the `lsif-uploads` line:
-
-```
-total 16K
-drwxr-xr-x 4 sourcegr sourcegr 4.0K Jan 9 20:41 .
-drwxr-xr-x 1 root root 4.0K Jan 9 20:29 ..
-drwxr-x--x 2 sourcegr sourcegr 4.0K Jan 9 20:41 create-bucket-test-attempt1
-drwxr-x--x 2 sourcegr sourcegr 4.0K Dec 5 22:36 lsif-uploads
-```
-
-Notice how the owner and group are `sourcegraph` - if this is shown on the `lsif-uploads` folder then you are good to go! Otherwise, you may need to correct the file permissions manually:
-
-```sh
-sudo chown -R 100:101 /data
-```
-
-## Checking frontend -> blobstore connectivity
-
-If blobstore appears to be working fine according to all of the above, but you are still experiencing some issue, you may also check that the `frontend` container is able to talk to `blobstore` over the network. For example, by acquiring a root shell in a `sourcegraph-frontend` container and using `curl`:
-
-```
-docker exec -u 0 -it sourcegraph-frontend-internal sh
-```
-or
-
-```
-kubectl exec -it -u 0 sourcegraph-frontend-internal sh
-```
-
-
-```
-curl -i http://blobstore:9000/
-```
-
-You should see a 200 response like:
-
-```
-HTTP/1.1 200 OK
-Date: Mon, 09 Jan 2023 20:47:32 GMT
-x-amz-request-id: 4442587FB7D0A2F9
-Content-Type: application/xml;charset=utf-8
-Transfer-Encoding: chunked
-Server: Jetty(11.0.11)
-```
diff --git a/docs/versioned/5.2/admin/how-to/blobstore_update_notes.mdx b/docs/versioned/5.2/admin/how-to/blobstore_update_notes.mdx
deleted file mode 100644
index 9cae3e2b0..000000000
--- a/docs/versioned/5.2/admin/how-to/blobstore_update_notes.mdx
+++ /dev/null
@@ -1,45 +0,0 @@
-# Sourcegraph 4.2.1+ blobstore update notes
-
-In Sourcegraph versions 4.2.1+ and 4.3+, `minio` object storage has been replaced with `sourcegraph/blobstore`. **No migration is required for most deployment types.**
-
-## About the change
-
-Sourcegraph is committed to only distributing open-source software that is permitted by other industry leaders, and prohibits the use of all software licenses [not allowed at Google](https://opensource.google/documentation/reference/thirdparty/licenses#banned).
-
-As a result, Sourcegraph v4.2.1+ and v4.3+ no longer use or distribute _any_ minio or AGPL-licensed software.
-
-If your Sourcegraph instance is already configured to use [external object storage](/admin/external_services/object_storage), or you use `DISABLE_MINIO=true` in `sourcegraph/server` deployments, then this change should not affect you (there would already be no Minio software running as part of Sourcegraph). It is also safe to remove any minio specific env variables from your deployment.
-
-**If you are on running a proxy with the `NO_PROXY` env variable, you'll need to make sure that minio is removed from this list, and blobstore is added.**
-
-If you have any questions or concerns, please reach out to us via support@sourcegraph.com and we'd be happy to help.
-
-## If you use Kubernetes + Helm
-
-To update a Helm deployment, simply replace `minio` with `blobstore` in your Helm override YAML file (if present). For example:
-
-```diff
--minio:
-+blobstore:
- enabled: false # Disable deployment of the built-in object storage
-```
-
-## If you use `sourcegraph/server`
-
-We are aware of an issue in `sourcegraph/server` which will be fixed in v4.3 (scheduled to be released Dec 15th.)
-
-You may initially encounter an error like:
-
-```
-failed to create bucket: operation error S3: CreateBucket, retry quota exceeded, 0 available, 5 requested
-```
-
-If you do encounter this, you may try simply running the container again (the 2nd time the file permissions are usually fixed.)
-
-To avoid this error during upgrade, please manually correct the permissions of the data directory. For example if you use the standard `--volume` commands like `--volume ~/.sourcegraph/config:/etc/sourcegraph`, then you may run:
-
-```
-mkdir -p ~/.sourcegraph/data/blobstore && sudo chown -R 100:101 ~/.sourcegraph/data/blobstore
-```
-
-After this the container should start without error.
diff --git a/docs/versioned/5.2/admin/how-to/clear_codeintel_data.mdx b/docs/versioned/5.2/admin/how-to/clear_codeintel_data.mdx
deleted file mode 100644
index 8fc4328f6..000000000
--- a/docs/versioned/5.2/admin/how-to/clear_codeintel_data.mdx
+++ /dev/null
@@ -1,75 +0,0 @@
-# Clearing code intelligence data
-
-Clear all precise code intelligence data from your instance and start fresh.
-
-## Clearing the `frontend` database
-
-The following commands assume a connection to the `frontend` database. Refer to our guide on [`psql`](/admin/how-to/run-psql) if you do not use an [external database](/admin/external_services/).
-
-If you are clearing **all** code intelligence data, then you will need to clear the metadata information in the frontend database. This will clear the high-level information about code intelligence indexes, but the raw data will remain in the `codeintel-db` database, which will also need to be cleared (see the next section).
-
-```sql
-BEGIN;
-TRUNCATE
- lsif_uploads,
- lsif_uploads_audit_logs,
- lsif_uploads_reference_counts,
- codeintel_commit_dates,
- lsif_packages,
- lsif_references,
- lsif_nearest_uploads,
- lsif_nearest_uploads_links,
- lsif_uploads_visible_at_tip,
- lsif_dirty_repositories
- CASCADE;
-COMMIT;
-```
-
-## Clearing the `codeintel-db` database
-
-The following commands assume a connection to the `codeintel-db` database. Refer to our guide on [`psql`](/admin/how-to/run-psql) if you do not use an [external database](/admin/external_services/).
-
-### Clearing LSIF data
-
-Truncate the following tables to clear all LSIF-encoded information from the database. This command can be run when clearing **all** data from the instance, in which case the associated records in the `frontend` database must also be cleared.
-
-This command can also be run after a completed [migration from LSIF to SCIP](/admin/how-to/lsif_scip_migration), in which case these tables should be empty but may retain a number of blocks containing a large number of dead tuples. Truncating these _empty_ tables acts like a `VACUUM FULL` and releases the previously used disk space.
-
-```sql
-BEGIN;
-TRUNCATE
- lsif_data_metadata,
- lsif_data_documents,
- lsif_data_documents_schema_versions,
- lsif_data_result_chunks,
- lsif_data_definitions,
- lsif_data_definitions_schema_versions,
- lsif_data_references,
- lsif_data_references_schema_versions,
- lsif_data_implementations,
- lsif_data_implementations_schema_versions,
- codeintel_last_reconcile
- CASCADE;
-COMMIT;
-```
-
-### Clearing SCIP data
-
-Truncate the following tables to clear all SCIP-encoded information from the database. Only run this command if you clearing **all** data from the instance, in which case the associated records in the `frontend` database must also be cleared.
-
-```sql
-BEGIN;
-TRUNCATE
- codeintel_scip_metadata,
- codeintel_scip_documents,
- codeintel_scip_documents_schema_versions,
- codeintel_scip_document_lookup,
- codeintel_scip_document_lookup_schema_versions,
- codeintel_scip_documents_dereference_logs,
- codeintel_scip_symbols,
- codeintel_scip_symbols_schema_versions,
- codeintel_scip_symbol_names,
- codeintel_last_reconcile
- CASCADE;
-COMMIT;
-```
diff --git a/docs/versioned/5.2/admin/how-to/converting-version-contexts-to-search-contexts.mdx b/docs/versioned/5.2/admin/how-to/converting-version-contexts-to-search-contexts.mdx
deleted file mode 100644
index 1b15cb654..000000000
--- a/docs/versioned/5.2/admin/how-to/converting-version-contexts-to-search-contexts.mdx
+++ /dev/null
@@ -1,44 +0,0 @@
-# How to convert version contexts to search contexts
-
-This guide will provide steps for migrating from [version contexts](/code-search/features#version-contexts-sunsetting) to [search contexts](/code-search/features#search-contexts) on your private Sourcegraph instance.
-
-## Prerequisites
-
-* This document assumes that you have already configured version contexts in your site configuration.
-* Search contexts and search context management are enabled in global settings.
-
-Site admins can enable search contexts on private Sourcegraph instances in **global settings** using the following:
-
-```json
-"experimentalFeatures": {
- "showSearchContext": true,
-}
-```
-
-**Note**: While version contexts are located in the site configuration, search contexts are enabled through the global settings.
-
-Reload after saving changes to see search contexts enabled.
-
-## Steps to convert version contexts to search contexts
-
-1. Log in to your private Sourcegraph instance as a site admin.
-2. Navigate to `https://your_sourcegraph_instance.com/contexts`.
-3. Press `Convert version contexts`. A list of [existing version contexts](/code-search/features#version-contexts-sunsetting) found in the site configuration will be shown.
-4. Convert either all version contexts at once, or specific individual version contexts as desired.
-5. Navigate back to `https://your_sourcegraph_instance.com/contexts`. Converted version contexts will be listed.
-
-Converted search contexts can be used immediately by users on the Sourcegraph instance. The contexts selector will be shown in the search input.
-
-## Discontinuing use of version contexts on your private Sourcegraph instance
-
-Once desired existing version contexts have been converted into search contexts, we recommend discontinuing use of version contexts.
-
-To discontinue use of version contexts:
-
-1. Navigate to your site configuration.
-2. Locate `experimentalFeatures.versionContexts` in the site configuration, and remove the `versionContexts` object and all of its contents.
-3. Save changes.
-
-After removing version contexts from the site configuration, reload the page. The version contexts UI dropdown will no longer be shown in the search input.
-
-**Note:** Once version contexts are removed from site configuration, they will no longer be available for use or conversion into search contexts.
diff --git a/docs/versioned/5.2/admin/how-to/dirty_database.mdx b/docs/versioned/5.2/admin/how-to/dirty_database.mdx
deleted file mode 100644
index 3f1adef7c..000000000
--- a/docs/versioned/5.2/admin/how-to/dirty_database.mdx
+++ /dev/null
@@ -1,120 +0,0 @@
-# How to troubleshoot a dirty database
-
-> NOTE: If you are on a version **strictly lower than** Sourcegraph 3.37.0, see the [legacy dirty database documentation](/admin/how-to/dirty_database_pre_3_37). The following documentation applies only to Sourcegraph instances version 3.37.0 and above.
-
-This document will take you through how to resolve a 'dirty database' error.
-
-During instance startup, the `migrator` process will run any schema migrations necessary to bring the database up to the shape the code expects. If an error is encountered during this startup sequence or a multi-version upgrade, or if execution of either actions were interrupted, the schema will be marked as dirty and will require some form of user intervention.
-
-Such an error will look something like this:
-
-```log
-INFO[02-08|00:40:55] Checked current version
- schema=frontend
- appliedVersions=[1528395834 1528395835 ... 1528395970 1528395971]
- pendingVersions=[1644515056]
- failedVersions=[]
- error: 1 error occurred:
- * dirty database: schema "frontend" marked the following migrations as failed: 1644515056
-
-The target schema is marked as dirty and no other migration operation is seen running on this schema. The last migration operation over this schema has failed (or, at least, the migrator instance issuing that migration has died). Please contact support@sourcegraph.com for further assistance.
-```
-
-## Prerequisites
-
-* This document assumes that you are installing Sourcegraph or were attempting an upgrade when an error occurred.
-* **NOTE: If you encountered this error during an upgrade, ensure you followed the [proper step upgrade process documented here.](https://docs.sourcegraph.com/admin/updates) If you skipped a minor version during an upgrade, you will need to revert back to the last minor version your instance was on before following the steps in this document.**
-
-The following procedure requires that you are able to execute commands from inside the database container. Learn more about shelling into [kubernetes](/admin/deploy/kubernetes/operations#access-the-database), [docker-compose](/admin/deploy/docker-compose/#access-the-database), and [Sourcegraph single-container](/admin/deploy/docker-single-container/#access-the-database) instances at these links.
-
-## Steps to resolve
-
-### 0. Attempt re-application
-
-Some classes of errors can be successfully retried via a manual invocation of the failed `migrator` command. If the previous operation was interrupted due to a network issue, a timeout, or a crashed/restarted database host, or if the error that occurred was due to a transient error such as a SQL deadlock, then re-application of the migration is likely to succeed.
-
-When [re-running the migrator](/admin/updates/migrator/migrator-operations), add the optional flag `--ignore-single-dirty-log` to attempt re-application of a previously failed migration, and add the optional flag `--ignore-single-pending-log` to to attempt re-application of a migration which was never completed by a previous invocation of the `migrator`. Both flags apply to the `migrator` commands `up`, `upto`, `downto`, `upgrade`, and `downgrade`. These flags only allow re-application of the **next** migration in the sequence (and multiple sequential failures will require multiple invocations).
-
-**DO NOT** set either of these flags permanently on a `migrator` attached as an init container (in Kubernetes) or as a dependent container (in Docker Compose), as it may allow mutation of the database schema with non-mutual access. Concurrent modification may result in greater error frequency (at best) and data corruption (at worst). These flags should only be used on a manual invocation of a `migrator` command.
-
-### 1. Identify incomplete migration
-
-_First, some background:_
-
-When migrations run, the `migration_logs` table is updated. Before each migration attempt, a new row is inserted indicating the migration version and direction and the start time. Once the migration is complete (or fails), the row is updated with the finished time and message with details about any error that occurred.
-
-A failed migration may have explicitly failed due to a SQL/environment error, which allowed the migrator instance to write an error message to the `migration_logs` table. A failed migration may also be left _pending_ if the migrator instance running that migration has disappeared. To handle this case, the validation mechanism that runs on app startup will wait for running migrators to complete their current work. If we do not detect a migrator instance performing any work, we'll correctly interpret those migration logs as implicitly failed. The following example does just this (note the values of the `pendingVersions` and `failedVersions` log fields).
-
-_End background!_
-
-In order to identify the migration that needs to be run, note the particular versions called out by the error message in the `migrator` or one of the application servers on startup.
-
-```
-INFO[02-08|00:40:55] Checked current version
- schema=frontend
- appliedVersions=[1528395834 1528395835 ... 1528395970 1528395971]
- pendingVersions=[1644515056]
- failedVersions=[]
- error: 1 error occurred:
- * dirty database: schema "frontend" marked the following migrations as failed: 1644515056
-
-The target schema is marked as dirty and no other migration operation is seen running on this schema. The last migration operation over this schema has failed (or, at least, the migrator instance issuing that migration has died). Please contact support@sourcegraph.com for further assistance.
-```
-
-In this example, we need to re-apply the migration `1644515056` on the `frontend` schema, which is explicitly called out in the error message. **We'll note this number for use in step 2.**
-
-The `migration_logs` table can also be queried directly. The following query gives an overview of the most recent migration attempts broken down by version.
-
-```sql
-WITH ranked_migration_logs AS (
- SELECT
- migration_logs.*,
- ROW_NUMBER() OVER (PARTITION BY schema, version ORDER BY started_at DESC) AS row_number
- FROM migration_logs
-)
-SELECT *
-FROM ranked_migration_logs
-WHERE row_number = 1
-ORDER BY version
-```
-
-### 2. Run the sql queries to finish incomplete migrations
-
-Migration definitions for each database schema can be found in the children of the [`migrations/` directory](https://github.com/sourcegraph/sourcegraph/tree/main/migrations).
-
-**Find the target migration with the version number identified in [step 1](#1-identify-incomplete-migration)**.
-
-**Run the code from the identified `/up.sql` file explicitly using the `psql` CLI**. For example, if we take `version=1644515056` as an example, we can run the contents of [up migration file](https://github.com/sourcegraph/sourcegraph/blob/b20107113548ed7eeb8ba22d1fdb41e8d692cf18/migrations/frontend/1644515056/up.sql) via psql.
-
-```bash
-$ psql -h ... -U sg
-sg@sourcegraph > BEGIN;
-
-ALTER TABLE IF EXISTS org_invitations ALTER COLUMN recipient_user_id DROP NOT NULL;
-ALTER TABLE IF EXISTS org_invitations
- ADD CONSTRAINT either_user_id_or_email_defined CHECK ((recipient_user_id IS NULL) != (recipient_email IS NULL));
-
-COMMIT;
-Time: 0.283 ms
-Time: 32.646 ms
-Time: 25.477 ms
-Time: 0.762 ms
-```
-
-It’s possible that one or more commands from the migration ran successfully already. In these cases you may need to run the sql transaction in pieces. For example if a migration file creates multiple indexes and one index already exists you'll need to manually run this transaction skipping that line or adding `IF NOT EXISTS` to the transaction.
-
-If you're running into errors such as being unable to create a unique index due to duplicate values, please contact support at `mailto:support@sourcegraph.com` or via your enterprise support channel for further assistance. There may be other error cases that don't have an easy admin-only resolution, in these cases please contact us for engineering support.
-
-### 3. Add a migration log entry
-
-**Ensure the migration applied, then signal that the migration has been run**. Run the `migrator` instance against your database to create an explicit migration log. For the following, consult the [Kubernetes](/admin/updates/migrator/migrator-operations#kubernetes), [Docker-compose](/admin/updates/migrator/migrator-operations#docker--docker-compose), or [local development](/admin/updates/migrator/migrator-operations#local-development) instructions on how to manually run database operations. The specific migrator command to run is:
-
-- For Kubernetes: replace container args with `["add-log", "-db=", "-version="]`
-- For Docker-compose: replace container args with `"add-log" "-db=" "-version="`
-- For local development: run `sg add-log -db= -version=` in a clone of [sourcegraph/sourcegraph](https://github.com/sourcegraph/sourcegraph)
-
-Adding this migration log entry indicates to future migrator and application instances that a complete application of the migration at that version has been run.
-
-**Do not mark the migration table as clean if you have not verified that the migration was successfully completed.** Checking to see if a migration ran successfully requires looking at the migration’s `sql` file, and verifying that `sql` queries contained in the migration file have been applied to tables in the database. You can get a description of a table and its associated indexes quickly using the `\d ` `psql` shell command (note lack of semicolon). Using this information, you can determine whether a table exists, what columns it contains, and what indexes on it exist. Use this information to determine if commands in a migration ran successfully before adding a migration log entry.
-
-**Start Sourcegraph again and any remaining migrations should apply automatically, otherwise repeat this procedure again starting from the [Identify incomplete migration](#1-identify-incomplete-migration) step.**
diff --git a/docs/versioned/5.2/admin/how-to/dirty_database_pre_3_37.mdx b/docs/versioned/5.2/admin/how-to/dirty_database_pre_3_37.mdx
deleted file mode 100644
index bd6a3db5b..000000000
--- a/docs/versioned/5.2/admin/how-to/dirty_database_pre_3_37.mdx
+++ /dev/null
@@ -1,99 +0,0 @@
-# How to troubleshoot a dirty database
-
-> NOTE: This document refers to Sourcegraph instances with a version **strictly lower than** 3.37.0. For instructions on dealing with a dirty database for newer Sourcegraph instances, see [the updated documentation](/admin/how-to/dirty_database).
-
-This document will take you through how to resolve a 'dirty database' error. During an upgrade, the `pgsql`, `codeintel-db`, and `codeinsights-db` databases must be migrated. If the upgrade was interrupted during the migration, this can result in a 'dirty database' error.
-
-The error will look something like this:
-
-```log
-ERROR: Failed to migrate the DB. Please contact support@sourcegraph.com for further assistance: Dirty database version 1528395797. Fix and force version.
-```
-Resolving this error requires discovering which migration file failed to run, and manually attempting to run that migration.
-
-## Prerequisites
-
-* This document assumes that you are installing Sourcegraph or were attempting an upgrade when an error occurred.
-* **NOTE: If you encountered this error during an upgrade, ensure you followed the [proper step upgrade process documented here.](https://docs.sourcegraph.com/admin/updates) If you skipped a minor version during an upgrade, you will need to revert back to the last minor version your instance was on before following the steps in this document.**
-
-The following procedure requires that you are able to execute commands from inside the database container. Learn more about shelling into [kubernetes](https://docs.sourcegraph.com/admin/deploy/kubernetes/operations#access-the-database), [docker-compose](https://docs.sourcegraph.com/admin/deploy/docker-compose/operations#access-the-database), and [Sourcegraph single-container](https://docs.sourcegraph.com/admin/deploy/docker-single-container/operations#access-the-database) instances at these links.
-
-## TL;DR Steps to resolve
-
-_These steps pertain to the frontend database (pgsql) and are meant as a quick read for admins familiar with sql and database administration, for more explanation and details see the [detailed steps to resolution](#detailed-steps-to-resolve) below._
-
-1. **Check the schema version in `psql` using the following query: `SELECT * FROM schema_migrations;`. If it's dirty, note the migration's version number.**
-2. **Find the up migration with that migration's version number in [https://github.com/sourcegraph/sourcegraph/tree/\/migrations/frontend](https://github.com/sourcegraph/sourcegraph/tree/main/migrations/frontend), making sure to go to \**
- * _Note: migrations in this directory are specific to the `pgsql` frontend database, learn about other databases in the [detailed steps to resolution](#detailed-steps-to-resolve)_
-3. **Run the code there explicitly.**
-4. **Manually clear the dirty flag on the `schema_migrations` table.**
-5. **Start up again and the remaining migrations should succeed, otherwise repeat.**
-
-## Detailed Steps to resolve
-
-### 1. Identify incomplete migration
-
-When migrations run, the `schema_migrations` table is updated to show the state of migrations. The `dirty` column, when set `t` (true), _indicates a migration was attempted but did not complete successfully_ (either did not yet complete or failed to complete), and the `version` column indicates the version of the migration the database is on (when not dirty), or attempted to migrate to (when dirty). On startup, the frontend will not start if the `schema_migrations` `dirty` column is set to `t`.
-
-**Check schema version, by querying the database version table:** `SELECT * FROM schema_migrations;` **If it's dirty, then note the version number for use in step 2.**
-
-Example:
-```sql
-SELECT * FROM schema_migrations;
-version | dirty
-------------+-------
-1528395539 | t
-(1 row)
-```
-This indicates that migration `1528395539` was running, but has not yet completed.
-
-_Note: for codeintel the schema version table is called `codeintel_schema_migrations` and for codeinsights its called `codeinsights_schema_migrations`_
-
-### 2. Run the sql queries to finish incomplete migrations
-
-Sourcegraph's migration files take for form of `sql` files following the snake case naming schema `_..sql` and can be found [here](https://sourcegraph.com/github.com/sourcegraph/sourcegraph/-/tree/migrations) in subdirectories for the specific database. _Note frontend is the pgsql database_.
-
-1. **Find the up migration starting with the migration's version number identified in [step 1](#1-identify-incomplete-migration):** [https://github.com/sourcegraph/sourcegraph/tree/\/migrations](https://github.com/sourcegraph/sourcegraph/tree/main/migrations), making sure to go to \
-
-2. **Run the code from the identified migration _up_ file explicitly using the `psql` CLI:**
- * It’s possible that one or more commands from the migration ran successfully already. In these cases you may need to run the sql transaction in pieces. For example if a migration file creates multiple indexes and one index already exists you'll need to manually run this transaction skipping that line or adding `IF NOT EXISTS` to the transaction.
- * If you’re running into unique index creation errors because of duplicate values please let us know at support@sourcegraph.com or via your enterprise support channel.
- * There may be other error cases that don't have an easy admin-only resolution, in these cases please let us know at support@sourcegraph.com or via your enterprise support channel.
-
-### 3. Verify database is clean and declare `dirty=false`
-
-1. **Ensure the migration applied, and manually clear the dirty flag on the `schema_migrations` table.**
- * example `psql` query: `UPDATE schema_migrations SET version=1528395918, dirty=false;`
- * **Do not mark the migration table as clean if you have not verified that the migration was successfully completed.**
- * Checking to see if a migration ran successfully requires looking at the migration’s `sql` file, and verifying that `sql` queries contained in the migration file have been applied to tables in the database.
- * _Note: Many migrations do nothing but create tables and/or indexes or alter them._
- * You can get a description of a table and its associated indexes quickly using the `\d ` `psql` shell command (note lack of semicolon). Using this information, you can determine whether a table exists, what columns it contains, and what indexes on it exist. Use this information to determine if commands in a migration ran successfully before setting `dirty=false`.
-
-2. **Start Sourcegraph again and the remaining migrations should succeed, otherwise repeat this procedure again starting from the [Identify incomplete migration](#1-identify-incomplete-migration) step.**
-
-## Additional Information
-
-### `CREATE_INDEX_CONCURRENTLY`
-Some migrations utilize the `CREATE INDEX CONCURRENTLY` migration option which runs a query to create a table index as a background process ([learn more here](https://www.postgresql.org/docs/12/sql-createindex.html)). If one of these migrations fails to complete, the database will register that a table index has been created, however the index will be unusable. If you use `\d ` you will see the index for the table, but there will be nothing to tell you the indexing operation has failed. This database state can lead to poor search query performance, with searches attempting to utilize the incomplete table index.
-
-To resolve this, you will then need to run the migration that creates the relevant index again, replacing `CREATE INDEX CONCURRENTLY` with `REINDEX CONCURRENTLY`. You can also drop and recreate the index.
-
-To discover if such a damaged index exists by run the following query:
-
-```sql
-SELECT
- current_database() AS datname,
- pc.relname AS relname,
- 1 AS count
-FROM pg_class pc
-JOIN pg_index pi ON pi.indexrelid = pc.oid
-WHERE
- NOT indisvalid AND
- NOT EXISTS (SELECT 1 FROM pg_stat_progress_create_index pci WHERE pci.index_relid = pi.indexrelid)
-```
-Additionally Grafana will alert you of an index is in this state. _The Grafana alert can be found under it's database's charts._ Ex: `Site Admin > Monitoring > Postgres > Invalid Indexes (unusable by query planner)`
-
-## Further resources
-
-* [Sourcegraph - Upgrading Sourcegraph to a new version](https://docs.sourcegraph.com/admin/updates)
-* [Migrations README](https://github.com/sourcegraph/sourcegraph/blob/main/migrations/README) (Note some of the info contained here pertains to running Sourcegraphs development environment and should not be used on production instances)
diff --git a/docs/versioned/5.2/admin/how-to/enable-experimental-feature.mdx b/docs/versioned/5.2/admin/how-to/enable-experimental-feature.mdx
deleted file mode 100644
index a089084ff..000000000
--- a/docs/versioned/5.2/admin/how-to/enable-experimental-feature.mdx
+++ /dev/null
@@ -1,32 +0,0 @@
-# How to add, enable or disable an experimental feature
-
-This document will take you through how to add, enable, or disable an experimental feature in Sourcegraph. Experimental features are not fully released, but we welcome your feedback at feedback@sourcegraph.com or on twitter @sourcegraph!
-
-> NOTE: Changing these settings will affect the entire instance. We advise testing settings in a development environment before changing them in production.
-
-## Prerequisites
-
-* This document assumes that Sourcegraph is installed
-* Assumes you have site-admin privileges on the instance
-
-## Steps to enable/disable
-
-1. Navigate to Site Admin > Global settings in the UI, or follow this link format for your `externalUrl/site-admin/global-settings`
-2. Scroll down to find where `experimentalFeatures` is located. Example:
-
-```json
-"experimentalFeatures": {
- "searchStreaming": true,
- "showSearchContext": false,
-},
-```
-3. Locate the feature you would like to disable or enable, setting `true` for enable or `false` for disable.
-4. If adding a feature, follow the format `"featureName": true,`
-5. After changing the values in Site admin > Global settings, the frontend will either restart automatically or you might be asked to restart the frontend for the changes to take effect.
-6. For more information, see [Editing global settings for site-admins](https://docs.sourcegraph.com/admin/config/settings#editing-global-settings-for-site-admins)
-
-## Further resources
-
-* [Sourcegraph - Configuration Settings](https://docs.sourcegraph.com/admin/config/settings)
-* [Sourcegraph - Site configuration](https://docs.sourcegraph.com/admin/config/site_config)
-* Learn more about new experimental features on our [Blog](https://about.sourcegraph.com/blog) or Twitter [@sourcegraph](https://twitter.com/sourcegraph/)
diff --git a/docs/versioned/5.2/admin/how-to/export-search-results.mdx b/docs/versioned/5.2/admin/how-to/export-search-results.mdx
deleted file mode 100644
index 7c612763f..000000000
--- a/docs/versioned/5.2/admin/how-to/export-search-results.mdx
+++ /dev/null
@@ -1,16 +0,0 @@
-# How to export search results
-
-You can export search results to a CSV file by pressing the 'Export results' button in the `Actions` menu above the search results.
-
-For versions before 4.0, view the legacy docs at [sourcegraph/sourcegraph-search-export](https://github.com/sourcegraph/sourcegraph-search-export#sourcegraph-search-results-csv-export-extension)
-
-## FAQs
-
-#### The exported results do not match the results page
-Before Sourcegraph 4.4.0, the search result export feature used the GraphQL API with result limits for fast resolution. Add `count:all` to your query to run an exhaustive search.
-
-#### The number of exported results does not match the number of results displayed on Sourcegraph
-This is expected, as all instances that match for a single file will be listed in the same entry column under the Search matches row.
-
-#### Network Error when downloading CSV
-Check the browser's dev tools network tab for more details on the specific network error. The CSV file likely exceeds the browser's limit for data URI size. You can limit the size of search results exported with the `count:` filter in the search query.
\ No newline at end of file
diff --git a/docs/versioned/5.2/admin/how-to/index.mdx b/docs/versioned/5.2/admin/how-to/index.mdx
deleted file mode 100644
index 38a1d227c..000000000
--- a/docs/versioned/5.2/admin/how-to/index.mdx
+++ /dev/null
@@ -1,30 +0,0 @@
-# How-to guides
-
-- [How to manually execute database migrations with `migrator`](/admin/updates/migrator/migrator-operations)
- - Commands: [up](/admin/updates/migrator/migrator-operations#up), [upto](/admin/updates/migrator/migrator-operations#upto), [downto](/admin/updates/migrator/migrator-operations#downto), [validate](/admin/updates/migrator/migrator-operations#validate), [add-log](/admin/updates/migrator/migrator-operations#add-log)
- - Environments: [Kubernetes](/admin/updates/migrator/migrator-operations#kubernetes), [Docker compose](/admin/updates/migrator/migrator-operations#docker--docker-compose), [Local development](/admin/updates/migrator/migrator-operations#local-development)
-- [How to troubleshoot a dirty database](/admin/how-to/how-to/dirty_database)
-- [How to rollback the Postgres database](/admin/how-to/how-to/rollback_database)
-- [How to apply privileged migrations](/admin/how-to/how-to/privileged_migrations)
-- [How to troubleshoot an unfinished migration](/admin/how-to/how-to/unfinished_migration)
-- [How to enable or disable an experimental feature](/admin/how-to/how-to/enable-experimental-feature)
-- [How to diagnose an `Unknown Error` during login to your Sourcegraph instance](/admin/how-to/how-to/unknown-error-login)
-- [How to convert version contexts to search contexts](/admin/how-to/how-to/converting-version-contexts-to-search-contexts)
-- [How to troubleshoot pod evictions](/admin/how-to/how-to/troubleshoot-pod-eviction)
-- [How to monitor your Sourcegraph instance](/admin/how-to/how-to/monitoring-guide)
-- [How to troubleshoot a repository that is not being updated](/admin/how-to/how-to/repo-not-updated)
-- [How to configure submodules](/admin/how-to/how-to/submodule-configuration)
-- [How to remove users or edit users with the GraphQL API](/admin/how-to/how-to/mutate-user-api)
-- [How to setup HTTPS connection with Ingress controller on your Kubernetes instance](/admin/how-to/how-to/setup-https)
-- [How to rebuild corrupt Postgres indexes after upgrading to 3.30 or 3.30.1](/admin/how-to/how-to/rebuild-corrupt-postgres-indexes)
-- [How to determine cause for Precise-code-intel-worker in CrashLoopBackOff status](precise-code-intel-worker-crashloopbackoff)
-- [How to troubleshoot a failure to update repositories when new repositories are added](/admin/how-to/how-to/update_repo_failure)
-- [How to run postgres queries in your Sourcegraph instance](/admin/how-to/how-to/run-psql)
-- [How to purge deleted repository data from Sourcegraph](/admin/how-to/how-to/remove-repo#manually-purge-deleted-repository-data-from-disk)
-- [How to address common monorepo problems](/admin/how-to/how-to/monorepo-issues)
-- [How to Set a password for Redis using a ConfigMap](/admin/how-to/how-to/redis_configmap)
-- [How to import a set of internal repositories to Sourcegraph](/admin/how-to/how-to/internal_github_repos)
-- [How to identify and resolve index corruption in postgres 14](/admin/how-to/how-to/postgres14-index-corruption)
-- [Migrating code intelligence data from LSIF to SCIP (Sourcegraph 4.5 -> 4.6)](/admin/how-to/how-to/lsif_scip_migration)
-- [How to export search results](/admin/how-to/how-to/export-search-results)
-- [How to debug / confirm blobstore is healthy](/admin/how-to/how-to/blobstore_debugging)
diff --git a/docs/versioned/5.2/admin/how-to/internal_github_repos.mdx b/docs/versioned/5.2/admin/how-to/internal_github_repos.mdx
deleted file mode 100644
index 87b80c9bc..000000000
--- a/docs/versioned/5.2/admin/how-to/internal_github_repos.mdx
+++ /dev/null
@@ -1,41 +0,0 @@
-# How to import internal organization GitHub repositories to Sourcegraph
-
-This document will walk you through the steps of adding internal organization GitHub repositories to Sourcegraph without manually having to maintain an explicit list.
-
-## Prerequisites
-
-This document assumes that you have:
-
-* Site-admin level permissions on your Sourcegraph instance.
-* Access to your Sourcegraph deployment.
-* Internal Github repositories in your organization.
-
-## Steps to import internal GitHub repositories
-1. Using the [repositoryQuery](https://docs.sourcegraph.com/admin/external_service/github#repositoryQuery) configuration option, pass the `org` flag to specify the name of the organization the internal repositories belong to and;
-2. Add `is : internal` to the same line.
-
-For example:
-
-```
-"repositoryQuery": [
- "org:$name is:internal"
- ],
-```
-
-### How to check that you now have internal repositories
-Confirm that you have cloned repositories in your instance by accessing your GraphQL console on `$your_sourcegraph_url/api/console` and running the following query;
-
-```
-query{
- externalServices{
- nodes{
- kind
- displayName
- repoCount
- }
- }
-}
-```
-## Further resources
-
-* [Sourcegraph GraphQL API](https://docs.sourcegraph.com/api/graphql)
diff --git a/docs/versioned/5.2/admin/how-to/lsif_scip_migration.mdx b/docs/versioned/5.2/admin/how-to/lsif_scip_migration.mdx
deleted file mode 100644
index c494fb0e2..000000000
--- a/docs/versioned/5.2/admin/how-to/lsif_scip_migration.mdx
+++ /dev/null
@@ -1,13 +0,0 @@
-# Migrating code intelligence data from LSIF to SCIP (Sourcegraph 4.5 -> 4.6)
-
-> WARNING: The migration from LSIF -> SCIP is **destructive and irreversible**. A downgrade from 4.6 to a previous version will result in the inability to access migrated code intelligence data (powering precise code navigation features).
-
-Sourcegraph 4.5 introduced an [out-of-band migration](/admin/how-to/unfinished_migration#checking-progress) that re-encodes LSIF code intelligence data as SCIP in the `codeintel-db`. This migration is required to complete prior to a subsequent upgrade to 4.6, as support for reading LSIF-encoded data has been removed as of this version.
-
-As of [src-cli 4.5](https://github.com/sourcegraph/src-cli/releases/tag/4.5.0), LSIF indexes will be converted to SCIP prior to upload. This ensures that only _existing_ data needs to be migrated in the background. Using an older version of src-cli to upload code intelligence to your index may continue to feed additional LSIF data that needs to be subsequently migrated. This will ultimately block the ability to upgrade to the next version as the migration will never reach 100% (and remain there).
-
-Once the migration has completed, Postgres may continue to hold on to disk space that was previously occupied by LSIF data. Future versions of Sourcegraph will drop these tables completely, freeing this space. Heavier users of precise code intelligence may wish to reclaim this disk space earlier. Once the migration is complete, you can [truncate the LSIF data tables](/admin/how-to/clear_codeintel_data#clearing-lsif-data) to immediately reclaim this space.
-
----
-
-If you wish to take the scorched earth route and clear all existing code intelligence data from your instance and start fresh, follow the entire guide on [clearing code intelligence data](/admin/how-to/clear_codeintel_data).
diff --git a/docs/versioned/5.2/admin/how-to/monitoring-guide.mdx b/docs/versioned/5.2/admin/how-to/monitoring-guide.mdx
deleted file mode 100644
index c86fc1b34..000000000
--- a/docs/versioned/5.2/admin/how-to/monitoring-guide.mdx
+++ /dev/null
@@ -1,18 +0,0 @@
-# Monitoring Guide
-
-Please visit our [Observability Docs](https://docs.sourcegraph.com/admin/observability) for more in-depth information about observability in Sourcegraph.
-
-## Prerequisites
-
-This document assumes that you are a [site admin](/admin/).
-
-## Set up monitoring
-
-1. Familiarize yourself with [Sourcegraph's monitoring dashboards and metrics](/admin/observability/metrics).
- 1. Also see our [full dashboards reference](/admin/observability/dashboards).
-1. [Set up alerting](/admin/observability/alerting#setting-up-alerting) and [learn about how to respond to alerts](/admin/observability/alerting#understanding-alerts).
- 1. Also see our [full alert solutions reference](/admin/observability/alerts).
-
-## FAQs
-
-See the [monitoring section of our FAQ](/admin/faq#monitoring).
diff --git a/docs/versioned/5.2/admin/how-to/monorepo-issues.mdx b/docs/versioned/5.2/admin/how-to/monorepo-issues.mdx
deleted file mode 100644
index abfae4d12..000000000
--- a/docs/versioned/5.2/admin/how-to/monorepo-issues.mdx
+++ /dev/null
@@ -1,66 +0,0 @@
-# How to address common monorepo performance problems
-
-This document is intended as an explanation of common issues faced by Sourcegraph instances syncing monorepos. Sourcegraph search relies on the retrieval and indexing of git repos. For very large repos, more computational resources are required to perform the necessary operations. As such tuning Sourcegraph's services is often the resolution to bugs and performance issues covered in this how-to.
-
-_This document is targeted at docker-compose and kubernetes deployments, where services can be isolated for individual tuning_
-
-The following bullets provide a general guidline to which service may require more resources:
-
-* `sourcegraph-frontend` CPU/memory resource allocations
-* `searcher` CPU/memory resource allocations (allocate enough memory to hold all non-binary files in your repositories)
-* `indexedSearch` CPU/memory resource allocations (for the `zoekt-indexserver` pod, allocate enough memory to hold all non-binary files in your largest repository; for the `zoekt-webserver` pod, allocate enough memory to hold ~2.7x the size of all non-binary files in your repositories)
-* `symbols` CPU/memory resource allocations
-* `gitserver` CPU/memory resource allocations (allocate enough memory to hold your Git packed bare repositories)
-
-## Symbols sidebar - Processing symbols
-
-
-
-If you are regularly seeing the `Processing symbols is taking longer than expected. Try again in a while` warning in your sidebar, its likely that your symbols and/or gitserver services are underprovisioned and need more CPU/mem resources.
-
-The [symbols sidebar](https://sourcegraph.com/github.com/sourcegraph/sourcegraph/-/blob/client/web/src/repo/RepoRevisionSidebarSymbols.tsx?L42) is dependent on the symbols and gitserver services. Upon opening the symbols sidebar, a search query is made to the GraphQL API to retrieve the symbols associated with the current git commit. You can read more about the [symbol search behavior and performance](/code_navigation/explanations/features#symbol-search-behavior-and-performance).
-
-To address this concern, allocate more resources to the symbols service (to provide more processing power for indexing operations) and allocate more resources to the gitserver (to provide for the extra load associated with responding to fetch requests from symbols, and speed up sending the large repo).
-
-Here's an example of a diff to improve symbols performance in a k8s deployment:
-
-```diff
- name: debug
- resources:
- limits:
-- cpu: "3"
-- memory: 6G
- requests:
-- cpu: 500m
-- memory: 5G
-
- name: debug
- resources:
- limits:
-+ cpu: "4"
-+ memory: 16G
- requests:
-+ cpu: "1"
-+ memory: 8G
-```
-
-_Learn more about managing resources in [docker-compose](/admin/deploy/docker-compose/#operations) and [kubernetes](/admin/deploy/kubernetes/operations)_
-
-## Slow hover tooltip results
-
-Hovering over a symbol results in a query for the definition. If the symbol is defined in a repo that has precise code navigation, then Sourcegraph should respond with results quickly. Otherwise, the definition query will have the same performance characteristics as above in [symbols sidebar](#symbols-sidebar---processing-symbols) because it uses a `type:symbol` search.
-
-## Slow history tab and git blame results
-
-
-
-Selecting the Show History button while viewing a file initiates a request to [fetch commits](https://sourcegraph.com/search?q=context:global+repo:%5Egithub%5C.com/sourcegraph/sourcegraph%24+file:%5Eclient/web/src/repo/RepoRevisionSidebarCommits%5C.tsx+function+fetchCommits%28&patternType=literal) for the file. This request is ultimately resolved by gitserver using functionality similar to git log. To improve performance allocate gitserver more CPU.
-
-## Common alerts
-
-The following alerts are common to instances underprovisioned in relation to their monorepos, [learn more about alerts](/admin/observability/alerts):
-
-- frontend: 20s+ 99th percentile code-intel successful search request duration over 5m
-- frontend: 15s+ 90th percentile code-intel successful search request duration over 5m
-- zoekt-webserver: 5% Indexed search request errors every 5m by code for 5m0s
-- symbols: 25+ current fetch queue size
diff --git a/docs/versioned/5.2/admin/how-to/mutate-user-api.mdx b/docs/versioned/5.2/admin/how-to/mutate-user-api.mdx
deleted file mode 100644
index ee4a193f5..000000000
--- a/docs/versioned/5.2/admin/how-to/mutate-user-api.mdx
+++ /dev/null
@@ -1,146 +0,0 @@
-# Admin Level GraphQL Mutations
-
-
-## How to update or remove users with the GraphQL API console
-
-This document walk you through the steps of using mutation queries to update or remove users via the GraphQL API console.
-
-## Prerequisites
-
-* This document assumes that you have site-admin level permissions on your Sourcegraph instance
-* Assumes that you have set up your query token [via the steps here](https://docs.sourcegraph.com/api/graphql#quickstart)
-
-## Update a user
-
-First, query the user's ID by using their email address or user name
-
-Example:
-
-```graphql
-{
- user(email: "someone@gmail.com") {
- id
- }
-}
-```
-
-```graphql
-{
- user(username: "username") {
- id
- }
-}
-```
-
-Once you've got a user's ID use the `updateUser` mutation query, to change user metadata. An example of updating a user's username can be found below:
-
-```graphql
-mutation {
- updateUser(user: "REDACTED", username: "doombot") {
- username
- }
-}
-```
-> NOTE: `REDACTED` is a placeholder for a user ID
-
-This query will return the username after altering the user's username data as seen below:
-```graphql
-{
- "data": {
- "updateUser": {
- "username": "doombot"
- }
- }
-}
-```
-Learn more about the options available with the `updateUser` query in the graphQL API consule Documentation Explorer.
-
-## Remove a user
-
-### There are two different options for removing a user:
-
-**Option A) Deleting a user:** the user and *all* associated data is marked as deleted in the DB and never served again. You could undo this by running DB commands manually.
-
-**Option B) Nuking a user:** the user and *all* associated data is deleted forever. *Note: You cannot undo this and this is considered the less safe option.*
-
-First, query the user's ID by using their email address or user name, as seen [above](#update-a-user).
-
-Example:
-
-```graphql
-{
- user(email: "someone@gmail.com") {
- id
- }
-}
-```
-
-```graphql
-{
- user(username: "username") {
- id
- }
-}
-```
-
-Next, plug the user ID into either Option A. or B. to delete the account.
-
-Option A) example:
-
-```graphql
-mutation {
- deleteUser(user: "THE_USER_ID") {
- alwaysNil
- }
-}
-```
-
-Option B) example, include `hard: true`:
-
-```graphql
-mutation {
- deleteUser(user: "THE_USER_ID" hard: true) {
- alwaysNil
- }
-}
-```
-
-**Optional step:** Recheck the delete worked by running the query from step #1. again. If the results are “user not found:...” then it worked.
-
-Example:
-
-```graphql
-{
- "errors": [
- {
- "message": "user not found: [someone@gmail.com]",
- "path": [
- "user"
- ]
- }
- ],
- "data": {
- "user": null
- }
-}
-```
-
-## How to Import your code host and repositories into Sourcegraph using GraphQL
-Sourcegraph site admins can use graphql API to import a code host as well as repositories into their Sourcegraph instance using `mutation.AddExternalService`.
-This is as below:
-
-```
-mutation {
- addExternalService(
- input: {input: {kind: $codehost_type, displayName: "$example_name", config: "{\"url\":\"https://example.com\",\"token\":\"xxxxxxxxxxx\",\"repos\":[\"/]"}){
- id
- nextSyncAt
- }
-}
-```
-You can also use the documentation explorer on the right-hand side of the `API console` page to explore the fields available as well as use `Ctrl`+ `Spacebar` on Mac to bring up suggestions.
-
-## Further resources
-
-* [Sourcegraph - User data deletion](https://docs.sourcegraph.com/admin/user_data_deletion)
-* [Sourcegraph GraphQL API](https://docs.sourcegraph.com/api/graphql)
diff --git a/docs/versioned/5.2/admin/how-to/postgres14-index-corruption.mdx b/docs/versioned/5.2/admin/how-to/postgres14-index-corruption.mdx
deleted file mode 100644
index 33a866cd7..000000000
--- a/docs/versioned/5.2/admin/how-to/postgres14-index-corruption.mdx
+++ /dev/null
@@ -1,48 +0,0 @@
-# How to identify and resolve index corruption in Postgres v14.0 - v14.3
-
-A bug has ben identified in PostgreSQL 14.0-14.3 that can cause database index corruption in indexes created concurrently. Sourcegraph [utilizes](https://sourcegraph.com/search?q=context:global+repo:%5Egithub%5C.com/sourcegraph/sourcegraph%24+CREATE+INDEX+AND+CONCURRENTLY&patternType=standard) concurrent index creation, and if you are on these versions, you may experience slow queries or database corruption. To learn more about this bug see postgres's [out-of-cycle release announcment](https://www.postgresql.org/message-id/165473835807.573551.1512237163040609764%40wrigleys.postgresql.org) or [migops article](https://www.migops.com/blog/important-postgresql-14-update-to-avoid-silent-corruption-of-indexes/) on the subject.
-
-> NOTE: If you are running a default Sourcegraph deployment with default Postgres image values, it is likely Postgres is running in version 12 and your instance will be unaffected by this bug.
-
-## Identify your database version
-To identify which version of Sourcegraph you are running in a default Sourcegraph deployment. You can access your database via the `docker` or `kubectl` cli tools and run the following command:
-```
-SELECT version();
-```
-> NOTE: You can refer to the following instructions for accessing databases on your deployment type: [Docker Compose](/admin/deploy/docker-compose/index#access-the-database), [Kubernetes](/admin/deploy/kubernetes/operations#access-the-database).
-
-You may also check for index corruption in your database using the `amcheck` by running the following query in your database
-```
-create extension amcheck;
-
-select bt_index_parent_check(c.oid, true), c.relname, c.relpages
-from pg_index i
-join pg_opclass op ON i.indclass[0] = op.oid
-join pg_am am ON op.opcmethod = am.oid
-join pg_class c ON i.indexrelid = c.oid
-join pg_namespace n ON c.relnamespace = n.oid
-where am.amname = 'btree'
--- Don't check temp tables, which may be from another session:
-and c.relpersistence != 't'
--- Function may throw an error when this is omitted:
-and i.indisready AND i.indisvalid;
-```
-This query will return error if there are corrupted indexes.
-
-## Resolve
-If you are impacted, you can remediate this by upgrading to a newer version of Postgres (14.4+) and running the following commands in your database
-
-Determine database name:
-```
-SELECT current_database();
-```
-```
-REINDEX DATABASE ;
-```
-*You may want to use the amcheck query above to verify the reindex has resolved index corruption.*
-
-### Upgrading your database
-
-In default Sourcegraph deployments internal PostgreSQL instances are used and may be upgraded via the [pg_upgrade](https://www.postgresql.org/docs/11/pgupgrade.html). For external databases consult your service providers documentation. For a deeper look at database upgrade operations please consult our [PostgreSQL documentation](https://docs.sourcegraph.com/admin/postgres#upgrading-postgresql).
-
-If you have any questions, please reach out to support on Slack or email support@sourcegraph.com.
diff --git a/docs/versioned/5.2/admin/how-to/precise-code-intel-worker-crashloopbackoff.mdx b/docs/versioned/5.2/admin/how-to/precise-code-intel-worker-crashloopbackoff.mdx
deleted file mode 100644
index 7dc70df3b..000000000
--- a/docs/versioned/5.2/admin/how-to/precise-code-intel-worker-crashloopbackoff.mdx
+++ /dev/null
@@ -1,32 +0,0 @@
-# How to determine why the precise-code-intel-worker is in CrashLoopBackOff status in Kubernetes deployment
-
-This document will discuss one of the main reasons why the `precise-code-intel-worker` goes into a `CrashLoopBackOff` state in a Kubernetes. It does not attempt to solve *all* reasons why this state can happen.
-
-This commonly happens when upgrading from a Sourcegraph version prior to 3.22 to a later version and failing to deploy the MinIO container. This is because in [3.21 -> 3.22 we removed the `code intel bundle manager` and replaced it with `MinIO`.](https://docs.sourcegraph.com/admin/updates/kubernetes#3-21-3-22)
-
-
-## Symptoms
-
-When running `kubectl get pods` you notice that the `precise-code-intel-worker` is in this state, example:
-
-```bash
-precise-code-intel-worker-9b69b5b59-jl6vd 0/1 CrashLoopBackOff 416 2d5h
-precise-code-intel-worker-9b69b5b59-z7xx4 0/1 CrashLoopBackOff 415 2d5h
-```
-
-## Steps to resolve
-
-1. Check what version of Sourcegraph you are on. If it is 3.22 or later, you will need to deploy `MinIO` because the `precise-code-intel-worker` depends on MinIO to function. If 3.4.2+, then minio is no longer used and instead `sourcegraph/blobstore` is used.
-
-2. [Check what pods you have deployed and make sure MinIO is in the list.](/admin/deploy/kubernetes/operations#list-pods-in-cluster)
-
- `kubectl get pods -o wide`
-
-3. If MinIO is not deployed, create a fork of the [deploy-sourcegraph](https://github.com/sourcegraph/deploy-sourcegraph) repository and make sure you deploy MinIO (or blobstore in 3.4.2+).
-
-
-
-## Further resources
-
-* [Sourcegraph - Kubernetes Configuration](/admin/deploy/kubernetes/configure)
-* [Deploy Sourcegraph - blobstore](https://github.com/sourcegraph/deploy-sourcegraph/tree/master/base/blobstore)
diff --git a/docs/versioned/5.2/admin/how-to/privileged_migrations.mdx b/docs/versioned/5.2/admin/how-to/privileged_migrations.mdx
deleted file mode 100644
index 5c01f60db..000000000
--- a/docs/versioned/5.2/admin/how-to/privileged_migrations.mdx
+++ /dev/null
@@ -1,50 +0,0 @@
-# How to apply privileged migrations
-
-Postgres database migrations can be _privileged_ or _unprivileged_. The vast majority of migrations are unprivileged, and should require relatively low capabilities within the connected database. Some migrations are privileged and contain queries that require additional capabilities within the database. Currently, this includes the installation and modification (attached comments) of Postgres extensions.
-
-If your Sourcegraph instance does not connect to the database with a superuser, then privileged migrations will fail. There are currently two methods to apply privileged migrations by hand to allow the installation or update of your Sourcegraph instance to proceed.
-
-Note that these flags affect the `migrator` commands `up`, `upto`, `downto`, `upgrade`, and `downgrade`.
-
-## Option 1: `--unprivileged-only`
-
-Add the optional flag `--unprivileged-only` when [running the migrator](/admin/updates/migrator/migrator-operations) against your Postgres instance. When the migration runner encounters an unapplied privileged migration, it will halt with an error message similar to the following.
-
-```
-❌ failed to run migration for schema "frontend": refusing to apply a privileged migration: schema "frontend" requires database migrations 1657908958 and 1657908965 to be applied by a database user with elevated permissions
-The migration runner is currently being run with -unprivileged-only. The indicated migration is marked as privileged and cannot be applied by this invocation of the migration runner. Before re-invoking the migration runner, follow the instructions on https://docs.sourcegraph.com/admin/how-to/privileged_migrations. Please contact support@sourcegraph.com for further assistance.
-```
-
-This option is used to fail-fast upgrades that require manual user intervention. To allow the migrator to make additional progress, the privileged query/queries must be applied manually with a superuser (most commonly via a psql shell attached to the Postgres instance).
-
-To be interactively instructed through the manual process, re-run the migrator with the [`--noop-privileged`](#option-2-noop-privileged) flag. Otherwise, you can manually [find and apply the target privileged migrations](/admin/how-to/dirty_database#2-run-the-sql-queries-to-finish-incomplete-migrations) and [manually add a migration log entry](/admin/how-to/dirty_database#3-add-a-migration-log-entry).
-
-## Option 2: `--noop-privileged`
-
-Add the optional flag `--noop-privileged` when [running the migrator](/admin/updates/migrator/migrator-operations) against your Postgres instance. When the migration runner encounters an unapplied privileged migration, it will initially halt with an error message similar to the following.
-
-```
-❌ failed to run migration for schema "frontend": refusing to apply a privileged migration: apply the following SQL and re-run with the added flag `--privileged-hash=vp6EzmVmJfHgfchaShhJPUCq5v4=` to continue.
-```
-
-```sql
-BEGIN;
--- Migration 1657908958
-COMMENT ON EXTENSION citext IS 'first privileged migration';
--- Migration 1657908965
-COMMENT ON EXTENSION citext IS 'second privileged migration';
-COMMIT;
-```
-
-Manually apply the provided SQL with superuser access in the target schema. Then re-invoke the migrator with the suggested flag (e.g., `-privileged-hash=vp6EzmVmJfHgfchaShhJPUCq5v4=`). This value is unique to the set of privileged migration definitions and ensures that you have followed the instructions specific to this installation or upgrade.
-
-The migrator may print multiple such error messages for different schemas that contain privileged migrations. In this case, multiple `-privileged-hash` flags are expected on the same re-invocation of the migrator.
-
-Re-running the migrator should then succeed, skipping each of the migrations which were just manually applied.
-
-```
-WARN migrations.runner runner/run.go:309 The migrator assumes that the following SQL queries have already been applied. Failure to have done so may cause the following operation to fail. {"schema": "frontend", "sql": "BEGIN;\n\n-- Migration 1657908958\nCOMMENT ON EXTENSION citext IS 'first privileged migration';\n\n-- Migration 1657908965\nCOMMENT ON EXTENSION citext IS 'second privileged migration';\n\nCOMMIT;\n"}
-WARN migrations.runner runner/run.go:339 Adding migrating log for privileged migration, but not applying its changes {"schema": "frontend", "migrationID": 1657908958, "up": true}
-WARN migrations.runner runner/run.go:339 Adding migrating log for privileged migration, but not applying its changes {"schema": "frontend", "migrationID": 1657908965, "up": true}
-✅ Schema(s) are up-to-date!
-```
diff --git a/docs/versioned/5.2/admin/how-to/rebuild-corrupt-postgres-indexes.mdx b/docs/versioned/5.2/admin/how-to/rebuild-corrupt-postgres-indexes.mdx
deleted file mode 100644
index ac17776a5..000000000
--- a/docs/versioned/5.2/admin/how-to/rebuild-corrupt-postgres-indexes.mdx
+++ /dev/null
@@ -1,148 +0,0 @@
-# How to rebuild corrupt Postgres indexes
-
-## Rebuilding indexes
-
-There are multiple databases to rebuild indexes in. Repeat the below process for:
-
-1. `pgsql`
-2. `codeintel-db`
-
-We need to ensure there's nothing writing or reading from/to the database before performing the next steps.
-
-In Kubernetes, you can accomplish this by deleting the database service to prevent new connections from being established, followed by a query to terminate existing connections.
-
-```shell
-export DB=pgsql # change this for other databases
-kubectl delete "svc/$DB"
-kubectl port-forward "deploy/$DB" 3333:5432 # doesn't use the service that we just deleted
-psql -U sg -d sg -h localhost -p 3333
-```
-
-In docker compose, you will need to scale down all the other services to prevent new connections from being established.
-You must run these commands from the machine where sourcegraph is running.
-
-> NOTE: You can refer to the following instructions for accessing databases on your deployment type: [Docker Compose](/admin/deploy/docker-compose/#access-the-database), [Kubernetes](/admin/deploy/kubernetes/operations#access-the-database).
-
-```shell
-export DB=pgsql # change for other databases
-docker-compose down # bring all containers down
-docker start $DB # bring only the db container back up
-docker exec -it $DB sh
-psql -U sg -d sg -h localhost -p 3333
-```
-
-Terminate existing client connections first. This will also terminate your own connection to the database, which you'll need to re-establish.
-
-```sql
-select pg_terminate_backend(pg_stat_activity.pid)
-from pg_stat_activity where datname = 'sg';
-```
-
-With a Postgres client connected to the database, we now start by re-indexing system catalog indexes which may have been affected.
-
-```sql
-reindex (verbose) system sg;
-```
-
-Then we rebuild the database indexes.
-
-```sql
-reindex (verbose) database sg;
-```
-
-
-In docker, you can fix the indexes while the server is running. It is not required to stop the single server image.
-The only risk here is that connections and every other process might be slow.
-
-Using the following commands you can re-index the database:
-
-```sql
-reindex (verbose) system sourcegraph;
-```
-
-Then we rebuild the database indexes.
-
-```sql
-reindex (verbose) database sourcegraph;
-```
-
-If any duplicate errors are reported, we must delete some rows by adapting and running the [duplicate deletion query](#duplicate-deletion-query) for each of the errors found.
-
-After deleting duplicates, just re-run the above statement. Repeat the process until there are no errors.
-
-At the end of the index rebuilding process, as a last sanity check, we use the amcheck extension to verify there are no corrupt indexes — an error is raised if there are (you should expect to see some output from this command).
-
-
-```sql
-create extension amcheck;
-
-select bt_index_parent_check(c.oid, true), c.relname, c.relpages
-from pg_index i
-join pg_opclass op ON i.indclass[0] = op.oid
-join pg_am am ON op.opcmethod = am.oid
-join pg_class c ON i.indexrelid = c.oid
-join pg_namespace n ON c.relnamespace = n.oid
-where am.amname = 'btree'
--- Don't check temp tables, which may be from another session:
-and c.relpersistence != 't'
--- Function may throw an error when this is omitted:
-and i.indisready AND i.indisvalid;
-```
-
-## Duplicate deletion query
-
-Here's an example for the `repo` table. The predicates that match the duplicate rows must be adjusted for your specific case, as well as the table name you want to remove duplicates from.
-
-```sql
-begin;
-
--- We must disable index scans before deleting so that we avoid
--- using the corrupt indexes to find the rows to delete. The database then
--- does a sequential scan, which is what we want in order to accomplish that.
-
-set enable_indexscan = 'off';
-set enable_bitmapscan = 'off';
-
-delete from repo t1
-using repo t2
-where t1.ctid > t2.ctid
-and (
- t1.name = t2.name or
- (
- t1.external_service_type = t2.external_service_type and
- t1.external_service_id = t2.external_service_id and
- t1.external_id = t2.external_id
- )
-);
-
-commit;
-```
-
-## Selective index rebuilding
-
-In case your database is large and `reindex (verbose) database sg` takes too long to re-run multiple times as you remove duplicates, you can instead run individual index rebuilding statements, and resume where you left of.
-
-Here's a query that produces a list of such statements for all indexes that contain collatable key columns (we had corruption in these indexes in the [3.30 upgrade](/admin/migration/3_30)). This is a sub-set of the indexes that gets re-indexed by `reindex database sg`.
-
-```sql
-select
- distinct('reindex (verbose) index ' || i.relname || ';') as stmt
-from
- pg_class t,
- pg_class i,
- pg_index ix,
- pg_attribute a,
- pg_namespace n
-where
- t.oid = ix.indrelid
- and i.oid = ix.indexrelid
- and n.oid = i.relnamespace
- and a.attrelid = t.oid
- and a.attnum = ANY(ix.indkey)
- and t.relkind = 'r'
- and n.nspname = 'public'
- and ix.indcollation != oidvectorin(repeat('0 ', ix.indnkeyatts)::cstring)
-order by stmt;
-```
-
-You'd take that output of that query and run each of the statements one by one.
diff --git a/docs/versioned/5.2/admin/how-to/redis_configmap.mdx b/docs/versioned/5.2/admin/how-to/redis_configmap.mdx
deleted file mode 100644
index c4997e4a2..000000000
--- a/docs/versioned/5.2/admin/how-to/redis_configmap.mdx
+++ /dev/null
@@ -1,208 +0,0 @@
-
-# How to set a password for Redis using a ConfigMap
-
-
-```
-Note: This document was prepared as guidance for a customer support inquiry. It is intended to orient you to the required changes.
-Please review the [Caveats](#caveats) to better understand the limitations of this guide.
-```
-
-
-This procedure allows a Kubernetes user to set a password for the Redis services included in the Sourcegraph deployment.
-
-In this approach, we store the redis.conf file for each service in a ConfigMap. The ConfigMap is then mounted as a volume into the corresponding Redis pod.
-
-The Redis Docker image does not expose a dedicated environment variable to set a password. Due to this limitation, we must supply the configuration by supplying a custom /etc/redis/redis.conf file into the pod.
-
-Reference Materials
-
-
-
-* [Docs: Configure custom Redis](/admin/deploy/kubernetes/configure#external-redis)
-* [Docs: Using your own Redis server](/admin/external_services/redis)
-
-
-## Conventions
-
-
-
-* **‘... truncated for brevity …’** indicates that a portion of the code listing has been removed to improve readability. This means that the code listing will not work by itself. The code listing is intended for you to identify the areas of your existing code that need to be modified.
-
-* Items in **BOLD** indicate an addition to an existing code file. It should be considered safe to copy and paste the text in **BOLD **directly into your existing code.
-
-
-## Caveats
-
-
-
-* **Note:** This procedure uses a ConfigMap, which stores values in plaintext. In order to improve security, we recommend using Kubernetes Secrets.
-* **Note:** These instructions are generic and should be incorporated into your deployment tool (helm or Kustomize) as needed.
-* **Note:** This example uses the password “demopasswordchangeme123”. Please change this to another value that meets your organization’s security requirements.
-
-
-## Procedure
-
-
-
-1. Locate the original redis-cache configuration file: [https://sourcegraph.com/github.com/sourcegraph/sourcegraph/-/blob/docker-images/redis-cache/redis.conf](https://sourcegraph.com/github.com/sourcegraph/sourcegraph/-/blob/docker-images/redis-cache/redis.conf) Use this as the “Default redis.conf file” content in the ConfigMap. Adding `requirepass` sets the password for Redis authentication.
-2. Create the redis-cache-conf ConfigMap:
-
-```
-apiVersion: v1
-data:
- redis.conf: |
- #############################
- ## Default redis.conf file ##
- #############################
- # allow access from all instances
- protected-mode no
- # limit memory usage, discard unused keys when hitting limit
- maxmemory 6gb
- maxmemory-policy allkeys-lru
- # snapshots on disk every minute
- dir /redis-data/
- appendonly no
- save 60 1
-
- ###################
- ## Customization ##
- ###################
- requirepass demopasswordchangeme123
-
-kind: ConfigMap
-metadata:
- labels:
- app.kubernetes.io/component: redis-cache
- deploy: sourcegraph
- name: redis-cache-conf
-```
-
-
-3. Modify the `apps_v1_deployment_redis-cache.yaml` manifest. Add the corresponding `volumeMounts:` and `volumes:`
-
-```
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: redis-cache
-spec:
-… truncated for brevity …
- template:
- metadata:
- labels:
- app: redis-cache
- deploy: sourcegraph
- spec:
- containers:
-… truncated for brevity …
- volumeMounts:
- - mountPath: /redis-data
- name: redis-data
- subPathExpr: $(POD_NAME)
- - mountPath: /etc/redis/
- name: redis-cache-conf
-… truncated for brevity …
- volumes:
- - configMap:
- name: redis-cache-conf
- name: redis-cache-conf
-
-```
-
-
-4. Locate the original redis-store configuration file. [https://sourcegraph.com/github.com/sourcegraph/sourcegraph/-/blob/docker-images/redis-store/redis.conf](https://sourcegraph.com/github.com/sourcegraph/sourcegraph/-/blob/docker-images/redis-store/redis.conf) Use this as the “Default redis.conf file” content in the ConfigMap.
-
-5. Create the redis-store-conf ConfigMap:
-
-```
- apiVersion: v1
-data:
- redis.conf: |
- #############################
- ## Default redis.conf file ##
- #############################
- # allow access from all instances
- protected-mode no
- # limit memory usage, return error when hitting limit
- maxmemory 6gb
- maxmemory-policy noeviction
- # live commit log to disk, additionally snapshot every 5 minutes
- dir /redis-data/
- appendonly yes
- aof-use-rdb-preamble yes
- save 300 1
-
- ###################
- ## Customization ##
- ###################
- requirepass demopasswordchangeme123
-
-kind: ConfigMap
-metadata:
- labels:
- app.kubernetes.io/component: redis-store
- deploy: sourcegraph
- name: redis-store-conf
-```
-
-
-6. Modify the apps_v1_deployment_redis-store.yaml manifest. Add the corresponding volumeMounts: and volumes: \
-
-
-```
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: redis-store
-… truncated for brevity …
- template:
- metadata:
- labels:
- app: redis-store
- deploy: sourcegraph
- spec:
- containers:
-… truncated for brevity …
-
- volumeMounts:
- - mountPath: /redis-data
- name: redis-data
- subPathExpr: $(POD_NAME)
- - mountPath: /etc/redis/
- name: redis-store-conf
-… truncated for brevity …
- volumes:
- - configMap:
- name: redis-store-conf
- name: redis-store-conf
-
-```
-
-
-7. Modify the manifests for all services listed in[ Configure custom Redis](https://docs.sourcegraph.com/admin/install/kubernetes/configure#external-redis). The listing below is an example of the two environment variables that must be added to the services listed in the documentation.
-
-
-```
-apiVersion: apps/v1
-kind: Deployment
-… truncated for brevity …
- spec:
- containers:
-… truncated for brevity …
-
- env:
- - name: REDIS_CACHE_ENDPOINT
- value: redis://:demopasswordchangeme123@redis-cache:6379
- - name: REDIS_STORE_ENDPOINT
- value: redis://:demopasswordchangeme123@redis-store:6379
-```
-
-
-
-**Note:** Be sure to add both environment variables to all services listed in [Configure custom Redis](https://docs.sourcegraph.com/admin/install/kubernetes/configure#external-redis).
-
-
-
-8. After making the necessary changes to the manifests, apply the changes. Kubernetes should recreate all pods that were modified.
-9. Verify the sourcegraph-frontend pods are running and do not contain log messages that indicate that sourcegraph-frontend is unable to the redis services.
-10. All services should be running and passing health checks. If there are any services that are in a CrashLoop or not running, ensure that the necessary environment variables are correct, captured in the Kubernetes manifests, and applied to your installation.
diff --git a/docs/versioned/5.2/admin/how-to/remove-repo.mdx b/docs/versioned/5.2/admin/how-to/remove-repo.mdx
deleted file mode 100644
index aad623960..000000000
--- a/docs/versioned/5.2/admin/how-to/remove-repo.mdx
+++ /dev/null
@@ -1,49 +0,0 @@
-# How to remove a repository from Sourcegraph
-
-## Prerequisites
-
-This document assumes that you have:
-
-- site-admin level permissions on your Sourcegraph instance
-- access to your Sourcegraph deployment
-
-## Steps to remove a repository from Sourcegraph
-
-Open the repository's `Settings` page on Sourcegraph and from the `Options` tab click `Exclude repository` to exclude it from the specific code host.
-
-
-
-Alternately, if a repository is synced from multiple code host connections you may exclude it from all code hosts by clicking the `Exclude repository from all code hosts` button instead.
-
-
-
-## Remove corrupted repository data from Sourcegraph
-
-1. Exclude the repository as shown above from your code host(s)
-1. Wait for the repository to disappear from the Repository Status Page located in your Site Admin panel.
-1. Once you have confirmed the previous step has been completed, you will then exec into Gitserver (for docker-compose and kubernetes deployments) to locate the files that are associated with the repository.
-1. Look for a directory with the name of the repository in the Gitserver. It should be located in the following file path: `data/repos/{name-of-code-host}/{name-of-repository}`
-1. Delete the directory for that repository from the previous step.
-
-## To reclone a removed repository
-
-Open the repository's `Settings` page on Sourcegraph and from the `Mirroring` tab click `Reclone`.
-
-
-
-## Manually purge deleted repository data from disk
-
-After a repository is deleted from Sourcegraph in the database, its data still remains on disk on gitserver so that in the event the repository is added again it doesn't need to be recloned. These repos are automatically removed when disk space is low on gitserver. However, it is possible to manually trigger removal of deleted repos in the following way:
-
-**NOTE:** This is not available on Docker Compose deployments.
-
-1. Browse to Site Admin -> Instrumentation -> Repo Updater -> Manual Repo Purge
-2. You'll be at a url similar to `https://sourcegraph-instance/-/debug/proxies/repo-updater/manual-purge`
-3. You need to specify a limit parameter which specifies the upper limit to the number of repos that will be removed, for example: `https://sourcegraph-instance/-/debug/proxies/repo-updater/manual-purge?limit=1000`
-4. This will trigger a background process to delete up to `limit` repos, rate limited at 1 per second.
-
-It's possible to see the number of repos that can be cleaned up on disk in Grafana using this query:
-
-```
-max(src_repoupdater_purgeable_repos)
-```
diff --git a/docs/versioned/5.2/admin/how-to/repo-not-updated.mdx b/docs/versioned/5.2/admin/how-to/repo-not-updated.mdx
deleted file mode 100644
index 4249f5e17..000000000
--- a/docs/versioned/5.2/admin/how-to/repo-not-updated.mdx
+++ /dev/null
@@ -1,36 +0,0 @@
-# How to troubleshoot a repo that is not being updated on Sourcegraph
-
-A repository on Sourcegraph that fails to be updated could have different reasons. For example, the repository is a bad repository, the number of repositories causes significant load on the code host, a large repository, or code host permission issues etc. This guide will walk you through the steps you can take to investigate further when encountering this issue.
-
-## Prerequisites
-
-This document assumes that you are a [site admin](https://docs.sourcegraph.com/admin) and **do not** have `disableAutoGitUpdates` set to `true` in your site configuration.
-
-## Steps to investigate
-
-1. First of all, you should identify how long has it been since the repo was last updated on Sourcegraph by going to the repository page > Settings > Mirroring
-2. From there you can check:
- 1. Last refreshed: Time when the repo was last synced
- 2. Next scheduled update: Estimated time of when the repo will be updated next (this could change as it is determined by a [smart heuristic](https://docs.sourcegraph.com/admin/repo/update_frequency#repository-update-frequency))
- 3. Queued for update: Its position in queue to be updated next
- 4. Connection: Connection status to the repository
- 5. Last sync log: Output from the most recent sync event
-3. If clicking on the `Refresh Now` button has triggered the repository to be updated instantly for you then congratulations! You can now move on from this troubleshooting guide!
-4. If clicking on the `Refresh Now` button does not work for you, try using webhooks following the instructions detailed in our [Repository Webhooks Docs](https://docs.sourcegraph.com/admin/repo/webhooks#webhook-for-manually-telling-sourcegraph-to-update-a-repository)
-5. Look for errors related to this repository in gitserver logs, which should help you to determine the next best course of action.
-6. Check the size of the repository. If it's a large repository, it may take a long time to sync and update. To find the size of your .git directory where the repository resides, you may use our [`git-stats` script](https://docs.sourcegraph.com/admin/monorepo#statistics).
-7. Check the allocated resources to see if the instance has enough resources to process the repository sync using our [Resource Estimator](https://docs.sourcegraph.com/admin/deploy/resource_estimator)
-8. Check the code host connection from your Sourcegraph instance. If there is any issue, it needs to be resolved for the repository to sync and update.
-
-## FAQs:
-
-### What is a bad repository?
-
-A bad repository is simiply a repository that Sourcegraph cannot handle. For example:
-
-1. A large repository
- - This could result in gitserver running out of memory.
-2. An empty/locked/disabled repository
- - For example, if you've created a repo repository GitHub and did not click the "initialize the repository for me" button, the repository would then become an empty repository as it has no commits at all.
-3. A corrupted repository
- - The repository could be corrupted on the code host, or corrupted on disk.
diff --git a/docs/versioned/5.2/admin/how-to/rollback_database.mdx b/docs/versioned/5.2/admin/how-to/rollback_database.mdx
deleted file mode 100644
index ff8d10356..000000000
--- a/docs/versioned/5.2/admin/how-to/rollback_database.mdx
+++ /dev/null
@@ -1,20 +0,0 @@
-# Rolling back a Postgres database
-
-> WARNING: **Rolling back the database may result in data loss.** Rolling back the database schema may remove tables or columns that were not present in previous versions of Sourcegraph.
-
-If a customer downgrades their instance to a previous version, they need to downgrade their database schema in two circumstances:
-
-1. Developer created **backwards-incompatible** migration: if a migration added in the successor version that was not backwards-compatible, the code of the previous version may struggle operating with the new schema. This may be an emergency situation in which the previous schema must be restored to bring the instance back to a stable state.
-1. The customer is **downgrading multiple versions**: if a customer has downgraded their instance once, they will need to downgrade their database schema before downgrading their instance a subsequent time. This is because an instance two (or more) versions ago has no guarantee to run properly against the current database schema. Multiple instance downgrades therefore need to be performed in an alternating fashion with database downgrades.
-
-## Resolution
-
-> NOTE: This process applies only to versions `3.37` and later.
-
-> NOTE: A customer rollback is considered an **emergency operation**. Please contact support at `mailto:support@sourcegraph.com` for guidance on this operation.
-
-A database schema downgrade will not always be enough. If a newer version was running even for a small time, it could have migrated data in the background into a format that's no longer readable by the previous version of Sourcegraph.
-
-The `migrator` can be used to run both schema and data migrations (in the appropriate order) so that the old version of Sourcegraph can start and run without broken features. See the [command documentation](/admin/updates/migrator/migrator-operations#downgrade) for additional details.
-
-The log output of the `migrator` should include `INFO`-level logs and successfully terminate with `migrator exited with code 0`. If you see an error message or any of the databases have been flagged as "dirty", please follow ["How to troubleshoot a dirty database"](/admin/how-to/dirty_database). A dirty database at this stage requires manual intervention. Please contact support at `mailto:support@sourcegraph.com` or via your enterprise support channel for further assistance.
diff --git a/docs/versioned/5.2/admin/how-to/run-psql.mdx b/docs/versioned/5.2/admin/how-to/run-psql.mdx
deleted file mode 100644
index 6bbaf83b9..000000000
--- a/docs/versioned/5.2/admin/how-to/run-psql.mdx
+++ /dev/null
@@ -1,24 +0,0 @@
-# How to run postgres commands
-
-This document will take you through how to run postgres queries in the main database for each deployment type.
-
-## Prerequisites
-
-* This document assumes that you are the site admin and have access to your Sourcegraph instance
-
-## Kubernetes
-
-1. Exec into the database to run Postgres queries using `kubectl exec -ti PGSQL-Container-Name -- psql -U sg`
-
-## Docker Compose
-
-1. Exec into the database to run Postgres queries using `docker container exec -it pgsql psql -U sg`
-
-## Single-container
-
-1. Find the Sourcegraph-Container-ID in which your Sourcegraph instance is running using the following command: `docker ps -a`
-1. Run the following command to exec into the container: `docker exec -it Sourcegraph-Container-ID bash`
-1. Start postgres to run postgres queries: `psql -U postgres`
-1. There is no Password for the database by default, so you can just hit enter when it asks for your password
-
-
diff --git a/docs/versioned/5.2/admin/how-to/setup-https.mdx b/docs/versioned/5.2/admin/how-to/setup-https.mdx
deleted file mode 100644
index 12b0bd1f7..000000000
--- a/docs/versioned/5.2/admin/how-to/setup-https.mdx
+++ /dev/null
@@ -1,106 +0,0 @@
-# How to setup HTTPS connection with Ingress controller on your Kubernetes instance
-
-This document will take you through how to setup HTTPS connection using the preinstalled [Ingress controller](/admin/deploy/kubernetes/configure#ingress-controller), which allows external users to access your main web server over the network. It installs rules for the default ingress, see comments to restrict it to a specific host. This is our recommended method to configure network access for production environments.
-
-## Prerequisites
-
-- This document assumes that your Sourcegraph instance is deployed into a Kubernetes cluster and that ingress has already been installed for [sourcegraph-frontend](https://github.com/sourcegraph/deploy-sourcegraph/blob/master/base/frontend/sourcegraph-frontend.Ingress.yaml) (by default).
-
-## Steps for GCE-GKE user
-
-> WARNING: Please visit our [Kubernetes Configuration Docs](/admin/deploy/kubernetes/configure#ingress-controller) for more detail on Network-related topics
->
-
-### 1. Install the NGINX ingress controller (ingress-nginx)
-Install the NGINX ingress controller by following the instructions at [https://kubernetes.github.io/ingress-nginx/deploy/](https://kubernetes.github.io/ingress-nginx/deploy/)
-
-For example, GCE-GKE user would simply run [this command](https://kubernetes.github.io/ingress-nginx/deploy/#gce-gke) `kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.47.0/deploy/static/provider/cloud/deploy.yaml` to install the NGINX ingress controller
-
-### 2. Update the create-new-cluster.sh file
-Add the [configure/ingress-nginx/install.sh](https://github.com/sourcegraph/deploy-sourcegraph/blob/master/configure/ingress-nginx/install.sh) command to the [create-new-cluster.sh](https://github.com/sourcegraph/deploy-sourcegraph/blob/master/create-new-cluster.sh) file at root, and commit the change.
-Your file should look similar to this:
-```sh
-echo ./configure/ingress-nginx/install.sh >> create-new-cluster.sh
-./kubectl-apply-all.sh $@
-```
-
-### 3. Once the ingress has acquired an external address
-You should be able to access Sourcegraph using the external address returns from the following `kubectl -n ingress-nginx get svc`.
-
-```bash
-$kubectl -n ingress-nginx get svc
-NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
-ingress-nginx-controller LoadBalancer 10.XX.8.XXX XX.XXX.XXX.XX 80:32695/TCP,443:31722/TCP 5d13h
-ingress-nginx-controller-admission ClusterIP 10.XX.8.X 443/TCP 5d13h
-```
-
-## Configure TLS/SSL
-
-After your Sourcegraph instance is exposed via an ingress controller, you should consider using TLS so that all traffic will be served over HTTPS.
-
-### 1. Create TLS certificate and private key
-
-Place the newly created certificate and private key in a secured place. We will be using `.envrc/private.key` and `.envrc/public.pem` in this example.
-
-### 2. Create a TLS secret for your Cluster
-
-Create a TLS secret that contains your TLS certificate and private key by running the following command:
-
-```bash
-kubectl create secret tls sourcegraph-tls --key .envrc/private.key --cert .envrc/public.pem
-```
-
-> NOTE: You can delete it by running `kubectl delete secret sourcegraph-tls`
-
-### 3. Update the create-new-cluster.sh file
-
-Add the previous command to the [create-new-cluster.sh](https://github.com/sourcegraph/deploy-sourcegraph/blob/master/create-new-cluster.sh) file at root, and commit the change. Your file should look similar to this:
-
-```bash
-echo ./configure/ingress-nginx/install.sh >> create-new-cluster.sh
-echo kubectl create secret tls sourcegraph-tls --key .envrc/private.key --cert .envrc/public.pem >> create-new-cluster.sh
-./kubectl-apply-all.sh $@
-```
-
-### 4. Update the ingress sourcegraph-frontend.Ingress.yaml file
-
-Add the tls configuration to [base/frontend/sourcegraph-frontend.Ingress.yaml](https://github.com/sourcegraph/deploy-sourcegraph/blob/master/base/frontend/sourcegraph-frontend.Ingress.yaml) file by commenting out the `tls` section, and replace `sourcegraph.example.com` with your domain.
-
-> NOTE: It must be a DNS name, not an IP address
-
-```yaml
- # base/frontend/sourcegraph-frontend.Ingress.yaml
- tls:
- - hosts:
- # Replace 'sourcegraph.example.com' with the real domain that you want to use for your Sourcegraph instance.
- - sourcegraph.example.com
- secretName: sourcegraph-tls
- rules:
- - http:
- paths:
- - path: /
- backend:
- serviceName: sourcegraph-frontend
- servicePort: 30080
- # Replace 'sourcegraph.example.com' with the real domain that you want to use for your Sourcegraph instance.
- host: sourcegraph.example.com
-
-```
-
-### 5. Update Site Configuration
-
-Update your externalURL in the [site configuration](https://docs.sourcegraph.com/admin/config/site_config) to e.g. https://sourcegraph.example.com:
-
-```json
-{
-"externalURL": "https://sourcegraph.example.com"
-}
-```
-
-### 6. Update the ingress controller
-
-Update the ingress controller with the previous changes with the following command:
-
-```bash
-kubectl apply -f base/frontend/sourcegraph-frontend.Ingress.yaml
-```
diff --git a/docs/versioned/5.2/admin/how-to/site-admin-quickstart.mdx b/docs/versioned/5.2/admin/how-to/site-admin-quickstart.mdx
deleted file mode 100644
index 493428fcc..000000000
--- a/docs/versioned/5.2/admin/how-to/site-admin-quickstart.mdx
+++ /dev/null
@@ -1,73 +0,0 @@
-# Site Administration Quickstart
-Administrating and managing a Sourcegraph instance is handled by Site Admins. These admins are typically responsible for deploying, managing, and configuring Sourcegraph for users on their instance. Site Admins have [elevated permissions](/admin/privileges) within their Sourcegraph instance.
-
-This guide will walk you through the features and functionalities available to you as a Site Admin and show how you can get started managing and maintaining your Sourcegraph instance. For detailed, in-depth information, please reference the [administration guides and docs](/admin/how-to/).
-
-## Getting Started
-
-### What is the best deployment option for me?
-We recommend Docker Compose for most initial production deployments. You can [migrate to a different deployment method](/admin/updates/#migrating-to-a-new-deployment-type) later on if needed.
-
-If you need a deployment option that offers a higher level of scalability and availability, the [Kubernetes deployment](/admin/deploy/kubernetes/) is recommended.
-
-To help give you a starting point on choosing a deployment option and allocating resources to it, check out our [resource estimator](https://docs.sourcegraph.com/admin/deploy/resource_estimator).
-
-For a comphrensive deployment guide for each option, check out our in-depth documentation for both [Docker Compose](/admin/deploy/docker-compose/) and [Kubernetes](/admin/deploy/kubernetes/).
-
-### Deployment options
-
-Our recommended deployment type is [Kubernetes with Helm](/admin/deploy/kubernetes/helm). If this is not a viable option, we also support a number of other deployment types which are described in the [Deployment overview](/admin/deploy/).
-
-### Self-hosted vs. Managed instances
-Regardless of the deployment option you choose, Sourcegraph can be self-hosted locally or with the cloud provider of your choice. We also offer [managed instances](/admin/how-/admin/cloud/) (we handle deployment, updates, and management of the instance for you). Please [contact us](https://about.sourcegraph.com/contact/sales) if you are interested in learning more about managed instances.
-
-
-## Updating your instance
-New versions of Sourcegraph are released monthly (with patches released in between, as needed). New updates are announced in the [Sourcegraph blog](https://about.sourcegraph.com/blog), and comprehensive update notes are available in the [changelog](https://docs.sourcegraph.com/CHANGELOG).
-
-To check the current version of your instance, go to **User menu > Site admin > Updates**.
-
-For more details on updating your instance, please refer to the [update docs](/admin/updates/).
-
-## Configuration
-As a Site Admin, you have the ability to control and configure the various aspects of your instance. Including the code host connection(s), SSO, repository indexing, and the functionality of the instance itself.
-
-### Site configuration
-At the heart of managing your Sourcegraph instance is Site configuration. Site config is a JSON file that defines how the various features and functionality within Sourcegraph are set up and configured.
-
-To access site config, go to **User menu > Site admin > Site configuration**.
-
-### Admin users configuration
-If you need to add additional site admins, you can do so on the `/site-admin/users` page, under the actions for an individual user account. Any admin can revoke a user's admin privileges later using the same actions menu.
-
-### Connecting to code hosts
-Sourcegraph supports connections to and repository syncing from any Git code host. Once connected, Sourcegraph will clone and index your repos so that users can search and navigate across them. To get started, go to **User menu > Site Admin > Manage code hosts > Add code host**.
-
-Please reference the code host [documentation](/admin/external_service/) for detailed instructions on connecting to your code host.
-
-### Setting up user authentication and repository permissions
-In addition to connecting to your repositories, you can also configure Sourcegraph to use your preferred SSO or sign-in method and inherit and enforce repository permissions for users.
-
-#### Auth & SSO:
-Sourcegraph supports several different authentication methods: OAuth (for GitHub or GitLab), OpenID Connect (Google Workspace), and SAML; and also provides a built-in authentication method via email, if needed.
-
-To get started setting up user authentication and SSO, please reference our [auth documentation](/admin/auth/).
-
-#### Repository Permissions:
-In addition to configuring user authentication to Sourcegraph, you may also want to ensure that users can only view repositories that they would have access to on your code host. Sourcegraph supports the ability to inherit and enforce these repository permissions on a per-user basis and can be configured for connections to GitHub, GitLab, and Bitbucket Server / Bitbucket Data Center.
-
-For more info, check out our complete [repository permissions documentation.](/admin/permissions/)
-
-
-### External services
-By default, Sourcegraph bundles the services it needs to operate into installations. These services include PostgreSQL, Redis, and blobstore.
-
-Your Sourcegraph instance can also be configured to use existing external services if you wish. For more information on configuring Sourcegraph to use your external services, please reference this [documentation.](/admin/external_services/)
-
-## Observability
-One key component to managing a Sourcegraph instance is having the ability to observe, monitor, and analyze the health of your instance. Sourcegraph ships with [Grafana](https://grafana.com/) for dashboards; [Prometheus](https://prometheus.io/) for metrics and alerting; as well as a [built-in alerting system.](/admin/observability/alerting)
-
-### Viewing instance health and metrics
-Alerts and metrics can be viewed and monitored in Grafana. To access the Grafana dashboard bundled with your Sourcegraph instance, go to **User menu > Site admin > Monitoring**.
-
-We also have an exhaustive [reference guide](/admin/observability/dashboards) for understanding the available dashboards, and an [alert solutions guide](/admin/observability/alerts) with descriptions and possible solutions for each alert that fires in Grafana.
diff --git a/docs/versioned/5.2/admin/how-to/submodule-configuration.mdx b/docs/versioned/5.2/admin/how-to/submodule-configuration.mdx
deleted file mode 100644
index d42fd7661..000000000
--- a/docs/versioned/5.2/admin/how-to/submodule-configuration.mdx
+++ /dev/null
@@ -1,23 +0,0 @@
-# How to configure submodules
-
-This document will walk you through how to configure submodules in Sourcegraph. We use `.gitmodules` files to figure out where a submodule exists in the tree. When a user clicks on the module in the UI, they will be redirected to the repo for the module.
-
-## Prerequisites
-
-This document assumes that you have access and permission to create/edit the `.gitmodules` file for the repository.
-
-## Steps
-1. Make sure you have a `.gitmodules` file created in folder level
-2. Setup the `.gitmodules` file following the format shown in our example below
-
-## Example
-
-URL should be used instead of relative path when setting up the `.gitmodules` file for GitLab repos:
-
-```
-[submodule "test-repo-2"]
- path = test-repo-2
- url = https://github.com/test-repos/test-repo-2
-```
-
-> WARNING: We currently do not support relative path setups for submodules in Sourcegraph.
diff --git a/docs/versioned/5.2/admin/how-to/troubleshoot-pod-eviction.mdx b/docs/versioned/5.2/admin/how-to/troubleshoot-pod-eviction.mdx
deleted file mode 100644
index 739591240..000000000
--- a/docs/versioned/5.2/admin/how-to/troubleshoot-pod-eviction.mdx
+++ /dev/null
@@ -1,20 +0,0 @@
-# How to troubleshoot pod evictions in Sourcegraph Kubernetes deployments
-This document will take you through how to solve for pod eviction that can cause data loss in ephemeral storage.
-
-This document will take you step-by-step through the tasks required to perform troubleshooting to understand why this occurrence took place and eventually solve for it.
-
-## Prerequisites
-This document assumes that you have deployed Sourcegraph on Kubernetes and you are a site admin for your organization.
-## Steps to troubleshoot
-1. Run `kubectl describe pod $EVICTEDPOD `
-2. Check the `Message` object
-3. If the error is: `Pod ephemeral local storage usage exceeds the total limit of containers xGi.`
-4. Check on the:
-`ephemeral-storage` Limits and Requests, for example `ephemeral-storage: xGi`. Also, check the cache size for the pod where`$PODNAME_CACHE_SIZE_MB>:x0000`, (x is an integer).
-5. In the `$PODNAME.Deployment.yaml`, raise the `ephemeral-storage` figures to a preferred storage size for your node and set the `CACHE_SIZE_MB` to a size lower than the ephemeral storage limit.
-6. Enable auto scaling by increasing the number of replicas(if preferred)
-
-## Further resources
-
-- [Sourcegraph - Alert solutions](/admin/observability/alerts)
-- [Kubernetes Eviction docs](https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/)
diff --git a/docs/versioned/5.2/admin/how-to/unfinished_migration.mdx b/docs/versioned/5.2/admin/how-to/unfinished_migration.mdx
deleted file mode 100644
index a075bb859..000000000
--- a/docs/versioned/5.2/admin/how-to/unfinished_migration.mdx
+++ /dev/null
@@ -1,38 +0,0 @@
-# How to troubleshoot an unfinished migration
-
-This document will take you through how to resolve an "unfinished migration" error.
-
-Out-of-band migrations run in the background of your Sourcegraph instance and slowly migrate data from an "old" format into a "new" format (depending on the type of data). All out-of-band migrations will eventually become deprecated at a specific version. Sourcegraph instances pre-deprecation can read (and perhaps write) both the "old" and "new" formats. However, Sourcegraph instances post-deprecation only guarantee the ability to read and write the "new" format. An incomplete migration means that some data is no longer understood by the application.
-
-If Sourcegraph detects that there is unmigrated data of an already-deprecated out-of-band migration, it will fail to start-up successfully with an error similar to:
-
-```
-ERROR: Unfinished migrations. Please revert Sourcegraph to the previous version and wait for the following migrations to complete.
-
-- migration 12 expected to be at 100% (at 63.27%)
-- migration 16 expected to be at 100% (at 41.84%)
-```
-
-## Resolution
-
-If you were performing a [standard upgrade](/admin/updates/#standard-upgrades) between two minor versions, then the suggested action is to perform an infrastructure rollback and continue running the previous instance version until the violating out-of-band migrations have completed. The progress of the migrations can be checked [in the UI](#checking-progress). Older versions of Sourcegraph may have performed schema migrations prior to this check, but a schema rollback should not be necessary as our database schemas are backwards-compatible with one minor version.
-
-Alternatively to rolling back and waiting, the unfinished migrations can be run directly via the `migrator`. See the [command documentation](/admin/updates/migrator/migrator-operations#run-out-of-band-migrations) for additional details.
-
-[Multi-version upgrades](/admin/updates/#multi-version-upgrades) and downgrade operations ensure that the required out-of-band migrations have completed or finished rolling back. If this is not the case, contact support as it indicates a non-obvious error in your environment or a bug Sourcegraph's migration tooling.
-
-As an emergency escape hatch, the environment variable `SRC_DISABLE_OOBMIGRATION_VALIDATION` can be set to `true` on the `frontend` and `worker` services to disable the startup check. This is not recommended as it may result in broken features or data loss.
-
-## Checking progress
-
-Progress of out-of-band migrations can be checked via the UI. Navigate to the `Site Admin > Maintenance > Migrations` page to see an overview of progress and errors of each active out-of-band migration.
-
-
-
-An explicit warning will be shown if the progress of some out-of-band migrations would cause issues with a standard upgrade to the next version.
-
-If an out-of-band migration is not making progress or there are errors associated with it, contact support.
-
-## Further resources
-
-* [Sourcegraph - Upgrading Sourcegraph to a new version](/admin/updates/)
diff --git a/docs/versioned/5.2/admin/how-to/unknown-error-login.mdx b/docs/versioned/5.2/admin/how-to/unknown-error-login.mdx
deleted file mode 100644
index 9eb485901..000000000
--- a/docs/versioned/5.2/admin/how-to/unknown-error-login.mdx
+++ /dev/null
@@ -1,34 +0,0 @@
-# How to diagnose an Unknown Error during login to your Sourcegraph instance
-
-This document will attempt to identify a common reason for an `Unknown Error` when attempting to login using a username and password to your organizations Sourcegraph instance.
-
-## Prerequisites
-
-* This document assumes that Sourcegraph is set up and you are trying to login via an existing username and password
-* For the step to check the site config, you will need to ask your organizations site-admin to check for you (this may not be required)
-
-## Steps to identify and remedy
-
-### Symptoms
-
-1. You are attempting to login with your username and password and see an `Unknown Error` message above the username and password boxes
-
-2. This is often a result of an `http/https` protocol mismatch between what is in the site configuration for `externalURL`, and what the user is trying to log in to
-
- - For example, if the protocol in the site configuration is set to `https://sourcegraph.your_instance_name.com`
- - And the user is trying to login at the `http://sourcegraph.your_instance_name.com`, then this error can be displayed
-
-### Things to check
-
-1. Check your Browsers URL bar for a message such as `Not Secure` indicating that you are trying to authenticate via `http` instead of `https`
- - For example, on a Chrome browser you would see the message on the top left hand corner of the URL bar
-
-2. If you were trying to login with `http` protocol, try again with `https` instead
-
-3. If you are still having issues, you can ask a site-admin to double check the `externalURL` configured in the Site configuration so you have the correct login landing page
- - See [Configuring the external URL](https://docs.sourcegraph.com/admin/url)
-
-
-## Further resources
-
-* [Sourcegraph - Site configuration](https://docs.sourcegraph.com/admin/config/site_config)
diff --git a/docs/versioned/5.2/admin/how-to/update_repo_failure.mdx b/docs/versioned/5.2/admin/how-to/update_repo_failure.mdx
deleted file mode 100644
index 73ac717e7..000000000
--- a/docs/versioned/5.2/admin/how-to/update_repo_failure.mdx
+++ /dev/null
@@ -1,35 +0,0 @@
-# How to troubleshoot a failure to update repositories when new repositories are added.
-
-This Document will take you through the steps for investigating the error below while trying to Update Repositories in your Sourcegraph instance.
-
-> Please note this is one of the ways to troubleshoot this kind of error.
-
-For instance, You may want to add a new repository to your Sourcegraph instance and then your run into this error below, what do you do?
-
-```
-Warning
-External service updated, but we encountered a problem while validating the external service: error in
-syncExternalService for service "GITHUB" with ID 15:context deadline exceeded
-```
-## Troubleshooting Steps
-You check logs from the Repo-Updater container and you should find the following below:
-
-```status 401: Bad credentials```
-## Resolution
-- Look through your PATs (Personal Access Token) and you would find out that the token for syncing github to Sourcegraph has expired.
-- Create a new PAT (Personal Access Token) in Github and update the token value below with the new token generated.
-- You can also delete expired credentials.
-- Refresh your Sourcegraph instance and click the ```update repositories``` button, You would see that you are able to add your new repo without any errors.
-
-```{
- "url": "https://github.com",
- "token": "",
- "orgs": [
-
- ],
- "repos": [
- "xxxxxxx/xxxxxxx",
-
- ]
-}
-```
diff --git a/docs/versioned/5.2/admin/http_https_configuration.mdx b/docs/versioned/5.2/admin/http_https_configuration.mdx
deleted file mode 100644
index 08b4bf374..000000000
--- a/docs/versioned/5.2/admin/http_https_configuration.mdx
+++ /dev/null
@@ -1,205 +0,0 @@
-# Sourcegraph HTTP and HTTPS/SSL configuration
-
-Overview:
-
-- [Single Docker image (`sourcegraph/server`): NGINX](#sourcegraph-single-instance-docker)
-- [Sourcegraph Cluster (Kubernetes): NGINX](#sourcegraph-cluster-kubernetes)
-- [Docker Compose: Caddy 2](#sourcegraph-via-docker-compose-caddy-2)
-- [Other Sourcegraph clusters (e.g. pure-docker)](#other-sourcegraph-clusters-e-g-pure-docker)
-
-## Sourcegraph single Docker image and Sourcegraph Cluster (Kubernetes): NGINX
-
-Sourcegraph's single Docker image and Kubernetes deployments use [NGINX](https://www.nginx.com/resources/glossary/nginx/) as a [reverse proxy](https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/) for the Sourcegraph front-end server, meaning NGINX proxies external HTTP (and [HTTPS](#nginx-ssl-https-configuration)) requests to the Sourcegraph front-end.
-
-
-
-**Note**: Non-sighted users can view a [text-representation of this diagram](/admin/sourcegraph-nginx-mermaid).
-
-### Sourcegraph single instance (Docker)
-
-The first time Sourcegraph is run, it will create an [`nginx.conf`](https://github.com/sourcegraph/sourcegraph/blob/main/cmd/server/shared/assets/nginx.conf) file at:
-
-- `~/.sourcegraph/config/nginx.conf` on the Docker/Sourcegraph host (presuming you're using the [quickstart `docker run` command](/#quick-install))
-- `/etc/sourcegraph/nginx.conf` inside the container
-
-SSL support requires two things:
-
-1. [Manual editing](#nginx-ssl-https-configuration) of the NGINX configuration file if using the [quickstart docker run command](/#quick-install) as it presumes local or internal usage.
-1. (Now that NGINX is listening on port 7443), we need to configure the Sourcegraph container to forward
-443 to 7443 by adding `--publish 443:7443` to the `docker run` command:
-
-```bash
-docker container run \
- --rm \
- --publish 7080:7080 \
- --publish 127.0.0.1:3370:3370 \
- --publish 443:7443 \
- \
- --volume ~/.sourcegraph/config:/etc/sourcegraph \
- --volume ~/.sourcegraph/data:/var/opt/sourcegraph \
- sourcegraph/server:5.3.1
-```
-
-### Sourcegraph Cluster (Kubernetes)
-
-We use the [ingress-nginx](https://kubernetes.github.io/ingress-nginx/) for Sourcegraph Cluster running on Kubernetes. Refer to the [deploy-sourcegraph Configuration](/admin/deploy/kubernetes/configure#network-access) documentation for more information.
-
-### NGINX SSL/HTTPS configuration
-
-#### If you have a valid SSL certificate
-
-**1.** Copy your SSL certificate and key to `~/.sourcegraph/config` (where the `nginx.conf` file is).
-
-**2.** Edit `nginx.conf` so that port `7080` redirects to `7443` and `7443` is served with SSL. It should look like this:
-
-```nginx
-...
-http {
- ...
- server {
- listen 7080;
- return 301 https://$host:7443$request_uri;
- }
-
- server {
- # Do not remove. The contents of sourcegraph_server.conf can change
- # between versions and may include improvements to the configuration.
- include nginx/sourcegraph_server.conf;
-
- listen 7443 ssl;
- server_name sourcegraph.example.com; # change to your URL
- ssl_certificate sourcegraph.crt;
- ssl_certificate_key sourcegraph.key;
-
- location / {
- ...
- }
- }
-}
-```
-
-#### If you need an SSL certificate
-
-There are a few options:
-
-**[1. Generate a browser-trusted certificate using Let's Encrypt (Certbot)](https://certbot.eff.org/)**
-
-1. On the Certbot homepage, select "Nginx" and the operating system of the machine hosting Sourcegraph.
-1. Follow the instructions to install and run Certbot.
- 1. If there is currently a process (e.g., Sourcegraph) listening on port 80, you'll
- need to stop it before running Certbot:
-
- ```
- docker stop $(docker ps | grep sourcegraph/server | awk '{ print $1 }')
- ```
- 1. When you get to the step describing how to run Certbot, use the "certonly" command: `sudo certbot certonly --nginx`.
- 1. When Certbot runs successfully, it will emit the key file `privkey.pem` and cert file
- `fullchain.pem`. These should be renamed to `sourcegraph.key` and `sourcegraph.crt`,
- respectively, if you are using the `nginx.conf` template mentioned in this doc.
- 1. Kill the NGINX server that Certbot started: `killall nginx`. Restart Sourcegraph:
-
- ```
- docker start $(docker ps -a | grep sourcegraph/server | awk '{ print $1 }')
- ```
- 1. Now visit your Sourcegraph instance at `https://${YOUR_URL}`. If there are issues, debug by examining the Docker logs:
-
- ```
- docker logs $(docker ps | grep sourcegraph/server | awk '{ print $1 }')
- ```
-
-**[2. Generate a self-signed certificate](/admin/ssl_https_self_signed_cert_nginx)**
-
-_This step can be skipped if you already have a certificate from a [globally trusted Certificate Authority (CA) provider](https://en.wikipedia.org/wiki/Certificate_authority#Providers)._
-
-**3. Use your CDN's HTTPS proxy feature**
-
-Some CDNs such as
-[Cloudflare](https://support.cloudflare.com/hc/en-us/articles/200170416-End-to-end-HTTPS-with-Cloudflare-Part-3-SSL-options)
-can handle the HTTPS connection from the user's browser while allowing the underlying service to
-continue serving HTTP (or HTTPS with a self-signed certificate). View your CDN's documentation for
-more details.
-
-### Redirect to external HTTPS URL
-
-The URL that clients should use to access Sourcegraph is defined in the `externalURL` property in [site configuration](/admin/config/site_config). To enforce that clients access Sourcegraph via this URL (and not some other URL, such as an IP address or other non-`https` URL), add the following to `nginx.conf` (replacing `https://sourcegraph.example.com` with your external URL):
-
-``` nginx
-# Redirect non-HTTPS traffic to HTTPS.
-server {
- listen 80;
- server_name _;
-
- location / {
- return 301 https://sourcegraph.example.com$request_uri;
- }
-}
-```
-
-### HTTP Strict Transport Security
-
-[HTTP Strict Transport Security](https://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security) instructs web clients to only communicate with the server over HTTPS. To configure it, add the following to `nginx.conf` (in the `server` block):
-
-``` nginx
-add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
-```
-
-See [`add_header` documentation](https://nginx.org/en/docs/http/ngx_http_headers_module.html#add_header) and "[Configuring HSTS in nginx](https://www.nginx.com/blog/http-strict-transport-security-hsts-and-nginx/)" for more details.
-
-### Additional NGINX SSL configuration
-
-See the [NGINX SSL Termination](https://docs.nginx.com/nginx/admin-guide/security-controls/terminating-ssl-http/) guide and [Configuring HTTPS Servers](https://nginx.org/en/docs/http/configuring_https_servers.html).
-
-### Next steps
-
-You should configure Sourcegraph's `externalURL` in the [site configuration](/admin/config/site_config) (and restart the frontend instances) so that Sourcegraph knows its URL.
-
-## Sourcegraph via Docker Compose: Caddy 2
-
-Sourcegraph's [Docker Compose deployment](/admin/deploy/docker-compose/) uses [Caddy 2](https://caddyserver.com/) as its reverse proxy. The Docker Compose deployment ships with a few builtin templates that cover common scenarios for exposing Sourcegraph:
-
-- plain HTTP
-- HTTPS with automatically provisioned Let's Encrypt certificates
-- HTTPS with custom certificates that you provide
-
-Usage instructions are provided via [the `caddy` service's inline comments inside the `docker-compose.yaml` definition](https://github.com/sourcegraph/deploy-sourcegraph-docker/blob/3.14/docker-compose/docker-compose.yaml#L3:L58). Detailed steps are found below.
-
-**Important:** When setting up caddy's automatic Lets Encrypt TLS certification for HTTPS we strongly recommended to test with the staging configuration first. However, the TLS certs provided by Lets Encrypt staging will not be verifiable, and will display an `unknown certificate` error. Once you are done testing, you will need to comment out the staging env variable and uncomment the production env variable for fully functional HTTPS.
-
-### HTTPS with Custom Certificates in Docker Compose
-
-**Important:** [https.custom-cert.Caddyfile](https://github.com/sourcegraph/deploy-sourcegraph-docker/blob/master/caddy/builtins/https.custom-cert.Caddyfile) should not require any updates and should remain untouched. Updates should be made in the [docker-compose.yaml](https://github.com/sourcegraph/deploy-sourcegraph-docker/blob/master/docker-compose/docker-compose.yaml) file only and as described below.
-
-In your [docker-compose.yaml](https://github.com/sourcegraph/deploy-sourcegraph-docker/blob/master/docker-compose/docker-compose.yaml) within the caddy section:
-
-1. In the Environment section of the compose file uncomment & update this line with your Sourcegraph Site Address:
-
- ```
- - 'SRC_SITE_ADDRESS=sourcegraph.example.com'
- ```
-1. In Volumes section of the compose file comment out the following line
-
- ```
- - '//builtins/http.Caddyfile:/etc/caddy/Caddyfile'
- ```
-1. In Volumes section of the compose file uncomment the following line:
-
- ```
- - '//builtins/https.custom-cert.Caddyfile:/etc/caddy/Caddyfile'
- ```
-1. In Volumes section of the compose file uncomment and update the following line with your custom cert path:
-
- ```
- - '/LOCAL/CERT/PATH.pem:/sourcegraph.pem'
- ```
-1. In Volumes section of the compose file uncomment and update the following line with your custom cert path:
-
- ```
- - '/LOCAL/KEY/PATH.key:/sourcegraph.key'
- ```
-**NOTE**: When adding your certs to your instance, make sure they are in the `deploy-sourcegraph-docker` folder, not outside of it. They will not be recognized otherwise.
-
-## Other Sourcegraph clusters (e.g. pure-Docker)
-
-NGINX is not included in the [pure-Docker deployment](https://github.com/sourcegraph/deploy-sourcegraph-docker) as it's designed to be minimal and not tied to any specific reverse proxy.
-
-If NGINX is your preferred reverse proxy, we suggest using [the official NGINX docker images](https://hub.docker.com/_/nginx) and following their instructions for [securing HTTP traffic with a proxied server](https://docs.nginx.com/nginx/admin-guide/security-controls/securing-http-traffic-upstream/).
diff --git a/docs/versioned/5.2/admin/img/outbound-request-log.png b/docs/versioned/5.2/admin/img/outbound-request-log.png
deleted file mode 100644
index ee0840b46..000000000
Binary files a/docs/versioned/5.2/admin/img/outbound-request-log.png and /dev/null differ
diff --git a/docs/versioned/5.2/admin/img/sourcegraph-nginx.svg b/docs/versioned/5.2/admin/img/sourcegraph-nginx.svg
deleted file mode 100644
index 6c828f7b9..000000000
--- a/docs/versioned/5.2/admin/img/sourcegraph-nginx.svg
+++ /dev/null
@@ -1,364 +0,0 @@
-HTTP request: 80
HTTPS request :443
HTTP request: 7080
HTTP request: 7080
Browser/Client
NGINX
Sourcegraph front-end
diff --git a/docs/versioned/5.2/admin/index.mdx b/docs/versioned/5.2/admin/index.mdx
deleted file mode 100644
index 3eb3d3b22..000000000
--- a/docs/versioned/5.2/admin/index.mdx
+++ /dev/null
@@ -1,72 +0,0 @@
-# Administration
-
-Administration is usually handled by site administrators are the admins responsible for deploying, managing, and configuring Sourcegraph for regular users. They have [special privileges](/admin/privileges) on a Sourcegraph instance. Check out this [quickstart guide](/admin/how-to/site-admin-quickstart) for more info on Site Administration.
-
-## [Deploy and Configure Sourcegraph](/admin/deploy/)
-
-- [Deployment overview](/admin/deploy/)
- - [Kubernetes with Helm](/admin/deploy/kubernetes/helm)
- - [Docker Compose](/admin/deploy/docker-compose/)
- - [See all deployment options](/admin/deploy/#deployment-types)
-- [Best practices](/admin/deployment_best_practices)
-- [Deploying workers](/admin/workers)
-- [PostgreSQL configuration](/admin/config/postgres-conf)
-- [Using external services (PostgreSQL, Redis, S3/GCS)](/admin/external_services/)
-- [Validation](/admin/validation) (experimental)
-- [Executors](/admin/executors/)
-
-## [Upgrade Sourcegraph](/admin/updates/)
-
-> NOTE: The Sourcegraph 4.0 [`migrator`](/admin/updates/migrator/migrator-operations) can now perform upgrades across [multiple versions](/admin/updates/#multi-version-upgrades) on any instance 3.20 or later.
-
-- [Upgrade Sourcegraph](/admin/updates/)
- - [Single-minor-version "standard" upgrades](/admin/updates/#standard-upgrades)
- - [Multi-version upgrades](/admin/updates/#multi-version-upgrades)
-- [Migration guides](/admin/migration/)
-- [Upgrading PostgreSQL](/admin/postgres#upgrading-postgresql)
-
-## [Configuration](/admin/config/)
-
-- [Site Administrator Quickstart](/admin/how-to/site-admin-quickstart)
-- [Integrations](/integration/)
-- [Adding Git repositories](/admin/repo/add) (from a code host or clone URL)
- - [Monorepo](/admin/monorepo)
- - [Repository webhooks](/admin/repo/webhooks)
-- [HTTP and HTTPS/SSL configuration](/admin/http_https_configuration)
- - [Adding SSL (HTTPS) to Sourcegraph with a self-signed certificate](/admin/ssl_https_self_signed_cert_nginx)
-- [User authentication](/admin/auth/)
- - [User data deletion](/admin/user_data_deletion)
-- [Provision users through SCIM](/admin/scim) (Beta)
-- [Access control](/admin/access_control/) (Beta)
-- [Setting the URL for your instance](/admin/url)
-- [Repository permissions](/admin/permissions/)
- - [Row-level security](/admin/repo/row_level_security)
-- [Batch Changes](/batch_changes/how-tos/site_admin_configuration)
-- [Configure webhooks](/admin/config/webhooks/)
-
-For deployment configuration, please refer to the relevant [installation guide](/admin/deploy/).
-
-## [Observability](/admin/observability)
-
-- [Monitoring guide](/admin/how-to/monitoring-guide)
-- [Metrics and dashboards](/admin/observability/metrics)
-- [Alerting](/admin/observability/alerting)
-- [Tracing](/admin/observability/tracing)
-- [Logs](/admin/observability/logs)
-- [Outbound request log](/admin/observability/outbound-request-log)
-- [OpenTelemetry](/admin/observability/opentelemetry)
-- [Health checks](/admin/observability/health_checks)
-- [Troubleshooting guide](/admin/observability/troubleshooting)
-
-## Features
-
-- [Analytics](/admin/analytics) (experimental)
-- [Batch Changes](/batch_changes/)
-- [Beta and experimental features](/admin/beta_and_experimental_features)
-- [Code navigation](/code-search/code-navigation/)
-- [Pings](/admin/pings)
-- [Pricing and subscriptions](/admin/subscriptions/)
-- [Search](/admin/search)
-- [Usage statistics](/admin/usage_statistics)
-- [User feedback surveys](/admin/user_surveys)
-- [Audit logs](/admin/audit_log)
diff --git a/docs/versioned/5.2/admin/licensing/index.mdx b/docs/versioned/5.2/admin/licensing/index.mdx
deleted file mode 100644
index f7cb01ce1..000000000
--- a/docs/versioned/5.2/admin/licensing/index.mdx
+++ /dev/null
@@ -1,40 +0,0 @@
-# Licensing
-
-Sourcegraph requires a valid license key to enable many of its more prominent features.
-
-License keys should not be shared across instances of Sourcegraph. If an additional license key is required for something like a dev environment, please [contact customer support](https://about.sourcegraph.com/contact) for an additional license key.
-
-## FAQ
-
-### What happens if our Sourcegraph license expires?
-
-#### After Sourcegraph 5.3
-
-Sourcegraph will continue to function as normal, but all users will be signed out of Sourcegraph. Only site administrators will be able to sign into Sourcegraph so that they can enter a new license key.
-
-#### Before Sourcegraph 5.3
-
-Sourcegraph will revert to a free license, and any features that require an enterprise license will stop functioning. This could lead to data loss if some of these features were in use, so be sure to renew your license in advance!
-
-### How can we update our license key?
-
-Any current Site Admin can update your license key by going to Site Admin -> [Site configuration](/admin/config/site_config)
-
-These settings live in the JSON object, and you will need to navigate to the _licenseKey_ section of that object.
-
-Update the value of this with your new license key and click Save to apply your changes.
-
-Example:
-```
- "licenseKey": "",
-```
-
-### We have set up a new Sourcegraph instance by replicating an existing instance, how can we generate a new site ID to ensure the instances are unique?
-
-The site ID of a Sourcegraph instance can be updated by running the following SQL query against the database:
-
-```sql
-UPDATE global_state SET site_id = gen_random_uuid();
-```
-
-You will still require a unique license key for each site ID.
diff --git a/docs/versioned/5.2/admin/markdown.mdx b/docs/versioned/5.2/admin/markdown.mdx
deleted file mode 100644
index 3308e167f..000000000
--- a/docs/versioned/5.2/admin/markdown.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
-# Sourcegraph-flavored Markdown
-
-Sourcegraph uses [GitHub Flavored Markdown (GFM)](https://github.github.com/gfm/) anywhere Markdown is rendered. We like this [Markdown cheatsheet](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet) for reference.
diff --git a/docs/versioned/5.2/admin/migration/3_0.mdx b/docs/versioned/5.2/admin/migration/3_0.mdx
deleted file mode 100644
index 18b98609c..000000000
--- a/docs/versioned/5.2/admin/migration/3_0.mdx
+++ /dev/null
@@ -1,72 +0,0 @@
-# Migrating to Sourcegraph 3.0.1+
-
-3.0 includes a few major product and configuration changes that you should be aware of if you are upgrading an existing instance.
-
-## PostgreSQL upgrade
-
-> WARNING: ⚠️ Because `3.0.1` [upgrades the PostgreSQL version](/admin/postgres):
->
->* Anyone upgrading from `2.x` to `3.0.1+`, or from `3.0.0` to `3.0.1+` MUST follow the [Upgrading PostgreSQL](/admin/postgres) instructions below.
->* It will not be possible to downgrade from `3.0.1+` to `2.x` unless you also restore your PostgreSQL database from a `2.x` snapshot.
-
-The version of PostgreSQL that ships with Sourcegraph `3.0.1` has been upgraded to `11.1` for all deployments.
-
-👉 Follow the [upgrade instructions](/admin/postgres) to safely migrate your data.
-
-If you are connecting Sourcegraph to an external PostgreSQL database, the minimum supported version is `12`.
-
-## Zero configuration code navigation is on by default for 10 languages
-
-The [sourcegraph/basic-code-intel](https://sourcegraph.com/extensions/sourcegraph/basic-code-intel) extension has been deprecated and split into one extension per language, with the top 10 [programming language extensions](https://sourcegraph.com/extensions?query=category%3A"Programming+languages") enabled by default.
-
-If you have [sourcegraph/basic-code-intel](https://sourcegraph.com/extensions/sourcegraph/basic-code-intel) enabled, disable it and enable any additional extensions for languages you use.
-
-If you were running language servers with 2.x from the `https://sourcegraph.example.com/site-admin/code-intelligence` page, you will need to enable the corresponding [Sourcegraph language extensions](https://sourcegraph.com/extensions?query=category%3A"Programming+languages") and follow the READMEs to set up language servers and to point the extensions to those language servers.
-
-## Repositories are managed by configuring external services
-
-Top level configuration options for code hosts (e.g. "github", "gitlab", "phabricator", "awscodecommit", "bitbucket", "gitolite") have been removed from [site configuration](https://docs.sourcegraph.com/admin/site_config/all).
-
-The configuration of code hosts and repositories has moved to the external services UI at `https://sourcegraph.example.com/site-admin/external-services`.
-
-The data from your existing site configuration will be automatically migrated when you upgrade to 3.0, so **no action is required**.
-
-## `repos.list` was removed from site configuration
-
-The top-level `repos.list` site configuration was removed in favour of each code-host's equivalent options, now configured via [external services](#Repositories-are-managed-by-configuring-external-services). Equivalent options in code hosts configuration:
- - GitHub via [`github.repos`](https://docs.sourcegraph.com/admin/site_config/all#repos-array)
- - GitLab via [`gitlab.projectQuery`](https://docs.sourcegraph.com/admin/site_config/all#projectquery-array)
- - Phabricator via [`phabricator.repos`](https://docs.sourcegraph.com/admin/site_config/all#phabricator-array)
- - [Other external services](https://docs.sourcegraph.com/admin/repo/add_from_other_external_services)
-
-## Configuration is now stored in the database, not in a config.json file
-
-Sourcegraph configuration is now stored in the PostgreSQL database, not in a configuration file. Editing the configuration is now only possible through the web UI (even in cluster deployments). Critical Sourcegraph configuration is stored in the management console.
-
-When you first start 3.0, the old configuration file will be copied into the database to populate the site configuration and management console. After this, you should delete that file as it will no longer be respected.
-
-For single-node deployments (`sourcegraph/server`), this file is `/etc/sourcegraph/sourcegraph-config.json` inside the Docker container.
-
-For Kubernetes cluster deployments, this is your `config-file` config map (`deploy-sourcegraph/base/config-file.ConfigMap.yaml`).
-
-## Some site configuration options have moved to the new management console
-
-The following options have moved into the management console:
-
-```
-auth.providers
-auth.public
-auth.sessionExpiry
-auth.userOrgMap
-externalURL
-htmlBodyBottom
-htmlBodyTop
-htmlHeadBottom
-htmlHeadTop
-licenseKey
-lightstepAccessToken
-lightstepProject
-log
-update.channel
-useJaeger
-```
diff --git a/docs/versioned/5.2/admin/migration/3_11.mdx b/docs/versioned/5.2/admin/migration/3_11.mdx
deleted file mode 100644
index bde438a7e..000000000
--- a/docs/versioned/5.2/admin/migration/3_11.mdx
+++ /dev/null
@@ -1,26 +0,0 @@
-# Migration notes for Sourcegraph 3.11+
-
-### Management console removal
-
-In Sourcegraph v3.11, the management console has been removed and all of its configuration properties have been moved into the **Site admin** > **Configuration** page. Upon upgrading, your management console configuration will automatically be merged into your site configuration.
-
-### Users of SITE_CONFIG_FILE and CRITICAL_CONFIG_FILE
-
-If you are making use of `SITE_CONFIG_FILE` or `CRITICAL_CONFIG_FILE` environment variables please:
-
-1. Simply copy all properties from `CRITICAL_CONFIG_FILE` and paste them into `SITE_CONFIG_FILE`.
-2. Upgrade to the latest Sourcegraph version.
-3. Delete and remove the `CRITICAL_CONFIG_FILE`, as it will no longer be used.
-
-If you have already upgraded without doing the above, simply copy the merged configuration from `https://sourcegraph.example.com/site-admin/configuration` back into your `SITE_CONFIG_FILE`, delete and remove the `CRITICAL_CONFIG_FILE`.
-
-### Downgrading
-
-If you intend to downgrade from v3.11 back to v3.10 or earlier, please note that you will need to restore your management console configuration after downgrading. To safely downgrade, please perform the following steps:
-
-1. Make a copy of your site configuration.
-2. Change the Docker image tag(s) to 3.10 or earlier and restart the server.
-3. Visit the management console, your critical configuration will be just `{"migrated": true}`.
-4. Copy the relevant properties from your site configuration into the management console.
-
-If you have any questions or concerns, please reach out to us `support@sourcegraph.com`.
diff --git a/docs/versioned/5.2/admin/migration/3_30.mdx b/docs/versioned/5.2/admin/migration/3_30.mdx
deleted file mode 100644
index 790cdc3d2..000000000
--- a/docs/versioned/5.2/admin/migration/3_30.mdx
+++ /dev/null
@@ -1,20 +0,0 @@
-# Migrating from 3.30.0, 3.30.1, and 3.30.2
-
-The Sourcegraph 3.30 release introduced a change that caused corruption in certain indexes, breaking a number of Sourcegraph features. **This issue affects Sourcegraph 3.30.0, 3.30.1, and 3.30.2**, and was fixed in 3.30.3.
-
-- Users on 3.29.x are advised to upgrade directly to 3.30.3.
-- Users that have already upgraded to one of the affected releases must fix the already corrupt databases manually by following this guide: [**How to rebuild corrupt Postgres indexes**](/admin/how-to/rebuild-corrupt-postgres-indexes).
-
-> WARNING: If you have already upgraded to one of the affected releases, **do not upgrade to 3.30.3** after applying the above fix. Instead, [please upgrade directly to 3.31](/admin/migration/3_31).
-
-If you need any additional assistance, please reach out to `support@sourcegraph.com`.
-
-## Background
-
-The 3.30 release introduced a `pgsql` and `codeinteldb` base image change from debian to alpine which changed the default OS locale.
-This caused corruption in indexes that have collatable key columns (e.g. any index with a `text` column).
-Read more about this [here](https://postgresql.verite.pro/blog/2018/08/27/glibc-upgrade.html).
-
-After we found the root-cause of the [issues many customers were seeing](https://github.com/sourcegraph/sourcegraph/issues/23288), we cut [a patch release, 3.30.3](/CHANGELOG#3-30-3), that reverted the images to be based on debian, buying us time to change the alpine based version of the images to [reindex affected indexes on startup, before accepting new connections](https://github.com/sourcegraph/sourcegraph/issues/23310).
-
-However, this means that after fixing the corrupt indexes on the alpine images in the affected releases, upgrading to debian based images in 3.30.3 will cause index corruption again. For this reason, **do not upgrade to 3.30.3** after fixing corrupt Postgres indexes. Instead, [please upgrade directly to 3.31](/admin/migration/3_31).
diff --git a/docs/versioned/5.2/admin/migration/3_31.mdx b/docs/versioned/5.2/admin/migration/3_31.mdx
deleted file mode 100644
index d77b9471a..000000000
--- a/docs/versioned/5.2/admin/migration/3_31.mdx
+++ /dev/null
@@ -1,95 +0,0 @@
-# Migrating to Sourcegraph 3.31.x
-
-> NOTE: The following applies only users that use our built-in databases. Users that use external databases (e.x: Amazon RDS, Google Cloud SQL, etc.) are not affected, and can ignore this page.
-
-In Sourcegraph 3.31.x, both the **built-in** main Postgres (`pgsql`) and codeintel (`codeintel-db`) databases have switched to an Alpine-based Docker image—this has been done to resolve vulnerabilities found in Debian but not Alpine. Upon upgrading, Sourcegraph will need to re-index the entire database. This process requires some preparation, so please read through **all** of the instructions on the rest of the page beforehand.
-
-For customers who previously upgraded to 3.27, there is a possibility that upgrade inadvertently introduced a major glibc change. This may have caused corruption in some indexes. While this is unlikely to have been noticeable up til now, upgrading to 3.31 (or more specifically the subsequent reindexing) will fail unless certain steps are taken before hand. Customers who have installed fresh from 3.27 or later should be unaffected by this potential data corruption, but are still likely to see the delay caused by the reindexing following upgrade.
-
-> WARNING: We advise all customers upgrading to 3.31 to check for corruption prior to upgrading to 3.31, and allow for greater than normal downtime. See below for more detailed advice.
-
-## Preparations
-
-### Check for prior index corruption before upgrading
-
-There is a possibility that prior Sourcegraph upgrades inadvertently introduced a major glibc change. This can cause corruption in indexes that have collatable key columns (e.g. any index with a `text` column). Read more about this [here](https://postgresql.verite.pro/blog/2018/08/27/glibc-upgrade.html).
-
-If your indexes are corrupted, then there is also a possibility that there is bad data in your databases that would cause the re-indexing process (and thus the 3.31.x upgrade) to fail. In order to do a first-pass check for corrupt indexes, please run the following SQL query against **both** of the following instances **before** upgrading to 3.31.x:
-
-1. `pgsql`
-2. `codeintel-db`
-
-*For more information about how to access a database container and run queries via `psql` see our admin documentation for [kubernetes](/admin/deploy/kubernetes/operations#access-the-database), [docker-compose](/admin/deploy/docker-compose/#access-the-database) or [single-container docker](/admin/deploy/docker-single-container/#access-the-database)*
-
-```sql
-create extension amcheck;
-
-select bt_index_parent_check(c.oid, true), c.relname, c.relpages
-from pg_index i
-join pg_opclass op ON i.indclass[0] = op.oid
-join pg_am am ON op.opcmethod = am.oid
-join pg_class c ON i.indexrelid = c.oid
-join pg_namespace n ON c.relnamespace = n.oid
-where am.amname = 'btree'
--- Don't check temp tables, which may be from another session:
-and c.relpersistence != 't'
--- Function may throw an error when this is omitted:
-and i.indisready AND i.indisvalid;
-```
-
-#### If no errors are reported
-
-It is probable that your indexes are fine (and thus no bad data is in your databases). You can proceed to ["Prepare for downtime"](#prepare-for-downtime).
-
-#### If any errors are reported
-
-You will need to repair the corrupt Postgres database indexes prior to upgrading by following the steps in [How to rebuild corrupt Postgres indexes.](https://docs.sourcegraph.com/admin/how-to/rebuild-corrupt-postgres-indexes) Contact customer support with any questions.
-
-### Prepare for downtime
-
-**Sourcegraph will be unavailable until the re-indexing process has completed.** If the database containers are restarted/killed during the re-indexing process (for example, as a result of automated deployments), re-indexing will have to start over from scratch. Please plan accordingly, and communicate this downtime to your users.
-
-For systems with large datasets, re-indexing can take **1-2+ hours**.
-
-To validate the size of your dataset relative to these estimates, we can help estimate your potential downtime with some additional information.
-
-In order to check your dataset size, please run the following SQL query against **both** of the following instances:
-
-1. `pgsql`
-2. `codeintel-db`
-
-```sql
-SELECT
- table_name,
- pg_size_pretty(total_bytes) AS total,
- pg_size_pretty(index_bytes) AS index,
- pg_size_pretty(toast_bytes) AS toast,
- pg_size_pretty(table_bytes) AS table
-FROM
- (
- SELECT
- *,
- total_bytes - index_bytes - coalesce(toast_bytes, 0) AS table_bytes
- FROM
- (
- SELECT
- relname AS table_name,
- pg_total_relation_size(c.oid) AS total_bytes,
- pg_indexes_size(c.oid) AS index_bytes,
- pg_total_relation_size(reltoastrelid) AS toast_bytes
- FROM
- pg_class c
- LEFT JOIN
- pg_namespace n
- ON n.oid = c.relnamespace
- WHERE
- relkind = 'r'
- )
- a
- )
- a
-ORDER BY
- total_bytes DESC;
-```
-
-Please contact either customer support or your Customer Engineer with this information and we'll advise further.
diff --git a/docs/versioned/5.2/admin/migration/3_7.mdx b/docs/versioned/5.2/admin/migration/3_7.mdx
deleted file mode 100644
index 8b0b12e92..000000000
--- a/docs/versioned/5.2/admin/migration/3_7.mdx
+++ /dev/null
@@ -1,97 +0,0 @@
-# Migrating to Sourcegraph 3.7.2+
-
-Sourcegraph 3.7.2+ includes much faster indexed symbol search ([on large searches, up to 20x faster](https://docs.google.com/spreadsheets/d/1oPzePjD8YLrnppLm3nk46h48_Cxipz4_QqRMBYaIOYQ/edit?usp=sharing)). However, there are some aspects you should be aware of when upgrading an existing Sourcegraph instance:
-
-Upgrading and downgrading is safe, reindexing will occur in the background seamlessly with no downtime or harm to search performance.
-
-**Please read this document in full before upgrading to 3.7.**
-
-## Increased disk space requirements
-
-With indexed symbol search comes an **increase in the required disk space. Please ensure you have enough free space before upgrading.**
-
-Run the command below for your deployment to determine how much disk space the indexed search indexes are taking currently. Then, multiply the number you get times 1.3 to determine how much free space you need before upgrading.
-
-For example, in the below examples we see 126 GiB is currently in use. Multiplying 126 GiB * 1.3 gives us 163.8 GiB (the amount we should ensure is free before upgrading).
-
-### Single-container Docker deployment
-
-Run the following on the host machine:
-
-```bash
-$ du -sh ~/.sourcegraph/data/zoekt/index/
-126G /Users/jane/.sourcegraph/data
-```
-
-
-### Kubernetes cluster deployment
-Run the following, but replace the value of `$POD_NAME` with your `indexed-search` pod name from `kubectl get pods`:
-
-```
-$ POD_NAME='indexed-search-974c74498-6jngm' kubectl --namespace=prod exec -it $POD_NAME -c zoekt-indexserver -- du -sh /data/index
-126G /data/index
-```
-
-### Pure-Docker cluster Deployment
-
-Run the following against the `zoekt-shared-disk` directory on the host machine:
-
-```bash
-$ du -sh ~/sourcegraph-docker/zoekt-shared-disk/
-126G /home/ec2-user/sourcegraph-docker/zoekt-shared-disk/
-```
-
-
-## Background indexing
-
-Sourcegraph will reindex all repositories in the background seamlessly. In the meantime, it will serve searches just as fast from the old search index.
-
-This process happens at a rate of about 1,400 repositories/hr, depending on repository size and available resources.
-
-**Until this process has completed, search performance will be the same as the prior version.**
-
-If you're eager or want to confirm, here's how to check the process has finished:
-
-### Single-container Docker deployment
-The following command ran on the host machine shows how many repositories have been reindexed:
-
-```bash
-$ ls ~/.sourcegraph/data/zoekt/index/*_v16* | wc -l
- 12583
-```
-
-When it is equal to the number of repositories on your instance, the process has finished!
-
-
-### Kubernetes cluster deployment
-The following command will show how many repositories have been reindexed. Replace the value of `$POD_NAME` with your `indexed-search` pod name from `kubectl get pods`:
-
-```bash
-$ kubectl --namespace=prod exec -it indexed-search-974c74498-6jngm -c zoekt-indexserver -- sh -c 'ls /data/index/*_v16* | wc -l'
-12583
-```
-
-When it is equal to the number of repositories on your instance, the process has finished!
-
-
-### Pure-Docker cluster deployment
-The following command ran on the host machine against the `zoekt-shared-disk` directory will show how many repositories have been reindexed.
-
-```bash
-$ ls ~/sourcegraph-docker/zoekt-shared-disk/*_v16* | wc -l
-12583
-```
-
-When it is equal to the number of repositories on your instance, the process has finished!
-
-
-## Downgrading
-
-As guaranteed by our compatibility promise, it is always safe to downgrade to a previous minor version. e.g. 3.7.2 to 3.6.x. There will be no downtime, and search speed will not be impacted.
-
-Please do *not* downgrade or upgrade to 3.7.0 or 3.7.1, though, as those versions will incur a reindex and search performance will be harmed in the meantime.
-
-## Memory and CPU requirements (no substantial change compared to v3.5)
-
-- In v3.7, the `indexed-search` / `zoekt-indexserver` container will use 28% more memory on average compared to v3.6. However, please take note that v3.6 reduced memory consumption of the same container by about 41% -- so the net change from v3.5 -> v3.7 is still less memory usage overall.
-- CPU usage may increase depending on the amount of symbol queries your users run now that it is much faster. We suggest not changing any CPU resources and instead checking resource usage after the upgrade and reindexing has finished.
diff --git a/docs/versioned/5.2/admin/migration/5_1.mdx b/docs/versioned/5.2/admin/migration/5_1.mdx
deleted file mode 100644
index f170605c4..000000000
--- a/docs/versioned/5.2/admin/migration/5_1.mdx
+++ /dev/null
@@ -1,71 +0,0 @@
-# Migrating to Sourcegraph 5.1.x
-
-> NOTE: The following applies only deployments that use our [Docker Single Container Deployment](https://docs.sourcegraph.com/admin/deploy/docker-single-container) with the default built-in database. Deployments that use the Single Container Deployment with external databases (e.g. Amazon RDS, Google Cloud SQL, etc.), and users of other deployment methods (Docker Compose, Kubernetes, Machine Images, Sourcegraph Cloud) are **not affected**, and can ignore this page.
-
-In Sourcegraph 5.1.x, the container image used for Docker Single Container Deployments has switched from an Alpine-based image to a Wolfi-base image in order to provide a more secure container. Upon upgrading, Sourcegraph will need to re-index the entire database. This process is automatic but requires user interation to start as it can take up to several hours to complete. It is strongly recommended to review and follow the instructions on this page prior to upgrading.
-
-## Determine whether you are affected
-
-Only instances which fit the following criteria are affected:
-
-* Using the [Docker Single Container Deployment](https://docs.sourcegraph.com/admin/deploy/docker-single-container)
-* Using the default built-in database (i.e. not
-connecting to an external database like Amazon RDS, Google Cloud SQL, etc.)
-* Upgrading from any release prior to Sourcegraph 5.1
-
-If you are unsure whether you are affected by this migration, please contact either customer support or your Customer Engineer for further advice.
-
-## Preparations
-
-### Determine how long the migration will take
-
-You can estimate the duration of the migration by looking at the size of the instance's Postgres directory, which can be found under `data/postgresql` on the host, or mounted as `/var/opt/sourcegraph/postgresql` on the instance.
-
-Based on Sourcegraph's testing, you should allow 15-20 minutes per 100GB of data in this directory.
-
-### Provision additional resources for the server instance
-
-Ensure that the instance has sufficient free disk space, as reindexing can temporarily require up to 25% additional disk space beyond the size of the existing Postgres data directory.
-
-> The following is an optional step, but can help reduce the downtime needed during the migration.
-
-Postgres reindexing speed is primarily affected by:
-
-* The amount of RAM available
-* The speed of the underlying storage (SSD recommended)
-
-Temporarily provisioning additional RAM and faster storage can help reduce the time needed for reindexing.
-
-As the Postgres reindexing process is single-threaded, provisioning more CPU cores beyond 2 will not significantly help speed up reindexing.
-
-### Back up data volumes
-
-As with all migrations, you should take the precaution of backing up both the `data` and `config` volumes from the existing instance prior to upgrading.
-
-### Ensure that the instance will not be terminated during the migration
-
-As the migration process can take up to several hours, ensure that any health check systems which may terminate unavailable instances are disabled for the duration of the migration.
-
-## Migrating
-
-Once the preceded preparation steps have been followed, start up the instance using a 5.1 or later container image, with the following environment variable set:
-
-`SOURCEGRAPH_5_1_DB_MIGRATION=true`
-
-> If you start up the instance without this variable set, the instance will not start and instead display a message referring to this migration guide.
-
-The migration will then run automatically. During this time, information about the reindexing process will be written to the container's log.
-
-Once the migration has completed, you can start up the instance as usual without this environment variable set.
-
-If the migration fails to complete due to an error or takes significantly longer than estimated, please contact either customer support or your Customer Engineer with this information and we'll advise further.
-
-## Rolling back to Sourcegraph 5.0 (or earlier) prior to running the migration
-
-If you have not performed the "Migrating" step above, you can roll back to Sourcegraph 5.0 (or earlier) by switching back to the previously-used image.
-
-## Rolling back to Sourcegraph 5.0 (or earlier) after running the migration
-
-If you have performed the "Migrating" step above but need to roll back to Sourcegraph 5.0 (or earlier), you should restore a backup of the `data` volume taken prior to the migration step.
-
-If you did not take a backup of this volume prior to migrating, please contact either customer support or your Customer Engineer and we'll advise further.
diff --git a/docs/versioned/5.2/admin/migration/index.mdx b/docs/versioned/5.2/admin/migration/index.mdx
deleted file mode 100644
index 47e2aa7e8..000000000
--- a/docs/versioned/5.2/admin/migration/index.mdx
+++ /dev/null
@@ -1,16 +0,0 @@
-# Migration guides
-
-## Guides
-
-- [Migrating from Oracle OpenGrok to Sourcegraph for code search](/admin/migration/opengrok)
-- [Back up or migrate to a new Sourcegraph instance](/admin/deploy/migrate-backup)
-- [Update notes](/admin/updates/)
-- [Migrating from Sourcegraph 3.30.0, 3.30.1, and 3.30.2](/admin/migration/3_30)
-- [Migrating to Sourcegraph 3.31.x](/admin/migration/3_31)
-- [Migrating to Sourcegraph 5.1.x](/admin/migration/5_1)
-
-## Legacy guides
-
-- [Migrating from Sourcegraph 2.13 to 3.0.0](/admin/migration/3_0)
-- [Migrating from Sourcegraph 3.x to 3.7.2+](/admin/migration/3_7)
-- [Migrating from Sourcegraph 3.x to 3.11](/admin/migration/3_11)
diff --git a/docs/versioned/5.2/admin/migration/opengrok.mdx b/docs/versioned/5.2/admin/migration/opengrok.mdx
deleted file mode 100644
index 9762ed1d7..000000000
--- a/docs/versioned/5.2/admin/migration/opengrok.mdx
+++ /dev/null
@@ -1,109 +0,0 @@
-# Migrating from Oracle OpenGrok to Sourcegraph for code search
-
-> NOTE: This guide helps Sourcegraph admins migrate from deploying Oracle OpenGrok to Sourcegraph. See our [Oracle OpenGrok end user migration guide](/code-search/how-to/opengrok) to learn how to switch from OpenGrok's search syntax to Sourcegraph's.
-
-You can migrate from Oracle's [OpenGrok](https://oracle.github.io/opengrok/) to [Sourcegraph](https://about.sourcegraph.com) for code search by following the steps in this document.
-
-- [Background](/admin/migration/opengrok#background)
-- [Migration guide](/admin/migration/opengrok#migration-guide)
- 1. [Deploying Sourcegraph](/admin/migration/opengrok#deploying-sourcegraph)
- 1. [Configuring repositories](/admin/migration/opengrok#configuring-repositories)
- 1. [Configuring user authentication](/admin/migration/opengrok#configuring-user-authentication)
- 1. [Rolling out Sourcegraph organization-wide](/admin/migration/opengrok#rolling-out-sourcegraph-organization-wide)
-
-## Background
-
-Sourcegraph is a self-hosted code search and intelligence tool that helps developers find, review, understand, and debug code. Organizations that switch from OpenGrok to Sourcegraph typically cite the following reasons:
-
-- Sourcegraph supports [searching any revision](/code-search/features) (not just specific branches) and does not require waiting for periodic reindexing.
-- Sourcegraph's [query syntax](/code-search/queries), user interface, and [integrations](/integration/) are superior and easier to use.
-- Sourcegraph's [code navigation](/code_navigation/), has better language support (hover tooltips, definitions, references, implementations, etc.) and is based on the Language Server Protocol standard.
-- The [Sourcegraph API](/api/graphql/) is more powerful, better documented, and easier to use than OpenGrok's API.
-- Sourcegraph scales to more repositories/users and supports Kubernetes-based clustered/high-availability deployments better (with the [cluster deployment option](/admin/deploy/kubernetes/)).
-
-Both Sourcegraph and OpenGrok are self-hosted, and your code never touches Sourcegraph's (or Oracle's) servers.
-
-Oracle releases OpenGrok under the open-source CDDL license and does not (currently) have any monetization plans for it. Sourcegraph is a commercial product, with a free tier and [paid premium features](https://about.sourcegraph.com/pricing) available.
-
-Every organization's needs are different. [Try Sourcegraph for free](/admin/deploy/) to see if it's right for your organization.
-
-For more information about Sourcegraph, see:
-
-- "[What is Sourcegraph?](/getting-started/#what-is-sourcegraph)"
-- "[Code search overview](/code-search/)"
-- Live examples on public code: [Sourcegraph tour](/getting-started/tour)
-
-## Migration guide
-
-Migrating from Oracle OpenGrok to Sourcegraph consists of 4 steps:
-
-1. [Deploying Sourcegraph](/admin/migration/opengrok#deploying-sourcegraph)
-1. [Configuring repositories](/admin/migration/opengrok#configuring-repositories)
-1. [Configuring user authentication](/admin/migration/opengrok#configuring-user-authentication)
-1. [Rolling out Sourcegraph organization-wide](/admin/migration/opengrok#rolling-out-sourcegraph-organization-wide)
-
-The following sections guide you through the migration process.
-
-### Deploying Sourcegraph
-
-We offer several methods for deploying Sourcegraph for various requirements—see [Getting started](/#getting-started) to learn more about how to get started with Sourcegraph.
-
-Choose a deployment option and follow the instructions. When you've signed into your Sourcegraph instance as a site admin, continue to the next section.
-
-### Configuring repositories
-
-Sourcegraph and Oracle OpenGrok differ in how they access repositories:
-
-- **"Passive":** OpenGrok reads all repositories underneath the `SRC_ROOT` path on disk. You place repositories there and configure the [sync.py tool](https://github.com/oracle/opengrok/wiki/Repository-synchronization) to fetch updates.
-- **"Active":** Sourcegraph automatically handles cloning and updating repositories from [code hosts (GitHub, GitLab, Bitbucket Server / Bitbucket Data Center, AWS CodeCommit, etc.](/admin/repo/add).
-
-Sourcegraph's "active" model lets it:
-
-- serve fresher repository data (to search and browse just-`git push`ed data);
-- synchronize the list of repositories on the code host (so that newly added repositories are searchable/browseable)
-- offer code host integrations and "View file on code host" links
-
-Sourcegraph also partially supports the "passive" model like OpenGrok, but it's not recommended because you lose these benefits. To use it anyway, see "[Add repositories already cloned to disk](/admin/repo/pre_load_from_local_disk)".
-
-To configure which repositories Sourcegraph will make available for searching and browsing:
-
-- For repositories on popular code hosts, use the **Quick configure** actions on your Sourcegraph instance's site admin "Site configuration" page.
-- For other repositories and for more information, see "[Add repositories](/admin/repo/add)" in the Sourcegraph documentation.
-
-When you've added repositories and confirmed that you can search and browse them, continue to the next section.
-
-### Configuring user authentication
-
-Like Oracle OpenGrok, Sourcegraph is self-hosted. You control who can access it. Sourcegraph supports many user authentication and security options:
-
-- [OpenID Connect user authentication](/admin/auth/#openid-connect) and [SAML user authentication](/admin/auth/#saml) (for Google/Google Workspace accounts, Okta, OneLogin, etc.)
-- [HTTP user authentication proxies](/admin/auth/#http-authentication-proxies)
-- [Builtin username-password authentication](/admin/auth/#builtin-authentication)
-- [TLS/SSL and other HTTP/HTTPS configuration](/admin/http_https_configuration)
-
-### Rolling out Sourcegraph organization-wide
-
-After you've set Sourcegraph up, it's time to share it with your organization. Successful roll-outs of Sourcegraph typically involve the following steps.
-
-- Send a message (in team chat or email) announcing Sourcegraph:
-
- > I set up Sourcegraph as a possible alternative to OpenGrok for code search. [Describe the perceived benefits vs. OpenGrok that are most relevant to your organization.]
- >
- > Try it:
- >
- > - Search: [URL to an example search results page on your Sourcegraph instance]
- > - Code browsing: [URL to a code file page on your Sourcegraph instance]
- >
- > [Include screenshots of your Sourcegraph instance here]
- >
- > Post feedback at https://github.com/sourcegraph/sourcegraph [change if needed]
-
-- Create an internal document based on the [Sourcegraph tour](/getting-started/tour), substituting links to and names of your organization's code. This explains how Sourcegraph helps developers perform common tasks better.
-- Encourage installation of the [browser extension](/integration/browser_extension) to get Sourcegraph code navigation and search in your organization's existing code host.
-- Roll out the Chrome extension using [Google Workspace automatic installation](/integration/browser_extension/how-tos/google_workspace) to everyone in your organization.
-- Check the access logs for OpenGrok to see what users search for. Try searching for the same things on Sourcegraph, and ensure that you get the expected results. (Note: Sourcegraph's [search query syntax](/code-search/queries) differs from OpenGrok's.)
-- Monitor your Sourcegraph instance's site admin "Analytics" page to see who's using it. Ask them for specific feedback. Also seek feedback from the most frequent users of OpenGrok.
-
-If there are any blockers preventing your organization from switching to Sourcegraph, we'd love to hear from you so we can address them.
-
-Let us know how we can help! [File an issue](https://github.com/sourcegraph/sourcegraph) with feedback/problems/questions, or [contact us directly](https://about.sourcegraph.com/contact).
diff --git a/docs/versioned/5.2/admin/monorepo.mdx b/docs/versioned/5.2/admin/monorepo.mdx
deleted file mode 100644
index 71b107e70..000000000
--- a/docs/versioned/5.2/admin/monorepo.mdx
+++ /dev/null
@@ -1,53 +0,0 @@
-# Using Sourcegraph with a monorepo
-
-Sourcegraph can be used on Git [monorepos](https://trunkbaseddevelopment.com/monorepos/) and provides functionality that developers may be missing:
-
-- Indexed code search across projects in the monorepo.
-- Code navigation across projects in the monorepo.
-
-The tools on a developer's local machine often can't cope with the scale of a monorepo. For example, a developer often cannot load the whole monorepo into their IDE, and therefore has to do without code exploration functionality useful when doing cross-project work. Sourcegraph brings this functionality back to developers, enabling them to work efficiently at the day-to-day task of understanding code.
-
-## Scale and performance
-
-Sourcegraph is designed to scale to large monorepos, even when local Git operations and other code search tools become slow.
-
-Sourcegraph uses the standard `git` binary to interact with repositories, but structures its use of `git` to ensure that user requests remain fast. Commands like `git rev-parse` and `git show` are called when rendering a page for a user. Git operations that scale with the total number of files are left to background indexing jobs. Operations that scale with the total number of commits or refs/tags may be in the user path, but these operations use pagination to remain fast.
-
-Sourcegraph's code search index scales horizontally with the number of files being indexed for search. Multiple shards may be allocated for one repository, and the index is agnostic to whether the code exists in one massive repository or many smaller ones. Sourcegraph has been used to index both large monorepos and tens of thousands of smaller repositories.
-
-### Known Limitations
-
-- Sourcegraph will inspect the full tree for language detection. It incrementally caches and builds the language statistics to reuse information across commits. However, this has been shown to create too much load in monorepos. You can disable this feature by setting the environment variable `USE_ENHANCED_LANGUAGE_DETECTION=false` on `sourcegraph-frontend`.
-
-## Custom git binaries
-
-Sourcegraph clones code from your code host via the usual `git clone` or `git fetch` commands. Some organisations use custom `git` binaries or commands to speed up these operations. Sourcegraph supports using alternative git binaries to allow cloning. This can be done by inheriting from the `gitserver` docker image and installing the custom `git` onto the `$PATH`.
-
-Some monorepos use a custom command for `git fetch` to speed up fetch. Sourcegraph provides the `experimentalFeatures.customGitFetch` site setting to specify the custom command.
-
-## Statistics
-
-You can help the Sourcegraph developers understand the scale of your monorepo by sharing some statistics with the team. The bash script [`git-stats`](https://github.com/sourcegraph/sourcegraph/blob/main/dev/git-stats) when run in your git repository will calculate these statistics.
-
-Example output on the Sourcegraph repository:
-
-``` shellsession
-$ wget https://github.com/sourcegraph/sourcegraph/raw/main/dev/git-stats
-$ chmod +x git-stats
-$ ./git-stats
-725M . gitdir
-19671 commits
-
-HEAD statistics
-0.096GiB
-8638 files
-histogram:
-10^0 6
-10^1 69
-10^2 667
-10^3 2236
-10^4 4589
-10^5 971
-10^6 86
-10^7 14
-```
diff --git a/docs/versioned/5.2/admin/nginx.mdx b/docs/versioned/5.2/admin/nginx.mdx
deleted file mode 100644
index 10352c1d4..000000000
--- a/docs/versioned/5.2/admin/nginx.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
-# Sourcegraph Nginx HTTP and HTTPS/SSL configuration
-
-This documentation page has been moved to "[Sourcegraph HTTP and HTTPS/SSL configuration](/admin/http_https_configuration)".
diff --git a/docs/versioned/5.2/admin/observability/.gitattributes b/docs/versioned/5.2/admin/observability/.gitattributes
deleted file mode 100644
index e5709b351..000000000
--- a/docs/versioned/5.2/admin/observability/.gitattributes
+++ /dev/null
@@ -1,2 +0,0 @@
-dashboards.md linguist-generated=true
-alert_solutions.md linguist-generated=true
diff --git a/docs/versioned/5.2/admin/observability/alerting.mdx b/docs/versioned/5.2/admin/observability/alerting.mdx
deleted file mode 100644
index 874acbd41..000000000
--- a/docs/versioned/5.2/admin/observability/alerting.mdx
+++ /dev/null
@@ -1,188 +0,0 @@
-# Alerting
-
-Alerts can be configured to notify site admins when there is something wrong or noteworthy on the Sourcegraph instance.
-
-## Understanding alerts
-
-Alerts fall in one of two severity levels:
-
-- critical : something is _definitively_ wrong with Sourcegraph, in a way that is very likely to be noticeable to users. We suggest using a high-visibility notification channel for these alerts.
- - **Examples:** Database inaccessible, running out of memory, gitserver volume 90% full.
- - **Suggested action:** Page a site administrator to investigate.
-- warning : something _could_ be wrong with Sourcegraph, or may go wrong soon. We suggest checking in on these periodically, or using a notification channel that will not bother anyone if it is spammed. Over time, as warning alerts become stable and reliable across many Sourcegraph deployments, they will also be promoted to critical alerts in an update by Sourcegraph.
- - **Examples:** High latency, high search timeouts, gitserver volume 80% full.
- - **Suggested action:** Email a site administrator to investigate and monitor when convenient, and please let us know so that we can improve them.
-
-Refer to the [alert solutions reference](/admin/observability/alerts) for a complete list of Sourcegraph alerts, as well as possible solutions when these alerts are firing.
-Learn more about metrics, dashboards, and alert labels in our [metrics guide](/admin/observability/metrics).
-
-## Setting up alerting
-
-Visit your site configuration (e.g. `https://sourcegraph.example.com/site-admin/configuration`) to configure alerts using the [`observability.alerts`](/admin/config/site_config#observability-alerts) field. As always, you can use `Ctrl+Space` at any time to get hints about allowed fields as well as relevant documentation inside the configuration editor.
-
-Once configured, Sourcegraph alerts will automatically be routed to the appropriate notification channels by severity level.
-
-> NOTE: Both critical and warning alerts should be configured; configuring one does not automatically enable the other.
-
-### Example notifiers
-
-#### Slack
-
-```json
-"observability.alerts": [
- {
- "level": "critical",
- "notifier": {
- "type": "slack",
- // Slack incoming webhook URL, for the #sourcegraph-critical-alerts channel
- "url": "https://hooks.slack.com/services/xxxxxxxxx/xxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxx",
- }
- },
- {
- "level": "warning",
- "notifier": {
- "type": "slack",
- // Slack incoming webhook URL, for the #sourcegraph-warning-alerts channel
- "url": "https://hooks.slack.com/services/yyyyyyyyy/yyyyyyyyyyy/yyyyyyyyyyyyyyyyyyyyyyyy",
- }
- }
-]
-```
-
-> NOTE: Learn more about generating a [Slack incoming webhook URL](https://api.slack.com/messaging/webhooks)
-
-#### PagerDuty
-
-```json
-"observability.alerts": [
- {
- "level": "critical",
- "notifier": {
- "type": "pagerduty",
- // Integration key for the PagerDuty Events API v2
- "integrationKey": "XXXXXXXX"
- }
- }
-]
-```
-
-#### Opsgenie
-
-```json
-"observability.alerts": [
- {
- "level": "critical",
- "notifier": {
- "type": "opsgenie",
- // Opsgenie API key. This API key can also be set by the environment variable OPSGENIE_API_KEY on the prometheus container. Setting here takes precedence over the environment variable.
- "apiKey": "xxxxxx",
- "responders": [
- {
- "type": "team",
- "name": "my-team"
- }
- ]
- },
- "owners": [
- "my-team",
- ]
- }
-]
-```
-
-#### Webhook
-
-```json
-"observability.alerts": [
- {
- "level": "critical",
- "notifier": {
- "type": "webhook",
- // Webhook URL for critical alerts
- "url": "https://my.webhook.url/xxx"
- }
- },
- {
- "level": "warning",
- "notifier": {
- "type": "webhook",
- // Webhook URL for warning alerts
- "url": "https://my.webhook.url/yyy"
- }
- }
-]
-```
-
-Webhook events provide the following fields relevant for Sourcegraph alerts that we recommend you leverage:
-
-```json
-{
- "status": "",
- "commonLabels": {
- "level": "",
- // Use the service name and alert name to find solutions in https://docs.sourcegraph.com/admin/observability/alerts
- "service_name": "",
- "name": "",
- "description": "",
- // This field can be provided to Sourcegraph to help direct support.
- "owner": ""
- },
-}
-```
-
-For the complete set of fields, please refer to the [Alertmanager webhook documentation](https://prometheus.io/docs/alerting/latest/configuration/#webhook_config).
-
-#### Email
-
-Note that to receive email notifications, the [`email.address`](/admin/config/site_config#email-address) and [`email.smtp`](/admin/config/site_config#email-smtp) fields must be configured in site configuration.
-
-```json
-"observability.alerts": [
- {
- "level": "critical",
- "notifier": {
- "type": "email",
- // Address where critical alerts will be sent
- "address": "sourcegraph-admin-team+critical@example.com"
- }
- },
- {
- "level": "warning",
- "notifier": {
- "type": "email",
- // Address where warning alerts will be sent
- "address": "sourcegraph-admin-team+warning@example.com"
- }
- }
-]
-```
-
-### Testing alerts
-
-Configured alerts can be tested using the Sourcegraph GraphQL API. Visit your API Console (e.g. `https://sourcegraph.example.com/api/console`) and use the following mutation to trigger an alert:
-
-```gql
-mutation {
- triggerObservabilityTestAlert(
- level: "critical"
- ) { alwaysNil }
-}
-```
-
-The test alert may take up to a minute to fire. The triggered alert will automatically resolve itself as well.
-
-### Silencing alerts
-
-If there is an alert you are aware of and you wish to silence notifications (from the notification channels you have set up) for it, add an entry to the [`observability.silenceAlerts`](/admin/config/site_config#observability-silenceAlerts)field. For example:
-
-```json
-{
- "observability.silenceAlerts": [
- "warning_gitserver_disk_space_remaining"
- ]
-}
-```
-
-You can find the appropriate identifier for each alert in [alert solutions](/admin/observability/alerts).
-
-> NOTE: You can still see the alerts on your [Grafana dashboard](/admin/observability/metrics#grafana).
diff --git a/docs/versioned/5.2/admin/observability/alerting_custom_consumption.mdx b/docs/versioned/5.2/admin/observability/alerting_custom_consumption.mdx
deleted file mode 100644
index ca5f50fd4..000000000
--- a/docs/versioned/5.2/admin/observability/alerting_custom_consumption.mdx
+++ /dev/null
@@ -1,145 +0,0 @@
-# Custom consumption of Sourcegraph alerts
-
-If Sourcegraph's builtin [alerting](/admin/observability/alerting) (which can notify you via email, Slack, PagerDuty, webhook, and more) is not sufficient for you, or if you just prefer to consume the alerts programatically for some reason, then this page is for you.
-
-For more information about Sourcegraph alerts, see [high level alerting metrics](/admin/observability/metrics#high-level-alerting-metrics).
-
-## Prometheus queries
-
-Below are examples of how to query alerts that are being monitored or are currently firing in Sourcegraph. If you do wish to query warning alerts, too, then simply replace `critical` with `warning` in any of the below query examples.
-
-### "How many critical alerts were firing in the last minute?"
-
-Prometheus query:
-
-```prometheus
-sum(max by (service_name,name,description)(max_over_time(alert_count{level="critical",name!=""}[1m])))
-```
-
-Example `curl` query:
-
-```sh
-curl 'http://$PROMETHEUS_URL/api/v1/query?query=sum%28max%20by%20%28service_name%2Cname%2Cdescription%29%28max_over_time%28alert_count%7Blevel%3D%22critical%22%2Cname%21%3D%22%22%7D%5B1m%5D%29%29%29
-```
-
-Example response:
-
-```json
-{
- "status": "success",
- "data": {
- "resultType": "vector",
- "result": [
- {
- "metric": {},
- "value": [
- 1585250319.243,
- "0"
- ]
- }
- ]
- }
-}
-```
-
-This only ever returns a single result, representing the maximum number of critical alerts firing across all Sourcegraph services in the last minute (relative to the time the query executed / the returned unix timestamp `1585250319.243`). The above shows that `"0"` alerts were firing, and if the number was non-zero, it would represent the max number of alerts firing across all services in the last minute.
-
-### "How many critical alerts were firing in the last minute, per service?"
-
-Prometheus query:
-
-```prometheus
-sum by (service_name)(max by (service_name,name,description)(max_over_time(alert_count{level="critical",name!=""}[1m])))
-```
-
-Example `curl` query:
-
-```sh
-curl 'http://$PROMETHEUS_URL/api/v1/query?query=sum%20by%20%28service_name%29%28max%20by%20%28service_name%2Cname%2Cdescription%29%28max_over_time%28alert_count%7Blevel%3D%22critical%22%2Cname%21%3D%22%22%7D%5B1m%5D%29%29%29'
-```
-
-Example response:
-
-```json
-{
- "status": "success",
- "data": {
- "resultType": "vector",
- "result": [
- {
- "metric": {
- "service_name": "frontend"
- },
- "value": [
- 1585250083.874,
- "0"
- ]
- },
- {
- "metric": {
- "service_name": "zoekt-indexserver"
- },
- "value": [
- 1585250083.874,
- "0"
- ]
- },
- ...
- ]
- }
-}
-```
-
-This returns a `result` for each service of Sourcegraph where at least one critical alert is defined and being monitored. For example, the first result (`frontend`) indicates that in the last minute (relative to the time the query executed / the returned unix timestamp `1585250083.874`) that `"0"` alerts for the `frontend` service were firing. If the number was non-zero, it would represent the max number of alerts firing on that service in the last minute.
-
-### "How many critical alerts were firing in the last minute, per defined alert?"
-
-Prometheus query:
-
-```prometheus
-max by (service_name,name,description)(max_over_time(alert_count{level="critical",name!=""}[1m]))
-```
-
-Example `curl` query:
-
-```sh
-curl 'http://$PROMETHEUS_URL/api/v1/query?query=max%20by%20%28service_name%2Cname%2Cdescription%29%28max_over_time%28alert_count%7Blevel%3D%22critical%22%2Cname%21%3D%22%22%7D%5B1m%5D%29%29'
-```
-
-Example response:
-
-```json
-{
- "status": "success",
- "data": {
- "resultType": "vector",
- "result": [
- {
- "metric": {
- "description": "gitserver: 50+ concurrent command executions (abnormally high load)",
- "name": "high_concurrent_execs",
- "service_name": "gitserver"
- },
- "value": [
- 1585249844.475,
- "0"
- ]
- },
- {
- "metric": {
- "description": "gitserver: 100+ concurrent command executions (abnormally high load)",
- "name": "high_concurrent_execs",
- "service_name": "gitserver"
- },
- "value": [
- 1585249844.475,
- "0"
- ]
- },
- ...
- ]
- }
-}
-```
-
-This returns a `result` for each defined critical alert that Sourcegraph is monitoring. For example, the first result (`high_concurrent_execs`) indicates that in the last minute (relative to the time the query executed / the returned unix timestamp `1585249844.475`) that `"0"` alerts were firing. Any value >= 1 here, would indicate that alert has fired in the last minute.
diff --git a/docs/versioned/5.2/admin/observability/health_checks.mdx b/docs/versioned/5.2/admin/observability/health_checks.mdx
deleted file mode 100644
index ed9ab63d9..000000000
--- a/docs/versioned/5.2/admin/observability/health_checks.mdx
+++ /dev/null
@@ -1,5 +0,0 @@
-# Health checks
-
-An application health check status endpoint is available at the URL path `/healthz`. It returns HTTP 200 if and only if the main frontend server and databases (PostgreSQL and Redis) are available, and also returns the version of the instance.
-
-The [Kubernetes cluster deployment option](/admin/deploy/kubernetes/) ships with comprehensive health checks for each Kubernetes deployment.
diff --git a/docs/versioned/5.2/admin/observability/index.mdx b/docs/versioned/5.2/admin/observability/index.mdx
deleted file mode 100644
index ce0c6ef4f..000000000
--- a/docs/versioned/5.2/admin/observability/index.mdx
+++ /dev/null
@@ -1,32 +0,0 @@
-# Observability
-
-
-A key pillar of production readiness is the ability to observe, monitor, and analyze the health and state of the system.
-Sourcegraph is designed, and ships with, a number of observability tools and capabilities to meet enterprise production readiness criteria.
-
-
-
-
-
-
-
-## Guides
-
-* [Metrics and dashboards](/admin/observability/metrics)
-* [Alerting](/admin/observability/alerting)
-* [Tracing](/admin/observability/tracing)
-* [Logs](/admin/observability/logs)
-* [Outbound request log](/admin/observability/outbound-request-log)
-* [OpenTelemetry](/admin/observability/opentelemetry)
-* [Health checks](/admin/observability/health_checks)
-* [Troubleshooting guide](/admin/observability/troubleshooting)
-* [Monitoring guide](/admin/how-to/monitoring-guide)
-
-## Reference
-
-* [Dashboards reference](/admin/observability/dashboards)
-* [Alert solutions](/admin/observability/alerts)
-
-## Support
-
-For help configuring observability on your Sourcegraph instance, use our [public issue tracker](https://github.com/sourcegraph/issues/issues).
diff --git a/docs/versioned/5.2/admin/observability/logs.mdx b/docs/versioned/5.2/admin/observability/logs.mdx
deleted file mode 100644
index 6d123d17c..000000000
--- a/docs/versioned/5.2/admin/observability/logs.mdx
+++ /dev/null
@@ -1,82 +0,0 @@
-# Logs
-
-This document describes the log output from Sourcegraph services and how to configure it.
-
-Note: For request logs, see [Outbound request log](/admin/observability/outbound-request-log).
-
-## Log levels
-
-A Sourcegraph service's log level is configured via the environment variable `SRC_LOG_LEVEL`. The valid values (from most to least verbose) are:
-
-* `dbug`: Debug. Output all logs. Default in cluster deployments.
-* `info`: Informational.
-* `warn`: Warning. Default in Docker deployments.
-* `eror`: Error.
-* `crit`: Critical.
-
-Learn more about how to apply these environment variables in [docker-compose](/admin/deploy/docker-compose/#set-environment-variables) and [server](/admin/deploy/docker-single-container/#environment-variables) deployments.
-
-## Log format
-
-A Sourcegraph service's log output format is configured via the environment variable `SRC_LOG_FORMAT`. The valid values are:
-
-* `condensed`: Optimized for human readability.
-* `json`: Machine-readable JSON format.
- * For certain services and log entries, Sourcegraph exports a [OpenTelemetry-compliant log data model](#opentelemetry).
-* `json_gcp`: Machine-readable JSON format, tailored to [GCP cloud-logging expected structure.](https://cloud.google.com/logging/docs/structured-logging#special-payload-fields)
-* `logfmt`: The [logfmt](https://github.com/kr/logfmt) format.
- * Note that `logfmt` is no longer supported with [Sourcegraph's new internal logging standards](/dev/how-to/add_logging) - if you need structured logs, we recommend using `json` instead. If set to `logfmt`, log output from new loggers will be in `condensed` format.
-
-### OpenTelemetry
-
-When [configured to export JSON logs](#log-format), Sourcegraph services that have migrated to the [new internal logging standard](/dev/how-to/add_logging) that will export a JSON log format compliant with [OpenTelemetry's log data model](https://opentelemetry.io/docs/reference/specification/logs/data-model/):
-
-```json
-{
- "Timestamp": 1651000257893614000,
- "InstrumentationScope": "string",
- "SeverityText": "string (DEBUG, INFO, ...)",
- "Body": "string",
- "Attributes": { "key": "value" },
- "Resource": {
- "service.name": "string",
- "service.version": "string",
- "service.instance.id": "string",
- },
- "TraceId": "string (optional)",
- "SpanId": "string (optional)",
-}
-```
-
-We also include the following non-OpenTelemetry fields:
-
-```json
-{
- "Caller": "string",
- "Function": "string",
-}
-```
-
-## Log level overrides
-
-A Sourcegraph service's log level can be configured for a specific `InstrumentationScope` and it's children. For example you can keep your log level at error, but turn on debug logs for a specific component. This is only used to increase verbosity. IE it can't be used to mute a scope.
-
-This is configured by the environment variable `SRC_LOG_SCOPE_LEVEL`. It has the format `SCOPE_0=LEVEL_0,SCOPE_1=LEVEL_1,...`. For example to turn on debug logs for `service.UpdateScheduler` and `repoPurgeWorker` you would set the following on the `repo-updater` service:
-
-```
-SRC_LOG_SCOPE_LEVEL=service.UpdateScheduler=debug,repoPurgeWorker=debug
-```
-
-Note that this will also affect child scopes. So in the example you will also receive debug logs from `service.UpdateScheduler.RunUpdateLoop`.
-
-## Log sampling
-
-Sourcegraph services that have migrated to the [new internal logging standard](/dev/how-to/add_logging) have log sampling enabled by default.
-The first 100 identical log entries per second will always be output, but thereafter only every 100th identical message will be output.
-
-This behaviour can be configured for each service using the following environment variables:
-
-* `SRC_LOG_SAMPLING_INITIAL`: the number of entries with identical messages to always output per second
-* `SRC_LOG_SAMPLING_THEREAFTER`: the number of entries with identical messages to discard before emitting another one per second, after `SRC_LOG_SAMPLING_INITIAL`.
-
-Setting `SRC_LOG_SAMPLING_INITIAL` to `0` or `-1` will disable log sampling entirely.
diff --git a/docs/versioned/5.2/admin/observability/metrics.mdx b/docs/versioned/5.2/admin/observability/metrics.mdx
deleted file mode 100644
index 8dc6797dd..000000000
--- a/docs/versioned/5.2/admin/observability/metrics.mdx
+++ /dev/null
@@ -1,155 +0,0 @@
-# Metrics and dashboards
-
-Sourcegraph ships with [Grafana](https://grafana.com) for dashboards, [Prometheus](https://prometheus.io/) for metrics and alerting. We also provide [built-in alerting](/admin/observability/alerting) for these metrics.
-
-## Grafana
-
-Site admins can view the Grafana monitoring dashboards on a Sourcegraph instance:
-
-1. Go to **User menu > Site admin**.
-1. Open the **Monitoring** page from the link in the left sidebar. The URL is `https://sourcegraph.example.com/-/debug/grafana/`.
-
-
-
-### Dashboards
-
-A complete [dashboard reference](/admin/observability/dashboards) is available for more context on our available service dashboards and panels.
-
-Additional dashboards can also be set up—see [Grafana configuration](#grafana-configuration) for more details.
-
-#### View documentation
-
-On service dashboards, each metric panel has links attached that lead to relevant [alert solutions](/admin/observability/alerts) or [panel documentation](/admin/observability/dashboards).
-These can be accessed from the top left corner of each panel.
-
-#### View alerts
-
-The Overview dashboard includes a high-level summary of alert events across all Sourcegraph services.
-
-On service dashboards, a summary of alert events for that service is available.
-Alerts can be filtered by level using the "Filter alert level" selector at the top of the dashboard.
-This information can be overlaid on all panels in that dashboard by enabling the "Alert events" toggle.
-
-#### View version change events
-
-On service dashboards, annotations can be displayed for occasions when a Sourcegraph version change is detected by enabling the "Version changes" toggle at the top of the dashboard.
-This can be useful for correlating metrics and alerts with Sourcegraph deployment and upgrade events.
-
-
-
-
-
-#### Querying metrics
-
-Specific metrics can be queried using Grafana's Explore panel, available at `/-/debug/grafana/explore` on your Sourcegraph instance.
-The query for each individual panel can be viewed and explored by clicking on the panel and using the "Explore" option.
-
-### Grafana configuration
-
-Sourcegraph deploys a customized image of Grafana, which ships with Sourcegraph-specific dashboard definitions.
-
-To provide custom dashboards, a directory containing dashboard JSON specifications can be mounted in the Docker container at `/sg_grafana_additional_dashboards`.
-Changes to files in that directory will be detected automatically while Grafana is running.
-
-More behavior can be controlled with [environmental variables](https://grafana.com/docs/grafana/latest/administration/configuration/#configure-with-environment-variables).
-
-> NOTE: There is a [known issue](https://github.com/sourcegraph/sourcegraph/issues/6075) where attempting to edit anything using the Grafana UI will result in a 403 response with "invalid CSRF token".
-> As a workaround, site admins can [connect to Grafana directly](#accessing-grafana-directly) to make changes using the Grafana UI.
-
-### Accessing Grafana directly
-
-For most use cases, you can access Grafana [through your Sourcegraph instance](#grafana).
-Follow the instructions below to access Grafana directly to, for example, edit configuration directly.
-
-> NOTE: Most of the dashboards that Sourcegraph ships with are not configurable through the Grafana UI.
-> In general, we recommend [these configuration methods instead](#grafana-configuration).
-
-If you are using the [Kubernetes deployment option](/admin/deploy/kubernetes/), you can access Grafana directly using Kubernetes port forwarding to your local machine:
-
-```sh
-kubectl port-forward svc/grafana 3370:30070
-```
-
-Grafana will be available http://localhost:3370/-/debug/grafana.
-
-If you are using [Docker Single Container](/admin/deploy/docker-single-container/) or the [Docker Compose deployment option](/admin/deploy/), Grafana is available locally at http://localhost:3370/-/debug/grafana without any additional setup.
-If Sourcegraph is deployed to a remote server, then access via an SSH tunnel using a tool such as [sshuttle](https://github.com/sshuttle/sshuttle) is required to establish a secure connection to Grafana.
-To access the remote server using `sshuttle` from your local machine:
-
-```bash
-sshuttle -r user@host 0/0
-```
-
-Grafana will be available at http://host:3370/-/debug/grafana.
-
-> WARNING: Our Grafana instance runs in anonymous mode with all authentication turned off, since we rely on Sourcegraph's built-in authentication.
-> Please be careful when exposing it directly to external traffic.
-
-## Prometheus
-
-Prometheus is a monitoring tool that collects application- and system-level metrics over time and makes these accessible through a robust query language.
-
-For most use cases, you can query Prometheus through [Grafana](#grafana) using Grafana's Explore panel, available at `/-/debug/grafana/explore` on your Sourcegraph instance, or simply rely on the dashboards we ship.
-
-### Available metrics
-
-#### High-level alerting metrics
-
-Sourcegraph's metrics include a single high-level metric `alert_count` which indicates the number of `level=critical` and `level=warning` alerts each service has fired over time for each Sourcegraph service.
-This is the same metric presented on the **Overview** Grafana dashboard.
-
-> NOTE: We provide [built-in alerting](/admin/observability/alerting) for these alerting metrics to help monitor the health of your Sourcegraph instance.
-> Refer to our [alert solutions reference](/admin/observability/alerts) for details on specific alerts.
-
-**Description:** The number of alerts each service has fired for a given alert name and severity level.
-
-**Values:** Although the values of `alert_count` are floating-point numbers, only their whole numbers have meaning.
-For example, `0.5` and `0.7` indicate no alerts are firing, while `1.2` indicates exactly one alert is firing and `3.0` indicates exactly three alerts firing.
-
-**Labels:**
-
-| Label | Description |
-|-------|-------------|
-| `service_name` | the name of the service that fired the alert |
-| `name` | the name of the alert that the service fired |
-| `level` | either `critical` or `warning`, as defined [here](/admin/observability/alerting) |
-| `description` | a human-readable description of the alert |
-
-#### Complete reference
-
-A complete reference of Sourcegraph's vast set of Prometheus metrics is not yet available. If you are interested in this, please reach out by filing an issue or contacting us at [support@sourcegraph.com](mailto:support@sourcegraph.com).
-
-### Prometheus configuration
-
-Sourcegraph runs a customized image of Prometheus, which packages a standard Prometheus installation together with rules files and target files tailored to Sourcegraph and quality-of-life integrations such as [the ability to configure alerting from the Sourcegraph web application](/admin/observability/alerting/).
-
-A directory can be mounted at `/sg_prometheus_add_ons`. It can contain additional config files of two types:
-
-- rule files which must have the suffix `_rules.yml` in their filename (ie `gitserver_rules.yml`)
-- target files which must have the suffix `_targets.yml` in their filename (ie `local_targets.yml`)
-
-[Rule files](https://prometheus.io/docs/prometheus/latest/configuration/recording_rules/)
-and [target files](https://prometheus.io/docs/guides/file-sd/) must use the latest Prometheus 2.x syntax.
-
-The environment variable `PROMETHEUS_ADDITIONAL_FLAGS` can be used to pass on additional flags to the `prometheus` executable running in the container.
-
-### Accessing Prometheus directly
-
-Most of the time, Sourcegraph site admins will monitor and query key metrics through [Grafana](#grafana), rather than through Prometheus directly.
-Grafana also provides the dashboards that monitor the standard metrics that indicate the health of the instance.
-Follow the instructions below to access Prometheus directly instead.
-
-If you are using the [Kubernetes deployment option](/admin/deploy/kubernetes/), port-forward the Prometheus service:
-
-```sh
-kubectl port-forward svc/prometheus 9090:30090
-```
-
-If you are using [Docker Single Container](/admin/deploy/docker-single-container/) or the [Docker Compose deployment option](/admin/deploy/), you will need to restart the Sourcegraph container
-with a flag `--publish 9090:9090` in the `docker run` command.
-
-Prometheus will be available http://localhost:9090.
-
-## Using a custom monitoring system
-
-Please refer to our FAQ item, ["Can I consume Sourcegraph's metrics in my own monitoring system (Datadog, New Relic, etc.)"](/admin/faq#can-i-consume-sourcegraph-s-metrics-in-my-own-monitoring-system-datadog-new-relic-etc).
diff --git a/docs/versioned/5.2/admin/observability/opentelemetry.mdx b/docs/versioned/5.2/admin/observability/opentelemetry.mdx
deleted file mode 100644
index d3034282a..000000000
--- a/docs/versioned/5.2/admin/observability/opentelemetry.mdx
+++ /dev/null
@@ -1,243 +0,0 @@
-# OpenTelemetry
-
->NOTE: This feature is supported on Sourcegraph 4.0 and later.
-
-> WARNING: Sourcegraph is actively working on implementing [OpenTelemetry](https://opentelemetry.io/) for all observability data. **The first—and currently only—[signal](https://opentelemetry.io/docs/concepts/signals/) to be fully integrated is [tracing](/admin/observability/tracing)**.
-
-Sourcegraph exports OpenTelemetry data to a bundled [OpenTelemetry Collector](https://opentelemetry.io/docs/collector/) instance.
-This service can be configured to ingest, process, and then export observability data to an observability backend of choice.
-This approach offers a great deal of flexibility.
-
-## Configuration
-
-Sourcegraph's OpenTelemetry Collector is deployed with a [custom image, `sourcegraph/opentelemetry-collector`](https://sourcegraph.com/github.com/sourcegraph/sourcegraph/-/tree/docker-images/opentelemetry-collector), and is configured with a configuration YAML file.
-By default, `sourcegraph/opentelemetry-collector` is configured to not do anything with the data it receives, but [exporters to various backends](#exporters) can be configured for each signal we currently support—**currently, only [traces data](#tracing) is supported**.
-
-Refer to the [documentation](https://opentelemetry.io/docs/collector/configuration/) for an in-depth explanation of the parts that compose a full collector pipeline.
-
-For more details on configuring the OpenTelemetry collector for your deployment method, refer to the deployment-specific guidance:
-
-- [Kubernetes with Kustomize](/admin/deploy/kubernetes/configure#tracing)
-- [Kubernetes with Helm](/admin/deploy/kubernetes/helm#opentelemetry-collector)
-- [Docker Compose](/admin/deploy/docker-compose/operations#opentelemetry-collector)
-
-## Tracing
-
-Sourcegraph traces are exported in OpenTelemetry format to the bundled OpenTelemetry collector.
-To learn more about Sourcegraph traces in general, refer to our [tracing documentation](/admin/observability/tracing).
-
-`sourcegraph/opentelemetry-collector` includes the following exporters that support traces:
-
-- [OTLP-compatible backends](#otlp-compatible-backends) (includes services like Honeycomb and Grafana Tempo)
-- [Jaeger](#jaeger)
-- [Google Cloud](#google-cloud)
-
-> NOTE: In case you require an additional exporter from the [`opentelemetry-collector-contrib` repository](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter), please [open an issue](https://github.com/sourcegraph/sourcegraph/issues).
-
-Basic configuration for each tracing backend type is described below. Note that just adding a backend to the `exporters` block does not enable it—it must also be added to the `service` block.
-Refer to the next snippet for a basic but complete example, which is the [default out-of-the-box configuration](https://sourcegraph.com/github.com/sourcegraph/sourcegraph/-/blob/docker-images/opentelemetry-collector/configs/logging.yaml):
-
-```yaml
-receivers:
- otlp:
- protocols:
- grpc:
- http:
-
-exporters:
- logging:
- loglevel: warn
- sampling_initial: 5
- sampling_thereafter: 200
-
-service:
- pipelines:
- traces:
- receivers:
- - otlp
- exporters:
- - logging # The exporter name must be added here to enable it
-```
-
-### Sampling traces
-
-To reduce the volume of traces being exported, the collector can be configured to apply sampling to the exported traces. Sourcegraph bundles the [probabilistic sampler](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/processor/probabilisticsamplerprocessor) and the [tail sampler](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/processor/tailsamplingprocessor/README) as part of it's default collector container image.
-
-If enabled, this sampling mechanism will be applied to all traces, regardless if a request was explictly marked as to be traced.
-
-#### Probabilistic sampler
-
-The probabilistic sampler hashes Trace IDs and determines whether a trace should be sampled based on this hash. Note that semantic convention of tags on a trace take precedence over Trace ID hashing when deciding whether a trace should be sampled or not.
-
-Refer to the next snippet for an example on how to update the configuration to enable sampling using the probabilistic sampler.
-
-```yaml
-exporters:
- # ...
-
-processors:
- probabilistic_sampler:
- hash_seed: 22 # An integer used to compute the hash algorithm. Note that all collectors for a given tier (e.g. behind the same load balancer) should have the same hash_seed.
- sampling_percentage: 10.0 # (default = 0): Percentage at which traces are sampled; >= 100 samples all traces
-
-service:
- pipelines:
- # ...
- traces:
- #...
- processors: [probabilistic_sampler] # Plug the probabilistic sampler to the traces.
-```
-
-### Tail sampling
-
-The tail sampler samples traces according to policies and the sampling decision of whether a trace should be sampled is determined at the _tail end_ of a pipeline. For more information on the supported policies and other configuration options of the sampler see [tail sampler configuration](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/processor/tailsamplingprocessor/README).
-
-The sampler waits for a certain amount of spans before making applying the configured policy. Due to it keeping a certain amount of spans in memory the sampler incurs as slight performance cost compared to the Probabilistic sampler. For a better comparison on probabilistic vs tail sampling processors see [here](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/processor/tailsamplingprocessor/README#probabilistic-sampling-processor-compared-to-the-tail-sampling-processor-with-the-probabilistic-policy)
-
-Refer to the next snippet for an example on how to update the configuration to enable tail sampling with a particular policy.
-
-```yaml
-receivers:
- # ...
-exporters:
- # ...
-
-processors:
- tail_sampling:
- # Wait time since the first span of a trace before making a sampling decision
- decision_wait: 30s # default value = 30s
- # Number of traces kept in memory
- num_traces: 50000 # default value = 50000
- # Expected number of new traces (helps in allocating data structures)
- expected_new_traces_per_sec: 10 # default value = 0
- # Recommended reading to understand how the policies are applied:
- # https://sourcegraph.com/github.com/open-telemetry/opentelemetry-collector-contrib@71dd19d2e59cd1f8aa9844461089d5c17efaa0ca/-/blob/processor/tailsamplingprocessor/processor.go?L214
- policies:
- [
- {
- # If a span contains `sampling_retain: true`, it will always be sampled (not dropped),
- # regardless of the probabilistic sampling.
- name: policy-retain,
- type: string_attribute,
- string_attribute: {key: sampling.retain, values: ['true']},
- },
- {
- # Only keep 10% of the traces.
- name: policy-probalistic,
- type: probabilistic,
- probabilistic: {sampling_percentage: 10}
- }
- ]
-
-service:
- pipelines:
- traces:
- # ...
- processors: [tail_sampling]
-```
-
-### Filtering traces
-
-As part of the default container image Sourcegraph bundles the [filter processor](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/processor/filterprocessor/README). By configuring a pipeline to have a filter processor one is able to include or exclude (depending on configuration!) on whether a trace should be allowed through the pipeline and be exported.
-
-Refer to the following snippet where a filter processor is configured to only allow traces with the service name "foobar" to continue through the pipeline. All other traces that do not have this service name will be dropped.
-
-```yaml
-exporters:
- # ...
-
-receivers:
- # ...
-
-processors:
- filter/foobar: # the format is / - note a name is NOT required
- spans:
- include:
- match_type: strict # regexp is also a supported type
- services:
- - "foobar"
-
-service:
- pipelines:
- traces: # pipeline accepts all traces
- traces/foobar: # pipeline that only export foobar traces
- # ...
- processors: [filter/foobar]
-```
-## Exporters
-
-Exporters send observability data from OpenTelemetry collector to desired backends.
-Each exporter can support one, or several, OpenTelemetry signals.
-
-This section outlines some common configurations for exporters—for more details, refer to the [official OpenTelemetry exporters documentation](https://opentelemetry.io/docs/collector/configuration/#exporters).
-
-> NOTE: In case you require an additional exporter from the [`opentelemetry-collector-contrib` repository](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter), please [open an issue](https://github.com/sourcegraph/sourcegraph/issues).
-
-### OTLP-compatible backends
-
-Backends compatible with the [OpenTelemetry protocol (OTLP)](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/otlp) include services like [Honeycomb](https://docs.honeycomb.io/getting-data-in/opentelemetry-overview/) and [Grafana Tempo](https://grafana.com/blog/2021/04/13/how-to-send-traces-to-grafana-clouds-tempo-service-with-opentelemetry-collector/).
-OTLP-compatible backends typically accept the [OTLP gRPC protocol](#otlp-grpc-backends), but they can also implement the [OTLP HTTP protocol](#otlp-http-backends).
-
-#### OTLP gRPC backends
-
-Refer to the [`otlp` exporter documentation](https://github.com/open-telemetry/opentelemetry-collector/blob/main/exporter/otlpexporter/README) for all available options.
-
-```yaml
-exporters:
- otlp:
- endpoint: otelcol2:4317
- tls:
- cert_file: file.cert
- key_file: file.key
- otlp/2:
- endpoint: otelcol2:4317
- tls:
- insecure: true
-```
-
-#### OTLP HTTP backends
-
-Refer to the [`otlphttp` exporter documentation](https://github.com/open-telemetry/opentelemetry-collector/tree/main/exporter/otlphttpexporter/README) for all available options.
-
-```yaml
-exporters:
- otlphttp:
- endpoint: https://example.com:4318/v1/traces
-```
-
-### Jaeger
-
-Refer to the [`jaeger` exporter documentation](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/exporter/jaegerexporter/README) for all options.
-
-Most Sourcegraph deployment methods still ship with an opt-in Jaeger instance—to set this up, follow the relevant deployment guides, which will also set up the appropriate configuration for you:
-
-- [Kubernetes with Kustomize](/admin/deploy/kubernetes/configure#deploy-opentelemetry-collector-with-jaeger-as-tracing-backend)
-- [Kubernetes with Helm](/admin/deploy/kubernetes/helm#enable-the-bundled-jaeger-deployment)
-- [Docker Compose](/admin/deploy/docker-compose/operations#enable-the-bundled-jaeger-deployment)
-
-If you wish to do additional configuration or connect to your own Jaeger instance, the deployed Collector image is bundled with a [basic configuration with Jaeger exporting](https://sourcegraph.com/github.com/sourcegraph/sourcegraph/-/blob/docker-images/opentelemetry-collector/configs/jaeger.yaml).
-If this configuration serves your needs, you do not have to provide a separate config—the Collector startup command can be set to `/bin/otelcol-sourcegraph --config=/etc/otel-collector/configs/jaeger.yaml`. Note that this requires the environment variable `$JAEGER_HOST` to be set on the Collector instance (i.e. the container in Kubernetes or Docker Compose):
-
-```yaml
-exporters:
- jaeger:
- # Default Jaeger gRPC server
- endpoint: "$JAEGER_HOST:14250"
- tls:
- insecure: true
-```
-
-### Google Cloud
-
-Refer to the [`googlecloud` exporter documentation](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/exporter/googlecloudexporter/README) for all available options.
-
-If you run Sourcegraph on a GCP workload, all requests will be authenticated automatically. The documentation describes other authentication methods.
-
-```yaml
-exporters:
- googlecloud:
- # See docs
- project: project-name # or fetched from credentials
- retry_on_failure:
- enabled: false
-```
diff --git a/docs/versioned/5.2/admin/observability/outbound-request-log.mdx b/docs/versioned/5.2/admin/observability/outbound-request-log.mdx
deleted file mode 100644
index 589ad8167..000000000
--- a/docs/versioned/5.2/admin/observability/outbound-request-log.mdx
+++ /dev/null
@@ -1,48 +0,0 @@
-# Outbound request log
-
-On the **Outbound requests** page, site admins can see all outbound requests generated by an instance. The page makes it easy to quickly see how Sourcegraph interacts with other systems, such as code hosts, without manually digging into logs, and is especially useful when debugging.
-
-
-
-## Prerequisites
-
-This document assumes you are a [site admin](/admin/).
-
-## Enabling the logs
-
-This feature is off by default. You can enable it by setting `outboundRequestLogLimit` to a non-zero value in the [site config](/admin/config/site_config#outboundRequestLogLimit). The recommended value is `50`.
-
-You can later disable it by setting `outboundRequestLogLimit` to `0`, or by removing the setting entirely.
-
-## Privacy
-
-HTTP headers that may be sensitive (such as `Authorization`) are being redacted before saving. Sensitive information is not stored in the logs.
-
-Logs are stored in memory in Redis with an expiration of seven days. They are automatically cleared when you disable the feature.
-
-## Logged data
-
-This data is logged and displayed by the feature:
-
-- The date and time when the request was sent
-- The URL the request was sent to
-- The HTTP status code of the response
-- The duration of the request
-- A stack trace to the code lines the request was sent by
-- Any errors
-- Request headers (with sensitive fields redacted)
-- Response headers (with sensitive fields redacted)
-- Request body
-
-## Copying the cURL command
-
-To recreate a request for debugging, you can copy the cURL command for any request by clicking the "Copy curl" button. Then you can paste the command into your terminal and run it, or paste it to something like [Postman](https://www.postman.com/) for further debugging.
-
-Keep in mind that some headers might be redacted (you'll see the word "REDACTED" in their place), in which case you'll need to add the missing pieces manually.
-
-Note: You can set the `redactOutboundRequestHeaders` [site config](/admin/config/site_config#redactOutboundRequestHeaders) option to `false` to disable the redaction of headers and make the "Copy curl" function more convenient. But for security reasons, this setting is only respected in development environments.
-
-## Trouble Shooting
-
-### Page failing to load, or loading slowly
-If the Outbound Request Log page is failing to load, or loading slowly, you may need to allocate more resources to Redis. To confirm, please check the charts for Redis under the `provisioning indicators` dropdown in grafana. If these charts show that your CPU usage is consistently over the threshold, allocate more resources to Redis. You can use our [resource estimator](https://docs.sourcegraph.com/admin/deploy/resource_estimator) as a guide.
diff --git a/docs/versioned/5.2/admin/observability/tracing.mdx b/docs/versioned/5.2/admin/observability/tracing.mdx
deleted file mode 100644
index 1759af372..000000000
--- a/docs/versioned/5.2/admin/observability/tracing.mdx
+++ /dev/null
@@ -1,104 +0,0 @@
-# Tracing
-
-In site configuration, you can enable tracing globally by configuring a sampling mode in `observability.tracing`.
-There are currently three modes:
-
-* `"sampling": "selective"` (default) will cause a trace to be recorded only when `trace=1` is present as a URL parameter (though background jobs may still emit traces).
-* `"sampling": "all"` will cause a trace to be recorded on every request.
-* `"sampling": "none"` will disable all tracing.
-
-`"selective"` is the recommended default, because collecting traces on all requests can be quite memory- and network-intensive.
-If you have a large Sourcegraph instance (e.g,. more than 10k repositories), turn this on with caution.
-Note that the policies above are implemented at an application level—to sample all traces, please configure your tracing backend directly.
-
-We support the following tracing backend types:
-
-* [`"type": "opentelemetry"`](#opentelemetry) (default)
-* [`"type": "jaeger"`](#jaeger)
-
-In addition, we also export some tracing [via net/trace](#nettrace).
-
-## How to use traces
-
-Tracing is a powerful debugging tool that can break down where time is spent over the lifecycle of a
-request and help pinpoint the source of high latency or errors.
-To get started with using traces, you must first [configure a tracing backend](#tracing-backends).
-
-We generally follow the following algorithm to root-cause issues with traces:
-
-1. Reproduce a slower user request (e.g., a search query that takes too long or times out) and acquire a trace:
- 1. [Trace a search query](#trace-a-search-query)
- 2. [Trace a GraphQL request](#trace-a-graphql-request)
-2. Explore the breakdown of the request tree in the UI of your [tracing backend](#tracing-backends), such as Honeycomb or Jaeger. Look for:
- 1. items near the leaves that take up a significant portion of the overall request time.
- 2. spans that have errors attached to them
- 3. [log entries](/admin/observability/logs) that correspond to spans in the trace (using the `TraceId` and `SpanId` fields)
-3. Report this information to Sourcegraph (via [issue](https://github.com/sourcegraph/sourcegraph/issues/new) or [reaching out directly](https://about.sourcegraph.com/contact/request-info/)) by screenshotting the relevant trace or sharing the trace JSON.
-
-### Trace a search query
-
-To trace a search query, run a search on your Sourcegraph instance with the `?trace=1` query parameter.
-A link to the [exported trace](#tracing-backends) should be show up in the search results:
-
-
-
-Note that getting a trace URL requires `urlTemplate` to be configured.
-
-### Trace a GraphQL request
-
-To receive a traceID on a GraphQL request, include the header `X-Sourcegraph-Should-Trace: true` with the request.
-The response headers of the response will now include an `x-trace-url` entry, which will have a URL the [exported trace](#tracing-backends).
-
-Note that getting a trace URL requires `urlTemplate` to be configured.
-
-## Tracing backends
-
-Tracing backends can be configured for Sourcegraph to export traces to.
-We support exporting traces via [OpenTelemetry](#opentelemetry) (recommended), or directly to [Jaeger](#jaeger).
-
-### OpenTelemetry
-
-To learn about exporting traces to various backends using OpenTelemetry, review our [OpenTelemetry documentation](/admin/observability/opentelemetry).
-Once configured, you can set up a `urlTemplate` that points to your traces backend, which allows you to use the following variables:
-
-* `{{ .TraceID }}` is the full trace ID
-* `{{ .ExternalURL }}` is the external URL of your Sourcegraph instance
-
-For example, if you [export your traces to Honeycomb](/admin/observability/opentelemetry#otlp-compatible-backends), your configuration might look like:
-
-```json
-{
- "observability.tracing": {
- "type": "opentelemetry",
- "urlTemplate": "https://ui.honeycomb.io/$ORG/environments/$DATASET/trace?trace_id={{ .TraceID }}"
- }
-}
-```
-
-You can test the exporter by [tracing a search query](#trace-a-search-query).
-
-### Jaeger
-
-There are two ways to export traces to Jaeger:
-
-1. **Recommended:** Configuring the [OpenTelemetry Collector](/admin/observability/opentelemetry) (`"type": "opentelemetry"` in `observability.tracing`) to [send traces to a Jaeger instance](/admin/observability/opentelemetry#jaeger).
-2. Using the legacy `"type": "jaeger"` configuration in `observability.tracing` to send spans directly to Jaeger.
-
-We strongly recommend using option 1 to use Jaeger, which is supported via opt-in mechanisms for each of our core deployment methods—to learn more, refer to the [Jaeger exporter documentation](/admin/observability/opentelemetry#jaeger).
-
-To use option 2 instead, which enables behaviour similar to how Sourcegraph exported traces before Sourcegraph 4.0, [Jaeger client environment variables](https://github.com/jaegertracing/jaeger-client-go#environment-variables) must be set on all services for traces to export to Jaeger correctly using `"observability.tracing": { "type": "jaeger" }`.
-
-A mechanism within Sourcegraph is available to reverse-proxy a Jaeger instance by setting the `JAEGER_SERVER_URL` environment variable on the `frontend` service, which allows you to access Jaeger using `/-/debug/jaeger`.
-The Jaeger instance will also need `QUERY_BASE_PATH='/-/debug/jaeger'` to be configured.
-Once set up, you can use the following URL template for traces exported to Jaeger:
-
-```json
-{
- "observability.tracing": {
- // set "type" to "opentelemetry" for option 1, "jaeger" for option 2
- "urlTemplate": "{{ .ExternalURL }}/-/debug/jaeger/trace/{{ .TraceID }}"
- }
-}
-```
-
-You can test the exporter by [tracing a search query](#trace-a-search-query).
diff --git a/docs/versioned/5.2/admin/observability/troubleshooting.mdx b/docs/versioned/5.2/admin/observability/troubleshooting.mdx
deleted file mode 100644
index cb2581662..000000000
--- a/docs/versioned/5.2/admin/observability/troubleshooting.mdx
+++ /dev/null
@@ -1,384 +0,0 @@
-# Troubleshooting guide
-
-This is a guide for investigating errors and performance issues, with the goal of resolving the
-issue or generating a high-quality issue report.
-
-**How to use this guide:**
-
-1. Scan through [Specific scenarios](#specific-scenarios) to see if any of these applies to you. If
- any do, follow the instructions in the subsection.
-1. Scan through [General scenarios](#general-scenarios) to find which scenario(s) applies to you. If any do,
- follow the instructions to update your instance or collect information for the issue report.
-1. If you cannot resolve the issue on your own, file an issue on the [Sourcegraph issue
- tracker](https://github.com/sourcegraph/sourcegraph/issues) with the collected
- information. Enterprise customers may alternatively file a support ticket or email
- `support@sourcegraph.com`.
-
-> NOTE: This guide assumes you have site admin privileges on the Sourcegraph instance. If you are
-> non-admin user, report your error the site admin and have them walk through this guide.
-
-## Specific scenarios
-
-#### Scenario: search *and* code pages take a long time to load
-
-If this is the case, this could indicate high gitserver load. To confirm, take the following steps:
-
-1. [Open Grafana](/admin/observability/metrics#grafana).
-1. **If using Sourcegraph 3.14**: Simply check if either of these alerts are firing:
- - `gitserver: 50+ concurrent command executions (abnormally high load)`
- - `gitserver: echo command execution duration exceeding 1s`
-1. **If using an older version of Sourcegraph:**
- - Go to the Sourcegraph Internal > Gitserver rev2 dashboard.
- - Examine the "Echo Duration Seconds" dashboard (tracks the `src_gitserver_echo_duration_seconds`
- metric) and "Commands running concurrently" dashboard (tracks the `src_gitserver_exec_running`
- metric). If either of these is high (> 1s echo duration or 100s simultaneous execs), then this
- indicates gitserver is under heavy load and likely the bottleneck.
-1. Confirm your gitserver is not under-provisioned, by e.g. comparing its allocated resources with what the [resource estimator](https://docs.sourcegraph.com/admin/deploy/resource_estimator) shows.
-
-Solution: set `USE_ENHANCED_LANGUAGE_DETECTION=false` in the Sourcegraph runtime
-environment.
-
-#### Scenario: no cloning, syncing, updating or deleting is happening
-
-Observed state: Sourcegraph instance does not react to any updates to code hosts and no cloning is happening.
-The cause of this state could be repo-updater queries that are too large for the limits of the running Postgres DB.
-One symptom is seeing a line like the one below in the repo-updater logs:
-
-```text
-t=2020-05-28T18:41:02+0000 lvl=eror msg=Syncer error="syncer.sync.store.upsert-repos: delete: driver: bad connection
-```
-
-or seeing the same error in the "Code host status panel" (Clicking the cloud icon).
-
-The fix is to increase the memory on Postgres DB which will increase certain Postgres-internal limits and will allow
-the queries from repo-updater to go through.
-
-Another cause could be that the `repo-updater` is in a crash loop for some reason. If there are large numbers of repos
-to be updated it could be from `Out of memory` errors. A fix here is to increase the memory for `repo-updater` instead.
-
-## General scenarios
-
-This section contains a list of scenarios, each of which contains instructions that include
-[actions](#actions) that are appropriate to the scenario. Note that more than one scenario may apply
-to a given issue.
-
-#### Scenario: the issue is NOT performance-related and there is a consistent reproduction.
-
-Record the following information in the issue report:
-
-1. Reproduction steps
-1. A screenshot of the error page or error message
-1. The [output of the browser developer console](#check-browser-console)
-1. [Log output](#examine-logs) while reproducing the issue
-1. [Sourcegraph configuration](#copy-configuration)
-1. When was the most recent update or deployment change applied?
-
-#### Scenario: the issue is NOT performance-related, but it is hard to reproduce.
-
-Without a consistent reproduction, the issue will be harder to diagnose, so we recommend trying to
-find a repro if possible. If that isn't possible, file an issue with the following information:
-
-1. Steps the user took before encountering the issue, including as much detail as possible.
- 1. Bad example: "User encountered a 502 error when trying to search for something."
- 1. Good example: "User encountered a 502 error on the search results page when trying to conduct a
- global search for the following query. On refresh, the search worked with no error. The desired
- result appears in our main repository, which is rather large (takes about a minute to fully
- clone). The issue doesn't reproduce consistently, but we saw two other reports like this around
- 2pm PT yesterday, during peak usage hours."
-1. [Examine the error rates](#check-error-rates) for any anomalies.
-1. If you know the approximate time the issue occurred or if there is a spike in error rate around a
- certain time, [copy the logs](#examine-logs) around that time.
-1. Note any pattern in the issue reports. E.g., did users encountering the issue all visit the same
- repository or belong to the same organization. Do site admins encounter the issue or only
- non-admin users?
-1. [Sourcegraph configuration](#copy-configuration)
-1. When was the most recent update or deployment change applied?
-
-#### Scenario: the issue is performance-related and there is a consistent reproduction
-
-1. Include the reproduction steps in the error report, along with relevant context (e.g., repository
- size).
- 1. Bad example: "User did a search and it timed out."
- 1. Good example: "User issued the following search query in the following repository. The
- repository is one of our larger repositories (takes about 1 minute to fully clone and the size
- of the `.git` directory is 5GB). The results page took about 60 seconds to load and when it
- finally did, the results was an error message that said 'timeout'".
-1. Open the [browser developer network panel](#check-browser-network-panel) and identify slow
- requests.
-1. [Use Jaeger](#collect-a-jaeger-trace) to drill down into slow requests and understand which
- components of the request are slow. Remember that many Sourcegraph API requests identify the
- Jaeger trace ID in the `x-trace` HTTP response header, which makes it easy to look up the trace
- corresponding to a particular request.
- 1. If Jaeger is unavailable or unreliable, you can collect trace data from [the Go net/trace
- endpoint](#examine-go-net-trace).
-1. Copy the [Sourcegraph configuration](#copy-configuration) to the error report.
-
-#### Scenario: the issue is performance-related and there is NOT a consistent reproduction
-
-Without a consistent reproduction, the issue will be harder to diagnose, so we recommend trying to
-find a repro if possible. If that isn't possible, try the following:
-
-1. Examine [resource usage](#check-resource-usage), [usage stats](#check-end-user-stats), and [error
- rates](#check-error-rates) over time in Grafana and Prometheus.
- 1. Are there spikes in latencies or error rate over time?
- 1. Are there spikes in usage or traffic over time that correlate with when the issue is reported.
- 1. Are there spikes in memory usage, CPU, or disk usage over time?
-1. If you know the approximate time the issue occurred or if there is a suspicious spike in metrics
- around a certain time, [check the logs](#examine-logs) around that time.
-1. If the issue is ongoing or if you know the time during which the issue occurred, [search
- Jaeger](#collect-a-jaeger-trace) for long-running request traces in the appropriate time window.
- 1. If Jaeger is unavailable, you can alternatively use the Go net/trace endpoint. (You will have
- to scan the traces for each service to look for slow traces.)
-1. If tracing points to a specific service as the source of high latency, [examine the
- logs](#examine-logs) and [net/trace info](#examine-go-net-trace) for that service.
-
-#### Scenario: multiple actions are slow or Sourcegraph as a whole feels sluggish
-
-If Sourcegraph feels sluggish overall, the likely culprit is resource allocation.
-
-> NOTE: some of these recommendations involve increasing the replica or shard count of individual
-> services. This is only possible when Sourcegraph is deployed into a Kubernetes cluster.
-
-1. [Examine memory, CPU, and disk usage metrics](#check-resource-usage).
-1. If the metrics indicate high resource consumption, adjust the resource allocation higher.
-1. If metrics are unavailable or inaccessible, here is a rough correspondence between end-user
- slowness and the services that are usually the culprit:
- 1. Global search (i.e., no repository scope is specified) results page takes a long time to load.
- 1. Increase indexed-search memory limit or CPU limit. The number of indexed-search
- shards can also be increased if using Sourcegraph on Kubernetes.
- 1. Search results show up quickly, but code snippets take awhile to populate. File contents take
- awhile to load.
- 1. Increase gitserver memory usage. Gitserver memory may be the bottleneck, especially if there
- are many repositories or repositories are large.
- 1. Increase number of gitserver shards. This can help if memory is the bottleneck. It can also
- help if there are too many repositories per shard. Gitserver "shells out" to `git` for every
- repository data request, so a high volume of user traffic that generates many simultaneous
- requests for many repositories can lead to a spike in Linux process exec latency.
- 1. Increase memory and CPU limit of syntect-server. This helps if syntax highlighting is the
- bottleneck.
- 1. Multiple UI pages take awhile to load.
- 1. Increase frontend CPU and memory limit.
- 1. Searches show intermittent HTTP 502 errors or timeouts, possibly concurrent with frontend
- container restarts.
- 1. Increase frontend memory and CPU. This may indicate the frontend is running out of memory
- when loading search results. This can be a problem when dealing with large monorepos.
-1. If it is unclear which service is underallocated, [examine Jaeger](#collect-a-jaeger-trace) to
- identify long-running traces and see which services take up the most time.
- 1. Alternatively, you can use the [Go net/trace endpoint](#examine-go-net-trace) to pull trace
- data.
-
-#### Scenario: Prometheus scraping metrics outside Sourcegraph Kubernetes namespace
-
-If you are seeing cAdvisor metrics from a namespace outside of the one Sourcegraph is currently deployed into.
-
-1. Uncomment our namespaced Prometheus [cAdvisor configuration](https://sourcegraph.com/search?q=context:global+repo:%5Egithub%5C.com/sourcegraph/deploy-sourcegraph%24+cAdvisor-specific+customization+&patternType=literal)
-2. Apply this configuration and restart Prometheus
-
-_Note:_ This is unneeded if you are using the 'namespaced' overlay
-
-#### Scenario: search timeouts
-
-If your users are experiencing search timeouts or search performance issues, please perform the following steps:
-
-1. Try appending variations of `index:only`, `timeout:60s` and `count:999999` to the search query to see if it is still slow.
-1. [Access Grafana directly](/admin/observability/metrics#accessing-grafana-directly).
-1. Select the **+** icon on the left-hand side, then choose **Import**.
-1. Paste [this JSON](https://gist.githubusercontent.com/slimsag/3fcc134f5ce09728188b94b463131527/raw/f8b545f4ce14b0c30a93f05cd1ee469594957a2c/sourcegraph-debug-search-timeouts.json) into the input and click **Load**.
-1. Once the dashboard appears, include screenshots of **the entire** dashboard in the issue report.
-1. Include the logs of `zoekt-webserver` container in the `indexed-search` pods. If you are using single Docker container enable [debug logs](/admin/observability/#Logs) first.
-
-#### Scenario: zoekt-webserver is in a `CrashloopBackOff` and `err cannot allocate memory`
-
-Sourcegraph uses a mmap to store its indices. The default operating system limits on mmap counts may to be too low, which may result in out of memory exceptions.
-If you are seeing this error on large scale deployments with a lot repos to be indexed, please use the following steps to verify the source of the errors:
-
-1. Ensure pods are not actually running out of allocated memory and being OOMKilled by running (if they are, then you should give them more memory and the below will not help you):
-
-```
-kubectl top pod indexed-search-
-
-kubectl describe nodes
-```
-
-
-1. On the host operating system execute `sudo sysctl -n vm.max_map_count`.
-
-```
-$ sysctl -n vm.max_map_count
-65530
-```
-
-1. Calculate the number of repos in your deployment divided by the number of `indexed-search` replicas. For example:
-
- * 250,000 repositories / 2 indexed-search repliacas = 125,000 repos to index per replica.
-1. If the `vm.max_map_count` is lower than the result of the above calculation. Adjust the `vm.max_map_count` by executing:
-
- sudo sysctl -w vm.max_map_count=262144
-1. Verify the change.
-
-```
-$ sudo sysctl -n vm.max_map_count
-262144
-```
-
-1. Ensure the change will persist a system reboot by updating the `vm.max_map_count` setting in `/etc/sysctl.conf`.
-
-#### Scenario: zoekt-webserver is restarting due to watchdog
-
-zoekt-webserver has a built in watchdog which ensures it can respond to search requests. If the watchdog fails, it will panic causing the process to exit with a non-zero exit code. This is like a Kubernetes health check, but works across all our deployment environments.
-
-By default the watchdog runs every 30s. If the watchdog fails 3 consecutive times (with a 30s sleep in-between) it will trigger the panic. This is usually indicative a server which is consistently overloaded. It is recommended to increase the CPU quota assigned to it or horizontally scale to more replicas.
-
-From Sourcegraph 3.22 you can configure the watchdog via environment variables:
-
-- `ZOEKT_WATCHDOG_TICK` :: Duration of how often it runs. (default 30s)
-- `ZOEKT_WATCHDOG_ERRORS` :: Consecutive error count before exit. (default 3)
-
-If either is 0 the watchdog is disabled.
-
-You can further diagnose an overloaded zoekt-webserver via watchdog logs or metrics. See log messages mentioning watchdog, or view the following metrics in grafana:
-
-- `zoekt_webserver_watchdog_errors` :: The current error count for zoekt
- watchdog.
-- `zoekt_webserver_watchdog_total` :: The total number of requests done by
- zoekt watchdog.
-- `zoekt_webserver_watchdog_errors_total` :: The total number of errors from
- zoekt watchdog.
-
-
-## Actions
-
-This section contains various actions that can be taken to collect information or update Sourcegraph
-in order to resolve an error or performance issue. You should typically not read this section
-directly, but start with the [General scenarios](#general-scenarios) section to determine which actions are
-appropriate.
-
-### Check browser console
-
-Open the browser JavaScript console (right-click in the browser > Inspect to open developer tools,
-then click the `Console` tab).
-
-### Check browser network panel
-
-Open the browser developer network page (right-click in the browser > Inspect to open developer tools,
-then click the `Network` tab).
-
-If you are new to the network page, check out this [great introduction to the Chrome developer tools
-Network panel](https://developers.google.com/web/tools/chrome-devtools/network).
-
-* Check the waterfall diagram at the top and the Waterfall column in the list of network requests to
- quickly identify high-latency requests.
-* Clicking on a request will open up a panel that provides additional details about the request.
- * If a GraphQL request is taking a long time, you should obtain its Jaeger trace ID by inspecting
- the Headers tab of this panel and finding the `X-Trace` or `x-trace` response header value. Once
- you've obtained this trace ID, [look it up in Jaeger](#collect-a-jaeger-trace).
-* You can check `Preserve log` to preserve the list of requests across page loads and reloads.
-
-### Check resource usage
-
-[Access Prometheus](/admin/observability/metrics#accessing-prometheus) and examine the following metrics:
-
-**Memory:** `process_resident_memory_bytes` is a gauge that tracks memory usage per backend process.
-
-* Example: `process_resident_memory_bytes{app="indexed-search"}` shows memory usage for each
- indexed-search instance.
-
-**CPU:** `process_cpu_seconds_total` is a counter that tracks cumulative CPU seconds used .
-
-* Example: `rate(process_cpu_seconds_total{app="sourcegraph-frontend"}[1m])` shows average CPU usage
- for each sourcegraph-frontend instance over the last minute.
-
-**Disk:** `gitserver_disk_free_percent` is a gauge that tracks free disk space on gitserver.
-
-### Check end-user stats
-
-Go to `/site-admin/usage-statistics` to view daily, weekly, and monthly user statistics.
-
-To drill down (e.g., into sub-daily traffic, visits per page type, latencies, etc.), [access
-Grafana](/admin/observability/metrics#grafana) and visit the Sourcegraph Internal > HTTP dashboard page, which
-includes the following panels:
-
-* QPS by Status Code
-* QPS by URL Route
-* P90 Request Duration (request latency at the 90th percentile)
-
-Grafana contains ready-made dashboards derived from Prometheus metrics. Any chart in Grafana
-mentioned here can be viewed in Prometheus by clicking the dropdown menu next to the Grafana panel
-title > Edit > copying the expression in the Metrics field.
-
-### Check error rates
-
-[Access Grafana](/admin/observability/metrics#grafana) and view the following charts:
-
-* Folder: Sourcegraph Internal > Dashboard: HTTP > Chart: QPS by Status Code
- * This shows request rates by HTTP status code for end-user requests.
-* Folder: General
- * This contains dashboards for each core service in Sourcegraph. Examine each for high-level
- metrics important to the health of each service.
-
-### Collect a Jaeger trace
-
-If you are looking for the trace associated with a specific request,
-
-* [Find the trace ID in the HTTP response in the browser developer tools "Network" tab](#check-browser-network-panel).
-* [Access Jaeger](/admin/observability/tracing#accessing-jaeger) and look up the trace ID.
-
-If you do not have a specific request or cannot find the trace ID,
-
-* [Access Jaeger](/admin/observability/tracing#accessing-jaeger).
-* Search for a matching span by setting the appropriate fields in the sidebar.
-
-2 ways: start with a span ID, or manually locate your span by searching the Jaeger GUI
-
-### Examine logs
-
-If you are using the single Docker container or Docker Compose deployment option, logs are printed
-to `stdout` and `stderr`. You should be able to access these using your infrastructure provider's
-standard log viewing mechanism.
-
-If you are using Kubernetes,
-
-* Retrieve logs with `kubectl logs $POD_ID`.
-* Tail logs with `kubectl logs -f $POD_ID`.
-* If a pod container died, you can access the previous container logs with `kubectl logs -p
- $POD_ID`. This can be useful for diagnosing why a container crashed.
-* You can tail logs for all pods associated with a given deployment: `kubectl logs -f
- deployment/sourcegraph-frontend --container=frontend --since=10m`
-
-
-### Examine Go net/trace
-
-Each core service has an endpoint which displays traces using Go's
-[net/trace](https://pkg.go.dev/golang.org/x/net/trace) package.
-
-To access this data,
-
-1. First ensure you are logged in as a site admin.
-1. Go to the URL path `/-/debug`. This page should show a list of links with the names of each core
- service (e.g., `frontend`, `gitserver`, etc.)
-1. Click on the service you'd like to examine.
-1. Click "Requests`. This brings you to a page where you can view traces for that service.
- * You can filter to traces by duration or error state.
- * You can show histograms of durations by minute, hour, or in total (since the process started)
-
-On older versions of Sourcegraph on Kubernetes, the `/-/debug` URL path may be inaccessible. If this
-is the case, you'll need to forward port 6060 on the main container of a given pod to access its
-traces. For example, to access to traces of the first gitserver shard,
-
-1. `kubectl port-forward gitserver-0 6060`
-1. Go to `http://localhost:6060` in your browser, and click on "Requests".
-
-### Copy configuration
-
-Go the the URL path `/site-admin/report-bug` to obtain an all-in-one text box of all Sourcegraph
-configuration (which includes site configuration, code host configuration, and global
-settings). This lets you easily copy all configuration to an issue report (NOTE: remember to redact
-any secrets).
-
-### Collect instance stats
-
-The following statistics are useful background context when reporting a performance issue:
-
-* Number of repositories (can be found on the `/site-admin/repositories` page, search for "repositories total")
-* Size distribution of repositories (e.g., are there one or more large "monorepos" that contain most of the code?)
-* Number of users and daily usage stats from `/site-admin/usage-statistics`
diff --git a/docs/versioned/5.2/admin/organizations.mdx b/docs/versioned/5.2/admin/organizations.mdx
deleted file mode 100644
index 49879f59f..000000000
--- a/docs/versioned/5.2/admin/organizations.mdx
+++ /dev/null
@@ -1,23 +0,0 @@
-# Organizations
-
-Organizations are named groups of users with an associated JSON settings file (with search scopes, saved queries, etc.). These settings take effect for all users who are members of the organization.
-
-To create an organization, go to `http(s)://[hostname]/organizations/new` on your Sourcegraph instance (or, from any page, click your username and then **New organization**).
-
-You (and any other organization members, and any site admin) may add or remove members from the organization's members page at `http(s)://[hostname]/organizations/[org-name]/members`.
-
-To automatically join all users on your instance to a specific organization, create the organization first and then set the `auth.userOrgMap` [site configuration](/admin/config/site_config) option:
-
-```json
-{
- // ...
- "auth.userOrgMap": {
- // All users ("*") will be automatically joined to the "example-corp" org.
- // Currently "*" (all users) is the only supported key.
- "*": ["example-corp"] // The array values refer to org names you've already created.
- }
- // ...
-}
-```
-
-> NOTE: Users will not be automatically populated to the org immediately after adding `auth.userOrgMap` to your site config json. Instead the org will be populated with all users upon the creation of any new user.
diff --git a/docs/versioned/5.2/admin/permissions/api.mdx b/docs/versioned/5.2/admin/permissions/api.mdx
deleted file mode 100644
index ccd4018f2..000000000
--- a/docs/versioned/5.2/admin/permissions/api.mdx
+++ /dev/null
@@ -1,111 +0,0 @@
-# Explicit permissions API
-
-Sourcegraph's GraphQL API allows users to explicitly set repository permissions. This is an alternative to other mechanisms, which involve directly talking to the code host.
-
-## Permissions mechanisms in parallel
-
-> Feature is in Experimental stage and is supported up to Sourcegraph 5.0
-
-> NOTE: Up to version 5.0, if the Explicit permissions API is enabled, all the other repository permissions mechanisms are disabled. If you're using Sourcegraph with multiple code hosts, it's not possible to use the explicit permissions API for one code host and use other mechanisms for getting permissions for others.
-
-If you want to use explicit permissions API alongside synced permissions, read section [permission mechanisms in parallel here](/admin/permissions/#permissions-mechanisms-in-parallel).
-
-## Recommendations
-
-We only recommend to use explicit permissions API in cases, where the other methods are not possible or effective.
-E.g. if a code host does not support permission syncing/webhooks or if it would take an unreasonable amount of resources/time to sync permissions from the code host.
-
-It's also a good idea to use explicit permissions API if the source of truth for the codehost permissions is already defined in some external system, e.g. LDAP group membership.
-In that case, it might be less resource intensive to sync the permissions from external source of truth directly via a periodically running routine.
-
-## SLA
-
-Sourcegraph SLA is, that **p95 of write requests to the explicit permissions API will be resolved within 10 seconds**.
-
-Sourcegraph does not provide SLA for how fresh the permissions are, since the data is provided as is to the API.
-
-## Disadvantages
-
-It is important to note, that when using explicit permissions API, the permissions are written to the database as provided, without further verification that such permissions do exist on the code host side.
-
-Keeping the permissions in sync and fresh is the responsibility of the site admins.
-
-## Configuration
-
-To enable the permissions API, add the following to the [site configuration](/admin/config/site_config):
-
-```json
-"permissions.userMapping": {
- "enabled": true,
- "bindID": "username"
-}
-```
-
-The `bindID` value specifies how to uniquely identify users when setting permissions:
-
-- `username`: You can [set permissions](#setting-repository-permissions-for-users) for users by specifying their Sourcegraph usernames. Using usernames is **preferred**, as usernames are required to be unique for each user.
-- `email`: You can [set permissions](#setting-repository-permissions-for-users) for users by specifying their email addresses (which must be verified emails associated with their Sourcegraph user account). This method can lead to unexpected results if there are multiple Sourcegraph user accounts with the same verified email address.
-
-After you enable the permissions API, you must [set permissions](#setting-repository-permissions-for-users) to allow users to view repositories (site admins bypass all permissions checks and can always view all repositories).
-
-> NOTE: If you were previously using [permissions syncing](/admin/permissions/syncing), e.g. syncing permissions from Github, then those permissions are used as the initial state after enabling explicit permissions. Otherwise, the initial state is for all repositories to have an empty set of authorized users, so users will not be able to view any repositories.
-
-## Setting a repository as unrestricted
-
-Sometimes it can be useful to mark a repository as `unrestricted`, meaning that it is available to all Sourcegraph users. This can be done with the `setRepositoryPermissionsUnrestricted` mutation. Marking a repository as unrestricted will disregard any previously set explicit or synced permissions. Setting `unrestricted` back to `false` will restore the previous behaviour.
-
-For example:
-
-```graphql
-mutation {
- setRepositoryPermissionsUnrestricted(repositories: ["", "", ""], unrestricted: true)
-}
-```
-
-## Setting repository permissions for users
-
-Setting the permissions for a user can be accomplished with 2 [GraphQL API](/api/graphql) calls.
-
-First, obtain the ID of the repository from its name:
-
-```graphql
-query {
- repository(name: "github.com/owner/repo") {
- id
- }
-}
-```
-
-Next, set the list of users allowed to view the repository:
-
-```graphql
-mutation {
- setRepositoryPermissionsForUsers(
- repository: "",
- userPermissions: [
- { bindID: "alice" },
- { bindID: "bob" },
- ]) {
- alwaysNil
- }
-}
-```
-
-Now, only the users specified in the `userPermissions` parameter will be allowed to view the repository. Sourcegraph automatically enforces these permissions for all operations. (Site admins bypass all permissions checks by default. See the [Site administrators](/admin/permissions/#site-administrators) section)
-
-You can call `setRepositoryPermissionsForUsers` repeatedly to set permissions for each repository, and whenever you want to change the list of authorized users.
-
-### Listing a user's authorized repositories
-
-You may query the set of repositories visible to a particular user with the `authorizedUserRepositories` [GraphQL API](/api/graphql) query, which accepts a `username` or `email` parameter to specify the user:
-
-```graphql
-query {
- authorizedUserRepositories(username: "alice", first: 100) {
- nodes {
- name
- }
- totalCount
- }
-}
-```
diff --git a/docs/versioned/5.2/admin/permissions/index.mdx b/docs/versioned/5.2/admin/permissions/index.mdx
deleted file mode 100644
index 086a5ff37..000000000
--- a/docs/versioned/5.2/admin/permissions/index.mdx
+++ /dev/null
@@ -1,158 +0,0 @@
-# Permissions
-
-> NOTE: This page refers to repository access permissions synced between Sourcegraph and your code host, which has also historically been referred to as "authorization", "repository permissions", and "code host permissions". This is *not* the same as [in-product permissions](/admin/access_control/), which determine who can, for example, create a batch change or who is a site admin.
-
-Sourcegraph can be configured to enforce the same access to repositories and underlying
-source files as your code host. If configured, Sourcegraph will allow the user to only
-see the entities that they can see on the code host. These permissions are enforced
-across the product for all the use cases that need to read data from a repository,
-including the existence of such repository on the code host.
-
-Imagine a scenario, with 2 users, `alice` and `bob`:
-
-- `alice` can access repositories `my-organisation/global` and `my-organisation/alice` on the code host
-- `bob` has access to repositories `my-organisation/global` and `my-organisation/docs` on the code host
-- There is a public repository `my-organisation/public`
-- All of the mentioned repositories are synced to Sourcegraph
-
-With permissions set up, when `alice` tries to run a search on Sourcegraph, the results will only contain data from the public `my-organisation/public` repository and the ones she has access to (`my-organisation/global` and `my-organisation/alice`). `alice` will not be able to see results from the `my-organisation/docs`. If `alice` creates a code insight, she will only see results from the repositories she has access to.
-
-Same for `bob`, the search results or any other feature will not show him the existence of `my-organisation/alice` repository on Sourcegraph, since `bob` does not have access to it on the code host.
-
-## Getting started
-
-To set up permissions by [syncing them from a code host](/admin/permissions/syncing) you need two things: [an authentication provider](/admin/auth/) that can tell which users should see which repositories and [a code host connection](/admin/external_service/) with authorization enabled.
-
-1. Configure an authentication provider for the code host from which you want to sync permissions:
- - [GitHub](/admin/auth/#github)
- - [GitLab](/admin/auth/#gitlab)
- - [Bitbucket Cloud](/admin/auth/#bitbucket-cloud)
- - [Gerrit](/admin/auth/#gerrit)
- - Bitbucket Server doesn't require an authentication provider, but has [other prerequisites](/admin/external_service/bitbucket_server#prerequisites)
- - Perforce doesn't need a separate authentication provider
-2. Configure the code host connection to use authorization:
- - [GitHub](/admin/external_service/github#repository-permissions)
- - [GitLab](/admin/external_service/gitlab#repository-permissions)
- - [Bitbucket Cloud](/admin/external_service/bitbucket_cloud#repository-permissions)
- - [Gerrit](/admin/external_service/gerrit#add-gerrit-as-an-authentication-provider)
- - [Perforce](/admin/repo/perforce#repository-permissions)
-
-It's also possible to use other methods to get permission data from a code host into the Sourcegraph instance.
-
-## Supported methods to sync permissions
-
-Today, we support 3 different methods to get the permission data from code host to Sourcegraph:
-
-1. [Permission syncing from the code host](/admin/permissions/syncing)
-1. [Webhooks for getting permission events from code host](/admin/permissions/webhooks)
-1. [Explicit permissions API](/admin/permissions/api)
-
-To know more about each method that we support, please follow the link above.
-
-## Supported code hosts
-
-Support for repository permissions accross different code hosts is different. The following table captures current state of support (ordered alphabetically):
-| Code host | [Permission Syncing](/admin/permissions/syncing) | [Webhooks for Permissions](/admin/permissions/webhooks) | [Explicit API](/admin/permissions/api) | [Scale supported](#supported-scale) |
-| -------- | -------- | -------- | -------- | -------- |
-| Bitbucket Cloud (Beta) | ✓ | ✗ | ✓ | 10k users, 100k repositories |
-| Bitbucket Server | ✓ | ✗ | ✓ | 10k users, 100k repositories |
-| Gerrit (Beta) | ✓ | ✗ | ✓ | 10k users, 100k repositories |
-| GitHub | ✓ | ✓ | ✓ | 40k users, 200k repositories |
-| GitHub Enterprise | ✓ | ✓ | ✓ | 40k users, 200k repositories |
-| GitLab | ✓ | ✗ | ✓ | 40k users, 200k repositories |
-| GitLab Self-Managed | ✓ | ✗ | ✓ | 40k users, 200k repositories |
-| Perforce (Experimental) | Yes (with file-level permissions) | ✓ | ✓ | 10k users, 250k repositories |
-
-All the other code hosts only support [Explicit permissions API](/admin/permissions/api).
-
-
-> NOTE: If your desired code host is not yet supported, please [open a feature request](https://github.com/sourcegraph/sourcegraph/issues/new?template=feature_request).
-
-### Supported scale
-
-If not otherwise stated in the table above, all code hosts should support up to 10k users and 100k repositories for permission syncing.
-
-These numbers come from testing the supported scale in a testing environment or running on a customer instance.
-
-> NOTE: Sourcegraph might be able to support higher scale than specified, but was not rigorously tested to do so.
-
-Please contact support if you want to discuss bigger scale than specified.
-
-## SLAs
-
-Each method of getting permissions to Sourcegraph has different SLA on how long it takes for permissions to appear
-in Sourcegraph.
-
-- [Permission syncing SLA](/admin/permissions/syncing#sla)
-- [Webhooks SLA](/admin/permissions/webhooks#sla)
-- [Explicit Permissions API SLA](/admin/permissions/api#sla)
-## License requirements
-
-To have permission syncing available, the Sourcegraph instance needs to be configured with
-a license that has `acls` feature enabled. If it is not present, Sourcegraph will not enforce
-repository permissions and each repository will be treated as public - any user that has access
-to Sourcegraph will be able to access it.
-
-## Site administrators
-
-By default, site-admins bypass all of the permissions checks. Which means, all site admins are able to
-view all the repositories by default. The default can be changed by setting the site config
-option `authz.enforceForSiteAdmins` to `true`.
-
-> NOTE: However, we recommend to be cautious with this option, as it might make some operations for site admins more complicated or impossible.
-
-E.g. trying to figure out if a specific repository is syncing source code to Sourcegraph correctly
-might become an impossible task if the site admin cannot access that repository.
-
-## Permissions mechanisms in parallel
-
-(Experimental)
-Sourcegraph 5.0+
-
-Up to version 5.0 it was not possible to use explicit permissions API alongside permission syncing.
-Meaning, if explicit permissions API was turned ON, synced permissions were turned OFF. Which also meant it was
-impossible to use explicit permissions for one code host and synced permissions for another one on the same Sourcegraph instance.
-
-**Example**:
-
-User `alice` has existing synced permissions to repositories `horsegraph/global` and `horsegraph/hay-v1`.
-Alice also has explicit API permissions to repository `horsegraph/hay-dev`. So the overall repository permissions
-of `alice` are the following union set: [`horsegraph/global`, `horsegraph/hay-v1`, `horsegraph/hay-dev`]
-
-### Configuration
-
-**Prerequisites:**
-1. Sourcegraph version 5.0+
-1. Go to **Site Admin > Migrations** page. There is a migration called `Migrate data from user_permissions table to unified user_repo_permissions.`.
-Make sure that it finished migrating all the data (it reports as 100%). Contact support if the migration does not seem to complete for a long time (multiple days).
-
-1. (Not required for Sourcegraph 5.1+) Enable the experimental feature in the [site configuration](/admin/config/site_config):
-```json
-{
- "experimentalFeatures": {
- "unifiedPermissions": "enabled"
- }
- // ...
-}
-```
-1. Continue [configuring the explicit permissions API](/admin/permissions/api#configuration) as you would before.
-
-### Permission updates
-
-Each permission mechanism is going to update only its own data. This means, that permission syncing is not
-going to touch permissions created by explicit permissions API and vice versa. We consider webhooks permissions
-as part of the permission syncing mechanism as well, since it is using the same underlying database operations.
-
-What the above paragraph means is, that when an updated set of accessible repositories for a user is given via
-permission sync, it will replace the existing set of synced permissions for that user, but not the explicit permissions.
-
-**Example**:
-
-Let's follow the example from above, `alice` has existing synced permissions to repositories `horsegraph/global` and `horsegraph/hay-v1`
-and explicit permissions to `horsegraph/hay-dev`, meaning a unioned set of effective permissions of [`horsegraph/global`, `horsegraph-hay-v1`, `horsegraph/hay-dev`].
-
-An update comes in from permission sync, now returning `alice` permissions as [`horsegraph/global`, `horsegraph/hay-v2`]. Notice
-the removal of `horsegraph-v1` from the set.
-
-After the update, the synced permissions of `alice` will be [`horsegraph/global`, `horsegraph/hay-v2`], but explicit permissions
-were not touched, leading to effective permissions of [`horsegraph/global`, `horsegraph-hay-v2`, `horsegraph/hay-dev`]
diff --git a/docs/versioned/5.2/admin/permissions/syncing.mdx b/docs/versioned/5.2/admin/permissions/syncing.mdx
deleted file mode 100644
index d52c1da53..000000000
--- a/docs/versioned/5.2/admin/permissions/syncing.mdx
+++ /dev/null
@@ -1,325 +0,0 @@
-# Permission syncing
-
-Permission syncing is a polling mechanism, that periodically checks via an API call to the code
-host to determine which permissions of a specific entity has. We have 2 ways to sync
-permissions. Both are on by default, resulting in double polling:
-
-- **user-centric** permission syncing, where we ask the code host for a list of repositories that a specific user has read access to
-- **repo-centric** permission syncing, where we ask the code host for a list of users that can access a specific repository
-
-Sourcegraph collects this information and stores it in internal database.
-
-To see which code hosts support permission syncing, please refer to [Supported code hosts table](/admin/#supported-code-hosts).
-## How it works
-
-### Periodic sync
-
-The permission syncing mechanism can be divided into 2 processes:
-
-1. The job scheduler migrated to a database backed worker in v4.5
-2. The permission sync job
-
-There is a scheduler and job queue for both user-centric and repo-centric sync jobs, both run in parallel.
-
-### On-demand sync
-
-Besides periodic schedule of jobs, we also have a way to request permission sync for a user
-or repository on-demand. This is useful for example when a new user is added to Sourcegraph.
-
-To do that, the following GraphQL request needs to be made:
-```graphql
-mutation {
- scheduleUserPermissionsSync(user: "user") {
- alwaysNil
- }
-}
-```
-
-Or in the case of adding a repository, the following request is made:
-```graphql
-mutation {
- scheduleRepositoryPermissionsSync(repository: "repository") {
- alwaysNil
- }
-}
-```
-
-**Example**:
-- User `bob` is added to Sourcegraph.
-- `bob` has access to repositories `horsegraph/global` and `horsegraph/bob` on the code host
-- an on-demand request is made to sync repository permissions of `bob`, this job is added to the queue with high priority, so it will be processed
- quicker than jobs with lower priority
-- by the time `bob` actually logs into Sourcegraph, the permissions should already be synced with this on-demand job.
-
-### Scheduling
-
-A variety of heuristics are used to determine when a user or a repository should be
-scheduled for a permissions sync to ensure the permissions data Sourcegraph has is up to date.
-
-Permissions syncs are regularly scheduled in these scenarios
-
-- When a user or repository is created [as seen above](#on-demand-sync)
-- When certain interactions happen, such as when a user logs in or a repository is visited
-- When a user or repository does not have permissions in the database
-- When a user or repository permissions are stale (i.e. some amount of time has passed since the last sync for a user or repository)
- - in this case, Sourcegraph schedules a certain amount of users/repositories with oldest permissions on each scheduling interval.
-
-When a sync job is scheduled, it is added to a priority queue that is steadily
-processed. To avoid overloading the code host a sync job [might not be processed immediately](#sync-duration)
-and depending on the code host, might be heavily rate limited.
-
-Priority queue is needed to process the sync jobs in the order of most important first. E.g.:
-- on-demand sync is high priority
-- sync of entities with no permissions is high priority
-- sync of oldest permissions is normal priority, since we already do have some permissions in the system
-
-### Mapping code host identifiers
-
-To identify which Sourcegraph users or repositories the permissions relate to, we need to map the
-users identifiers from code host with userIDs on Sourcegraph and similarly for repository
-identifiers from code host to repoIDs on Sourcegraph side.
-
-> WARNING: For this process to work correctly, the user needs to have an external account
-from code host mapped to the user account on Sourcegraph, otherwise the code host
-identifier cannot be matched and repository permissions cannot be enforced.
-
-This is the main reason to require users to connect to their code host. This
-can be done on the Account security settings page: `/users/$USER/settings/security`.
-
-### Entities that do not exist on Sourcegraph
-
-There might be cases, when the identifiers on the code host do not match any user or repository on Sourcegraph side.
-In that case, Sourcegraph still stores the permission information in the internal database as **pending permissions**
-In case that an entity with the same code host identifier is added later, Sourcegraph applies these pending permissions.
-
-**Sourcegraph only keeps pending permissions for repositories that were added to Sourcegraph.**
-We will never store information about repositories that are not shared with us.
-
-If everything works correctly in such a case, [on-demand sync request](#on-demand-sync)
-is not strictly needed. But the permissions of the entity might have changed in the time
-since the last sync of these pending permissions, so it is safer to make the request
-anyway to keep the permissions as fresh as possible.
-
-## SLA
-
-Sourcegraph SLA is, that the time it takes for permissions from code host to be synced via permission syncing
-to Sourcegraph is the same as the [lag-time](#lag-time) defined below. So as long as a full cycle of permission syncing takes.
-
-## Checking permissions sync state
-
-### Verify via UI
-
-Sourcegraph 5.0+
-
-The state of user or repository permissions can be checked directly in the Sourcegraph UI.
-
-**User permissions**
-
-1. Click on your avatar in top right corner of the page
-1. Navigate to **Settings > Permissions** (Or URL path `/users/$USER/settings/permissions`)
-1. The permissions page should look similar to: 
-
-**Repository permissions**
-
-1. Navigate to the repository page
-1. Open **Settings > Permissions** (Or URL path `/$CODEHOST/$REPO/-/settings/permissions`)
-1. The permissions page should look similar to: 
-
-### Verify the state via API calls
-
-before Sourcegraph 5.0
-
-The GraphQL API can also be used:
-
-```graphql
-query {
- user(username: "user") {
- permissionsInfo {
- syncedAt
- updatedAt
- }
- }
-}
-```
-
-Or for the sake of repository:
-```graphql
-query {
- repository(name: "repository") {
- permissionsInfo {
- syncedAt
- updatedAt
- }
- }
-}
-```
-
-### Difference between `syncedAt` and `updatedAt`
-
-Because we do double polling with user-centric permission sync running alongside repo-centric permission sync, the `syncedAt`
-and `updatedAt` times might be different.
-
-For *user permission sync*, the GraphQL API `syncedAt` indicates the time of last user-centric permission sync for the user
-and `updatedAt` indicates the last repo-centric permission sync for any of the repositories the user has access to.
-If `syncedAt` is more recent than `updatedAt`, it means the last user-centric permission sync for the user is more recent
-than any of the repo-centric permission syncs for the repositories the user has access to.
-
-For *repository permission sync*, the case is orthogonal to the above. The GraphQL API `syncedAt` indicates the time of last
-repo-centric permission sync for the repository and `updatedAt` indicates the last user-centric permission sync for any of
-the users that can access the repository.
-If `syncedAt` is more recent than `updatedAt`, it means the last repo-centric permission sync for the repository is more recent
-than any of the user-centric permission syncs for the users that can access the repository.
-
-## Sync duration
-
-When syncing permissions from code hosts with large numbers of users and repositories, it can take a lot of time
-to complete syncing all permissions from a code host for every user and every repository. Typically due to internal
-rate limits imposed by Sourcegraph and external rate limits imposed by the code host, it can take hours for customers
-with large amounts of users or repositories. Please contact the support team for further assistance.
-
-For initial setup of instance, when the initial sync for all repositories and users is running, users will
-gradually see more and more search results from repositories they have access to.
-
-### Lag-time
-
-Let's call the time difference between applying the permissions change on code host and the change taking effect on Sourcegraph as **lag time**.
-For security reasons, we strive to make the lag time as low as possible.
-
-However given the way the system works, we need to be aware of the worst case:
-
-> IMPORTANT: If there is a change in permissions on the code host, in the worst case the lag time is as long as the time it takes to completely sync all user or repository permissions.
-
-**Example**:
-There are `5 000` users, `40 000` repositories and the github.com API is paginated on `100` items per page.
-On average, every user has read access to `300` repositories and on average a repository is accessible by `75` users.
-
-User `alice` is removed from repository `horsegraph/not-so-global` at 15:02. How long does it take for this change to take effect on Sourcegraph side?
-
-Let's say rate limiting is not slowing down permission syncing and default settings for permission syncing are used (scheduler runs every 15 seconds and it schedules 10 users with oldest permissions). That means, we schedule 40 users per minute to be synced. To sync all the users takes `5000 / 40 = 125` minutes.
-
-- Worst case scenario:
- User `alice` has synced the permissions at 15:01, just one minute before the change is made. This means, `alice` will be scheduled the permissions sync in about 124 minutes again.
-- Best case scenario:
- User `alice` has synced permissions at 12:58. Next permission sync for `alice` is going to be scheduled at 15:03. So in this case it takes just 1 minute.
-
-So the answer to the question of how long the *lag-time* is, in the worst case 125 minutes (as long as the full user-permission syncing cycle takes).
-
-### Request count
-
-To calculate how long a full sync takes, it is important to take into consideration many factors - how quickly we
-fill the sync job queue, how is internal rate limiter and external rate limiter configured, etc. But in general, we
-need to make the following amount of requests to fully sync all the user-centric permissions
-(and we double poll, so double the number for repo-centric sync jobs):
-
-```
-request_count = ((users * avg_repository_access) / per_page_items) +
- ((repositories * avg_users_access) / per_page_items)
-```
-
-**Example:**
-
-There are `10 000` users, `40 000` repositories and the github.com API is paginated on `100` items per page. On
-average, every user has read access to `300` repositories and on average a repository is accessible by `75` users.
-
-We need to make `3M` requests. To cover both user-centric and repo-centric case, it means `6M` requests.
-[github.com](https://github.com) has an API rate limit of `5000` requests per hour. In that case, complete
-permission sync of all users takes `3M requests / 5000 = 600` hours, which is `25` days approximately.
-
-`25` days to complete a full cycle of permission sync is not great, it can potentially mean `25` days of lag time
-mentioned above. Even if we let permission sync consume all the rate limit and we stagger our requests perfectly, which
-is rarely the case. Depending on the code host, the rate limit might be much higher, but then we might be
-firing huge amounts of requests to the code host.
-
-> IMPORTANT: For permission syncing to be quicker, the code host needs to be able to handle big amounts of requests per hour.
-
-> IMPORTANT: Depending on the customer scale, the amount of users, repositories and the distribution of permissions accross them, the time it takes to fully sync will vary.
-
-> IMPORTANT: We recommend **configuring webhooks for permissions on GitHub** which makes lag time much smaller.
-
-## Configuration
-There are variety of options in the site configuration to tune how the permissions sync requests are
-scheduled. Default values are shown below:
-
-```json
-{
- // Time interval between each iteration of the scheduler
- "permissions.syncScheduleInterval": 15,
- // Number of user permissions to schedule for syncing in single scheduler iteration.
- "permissions.syncOldestUsers": 10,
- // Number of repo permissions to schedule for syncing in single scheduler iteration.
- "permissions.syncOldestRepos": 10,
- // Don't sync a user's permissions if they have synced within the last n seconds.
- "permissions.syncUsersBackoffSeconds": 60,
- // Don't sync a repo's permissions if it has synced within the last n seconds.
- "permissions.syncReposBackoffSeconds": 60,
- // The maximum number of user-centric permissions syncing jobs that can be spawned concurrently.
- // Service restart is required to take effect for changes.
- "permissions.syncUsersMaxConcurrency": 1,
-}
-```
-
-If the purpose is to fire more requests to the code host, the internal rate limit or the code host rate limit must be also changed accordingly.
-
-Internal rate limiter settings are described on each code host configuration page, but in general, the `requestsPerHour` field needs to be set to the desired number.
-
-### Recommendations
-
-#### Less users than repositories
-If there are a lot less users, than repositories, it is better to rely on user-centric perms sync instead of repo-centric sync. In that case, we recommend:
-```json
-{
- // ...
- "permissions.syncOldestUsers": 20,
- "permissions.syncOldestRepos": 0 // minimum 1 on versions 5.0.3 and older
-}
-```
-
-This configuration change will schedule `20` users on each scheduler iteration and just `1` repository. That
-way, we use the API requests better and user sync will be prefered. This is just an example, please change
-the `syncOldestUsers` value to what is desired in your organization.
-
-**Example**:
-There are `10 000` users, `40 000` repositories and the desired time to do a full cycle of permission sync is `2 hours`. That
-means we need to sync 5000 users an hour. If we keep the `syncScheduleInterval` to `15s` (the default), we schedule 4-times
-a minute. `5000/(4 * 60) = 20.8`, so the scheduler needs to schedule 21 users on each iteration to get under the 2 hour mark.
-
-The rate limit for the code host would need to be changed to support the load. In that case the recommendation
-is to set it to 2x of the amount of [requests expected from permission syncing](#request-count).
-#### More users than repositories
-
-If the situation is reversed, it is recommended to do the opposite than above. Prefer repo-centric
-permission sync in these situations:
-
-```json
-{
- // ...
- "permissions.syncOldestUsers": 0, // minimum 1 on versions 5.0.3 and older
- "permissions.syncOldestRepos": 20
-}
-```
-
-**Example**
-There are `10 000` users, `5000` repositories and the desired time for a full permission sync cycle is `2 hours`. That means we
-need to sync 2500 repositories an hour. If we keep the `syncScheduleInterval` to `15s`(the default), we schedule 4-times
-a minute. `2500/(4 * 60) = 10.4`, so the scheduler needs to schedule 11 repositories on each iteration to get under the 2 hour mark.
-
-The rate limit for the code host needs to be changed to support the load. In that case the recommendation
-is to set it to 2x of the amount of [requests expected from permission syncing](#request-count).
-
-## Troubleshooting
-
-In some cases, user-centric and repo-centric permission sync can conflict. This typically happens when the code host connection token is misconfigured or expired, but the user token works correctly. A conflict like this can periodically revoke users' access to repositories until the next user permission sync.
-
-### Disable repo-centric permission sync
-
-> IMPORTANT: This feature is only supported in Sourcegraph 5.0.4 and later.
-
-> IMPORTANT: Disabling repo-centric permission sync can break your permission setup depending on your code host and user authentication method. Contact Sourcegraph support before disabling repo-centric permission sync.
-
-To completely disable repo-centric permission sync scheduling, use this site configuration:
-
-```json
-{
- // ...
- "permissions.syncOldestRepos": 0
-}
diff --git a/docs/versioned/5.2/admin/permissions/webhooks.mdx b/docs/versioned/5.2/admin/permissions/webhooks.mdx
deleted file mode 100644
index f87a0305e..000000000
--- a/docs/versioned/5.2/admin/permissions/webhooks.mdx
+++ /dev/null
@@ -1,37 +0,0 @@
-# Webhooks for repository permissions
-
-Sourcegraph allows customers to use webhooks to react to events that modify user permissions
-on the code host. Currently the only supported code host for webhooks
-is [Github](/admin/external_service/github).
-
-> NOTE: Using webhooks is the *recommended* way to get code host permissions to Sourcegraph
-
-## How it works
-
-Sourcegraph exposes endpoints to receive webhooks. These endpoints are authenticated, so we make sure the requests come from a trusted source.
-
-1. Sourcegraph receives a webhook request with one of the supported events
-1. Based on the event data, Sourcegraph schedules a permission sync job
-1. Standard permission syncing mechanism handles the scheduled job, leading to a sync of permissions of the relevant user or repository from the code host
-
-## SLA
-
-Sourcegraph SLA is, that **p95 of webhook requests will be processed within 5 minutes**. This means, that
-when the permissions are changed on the code host, it takes at most 5 minutes for the same permissions to be reflected on the Sourcegraph side.
-
-## Advantages
-
-- the eventual consistency time is really low, see [SLA](#sla) above.
-- least amount of resource usage (bandwidth, code host rate limit), as we only ask code host for permission data when there is an actual change
-## Disadvantages
-
-Webhooks are best effort and there is no 100% guarantee that a webhook will be
-fired from the code host side when the data change. Especially with permissions, this
-is something to be aware of, as important permission related webhooks might
-not be sent to Sourcegraph.
-
-> NOTE: That's why we recommend to use webhooks alongside the permission syncing mechanism.
-
-## Configuring webhooks
-
-Please follow the link for [configuring permission syncing webhooks for Github](/admin/config/webhooks/incoming#user-permissions).
diff --git a/docs/versioned/5.2/admin/pings.mdx b/docs/versioned/5.2/admin/pings.mdx
deleted file mode 100644
index 6ea081613..000000000
--- a/docs/versioned/5.2/admin/pings.mdx
+++ /dev/null
@@ -1,275 +0,0 @@
-# Pings
-
-Sourcegraph periodically sends a ping to `pings.sourcegraph.com` to help our product and customer teams. It sends only the high-level data below. It never sends code, repository names, usernames, or any other specific data. To learn more, go to the **Site admin > Pings** page on your instance (the URL is `https://sourcegraph.example.com/site-admin/pings`).
-
-Sourcegraph will also periodically perform a license verification check, to verify the validity of the configured Sourcegraph license. Tampering with these checks, or preventing them from occuring, will cause Sourcegraph to disable many features until a successful check is completed. Certain Enterprise licenses can request to be exempt from these license verification checks.
-
-## Telemetry
-
-Sourcegraph aggregates usage and performance metrics for some product features in our enterprise deployments. No personal or specific information is ever included.
-
-### List of other telemetry
-
-- Randomly generated site identifier
-- The email address of the initial site installer (or if deleted, the first active site admin), to know who to contact regarding sales, product updates, security updates, and policy updates
-- The external URL of the instance (e.g. "https://sourcegraph.example.com")
-- Sourcegraph version string (e.g. "vX.X.X")
-- Dependency versions (e.g. "6.0.9" for Redis, or "13.0" for Postgres)
-- Deployment type (single Docker image, Docker Compose, Kubernetes cluster, Helm, or pure Docker cluster)
-- License key associated with your Sourcegraph Enterprise subscription
-- Aggregate count of current monthly users
-- Total count of existing user accounts
-- Aggregated repository statistics
- - Total size of git repositories stored in bytes
- - Total number of lines of code stored in text search index
-- Whether the instance is deployed on localhost (true/false)
-- Which category of authentication provider is in use (built-in, OpenID Connect, an HTTP proxy, SAML, GitHub, GitLab)
-- Which code hosts are in use (GitHub, Bitbucket Server / Bitbucket Data Center, GitLab, Phabricator, Gitolite, AWS CodeCommit, Other)
- - Which versions of the code hosts are used
-- Whether new user signup is allowed (true/false)
-- Whether a repository has ever been added (true/false)
-- Whether a code search has ever been executed (true/false)
-- Whether code navigation has ever been used (true/false)
-- Aggregate counts of current daily, weekly, and monthly users
-- Aggregate counts of current daily, weekly, and monthly users, by whether they are using code host integrations
-- Aggregate daily, weekly, and monthly latencies (in ms) of search queries
-- Aggregate daily, weekly, and monthly integer counts of the following query syntax:
- - The number of boolean operators (`and`, `or`, `not` keywords)
- - The number of built-in predicate keywords (`contains`, `contains.file`, `contains.repo`, `contains.commit.after`, `dependencies`)
- - The number of `select` keywords by kind (`repo`, `file`, `content`, `symbol`, `commit.diff.added`, `commit.diff.removed`)
- - The number of queries using the `context:` filter without the default `global` value
- - The number of queries with only patterns (e.g., without filters like `repo:` or `file:`)
- - The number of queries with three or more patterns
-- Aggregate daily, weekly, and monthly user counts of search queries with the above properties
-- Code navigation usage data
- - Total number of repositories with and without an uploaded precise code navigation index
- - Total number of code navigation queries (e.g., hover tooltips) per week grouped by language
- - Number of users performing code navigation queries (e.g., hover tooltips) per week grouped by language
-
-- Batch Changes usage data
- - Total count of page views on the batch change apply page
- - Total count of page views on the batch change details page after creating a batch change
- - Total count of page views on the batch change details page after updating a batch change
- - Total count of created changeset specs
- - Total count of created batch change specs
- - Total count of created batch changes
- - Total count of closed batch changes
- - Total count of changesets created by batch changes
- - Aggregate counts of lines changed, added, deleted in all changesets
- - Total count of changesets created by batch changes that have been merged
- - Aggregate counts of lines changed, added, deleted in all merged changesets
- - Total count of changesets manually added to a batch change
- - Total count of changesets manually added to a batch change that have been merged
- - Aggregate counts of unique monthly users, by:
- - Whether they have contributed to batch changes
- - Whether they only viewed batch changes
- - Whether they have performed a bulk operation
- - Weekly batch change (open, closed) and changesets counts (imported, published, unpublished, open, draft, merged, closed) for batch change cohorts created in the last 12 months
- - Weekly bulk operations count (grouped by operation)
- - Total count of executors connected
- - Cumulative executor runtime monthly
- - Total count of `publish` bulk operation
- - Total count of bulk operations (grouped by operation type)
- - Changeset distribution for batch change (grouped by batch change source: `local` or `executor`)
- - Total count of users that ran a job on an executor monthly
- - Total count of published changesets and batch changes created via:
- - executor
- - local (using `src-cli`)
-- Aggregated counts of users created, deleted, retained, resurrected and churned within the month
-- Aggregated counts of access requests pending, approved, rejected
-- Saved searches usage data
- - Count of saved searches
- - Count of users using saved searches
- - Count of notifications triggered
- - Count of notifications clicked
- - Count of saved search views
-- Homepage panel engagement
- - Percentage of panel clicks (out of total views)
- - Total count of unique users engaging with the panels
-- Weekly retention rates for user cohorts created in the last 12 weeks
-- Search onboarding engagement
- - Total number of views of the onboarding tour
- - Total number of views of each step in the onboarding tour
- - Total number of tours closed
-- Sourcegraph extension activation statistics
- - Total number of users that use a given non-default Sourcegraph extension
- - Average number of activations for users that use a given non-default Sourcegraph extension
- - Total number of users that use non-default Sourcegraph extensions
- - Average number of non-default extensions enabled for users that use non-default Sourcegraph extensions
-- Code insights usage data
- - Total count of insights
- - Weekly count of page views on the insights pages
- - Weekly count of unique viewers on the insights pages
- - Weekly counts of hovers and clicks insights by type (e.g. search, code stats)
- - Weekly counts of resizing of insights by type
- - Weekly counts of edits, additions, and removals of insights by type
- - Total count of clicks on the "Add more insights" and "Configure insights" buttons on the insights page
- - Weekly count of users that have created an insight
- - Weekly count of users that have created their first insight this week
- - Weekly count of total and unique views to the different `Create`, `Create search insight`, and `Create language insight` pages
- - Weekly count of total and unique clicks of the different `Create search insight` and `Create language usage insight`, and `Explore the extensions` buttons on the `Create new insight` page
- - Weekly count of total and unique clicks of the `Create` and `Cancel` buttons on the `Create search insight` and `Create language insight` pages
- - Total count of insights grouped by time interval (step size) in days
- - Total count of insights that are organization visible grouped by insight type
- - Total count of insights grouped by presentation type, series type, and presentation-series type.
- - Weekly count of unique users that have viewed code insights in-product landing page
- - Weekly count of per user changes that have been made over the query field insight example.
- - Weekly count of per user changes that have been made over the repositories field insight example.
- - Weekly count of clicks on the "Create your first insight" CTA button on the in-product landing page.
- - Weekly count of clicks on the code insights in-product template section's tabs, with tab title data.
- - Weekly count of clicks on the use/explore template card's button.
- - Weekly count of clicks on the "view more" template section button.
- - Weekly count of clicks on the in-product landing page documentation links.
- - Weekly count of filters usage on the standalone insight page
- - Weekly count of navigation to dashboards from the standalone insight page
- - Weekly count of clicks on "Edit" from the standalone insight page
- - Total count of individual view series, grouped by presentation type and generation method
- - Total count of insight series, grouped by generation method
- - Total count of views, grouped by presentation type
- - Total count of organisations with at least one dashboard
- - Total count of dashboards
- - Total count of insights per dashboard
- - Weekly count of time to complete an insight series backfill in seconds
- - Weekly count of requests of exports of Code Insights data
-- Search aggregations usage data
- - Weekly count of hovers over the search aggregations information icon
- - Weekly count of open/collapse clicks on the sidebar and expanded view of search aggregations
- - Weekly count of search aggregation mode clicks and hovers
- - Weekly count of search aggregation bars clicks and hovers
- - Weekly count of search aggregation success and timeouts
-- Code monitoring usage data
- - Total number of views of the code monitoring page
- - Total number of views of the create code monitor page
- - Total number of views of the create code monitor page with a pre-populated trigger query
- - Total number of views of the create code monitor page without a pre-populated trigger query
- - Total number of views of the manage code monitor page
- - Total number of clicks on the code monitor email search link
- - Total number of clicks on example monitors
- - Total number of views of the getting started page
- - Total number of submissions of the create code monitor form
- - Total number of submissions of the manage code monitor form
- - Total number of deletions from the manage code monitor form
- - Total number of views of the logs page
- - Current number of Slack, webhook, and email actions enabled
- - Current number of unique users with Slack, webhook, and email actions enabled
- - Total number of Slack, webhook, and email actions triggered
- - Total number of Slack, webhook, and email action triggers that errored
- - Total number of unique users that have had Slack, webhook, and email actions triggered
- - Total number of search executions
- - Total number of search executions that errored
- - 50th and 90th percentile runtimes for search executions
-- Notebooks usage data
- - Total number of views of the notebook page
- - Total number of views of the notebooks list page
- - Total number of views of the embedded notebook page
- - Total number of created notebooks
- - Total number of added notebook stars
- - Total number of added notebook markdown blocks
- - Total number of added notebook query blocks
- - Total number of added notebook file blocks
- - Total number of added notebook symbol blocks
- - Total number of added notebook compute blocks
-- Code Host integration usage data (Browser extension / Native Integration)
- - Aggregate counts of current daily, weekly, and monthly unique users and total events
- - Aggregate counts of current daily, weekly, and monthly unique users and total events who visited Sourcegraph instance from browser extension
-- IDE extensions usage data
- - Aggregate counts of current daily, weekly, and monthly searches performed:
- - Count of unique users who performed searches
- - Count of total searches performed
- - Aggregate counts of current daily user state:
- - Count of users who installed the extension
- - Count of users who uninstalled the extension
- - Aggregate count of current daily redirects from extension to Sourcegraph instance
-- Migrated extensions usage data
- - Aggregate data of:
- - Count interactions with the Git blame feature
- - Count of unique users who interacted with the Git blame feature
- - Count interactions with the open in editor feature
- - Count of unique users who interacted with the open in editor feature
- - Count interactions with the search exports feature
- - Count of unique users who interacted with the search exports feature
- - Count interactions with the go imports search query transformation feature
- - Count of unique users who interacted with the go imports search query transformation feature
-- Code ownership usage data
- - Number and ratio of repositories for which ownership data is available via CODEOWNERS file or the API.
- - Number of owners assigned through Own.
- - Narrowing search results by owner using `file:has.owners` predicate.
- - Selecting owner search result through `select:file.owners`.
- - Displaying ownership panel in file view.
-- Histogram of cloned repository sizes
-- Aggregate daily, weekly, monthly repository metadata usage statistics
-
-## Allowlist IPs / CIDR Ranges for Sourcegraph
-
-Starting 5.2.0:
-- For `pings.sourcegraph.com`, allowlist the IP address: `34.36.231.254`
-- For `sourcegraph.com`, allowlist the full [Cloudflare IP ranges](https://www.cloudflare.com/ips/)
-
-Prior to 5.2.0, allowlist the full [Cloudflare IP ranges](https://www.cloudflare.com/ips/).
-
-## Using an HTTP proxy for telemetry requests
-
-The environment variable `TELEMETRY_HTTP_PROXY` can be set on the `sourcegraph-frontend` service, to use an HTTP proxy for telemetry requests.
-
-
-Be sure to update the enviornment variable like so : ```TELEMETRY_HTTP_PROXY:"http://proxy.example.com:8080"```
-
-## Connections to Sourcegraph-managed services
-
-
-Sourcegraph only connects to Sourcegraph-managed services for three purposes:
-
-1. The pings described above are sent, in order to:
- - Check for new product updates.
- - Send [anonymous, non-specific, aggregate metrics](#pings) back to Sourcegraph.com (see the full list above).
-1. [Verify](/admin/licensing/) the validity of the configured Sourcegraph license.
-1. Legacy Sourcegraph extensions are fetched from Sourcegraph.com`s extension registry.
-
-There are no other automatic external connections to Sourcegraph.com (or any other site on the internet).
-
-## Connections to Sourcegraph.com via Cody app
-
-The Cody app connects to Sourcegraph.com to send a limited selection of the pings described above in order to infer value to our users and send update notifications. They include:
-
-- Randomly generated site identifier
-- Deployment type (the Cody app)
-- Release version
-- Operating system
-- Total number of repositories added
-- Whether a user was active today (boolean)
-
-## Troubleshooting Pings
-
-It may happen that Sourcegraph will stop sending critical telemetry to Sourcegraph.com, if this happens it may indicate a problem with Sourcegraphs frontend database, or a site settings misconfiguration. Below are some debugging steps.
-
-Sourcegraph telemetry pings are handled by a goroutine running on Sourcegraphs frontend service called [`updatecheck`](https://sourcegraph.com/github.com/sourcegraph/sourcegraph/-/blob/cmd/frontend/internal/app/updatecheck/client.go?subtree=true), `updatecheck` is [started](https://sourcegraph.com/search?q=context:global+repo:%5Egithub%5C.com/sourcegraph/sourcegraph%24+file:%5Ecmd/frontend/internal/cli/serve_cmd%5C.go+updatecheck.Start%28db%29&patternType=literal) on container startup and periodically requests a variety of queries be run in the `pgsql` database.
-
-
-### Misconfigured update.channel
-The most common scenario in which Sourcegraph stops sending pings is a change to the `update.channel` setting in an instance's [site config](https://sourcegraph.com/docs/admin/config/site_config)
-```
-"update.channel": "release",
-```
-*This setting [must be set to "release"](https://sourcegraph.com/github.com/sourcegraph/sourcegraph/-/blob/internal/updatecheck/client.go?L803-806) in order for the telemetry goroutine to run.*
-
-
-### Check if the goroutine is running
-
-*This section is under development and currently only applies for docker-compose instances: [39710](https://github.com/sourcegraph/sourcegraph/issues/39710)*
-
-If it's reported that pings aren't being sent to the Sourcegraph.com, you can check that the goroutine is running with the following command:
-```
-docker exec -it sourcegraph-frontend-0 sh -c 'wget -nv -O- 'http://127.0.0.1:6060/debug/pprof/goroutine?debug=1' | grep updatecheck'
-```
-Example:
-```
-[ec2-user@latveria-ip ~]$ docker exec -it sourcegraph-frontend-0 sh -c 'wget -nv -O- 'http://127.0.0.1:6060/debug/pprof/goroutine?debug=1' | grep updatecheck'
-2022-04-05 20:53:32 URL:http://127.0.0.1:6060/debug/pprof/goroutine?debug=1 [14660] -> "-" [1]
-# 0x1f052c5 github.com/sourcegraph/sourcegraph/cmd/frontend/internal/app/updatecheck.Start+0xc5 github.com/sourcegraph/sourcegraph/cmd/frontend/internal/app/updatecheck/client.go:697
-```
-
-### Looking for errors in the logs
-
-If the `update.check` is running, and the site config is correctly configured, then it may be the case that `pgsql` is failing to return data from the SQL queries to the `frontend`. Check out the frontend logs for logs tagged [`telemetry: updatecheck failed`](https://sourcegraph.com/search?q=context:global+repo:%5Egithub%5C.com/sourcegraph/sourcegraph%24+file:%5Ecmd/frontend/internal/app/updatecheck/client%5C.go+telemetry:+updatecheck+failed&patternType=literal).
-
-If issues persist, please reach out to a team member for support at support@sourcegraph.com
diff --git a/docs/versioned/5.2/admin/postgres.mdx b/docs/versioned/5.2/admin/postgres.mdx
deleted file mode 100644
index 29c3afbc7..000000000
--- a/docs/versioned/5.2/admin/postgres.mdx
+++ /dev/null
@@ -1,151 +0,0 @@
-# PostgreSQL
-
-Sourcegraph uses several PostgreSQL databases to support various functionality. These databases are:
-
-- `pgsql` or `primary`: responsible for user data and account information
-- `codeintel-db`: provides support for lsif data and part of the code-intelligence
-
-## Version requirements
-
-We support any version **starting from 12**.
-
-> NOTE: ⚠️ Version **3.26** required only Postgres 9.6. You should check the [upgrade docs for your deployment type](/admin/updates/) as well as the [database upgrade docs](#upgrading-postgresql) below prior to upgrading to 3.27.
-
-## Role requirements
-
-The user provided to Sourcegraph must have full access to the `sg` database and be able to create the following
-extensions:
-
-```
-citext
-hstore
-intarray
-pg_stat_statements
-pg_trgm
-pgcrypto
-```
-
-## [Configuring PostgreSQL](/admin/config/postgres-conf)
-
-## Upgrading PostgreSQL
-
-Sourcegraph uses PostgreSQL as its main database and this documentation describes how to upgrade PostgreSQL between major versions.
-
-> WARNING: Upgrading the PostgreSQL database requires stopping your Sourcegraph deployment which will result in **downtime**.
-
-
-
-> NOTE: If you running PostgreSQL externally, see [Upgrading external PostgreSQL instances](/admin/postgres#upgrading-external-postgresql-instances)
-
-### Upgrading external PostgreSQL instances
-
-When running an [external PostgreSQL instance](/admin/external_services/postgres), please do the following:
-
-1. Back up the Postgres DB so that you can restore to the old version should anything go wrong.
-2. Turn off Sourcegraph entirely (bring down all containers and pods so they cannot talk to Postgres.)
-3. Upgrade Postgres to the latest version following your provider's instruction or your preferred method:
- - [AWS RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.PostgreSQL.html)
- - [AWS Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_UpgradeDBInstance.Upgrading.html)
- - [GCP CloudSQL](https://cloud.google.com/sql/docs/postgres/db-versions)
- - [Azure DB](https://docs.microsoft.com/en-us/azure/postgresql/concepts-supported-versions#managing-updates-and-upgrades)
- - [Heroku](https://devcenter.heroku.com/articles/upgrading-heroku-postgres-databases)
- - [EnterpriseDB](https://www.enterprisedb.com/docs/en/9.6/pg/upgrading.html)
- - [Citus](http://docs.citusdata.com/en/v8.1/admin_guide/upgrading_citus.html)
- - [Aiven PostgreSQL](https://help.aiven.io/postgresql/operations/how-to-perform-a-postgresql-in-place-major-version-upgrade)
- - [Your own PostgreSQL](https://www.postgresql.org/docs/11/pgupgrade.html)
-4. Turn Sourcegraph back on connecting to the now-upgraded database.
-
-> WARNING: **Do not allow Sourcegraph to run/connect to the new Postgres database until it has been fully populated with your data.** Doing so could result in Sourcegraph trying to create e.g. a new DB schema and partially migrating. If this happens to you, restore from the backup you previously took or contact us (support@sourcegraph.com)
-
-### Upgrading internal PostgreSQL instances
-
-Many of Sourcegraph's [deployment methods](/admin/deploy/) come with internal PostgreSQL instances that can be deployed as part of a Sourcegraph installation. This section outlines how to upgrade these databases.
-
-#### Sourcegraph with Docker Compose
-
-Generally, no additional steps are required to upgrade the databases shipped alongside [Sourcegraph with Docker Compose](/admin/deploy/docker-compose/).
-
-#### Sourcegraph with Kubernetes
-
-**The upgrade process is different for [Sourcegraph Kubernetes deployments](/admin/deploy/kubernetes/)** because [by default](https://github.com/sourcegraph/sourcegraph/blob/main/docker-images/postgres-12/build.sh#L10), it uses `sourcegraph/postgres-12` which can be [customized with environment variables](https://github.com/sourcegraph/deploy-sourcegraph/blob/7edcadb/docs/configure#external-postgres).
-
-If you have changed `PGUSER`, `PGDATABASE` or `PGDATA`, then the `PG*OLD` and `PG*NEW` environment variables are
-required. Below are the defaults and documentation on what each variable is used for:
-
-- `POSTGRES_PASSWORD=''`: Password of `PGUSERNEW` if it is newly created (i.e when `PGUSERNEW` didn't exist in the old
- database).
-- `PGUSEROLD=sg`: A user that exists in the old database that can be used to authenticate intermediate upgrade
- operations.
-- `PGUSERNEW=sg`: A user that must exist in the new database after the upgrade is done (i.e. it'll be created if it
- didn't exist already).
-- `PGDATABASEOLD=sg`: A database that exists in the old database that can be used to authenticate intermediate upgrade
- operations. (e.g `psql -d`)
-- `PGDATABASENEW=sg`: A database that must exist in the new database after the upgrade is done (i.e. it'll be created if
- it didn't exist already).
-- `PGDATAOLD=/data/pgdata-11`: The data directory containing the files of the old PostgreSQL database to be upgraded.
-- `PGDATANEW=/data/pgdata-12`: The data directory containing the upgraded PostgreSQL data files, used by the new version
- of PostgreSQL.
-
-Additionally, the upgrade process assumes it can write to the parent directory of `PGDATAOLD`.
-
-##### Requirements for upgrading from Postgres 11 to 12 for Kubernetes
-
-**This guide is for the Sourcegraph 3.27 release.** The migration to Postgres 12 using the Sourcegraph provided Postgres images is largely automated.
-However, you should take some steps before the migration. For the `3.27` release, these apply to the `pgsql` & `codeintel-db` deployments.
-
-1. Inform your users prior to starting the upgrade that Sourcegraph will take downtime. This downtime scales with the
- size and resources allocated to the Postgres database instances.
-1. Take snapshots of all Sourcegraph Postgres databases. You can find the backing disk in your cloud by describing the
- relevant `PersistentVolumes`.
-1. Ensure that the size of the disks backing the databases are under 50% utilization. (You will need *up-to* 2x the size
- of your current database to do the migration). In most cases Kubernetes can expand the size of the volume for you,
- see the relevant kubernetes
- docs [here](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#expanding-persistent-volumes-claims).
-
- You can use `kubectl exec -it $DB_POD_NAME -- df -h`. By default, the database will be mounted under `/data/`.
-
-#### Single-container Sourcegraph
-
-When running a new version of Sourcegraph, [single-container Sourcegraph with Docker instances](/admin/deploy/kubernetes/) will check if the PostgreSQL data needs upgrading upon initialization.
-
-See the following steps to upgrade between major postgresql versions:
-
-**1.** Stop the `sourcegraph/server` container.
-
-**2.** Save this script and give it executable permissions (`chmod + x`).
-
-> NOTE: The script presumes your data is being upgraded from `11` to `12` and your Sourcegraph directory is at `~/.sourcegraph/`. Change the values in the code below if that's not the case.
-
-```bash
-#!/usr/bin/env bash
-
-set -xeuo pipefail
-
-export OLD=${OLD:-"11"}
-export NEW=${NEW:-"12"}
-export SRC_DIR=${SRC_DIR:-"$HOME/.sourcegraph"}
-
-docker run \
- -w /tmp/upgrade \
- -v "$SRC_DIR/data/postgres-$NEW-upgrade:/tmp/upgrade" \
- -v "$SRC_DIR/data/postgresql:/var/lib/postgresql/$OLD/data" \
- -v "$SRC_DIR/data/postgresql-$NEW:/var/lib/postgresql/$NEW/data" \
- "tianon/postgres-upgrade:$OLD-to-$NEW"
-
-mv "$SRC_DIR/data/"{postgresql,postgresql-$OLD}
-mv "$SRC_DIR/data/"{postgresql-$NEW,postgresql}
-
-curl -fsSL -o "$SRC_DIR/data/postgres-$NEW-upgrade/optimize.sh" https://raw.githubusercontent.com/sourcegraph/sourcegraph/master/cmd/server/rootfs/postgres-optimize.sh
-
-docker run \
- --entrypoint "/bin/bash" \
- -w /tmp/upgrade \
- -v "$SRC_DIR/data/postgres-$NEW-upgrade:/tmp/upgrade" \
- -v "$SRC_DIR/data/postgresql:/var/lib/postgresql/data" \
- "postgres:$NEW" \
- -c 'chown -R postgres $PGDATA . && gosu postgres bash /admin/optimize.sh $PGDATA'
-```
-
-**3.** Execute the script.
-
-**4.** Start the `sourcegraph/server` container.
diff --git a/docs/versioned/5.2/admin/pprof.mdx b/docs/versioned/5.2/admin/pprof.mdx
deleted file mode 100644
index 390c53d80..000000000
--- a/docs/versioned/5.2/admin/pprof.mdx
+++ /dev/null
@@ -1,89 +0,0 @@
-# Generating pprof profiling data
-
-## pprof
-
-[pprof](https://github.com/google/pprof) is a visualization tool for profiling data and all the backend services in a Sourcegraph instance have the ability to generate pprof profiling data.
-
-## Exposing the debug port to generate profiling data
-
-Follow the instructions below to generate profiling data. We will use the Sourcegraph frontend and a memory profile as an example (the instructions are easily adapted to any of the Sourcegraph backends and any profiling kind).
-
-### Sourcegraph with Docker Compose
-
-See [expose debug port in Docker Compose](/admin/deploy/docker-compose/#operations).
-
-### Sourcegraph with Kubernetes
-
-If you're using the [Kubernetes cluster deployment](/admin/deploy/kubernetes/),
-you need to port-forward 6060 from the frontend pod (if you have more than one, choose one):
-
-```bash script
-kubectl get pods
-kubectl port-forward sourcegraph-frontend-xxxx 6060:6060
-```
-
-### Single-container Sourcegraph
-
-See [expose debug port in single-container Sourcegraph](/admin/deploy/docker-single-container/#expose-debug-port).
-
-## Generating profiling data
-
-Once the port is reachable, you can trigger a profile dump by sending an HTTP request:
-(in the browser or with curl, wget or similar):
-
-```bash script
-curl -sK -v http://localhost:6060/debug/pprof/heap > heap.out
-```
-
-Once the `heap.out` file has been generated, share it with Sourcegraph support or your account manager for analysis.
-
-## Downloading the binary to use with `go tool pprof`
-
-If you want to use the downloaded profile with `go tool pprof` you need the binary that produced the profile data.
-
-You can use `kubectl` to download it:
-
-```bash script
-kubectl cp sourcegraph-frontend-xxxx:/usr/local/bin/frontend frontend-bin
-```
-
-Then you can use `go tool pprof`:
-
-```bash script
-go tool pprof frontend-bin heap.out
-```
-
-## Debug ports
-
-This is a table of Sourcegraph backend debug ports in the two deployment contexts:
-
-| | kubernetes | docker |
-|-------------------|------------|--------|
-| frontend | 6060 | 6063 |
-| gitserver | 6060 | 6068 |
-| searcher | 6060 | 6069 |
-| symbols | 6060 | 6071 |
-| repo-updater | 6060 | 6074 |
-| zoekt-indexserver | 6060 | 6072 |
-| zoekt-webserver | 6060 | 3070 |
-
-
-## Profiling kinds
-
-- allocs: A sampling of all past memory allocations
-- block: Stack traces that led to blocking on synchronization primitives
-- cmdline: The command line invocation of the current program
-- goroutine: Stack traces of all current goroutines
-- heap: A sampling of memory allocations of live objects. You can specify the gc GET parameter to run GC before taking the heap sample.
-- mutex: Stack traces of holders of contended mutexes
-- profile: CPU profile. You can specify the duration in the seconds GET parameter. After you get the profile file, use the go tool pprof command to investigate the profile.
-- threadcreate: Stack traces that led to the creation of new OS threads
-trace: A trace of execution of the current program. You can specify the duration in the seconds GET parameter. After you get the trace file, use the go tool trace command to investigate the trace.
-
-Adapting the URL will generate different profile data, for example
-
-```bash script
-curl -sK -v http://localhost:6060/debug/pprof/profile > profile.out
-```
-
-will generate a CPU profile.
diff --git a/docs/versioned/5.2/admin/pricing.mdx b/docs/versioned/5.2/admin/pricing.mdx
deleted file mode 100644
index 0dd6b13d2..000000000
--- a/docs/versioned/5.2/admin/pricing.mdx
+++ /dev/null
@@ -1,22 +0,0 @@
-# Pricing
-
-Visit the [pricing page](https://about.sourcegraph.com/pricing) for up-to-date pricing.
-
-## How are active users calculated?
-
-Any user who accesses Sourcegraph in a given month is considered a monthly active user (MAU). This includes but is not limited to:
-
-- Conducting a search in the Sourcegraph UI or extension
-- Hovering and navigating code in the Sourcegraph UI or extension
-- Viewing a file or repository in Sourcegraph
-- Creating, viewing or receiving a code monitor
-- Creating, viewing, modifying or applying a batch change
-- Creating, viewing or modifying a code insight
-- Creating, viewing or modifying a search notebook
-
-## How is this measured in the product?
-
-A user who has accessed Sourcegraph is counted as active once they complete an action that represents product usage, such as events logged by the [eventLogger](https://sourcegraph.com/search?q=context:global+repo:sourcegraph/sourcegraph+eventLogger.log%28&patternType=lucky) and events logged by Sourcegraph integrations like browser and IDE extensions, within a specified time period (commonly expressed in daily, weekly or monthly), with [the following filters](https://sourcegraph.com/github.com/sourcegraph/sourcegraph/-/blob/internal/database/event_logs.go?L540):
-
-- All actions done by the system where an event is also logged, such as sending a ping to Sourcegraph.
-- Certain events relating to user authentication ([full list here](https://sourcegraph.com/github.com/sourcegraph/sourcegraph/-/blob/internal/database/event_logs.go?L472)). These same filters are also implemented separetely in our in-product analytics code.
diff --git a/docs/versioned/5.2/admin/privileges.mdx b/docs/versioned/5.2/admin/privileges.mdx
deleted file mode 100644
index 991acc67c..000000000
--- a/docs/versioned/5.2/admin/privileges.mdx
+++ /dev/null
@@ -1,21 +0,0 @@
-# Site administrator privileges
-
-Site administrators have full administrative access to the Sourcegraph instance. In many cases, they also control the deployment environment. Special privileges are granted to site-admin users.
-
-## Access to all repositories
-
-Site administrators are able to access all repositories on the Sourcegraph instance and manage the settings of individual repositories.
-
-## Access to all GraphQL APIs
-
-Site administrators are able to access all GraphQL APIs of the Sourcegraph instance, including special GraphQL APIs that require a site-admin access token.
-
-## Impersonate regular users
-
-Site administrators are able to impersonate regular users in two ways:
-1. View and update the settings of any user.
-2. Initiate GraphQL API calls on behalf of any other user.
-
-## Receive site alerts
-
-Site administrators see update notifications and other site-level alerts (visible as a banner across the top of the screen) that may be invisible to non-admin users.
diff --git a/docs/versioned/5.2/admin/repo/add.mdx b/docs/versioned/5.2/admin/repo/add.mdx
deleted file mode 100644
index a93beb167..000000000
--- a/docs/versioned/5.2/admin/repo/add.mdx
+++ /dev/null
@@ -1,28 +0,0 @@
-# Add repositories (from code hosts) to Sourcegraph
-
-- [Add repositories from a code host](/admin/external_service/) (GitHub (Cloud or Self-hosted), GitLab (Cloud or Self-hosted), Bitbucket Server, Bitbucket Data Center, or Perforce)
- - [GitHub](/admin/external_service/github)
- - [GitLab](/admin/external_service/gitlab)
- - [Bitbucket Cloud](/admin/external_service/bitbucket_cloud)
- - [Bitbucket Server / Bitbucket Data Center](/admin/external_service/bitbucket_server) or Bitbucket Data Center
-
-- [Add repositories by Git clone URLs](/admin/external_service/other)
-- [Add repositories from non-Git code hosts](/admin/external_service/non-git)
- - [Add Perforce repositories](/admin/repo/perforce)
- - [Add JVM dependencies](/admin/external_service/jvm)
- - [Add Go dependencies](/admin/external_service/go)
- - [Add npm dependencies](/admin/external_service/npm)
- - [Add Python dependencies](/admin/external_service/python)
-- [Pre-load repositories from the local disk](/admin/repo/pre_load_from_local_disk)
-
-## Troubleshooting
-
-If your repositories are not showing up, check the site admin **Repositories** page on Sourcegraph (and ensure you're logged in as an admin).
-If nothing informative is visible there, check for error messages related to communication with your code host's API in the logs from:
-
-- [Docker Compose](/admin/deploy/docker-compose/) and [Kubernetes](/admin/deploy/kubernetes/): the logs from the `repo-updater` container/pod
-- [Single-container](/admin/deploy/docker-single-container/): the `sourcegraph/server` Docker container
-
-If your repositories are showing up but are not cloning or updating from the original Git repository:
-
-- Follow the instructions for [troubleshooting a repository that is not being updated](/admin/how-to/repo-not-updated)
diff --git a/docs/versioned/5.2/admin/repo/auth.mdx b/docs/versioned/5.2/admin/repo/auth.mdx
deleted file mode 100644
index 1c0d77e9e..000000000
--- a/docs/versioned/5.2/admin/repo/auth.mdx
+++ /dev/null
@@ -1,76 +0,0 @@
-# Repository authentication
-
-If authentication (HTTP(S) or SSH) is required to `git clone` a repository then you must provide credentials to the container.
-
-First, ensure your **Site admin > Manage code hosts** code host configuration is configured to use SSH. For example, by setting the `gitURLType` field to "ssh". Alternatively, you may use the "Generic Git host" code host type, which allows you to directly specify Git repository URLs for cloning.
-
-Then, follow the directions below depending on your deployment type:
-
-- [Sourcegraph with Docker Compose](/admin/deploy/docker-compose/): See [the Docker Compose git configuration guide](/admin/deploy/docker-compose/#git-configuration).
-- [Sourcegraph with Kubernetes](/admin/deploy/kubernetes/): See [Configure repository cloning via SSH](/admin/deploy/kubernetes/configure#ssh-for-cloning).
-- [Single-container Sourcegraph](/admin/deploy/docker-single-container/): See [the single-container git configuration guide](/admin/deploy/docker-single-container/#git-configuration-and-authentication).
-
->NOTE: Repository access over SSH is not yet supported on [Sourcegraph Cloud](/cloud/).
-
-## Troubleshooting
-
-### What should be included in my config file?
-
-We recommend adding the `StrictHostKeyChecking no` and `AddKeysToAgent yes` flags to prevent the need to give permission interactively when cloning from a new host.
-
-```yaml
-Host *
- StrictHostKeyChecking no
- AddKeysToAgent yes
-```
-
-See [git configuration](/admin/repo/git_config) for more details.
-
-### Error: `sign_and_send_pubkey: no mutual signature supported`
-
-In Sourcegraph 5.1.0 and later, the insecure SSH rsa-sha1 signature algorithm is no longer supported when fetching data from code hosts.
-
-If you use an RSA SSH key to authenticate to your code host, you should ensure that your code host runs OpenSSL 7.2 or newer.
-
-If it is not possible to update the code host, you should generate a new ed25519 SSH key to use for authentication. This can be achieved by running `ssh-keygen -t ed25519`, and [configuring Sourcegraph](https://sourcegraph.com/docs/admin/repo/git_config) to use this new key.
-
-### Error: `Host key verification failed`
-
-This indicates an invalid key is being used. You can confirm the error by cloning inside the gitserver directly. For example:
-
-```bash
-docker exec -it gitserver-0 sh
-cd data/repos//
-git clone
-```
-
-#### Error: `Bad owner or permissions on /home/sourcegraph/.ssh/`
-
-This indicates the container is having trouble reading the configuration files due to permission / owner issues.
-The permission and ownership settings inside your `.ssh/` directory should look similar to:
-```bash
-$ ls -al #command to display list of file with detailed information
-total 20
-drwxr-xr-x 6 sourcegr sourcegr 192 May 12 19:54 .
-drwxr-sr-x 1 sourcegr sourcegr 4096 May 12 19:43 ..
--rw------- 1 sourcegr sourcegr 34 May 12 19:22 config
--rw------- 1 sourcegr sourcegr 411 May 12 18:52 id_ed25519
--rw------- 1 sourcegr sourcegr 98 May 12 18:52 id_ed25519.pub
--rw------- 1 sourcegr sourcegr 799 May 12 19:54 known_hosts
-```
-
-##### Solution
-
-- Inside the `.ssh` directory on the Host Machine:
- - Permission on all files must be set to `600`, and `700` for the directory itself.
- - Files must be owned by a user who has access to the docker container. This can be done via `sudo chown -v -R $USER:$GROUP` (the user may need to set these values).
-- (**OR**) Inside the `/home/sourcegraph/` directory on Docker Compose:
- - Permission on all files must be set to `600`, and `700` for the directory itself.
- - Files must be owned by the root user, which is `sourcegraph` by default. This can be done via `sudo chown -v -R $USER:$GROUP` (the user may need to set these values).
-
-
->NOTE: Once the volume for the configuration files has been mounted, both the `/ssh` directory on the host machine and docker will be synced and changes within one directory will be reflected by the other one. Consquently, you will only need to make the changes within one directory.
-
-#### Error: `Permissions 0644 for '/home/sourcegraph/.ssh/' are too open`
-
-This indicates the permission on your private key file is accessible by users other than the file owner. Setting the file permission to 600 resolves the issue.
diff --git a/docs/versioned/5.2/admin/repo/git_config.mdx b/docs/versioned/5.2/admin/repo/git_config.mdx
deleted file mode 100644
index 9026802b5..000000000
--- a/docs/versioned/5.2/admin/repo/git_config.mdx
+++ /dev/null
@@ -1,29 +0,0 @@
-# Custom git config
-
-Sourcegraph supports customising [git-config](https://git-scm.com/docs/git-config) and [ssh_config](https://linux.die.net/man/5/ssh_config) for adjusting the behaviour of git. Sourcegraph will read these from the standard locations.
-
-This guide documents how to configure git-config. To set up SSH and authentication for repositories, see [Repository authentication](/admin/repo/auth).
-
-- [Sourcegraph with Docker Compose](/admin/deploy/docker-compose/): See [the Docker Compose git configuration guide](/admin/deploy/docker-compose/#git-configuration).
-- [Sourcegraph with Kubernetes](/admin/deploy/kubernetes/): See [Configure repository cloning via SSH](/admin/deploy/kubernetes/configure#ssh-for-cloning).
-- [Single-container Sourcegraph](/admin/deploy/docker-single-container/): See [the single-container git configuration guide](/admin/deploy/docker-single-container/#git-configuration-and-authentication).
-
-## Example: alternate clone URL for repos
-
-Some sites put an HTTPS or SSH proxy in front of their code host to reduce load. Some sites also use a service like AWS CodeCommit to do the same. In these cases, the repos still should be treated as being repos on the original code host, not the proxy site.
-
-For example, I have a GitHub repo `github.com/foo/bar`. I want Sourcegraph to clone it using the URL https://cloneproxy.example.com/foo/bar.git. But I still want the "Go to GitHub repository" button, etc., to take me to https://github.com/foo/bar. You can use the git configuration [`insteadOf`](https://git-scm.com/docs/git-config#Documentation/git-config.txt-urlltbasegtinsteadOf):
-
-``` ini
-# ~/.gitconfig or /etc/gitconfig
-[url "https://cloneproxy.example.com"]
- insteadOf = https://github.com
-```
-
-If you are [cloning via SSH](/admin/repo/auth), you can also achieve this with an SSH configuration:
-
-```
-# ~/.ssh/config
-Host github.com
- Hostname cloneproxy.example.com
-```
diff --git a/docs/versioned/5.2/admin/repo/index.mdx b/docs/versioned/5.2/admin/repo/index.mdx
deleted file mode 100644
index ca5ade948..000000000
--- a/docs/versioned/5.2/admin/repo/index.mdx
+++ /dev/null
@@ -1,14 +0,0 @@
-# Repositories
-
-- [Adding Git repositories](/admin/repo/add)
-- [Repository update frequency](/admin/repo/update_frequency)
-- [Repository webhooks](/admin/repo/webhooks)
-- [Repository authentication](/admin/repo/auth)
-- [Custom git config](/admin/repo/git_config)
-- [Adding non-Git repositories](/admin/external_service/non-git)
- - [Adding Perforce repositories](/admin/repo/perforce)
-- [Configure repository permissions](/admin/repo/permissions)
- - [Row-level security](/admin/repo/row_level_security)
-- [Configure repository metadata](/admin/repo/metadata)
-- [Set up Perforce depots](/admin/repo/perforce)
-- [Configure command recording](/admin/repo/recording)
diff --git a/docs/versioned/5.2/admin/repo/metadata.mdx b/docs/versioned/5.2/admin/repo/metadata.mdx
deleted file mode 100644
index 68b2d3be1..000000000
--- a/docs/versioned/5.2/admin/repo/metadata.mdx
+++ /dev/null
@@ -1,70 +0,0 @@
-# Custom repository metadata
-
-Repositories tracked by Sourcegraph can be associated with user-provided key-value pairs. Once this metadata is added, it can be used to filter searches to the subset of matching repositories.
-
-Metadata can be added either as key-value pairs or as tags. Key-value pairs can be searched with the filter `repo:has.meta(mykey:myvalue)`. `repo:has.meta(mykey)` can be used to search over repositories with a given key irrespective of its value. Tags are just key-value pairs with a `null` value and can be searched with the filter `repo:has.meta(mytag:)`.
-
-## Examples
-### Repository owners
-
-One way this feature might be used is to add the owning team of each repository as a key-value pair. For example, the repository `github.com/sourcegraph/security-onboarding` repository is owned by the security team, so we could add `owning-team:security` as a key-value pair on that repository.
-
-Once those key-value pairs are added, they can be used to filter searches to only the code that is owned by a specific team with a search like `repo:has.meta(owning-team:security) account creation`.
-
-### Maintenance status
-
-Another way this could be used is to associate repos with a maintenance status. Do you have a library that is commonly used but is unmaintained, deprecated, or replaced by a better solution? You can associate these custom statuses with repository metadata. After adding this info to your repositories, you can do things like `-repo:has.meta(status:deprecated)` to exclude all results from deprecated repos.
-
-## Adding metadata
-
-There are three ways to add metadata to a repository: via web UI, Sourcegraph's GraphQL API, and the [`src-cli` command line tool](https://github.com/sourcegraph/src-cli).
-
-**NOTE:** That user needs to have `Repository metadata / Write` [RBAC permission](/admin/access_control/) to be able to edit repo metadata.
-
-### Limitations
-
-- There are no scale limits in terms of number of pairs per repo, or number of pairs globally.
-- The size of a field is unbounded, but practically it's better to keep it small for performance reasons.
-- There are no limits on special characters in the key-value pairs, but in practice we recommend not using special characters because the search query language doesn’t have full support for escaping arbitrary sequences, in particular `:`, `(` and`)`.
-
-### Web UI
-Go to repository root page, hover over "Metadata" section and click on a gear icon, it will open a repository metadata editing page.
-
-### GraphQL
-
-Metadata can be added with the `addRepoMetadata` mutation, updated with the `updateRepoMetadata` mutation, and deleted with the `deleteRepoMetadata` mutation. You will need the GraphQL ID for the repository being targeted.
-
-```graphql
-mutation AddSecurityOwner($repoID: ID!) {
- addRepoMetadata(repo: $repoID, key: "owning-team", value: "security") {
- alwaysNil
- }
-}
-
-mutation UpdateSecurityOwner($repoID: ID!) {
- updateRepoMetadata(repo: $repoID, key: "owning-team", value: "security++") {
- alwaysNil
- }
-}
-
-mutation DeleteSecurityOwner($repoID: ID!) {
- deleteRepoMetadata(repo: $repoID, key: "owning-team") {
- alwaysNil
- }
-}
-```
-
-### src-cli
-
-Metadata can be added using `src repos add-metadata`, updated using `src repos update-metadata`, and deleted using `src repos delete-metadata`. You will need the GraphQL ID for the repository being targeted.
-
-```text
-$ src repos add-metadata -repo-name=repoName -key=owning-team -value=security
-Key-value pair 'owning-team:security' created.
-
-$ src repos update-metadata -repo-name=repoName -key=owning-team -value=security++
-Value of key 'owning-team' updated to 'security++'
-
-$ src repos delete-metadata -repo-name=repoName -key=owning-team
-Key-value pair with key 'owning-team' deleted.
-```
diff --git a/docs/versioned/5.2/admin/repo/perforce.mdx b/docs/versioned/5.2/admin/repo/perforce.mdx
deleted file mode 100644
index ab0d04bd1..000000000
--- a/docs/versioned/5.2/admin/repo/perforce.mdx
+++ /dev/null
@@ -1,274 +0,0 @@
-# Using Perforce depots with Sourcegraph
-
-Sourcegraph supports [Perforce Helix](https://www.perforce.com/solutions/version-control) depots using [p4-fusion](https://github.com/salesforce/p4-fusion). This creates an equivalent Git repository from a Perforce depot, which can then be indexed by Sourcegraph.
-
-
-
-## Configure experimental features
-
-As of Sourcegraph 5.1, there are new features for Perforce depots that need to be enabled.
-
-### Changelist ID in URLs
-
-Note: When enabling changelist IDs in URLs for the first time, Perforce depots can be unavailable for a few minutes on the Sourcegraph instance, due to the initial mapping of changelist IDs to generated commit ID happening in the background. If you have a large number of Perforce depots, we recommend proceeding with the following steps in a maintenance window in which you don't expect large amounts of traffic on your Sourcegraph instance.
-
-Add `"perforceChangelistMapping": "enabled",` to `experimentalFeatures` in the [site configuration](/admin/config/site_config):
-
-```json
-{
- "experimentalFeatures": {
- "perforceChangelistMapping": "enabled"
- }
-}
-```
-
-When enabled, URLs for Perforce code hosts will use the Changelist (CL) ID instead of commit SHAs. Areas that benefit from this at the moment are:
-
-- Viewing a specific CL
-- Viewing the files of a depot at a specific CL
-- Viewing a specific file added / removed / modified in a specific CL
-- Viewing the list of CLs
-
-#### Limitations
-
-- After a depot is cloned or fetched, Sourcegraph computes and stores mappings of CL IDs to commit SHAs. This mapping can take several minutes for large clones/fetches. When a background mapping job is running, the depot won't be serviceable as URLs referring to CL IDs may not resolve and users may see an error while interacting with the depot.
-- This experimental configuration can not be selectively enabled for a specific perforce depot.
-
-#### Mechanism
-
-To support CLs natively in the URLs, Sourcegraph performs background computation after syncing the contents of a depot. That's done by parsing each generated commit to retrieve the corresponding CL ID and store it in the `repo_commits_changelists` table. This is currently performed on only one depot at a time and we are working to support this for multiple depots in parallel in an upcoming release.
-
-Additionally, while removing a depot from a code host config will mark it as "deleted", the mapped information will **not** be deleted to prevent forced re-computation after an accidental removal of depot from a code host config. Similarly recloning a depot will **not** trigger a computation of all the CLs from the beginning of the depot's source control history. If site admins are recloning or deleting and re-adding a depot to Sourcegraph as a result of history rewrite of a depot in Perforce, they should get in [touch with us](mailto:support@sourcegraph.com) for next steps.
-
-### Batch Changes support for Perforce depots
-
-Add `"batchChanges.enablePerforce": true` to `experimentalFeatures` in the [site configuration](/admin/config/site_config):
-
-```json
-{
- "experimentalFeatures": {
- "batchChanges.enablePerforce": true,
- }
-}
-```
-
-Batch Changes does not support repos that use sub-repo permissions, so in order to use batch changes with Perforce depots, the code host cannot use [file-level permissions](#file-level-permissions).
-
-When a Batch Change is published, it is sent as a shelved changelist to the server configured in the code host. The Changelist Id is displayed in the UI for the user to use for managing the shelved changelist.
-
-## Add a Perforce code host connection
-
-Perforce depots can be added to a Sourcegraph instance by adding the appropriate [code host connection](/admin/external_service/).
-
-To enable Perforce code host connections, a site admin must:
-
-1. Go to **Site admin > Manage code hosts > Add code host**
-
-1. Scroll down the list of supported code hosts and select **Perforce**.
-
-1. Configure which depots are mirrored/synchronized as Git repositories to Sourcegraph:
-
- - [`depots`](/admin/repo/perforce#depots)
-
- A list of depot paths that can be either a depot root or an arbitrary subdirectory. **Note**: Only `"local"` type depots are supported.
-
- - [`p4.user`](/admin/repo/perforce#p4-user)
-
- The user to be authenticated for `p4` CLI, and should be capable of performing:
- - `p4 login`
- - `p4 trust`
- - and any p4 commands involved with `git p4 clone` and `git p4 sync` for listed `depots`.
-
- If repository permissions are mirrored, the user needs additional ability (aka. "super" access level) to perform the commands:
- - `p4 protects`
- - `p4 groups`
- - `p4 group`
- - `p4 users`
-
- - [`p4.passwd`](/admin/repo/perforce#p4-passwd)
-
- The ticket to be used for authenticating the `p4.user`. It is recommended to create tickets of users in a group that never expire. Use the command `p4 -u login -p -a` to obtain a ticket value.
-
- - See the [configuration documentation below](#configuration) for other fields you can configure.
-
-1. Configure `fusionClient`:
-
- ```json
- {
- "fusionClient": {
- "enabled": true,
- "lookAhead": 2000
- }
- }
- ```
-
- > NOTE: While the `fusionClient` configuration is optional, without it the code host connection uses `git p4`, which has performance issues so we strongly recommend `p4-fusion`.
-
- Details of all `p4-fusion` configuration fields can be seen [here](https://sourcegraph.com/github.com/sourcegraph/sourcegraph@2a716bd70c294acf1b3679b790834c4dea9ea956/-/blob/schema/perforce.schema.json?L84-147).
-
-1. Click **Add repositories**.
-
-Sourcegraph will now talk to the Perforce host and sync the configured `depots` to the Sourcegraph instance.
-
-It's worthwhile to note some limitations of this process:
-
-- When syncing depots either [git p4](https://git-scm.com/docs/git-p4) or [p4-fusion](https://github.com/salesforce/p4-fusion) (recommended) are used to convert Perforce depots into git repositories so that Sourcegraph can index them.
-- Rename of a Perforce depot, including changing the depot on the Perforce server or the `repositoryPathPattern` config option, will cause a re-import of the depot.
-- Unless [permissions syncing](#repository-permissions) is enabled, Sourcegraph is not aware of the depot permissions, so it can't enforce access restrictions.
-
-## Repository permissions
-
-To enforce file-level permissions for Perforce depots using the [Perforce protects file](https://www.perforce.com/manuals/cmdref/Content/CmdRef/p4_protect.html), include [the `authorization` field](https://sourcegraph.com/github.com/sourcegraph/sourcegraph@2a716bd70c294acf1b3679b790834c4dea9ea956/-/blob/schema/perforce.schema.json?L67-78) in the configuration of the Perforce code host connection you created [above](#add-a-perforce-code-host):
-
-```json
-{
- "authorization": {}
-}
-```
-
-Adding the `authorization` field to the code host connection configuration will enable partial parsing of the protects file. [Learn more about the partial support of protects file parsing](#known-issues-and-limitations).
-
-### Syncing subdirectories to match permission boundaries
-
-By default Sourcegraph only supports repository-level permissions and does not match the granularity of the [Perforce protects file](https://www.perforce.com/manuals/cmdref/Content/CmdRef/p4_protect.html).
-
-If you don't [activate file-level permissions](#file-level-permissions) you should sync subdirectories of a depot using the `depots` configuration that best describes the most concrete path of your permissions boundary.
-
-For example, if your Perforce depot `//depot/Talkhouse` has different permissions for `//depot/Talkhouse/main-dev` and subdirectories `//depot/Talkhouse/rel1.0/front`, `//depot/Talkhouse/rel1.0/back` we recommend setting the following `depots`:
-
-```json
-{
- "depots": [
- "//depot/Talkhouse/main-dev/",
- "//depot/Talkhouse/rel1.0/front/",
- "//depot/Talkhouse/rel1.0/back/"
- ]
-}
-```
-
-By configuring each subdirectory that has unique permissions, Sourcegraph is able to recognize and enforce permissions for the sub-directories. You can **NOT** define these permissions as:
-
-```json
-{
- "depots": [
- "//depot/Talkhouse/main-dev/",
- "//depot/Talkhouse/rel1.0/",
- "//depot/Talkhouse/rel1.0/back/"
- ]
-}
-```
-
-Since that would override the permissions for the `//depot/Talkhouse/rel1.0/back` depot.
-
-#### Wildcards
-
-[File-level permissions](#file-level-permissions) can handle wildcards in the protects file.
-If file-level permissions is not enabled, Sourcegraph provides limited support for `*` and `...` paths, so the workaround of [adding sub-folders as separate repositories](#syncing-subdirectories-to-match-permission-boundaries) for the paths that employ wildcards needs to be followed.
-
-### File-level permissions
-
-File-level permissions make the [syncing of subdirectories to match permission boundaries](#syncing-subdirectories-to-match-permission-boundaries) unnecessary.
-
-To enable file-level permissions:
-
-1. Enable [the feature in the site config](https://sourcegraph.com/github.com/sourcegraph/sourcegraph@2a716bd/-/blob/schema/site.schema.json?L227-249):
-
- ```json
- {
- "experimentalFeatures": {
- "subRepoPermissions": { "enabled": true }
- }
- }
- ```
-
-1. Enable the feature in the code host configuration by adding `subRepoPermissions` to the `authorization` object:
-
- ```json
- {
- "authorization": {
- "subRepoPermissions": true
- }
- }
- ```
-
-1. Save the configuration. Permissions will be synced in the background based on your [Perforce protects file](https://www.perforce.com/manuals/cmdref/Content/CmdRef/p4_protect.html).
-
-#### Handling Host rules in the protects file
-
-When file-level permissions are enabled, Sourcegraph will read the Perforce protects file to determine what users can access. Because Sourcegraph originates all depot access from one host, protects rules with a Host field cannot be followed exactly. By default, they are parsed as if they apply to all hosts, which can result in users losing access when they should have access. If you have protects rules with hosts that are causing lost access for users, you can set `ignoreRulesWithHost` to `true` in the code host configuration.
-
-```json
- {
- "authorization": {
- "subRepoPermissions": true,
- "ignoreRulesWithHost": true
- }
- }
-```
-
-### Notes about permissions
-
-- Sourcegraph users are mapped to Perforce users based on their verified email addresses.
-- As long as a user has been granted at least `Read` permissions in Perforce they will be able to view content in Sourcegraph.
-- As a special case, commits in which a user does not have permissions to read any files are hidden. If a user can read a subset of files in a commit, only those files are shown.
-- [The host field from protections are not supported](#known-issues-and-limitations).
-- [file-level permissions must be disabled for Batch Changes to work](#known-issues-and-limitations).
-- Setting `authz.enforceForSiteAdmins` to `true` in the site configuration will enforce permissions for admin users. They may not be able to see repositories and their contents if their Sourcegraph user account email does not match with their email on the Perforce server.
-
-## Configuration
-
-### `admin/external_service/perforce.schema.json`
-
-```json
-{
- // If non-null, enforces Perforce depot permissions.
- "authorization": null,
-
- // Depots can have arbitrary paths, e.g. a path to depot root or a subdirectory.
- "depots": null,
- // Other example values:
- // - [
- // "//Sourcegraph/",
- // "//Engineering/Cloud/"
- // ]
-
- // Configuration for the experimental p4-fusion client
- "fusionClient": null,
-
- // Only import at most n changes when possible (git p4 clone --max-changes).
- "maxChanges": 1000,
-
- // Client specified as an option for p4 CLI (P4CLIENT, also enables '--use-client-spec')
- "p4.client": null,
-
- // The ticket value for the user (P4PASSWD). You can get this by running `p4 login -p` or `p4 login -pa`. It should look like `6211C5E719EDE6925855039E8F5CC3D2`.
- "p4.passwd": null,
-
- // The Perforce Server address to be used for p4 CLI (P4PORT).
- "p4.port": null,
- // Other example values:
- // - "ssl:111.222.333.444:1666"
-
- // The user to be authenticated for p4 CLI (P4USER).
- "p4.user": null,
- // Other example values:
- // - "admin"
-
- // The pattern used to generate the corresponding Sourcegraph repository name for a Perforce depot. In the pattern, the variable "{depot}" is replaced with the Perforce depot's path.
- //
- // For example, if your Perforce depot path is "//Sourcegraph/" and your Sourcegraph URL is https://src.example.com, then a repositoryPathPattern of "perforce/{depot}" would mean that the Perforce depot is available on Sourcegraph at https://src.example.com/perforce/Sourcegraph.
- //
- // It is important that the Sourcegraph repository name generated with this pattern be unique to this Perforce Server. If different Perforce Servers generate repository names that collide, Sourcegraph's behavior is undefined.
- "repositoryPathPattern": "{depot}"
-}
-```
-
-## Known issues and limitations
-
-We are actively working to significantly improve Sourcegraph's Perforce support. Please [file an issue](https://github.com/sourcegraph/sourcegraph/issues) to help us prioritize any specific improvements you'd like to see.
-
-- Sourcegraph was initially built for Git repositories only, so it stores Perforce depots as Git repositories when syncing. Perforce concepts and languages are expressed in the UI, but under the hood, Git tools are used.
-- The [host field](https://www.perforce.com/manuals/cmdref/Content/CmdRef/p4_protect.html#Form_Fields_..361) in protections is not supported.
-- Batch Changes does not support [file-level permissions](#file-level-permissions) (also known as sub-repo permissions)
-- Batch Changes does not handle the shelved changelist other than to query the Perforce server for its status.
-- Permalinks with Changelist Id do not work yet
diff --git a/docs/versioned/5.2/admin/repo/permissions.mdx b/docs/versioned/5.2/admin/repo/permissions.mdx
deleted file mode 100644
index 65008e05d..000000000
--- a/docs/versioned/5.2/admin/repo/permissions.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
-# Repository permissions
-
-[Moved here](/admin/permissions/)
diff --git a/docs/versioned/5.2/admin/repo/plasticscm.mdx b/docs/versioned/5.2/admin/repo/plasticscm.mdx
deleted file mode 100644
index 394fdf643..000000000
--- a/docs/versioned/5.2/admin/repo/plasticscm.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
-# Using Sourcegraph with Plastic SCM
-
-Plastic SCM servers expose a Git API, called [GitServer](https://www.plasticscm.com/gitserver), which can be indexed by Sourcegraph using the [generic Git host indexer](/admin/external_service/other).
diff --git a/docs/versioned/5.2/admin/repo/pre_load_from_local_disk.mdx b/docs/versioned/5.2/admin/repo/pre_load_from_local_disk.mdx
deleted file mode 100644
index 0484ef6b7..000000000
--- a/docs/versioned/5.2/admin/repo/pre_load_from_local_disk.mdx
+++ /dev/null
@@ -1,36 +0,0 @@
-# Pre-load repositories already cloned to disk
-
-> NOTE: This page describes how to use a local copy of a repository to speed up the initial clone that Sourcegraph must do. This does not replace [adding a code host connection](/admin/repo/add). You still must add the code host connection in order for Sourcegraph to recognize that this repository exists and to view it.
->
->Sourcegraph's [`src-expose` tool](/admin/external_service/non-git) can be used to serve local repositories without a dedicated code host.
-
-You can use repositories that are already cloned to disk on the host machine to speed up Sourcegraph's cloning. This is useful for very large repositories on which cloning exceeds the resources available to the Docker container. This is not intended for individual users who want to set up a personal Sourcegraph instance just for searching code on their own local disk; we recommend either using a CLI tool such as ripgrep instead, or simply connecting Sourcegraph to your code host with a limited set of repositories.
-
-The steps documented here are intended for [single-container Sourcegraph instances](/admin/deploy/docker-single-container/). The general process also applies for other deployment methods, with some differences:
-
-- [Docker Compose](/admin/deploy/docker-compose/): you need to perform these steps on the relevant [Docker Compose volumes](/admin/deploy/docker-compose/#manage-storage).
-- [Kubernetes](/admin/deploy/kubernetes/): you need to perform these steps on the underlying node hosting the `gitserver` pod, or on the persistent volume used by the `gitserver` deployment.
-
-> WARNING: For [single-container Sourcegraph instances](/admin/deploy/docker-single-container/), Sourcegraph will alter the contents and structure of files under `/var/opt/sourcegraph` (Sourcegraph’s data volume inside the container), so do not mount repositories in use by other processes under that directory.
-
-If you're using the default `--volume $HOME/.sourcegraph/data:/var/opt/sourcegraph` argument to run the `sourcegraph/server` Docker image, and the repository you want to add is named `github.com/my/repo`, then follow these steps:
-
-1. Ensure that the added repository is included in [a code host configuration on Sourcegraph](/admin/external_service/).
-
-2. Stop Sourcegraph if it is running. This is to ensure it doesn't interfere with the clone.
-
-3. On the host machine, ensure that a bare Git clone of the repository exists at `$HOME/.sourcegraph/repos/github.com/my/repo/.git`.
-
- To create a new clone given its clone URL:
-
- ```
- git clone --mirror YOUR-REPOSITORY-CLONE-URL $HOME/.sourcegraph/repos/github.com/my/repo/.git
- ```
-
- Or, as an optimization, you can reuse an existing local clone to avoid needing to fetch all the repository data again:
-
- ```
- git clone --mirror --reference PATH-TO-YOUR-EXISTING-LOCAL-CLONE --dissociate YOUR-REPOSITORY-CLONE-URL $HOME/.sourcegraph/repos/github.com/my/repo/.git
- ```
-
-If this repository exists on a code host that Sourcegraph integrates with, then use that code host's configuration (as described in the [code host documentation](/admin/external_service/)). After updating the code host configuration, if you used the correct repository path, Sourcegraph will detect and reuse the existing clone. (For example, if you're working with a repository on GitHub.com, ensure that the repository path name you used is of the form `github.com/my/repo`.)
diff --git a/docs/versioned/5.2/admin/repo/recording.mdx b/docs/versioned/5.2/admin/repo/recording.mdx
deleted file mode 100644
index 82a5f3453..000000000
--- a/docs/versioned/5.2/admin/repo/recording.mdx
+++ /dev/null
@@ -1,62 +0,0 @@
-# Configuring Command Recording
-
-Learn how to use and configure command recordings from your Sourcegraph instance.
-
-Command recording allows site admins to view all git operations executed on a repository. When enabled, Sourcegraph will record metadata about all git commands run on a repository in Redis, including:
-
-- Command executed (with sensitive information redacted)
-- Execution time
-- Duration of execution
-- Success state
-- Output
-
-This provides visibility into git operations performed by Sourcegraph on a repository, which can be useful for debugging and monitoring.
-
-
-
-To enable command recording:
-
-- Go to [**Site Admin > Site Configuration**](/admin/config/site_config)
-- Add a `gitRecorder` object to the configuration object
-
-```json
-{
- // [...]
-
- "gitRecorder": {
- // the amount of commands to record per repo
- "size": 30,
-
- // repositories to record commands. This can either be a wildcard '*'
- // to record commands for all repositories or a list of repositories
- "repos": ["*"],
-
- // git commands to exclude from recording. We exclude the
- // commands below by default.
- "ignoredGitCommands": [
- "show",
- "rev-parse",
- "log",
- "diff",
- "ls-tree"
- ]
- }
-}
-```
-
-Once enabled, site admins can view recorded commands for a repository via the repository's settings page in the Site Admin UI.
-
-Recorded commands include **start time**, **duration**, **exit status**, **command executed**, **directory**, and **output**. Sensitive information like usernames, passwords, and tokens are automatically redacted from the command and output.
-
-Command recording provides visibility into Sourcegraph's interactions with repositories without requiring modifications to Sourcegraph's core Git operations.
-
-### Potential risks
-
-Enabling command recording will increase disk usage in Redis, depending on the number of repositories and the size of the recording set.
-
-Since recorded commands are stored in Redis, setting the `size` to a very large number or enabling recording on many repositories could cause the Redis database to fill up quickly.
-
-Depending on your configuration, Redis might evict data from the database when it is full, impacting other parts of Sourcegraph that rely on Redis. This could cause Sourcegraph to experience degraded performance or instability.
-
-To avoid issues, proceeding cautiously and starting with a smaller `size` and number of repositories is recommended.
-Monitor your Redis memory usage over time and slowly increase the recording `size` and repositories. Tune the configuration based on your instance size and memory available.
diff --git a/docs/versioned/5.2/admin/repo/row_level_security.mdx b/docs/versioned/5.2/admin/repo/row_level_security.mdx
deleted file mode 100644
index acfb16d39..000000000
--- a/docs/versioned/5.2/admin/repo/row_level_security.mdx
+++ /dev/null
@@ -1,173 +0,0 @@
-# Row-level security
-
-> NOTE: this document is deprecated, but preserved for historical and informational purposes.
-
-Starting with version 9.5, Postgres provides a [row-level security](https://www.postgresql.org/docs/13/ddl-rowsecurity.html) mechanism (abbreviated as "RLS") that can restrict table access in a granular, per-user fashion. Sourcegraph uses this mechanism to provide data isolation and protection guarantees beyond those supplied by application-level techniques. This document serves as a brief overview of the concept, its application at Sourcegraph and administrative implications.
-
-## Basics of RLS
-
-Row-level security is enabled for a given table using the `ALTER TABLE ENABLE ROW LEVEL SECURITY` statement. Once executed, all rows within that table immediately become inaccessible to all users _except_ for the table owner or superuser roles who have the `BYPASSRLS` attribute set. Access must then be explicitly permitted by the creation of one or more security policies which are then applied to the table.
-
-Sourcegraph currently uses a single row security policy, which is applied to the `repo` table and covers all commands (`INSERT`, `SELECT`, etc.)
-
-```
-# select tablename, policyname, roles, cmd, format('%s...', left(qual, 16)) as policy from pg_policies;
-┌───────────┬───────────────────────┬──────────────┬─────┬─────────────────────┐
-│ tablename │ policyname │ roles │ cmd │ policy │
-╞═══════════╪═══════════════════════╪══════════════╪═════╪═════════════════════╡
-│ repo │ sg_repo_access_policy │ {sg_service} │ ALL │ (((NOT (current_... │
-└───────────┴───────────────────────┴──────────────┴─────┴─────────────────────┘
-(1 row)
-
-Time: 0.657 ms
-```
-
-## Reducing privileges
-
-It's not feasible to create a Postgres role for each individual Sourcegraph user. Instead, a dedicated `sg_service` role has been introduced that services can assume to downgrade their own capabilities on demand.
-
-```
-# select rolname, rolcanlogin, rolbypassrls from pg_roles where rolname like 'sg_%';
-┌────────────┬─────────────┬──────────────┐
-│ rolname │ rolcanlogin │ rolbypassrls │
-╞════════════╪═════════════╪══════════════╡
-│ sg_service │ f │ f │
-└────────────┴─────────────┴──────────────┘
-(1 row)
-
-Time: 24.462 ms
-```
-
-The `sg_service` role is not associated with any particular application-level Sourcegraph user, nor is it a user capable of logging in by itself. The policy applied to the `repo` table requires several `rls` values to be set, and these values dynamically alter how each query will behave.
-
-For example, the default `sourcegraph` role in this sample database is permitted to see all 552 rows in the `repo` table because it's the owner of the table.
-
-```
-# select current_user;
-┌──────────────┐
-│ current_user │
-╞══════════════╡
-│ sourcegraph │
-└──────────────┘
-(1 row)
-
-Time: 0.197 ms
-
-# select count(1) from repo;
-┌───────┐
-│ count │
-╞═══════╡
-│ 552 │
-└───────┘
-(1 row)
-
-Time: 15.781 ms
-```
-
-Once the `sg_service` role is assumed, Postgres needs additional information about which Sourcegraph user is executing the query. In this case, user 42 does not have permission to see the repositories owned by user 1 and no rows are returned. Note that we are executing the same query as before, but receiving different results.
-
-```
-# set role sg_service;
-SET
-Time: 1.187 ms
-
-# set rls.user_id = 42;
-SET
-Time: 1.206 ms
-
-# set rls.permission = 'read';
-SET
-Time: 0.333 ms
-
-# set rls.use_permissions_user_mapping = true;
-SET
-Time: 0.327 ms
-
-# select current_user;
-┌──────────────┐
-│ current_user │
-╞══════════════╡
-│ sg_service │
-└──────────────┘
-(1 row)
-
-Time: 0.381 ms
-
-# select count(1) from repo;
-┌───────┐
-│ count │
-╞═══════╡
-│ 0 │
-└───────┘
-(1 row)
-
-Time: 28.288 ms
-```
-
-## Bypassing RLS
-
-Row-level security can be bypassed by setting the `BYPASSRLS` attribute on a role. For example, if we were to create a `poweruser` role without this attribute, the existing security policy would prevent access to the `repo` table by default.
-
-```
-# create role poweruser;
-CREATE ROLE
-Time: 7.015 ms
-
-# set role poweruser;
-SET
-Time: 0.349 ms
-
-# select count(1) from repo;
-┌───────┐
-│ count │
-╞═══════╡
-│ 0 │
-└───────┘
-(1 row)
-
-Time: 21.373 ms
-```
-
-We can alter this role to set the `BYPASSRLS` attribute, at which point the security policy will be skipped and the role will have the normal level of access it would expect.
-
-```
-# alter role poweruser bypassrls;
-ALTER ROLE
-Time: 0.852 ms
-
-# set role poweruser;
-SET
-Time: 0.229 ms
-
-# select count(1) from repo;
-┌───────┐
-│ count │
-╞═══════╡
-│ 552 │
-└───────┘
-(1 row)
-
-Time: 6.280 ms
-```
-
-Additionally, it is possible to bypass RLS by supplying a policy that explicitly allows a particular role to access the table.
-
-```
-# create policy sg_poweruser_access_policy on repo for all to poweruser using (true);
-CREATE POLICY
-Time: 8.525 ms
-
-# set role poweruser;
-SET
-Time: 0.338 ms
-
-# select count(1) from repo;
-┌───────┐
-│ count │
-╞═══════╡
-│ 552 │
-└───────┘
-(1 row)
-
-Time: 5.782 ms
-```
diff --git a/docs/versioned/5.2/admin/repo/update_frequency.mdx b/docs/versioned/5.2/admin/repo/update_frequency.mdx
deleted file mode 100644
index ae6a508ae..000000000
--- a/docs/versioned/5.2/admin/repo/update_frequency.mdx
+++ /dev/null
@@ -1,39 +0,0 @@
-# Repository update frequency
-
-By default, Sourcegraph polls code hosts to keep repository contents up to date, effectively running `git pull` periodically. You can also configure Sourcegraph to use [repository webhooks](/admin/repo/webhooks), but this is usually not necessary.
-
-The frequency at which Sourcegraph polls the code host for updates is determined by a smart heuristic based on past commit frequency in the repository. For example, if a repository's last commit was 8 hours ago, then the next sync will be scheduled 4 hours from now. If after 4 hours, there are still no new commits, then the next sync will be scheduled 6 hours from then.
-
-Repositories will never be updated more frequently than 45 seconds, and no less frequently than every 8 hours.
-
-After Sourcegraph has updated a repository's Git data, the global search index will automatically update a short while after (usually a few minutes).
-
-## Rate Limiting
-If you wish to control how frequently repositories are discovered or how frequently Sourcegraph polls your code host for updates, the following options are available:
-
-### Limiting the number of Code host API requests
-
-- Code host configuration: see [Rate limits](/admin/external_service/rate_limits)
-
-- Site configuration: [repoListUpdateInterval](/admin/config/site_config#repoListUpdateInterval) controls how frequently we check the code host _for new repositories_ in minutes.
-
-> NOTE: Internal rate limiting is currently only enforced for HTTP requests to code hosts. That means it's used when, for example, syncing changesets in [batch changes](/batch_changes/), repository permissions and repository metadata from code hosts.
-
-### Limiting the number of Code host Git requests
-
-- [gitMaxCodehostRequestsPerSecond](/admin/config/site_config#gitMaxCodehostRequestsPerSecond) controls how many code host git operations can be run against a code host per second, per gitserver.
-- [gitMaxConcurrentClones](/admin/config/site_config#gitMaxConcurrentClones) controls the maximum number of _concurrent_ cloning/pulling operations per gitserver that Sourcegraph will perform.
-
-You may also choose to disable automatic Git updates entirely and instead [configure repository webhooks](/admin/repo/webhooks).
-
-## Repo Updater State
-
-> NOTE: [Instrumentation](/admin/faq#i-am-getting-error-cluster-information-not-available-in-the-instrumentation-page-what-should-i-do) (where Repo Updater State resides) is only available for Kubernetes instances.
-
-**Repo Updater State** is a useful debugging tool for site admins to monitor:
-
-- **Schedule**: The schedule of when repositories get enqueued into the Update Queue.
-- **Update Queue**: A priority queue of repositories to update. A worker continuously dequeues them and sends updates to gitserver.
-- **Sync jobs**: The current list of external service sync jobs, ordered by start date descending
-
-Site admin: Go to **Site admin > Instrumentation (under Maintenance) > repo-updater > Repo Updater State**
diff --git a/docs/versioned/5.2/admin/repo/webhooks.mdx b/docs/versioned/5.2/admin/repo/webhooks.mdx
deleted file mode 100644
index 957b9bcdb..000000000
--- a/docs/versioned/5.2/admin/repo/webhooks.mdx
+++ /dev/null
@@ -1,25 +0,0 @@
-# Repository webhooks
-
-## Webhook for manually telling Sourcegraph to update a repository
-
-By default, Sourcegraph polls code hosts to keep repository contents up to date. It uses intelligent heuristics like average update frequency to determine the polling frequency per repository.
-
-Polling, however, falls short in cases where immediate updates are desired or when the number of repositories causes significant load on the code host.
-
-To address this, there is a repository update webhook that triggers a repository update on Sourcegraph within minutes. The webhook is authenticated using access tokens (which you can create at e.g. `https://sourcegraph.example.com/site-admin/tokens`).
-
-Here's an example using curl.
-
-```bash
-curl -XPOST -H 'Authorization: token $ACCESS_TOKEN' $SOURCEGRAPH_ORIGIN/.api/repos/$REPO_NAME/-/refresh
-```
-
-## Disabling built-in repo updating
-
-Sourcegraph will periodically ask your code-host to list its repositories (e.g. via its HTTP API) to _discover repositories_. You can control how often this occurs by changing [`repoListUpdateInterval`](/admin/config/site_config) in the site config.
-
-For repositories that Sourcegraph is already aware of, it will periodically perform background Git repository updates. You can disable this if you wish by setting [`disableAutoGitUpdates`](/admin/config/site_config) to `true`. In which case, the repository will only update when the webhook is used or, e.g., if a user visits the repository directly. This may be desirable in cases where you wish to rely solely on the repository update webhook, for example.
-
-## Code host webhooks
-
-We support receiving webhooks directly from your code host for [GitHub](/admin/config/webhooks/incoming#github), [GitLab](/admin/config/webhooks/incoming#gitlab), [Bitbucket Server](/admin/config/webhooks/incoming#bitbucket-server) and [Bitbucket Cloud](/admin/config/webhooks/incoming#bitbucket-cloud).
diff --git a/docs/versioned/5.2/admin/scim.mdx b/docs/versioned/5.2/admin/scim.mdx
deleted file mode 100644
index c69315754..000000000
--- a/docs/versioned/5.2/admin/scim.mdx
+++ /dev/null
@@ -1,98 +0,0 @@
-# SCIM
-
-This feature is in beta while we're testing it with more IdPs. Our implementation complies with the SCIM 2.0 specification, and passes the validator for Okta and Azure AD. But implementations might differ on the side of IdPs and validators don't give a 100% coverage, so we can't guarantee that our solution works with all IdPs in every case.
-
-SCIM (System for Cross-domain Identity Management) is a standard for provisioning and deprovisioning users and groups in an organization. IdPs (identity providers) like Okta, OneLogin, and Azure Active Directory support provisioning users through SCIM.
-
-Sourcegraph supports SCIM 2.0 for provisioning and de-provisioning _users_.
-
-> NOTE: While our implementation of SCIM 2.0 is compliant with the specification, we’ve only tested it against two IdPs: Okta and Azure Active Directory. We can't guarantee it works with every IdP if the provider doesn't fully comply with the specification.
-
-## How to use
-
-To use SCIM, you must have an existing IdP configured as an auth provider on your Sourcegraph instance. For authenticating SCIM requests, we currently support Bearer token authentication. We have a guide for Okta setup [below](#setting-up-okta-as-the-idp).
-
-To configure:
-
-1. Generate a random alphanumeric bearer token of maximum 255 characters.
- To do this in a terminal, run:
-
- ```
- openssl rand -base64 342 | tr -dc 'a-zA-Z0-9' | cut -c -255
- ```
-
- (This command generates a random base64 string with more characters than required (342 characters) and then filters out non-alphanumeric characters. Finally, it trims the output to 255 characters. The reason we generate a longer string is to account for the fact that the base64 encoding has non-alphanumeric characters, which are removed by the tr command.)
-
-2. Add the following line to your [site configuration](/admin/config/site_config):
-
- ```
- "scim.authToken": "{your token}"
- ```
-3. If you use Microsoft Azure AD, add the following setting to your site config:
-
- ```
- "scim.identityProvider": "Azure AD"
- ```
-4. Set up your IdP to use our SCIM API. The API is at
-
- ```
- https://sourcegraph.company.com/.api/scim/v2
- ```
-
-## Configuring SCIM for Okta
-
-To set up user provisioning in [Okta](https://help.okta.com/en-us/Content/Topics/Apps/Apps_App_Integration_Wizard_SCIM.htm), you must first set up a new app integration of the "SAML 2.0" type, then configure it to use SCIM. Here are the steps to do this:
-
-1. Follow our [SAML guide](/admin/auth/saml/okta) to set up a new app integration with SAML, then open the integration you just created.
- - If you already have the integration, just open your existing app integration.
-1. Go to the "General" tab and click "Edit" in the "App Settings" section.
-1. Set "Provisioning" to "SCIM". This creates a new tab called "Provisioning".
-1. Go to the "Provisioning" tab, and click "Edit"
-1. Set "SCIM connector base URL" to `{yourSourcegraphUrl}/.api/scim/v2`
-1. Set "Unique identifier field for users" to `userName`
-1. Check the first three items in `Supported provisioning actions`: "Import New Users and Profile Updates", "Push New Users", and "Push Profile Updates".
-1. Set "Authentication mode" to "HTTP Header"
-1. Under "HTTP Header", paste the same alphanumeric bearer token you used in your site config.
-1. Click "Test Connection Configuration" (first four items should be green—the user-related ones), then "Save".
-1. Switch to "Provisioning" → "To App" and click "Edit". Enable "Create Users", "Update User Attributes" and "Deactivate Users".
-
-> NOTE: You can also use our [SAML](/admin/auth/saml/okta) and [OpenID Connect](/admin/auth#openid-connect) integrations with Okta.
-
-## Features and limitations
-
-### User attributes
-
-The User endpoint only synchronizes attributes needed to create a Sourcegraph account.
-
-We sync the following attributes:
-
-- preferred username
-- name
-- email addresses
-
-### REST methods
-
-We support REST API calls for:
-
-- Creating users (POST)
-- Updating users (PATCH)
-- Replacing users (PUT)
-- Deleting users (DELETE)
-- Listing users (GET)
-- Getting users (GET)
-
-### Feature support
-
-We support the following SCIM 2.0 features:
-
-- ✅ Updating users (PATCH)
-- ✅ Pagination for listing users
-- ✅ Filtering for listing users
-
-### Limitations
-
-- ❌ Bulk operations – need to add users one by one
-- ❌ Sorting – when listing users
-- ❌ Entity tags (ETags)
-- ❌ Multi-tenancy – you can only have 1 SCIM client configured at a time.
-- ❌ Tests with many IdPs – we’ve only validated the endpoint with Okta and Azure AD.
diff --git a/docs/versioned/5.2/admin/search.mdx b/docs/versioned/5.2/admin/search.mdx
deleted file mode 100644
index 68c2dc877..000000000
--- a/docs/versioned/5.2/admin/search.mdx
+++ /dev/null
@@ -1,60 +0,0 @@
-# Search configuration
-
-See "[Code search overview](/code-search/)" for general information about Sourcegraph's code search.
-
-## Indexed search
-
-Sourcegraph indexes the code on the default branch of each repository. This speeds up searches that hit many repositories at once. Not all files in a repository branch are indexed, we skip files that are [larger than 1 MB](/code-search/features) and binary files. To view which files are skipped during indexing, visit the repository settings page and click on indexing.
-
-For large deployments we recommend horizontally scaling indexed search. You can do this by [adjusting the number of replicas](https://github.com/sourcegraph/deploy-sourcegraph/blob/master/docs/configure#configure-indexed-search-replica-count). Sourcegraph shards repository indexes across replicas. When the replica count changes Sourcegraph will slowly rebalance indexes to ensure availability of existing indexes.
-
-The resource requirements for indexed search vary considerably based on the text contents of your repositories, but a good estimate is that the node should have enough memory to hold the entire text contents of the default branch of each repository.
-
-### Scaling considerations
-
-Zoekt is Sourcegraph's indexing engine.
-
-When processing a repository, Zoekt splits the index it creates across
-one or more files on disk. These files are called "shards."
-
-Zoekt uses [memory maps](https://en.wikipedia.org/wiki/Memory-mapped_file) to load all shards into memory to evaluate search queries. In most deployments, the total size of the search index (all the shards on disk) is much larger than the total amount of RAM available to Zoekt. Amongst other benefits, using [memory maps](https://en.wikipedia.org/wiki/Memory-mapped_file) allows Zoekt to:
-
-- Leverage [demand paging](https://en.wikipedia.org/wiki/Demand_paging): only read the shard file from the disk if Zoekt tries to read that portion of the file (and it isn't already in RAM)
-- Leverage the kernel's [page cache](https://en.wikipedia.org/wiki/Page_cache): keep the most frequently accessed pages in RAM and evict them when the system is under memory pressure
-
-#### Consideration: RAM versus Disk
-
-As stated above, Zoekt uses RAM as a cache for accessing shards while
-evaluating a search query.
-
-- The more RAM you give Zoekt, the more shards it can hold in RAM *before* it has to access the disk.
-
-- The less RAM you give Zoekt, the more often it will have to access the disk to read the data it needs from its shards. If Zoekt has to access the disk more often, this negatively impacts search performance, increases disk utilization, etc.
-
-Tuning Zoekt's resource requirements is a balance between:
-
-- The amount of RAM you are willing to allocate
-- The amount of disk i/o resources that you have available in your environment
-- The impact on search performance that you find acceptable
-
-#### Consideration: Available memory maps
-
-As stated above, Zoekt uses [memory maps](https://en.wikipedia.org/wiki/Memory-mapped_file) to load all of its shards into memory.
-
-There is a [limit to the number of memory maps a process](https://www.kernel.org/doc/Documentation/sysctl/vm.txt) can create on Linux. On most systems, the default limit is 65536 maps. Processes, including Zoekt, will be terminated if they attempt to allocate more memory maps than that limit.
-
-**This limit provides a ceiling for the number of shards a Zoekt instance can store.** When capacity planning, you can estimate the
-amount of Zoekt instances (including some slack for growth) you'll need via the following rule of thumb:
-
-```text
-(number of repositories) / (60% * (memory map limit))
-```
-
-So, assuming that you have 300,000 repositories and a memory map limit of 65,536, this results in:
-
-```text
-(300,000) / (.6 * 65,536) = 7.62 => 8 instances
-```
-
-Sourcegraph's monitoring system also includes an [alert for this
-scenario and mitigation steps](https://docs.sourcegraph.com/admin/observability/alerts#zoekt-memory-map-areas-percentage-used).
diff --git a/docs/versioned/5.2/admin/security_event_logs.mdx b/docs/versioned/5.2/admin/security_event_logs.mdx
deleted file mode 100644
index e00b373a5..000000000
--- a/docs/versioned/5.2/admin/security_event_logs.mdx
+++ /dev/null
@@ -1,130 +0,0 @@
-# Security Event Logs
-This guide goes into the details of Security Event Logging in Sourcegraph
-> Note: You can find more information about our audit logs setup [here](./audit_log)
->
-> [Here](../dev/how-to/add_logging) is a guide on how to add logging to Sourcegraph backend
-
-## What are Security Event Logs
-- The purpose of Security Event Logs is to allow security specialists to be able to trace the steps of a user or an admin across the application.
-- Getting a full picture of how a user moves through the application, in a single location, is crucial for many reasons.
-- When a user takes an action on sensitive information within the application, this should be logged to make sure it can be retraced to the user and time.
-- In Sourcegraph application, these sensitive actions are logged as "security event" with relevant information included in the log output.
-- These logs can be enabled/disabled as well as the location can be set via the [site config settings](./audit_log#configuring)
-- Previously, we were logging a very selective set of actions. However, through various analyses, it was determined that there were some gaps in creating a full picture.
- - New event types are constantly being added to fill these gaps.
-
-
-## How to log a security event
-- All the logging for security event is done through our [security_event_log.go](https://sourcegraph.com/github.com/sourcegraph/sourcegraph/-/blob/internal/database/security_event_logs.go) functions
-- Previously, events were created within the function where the action was taking place and then pushed to the logging location like this:
- ```go
- event := &SecurityEvent{
- Name: SecurityEventNameAccessGranted,
- URL: "",
- UserID: uint32(a.UID),
- AnonymousUserID: "",
- Argument: arg,
- Source: "BACKEND",
- Timestamp: time.Now(),
- }
-
- db.SecurityEventLogs().LogEvent(ctx, event)
-
-- With a recent change to streamline the process, to log an event, the [LogSecurityEvent](https://sourcegraph.com/github.com/sourcegraph/sourcegraph/-/blob/internal/database/security_event_logs.go?L253:34&popover=pinned) function can be invoked which takes care of marshaling the arguments and creating the SecurityEvent.
-- This function takes following information to create a log event
- - Context contains information on the acting user
- - SecurityEventName which is predefined [here](https://sourcegraph.com/github.com/sourcegraph/sourcegraph/-/blob/internal/database/security_event_logs.go?L22-101)
- - URL if available
- - userID of the user that the action is applied towards
- - anonymousUserID for unauthenticated users
- - source of the log
- - arguments relevant to the action being logged
-- Example of using the function to logan event
- ```go
- db.SecurityEventLogs().LogSecurityEvent(ctx, database.SecurityEventNameEmailAdded, r.URL.Path, uint32(actr.UID), "", "BACKEND", email)
-
-- The function sends the log event it creates to be pushed to the right location based on the site-config settings
-- The function also checks to make sure that marshaling the arguments does not cause as error
-
-## How to find security events in logs
-- Security events are logged with all the relevant information associated with the actions
-- Depending on the location of the log destination set in the site config, the event log can be either found in the application log output or in the database or both.
-- A sample output of a logged event from application logs would look similar to this:
- ```JSON
- {
- ...
- {
- "message": "EmailAdded (sampling immunity token: 12345-222-3333-5454-9w08fs0s9d8f)",
- "Caller": "audit/audit.go:57",
- "Attributes": {
- "audit": {
- "actor": {
- "X-Forwarded-For": "127.0.0.1",
- "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) ",
- "ip": "100.211.3.155",
- "actorUID": "123245"
- },
- "entity": "security events",
- "auditId": "12345-222-3333-5454-9w08fs0s9d8f",
- "action": "EmailAdded"
- },
- "event": {
- "URL": "",
- "argument": "\"new@sourcegraph.com\"",
- "AnonymousUserID": "",
- "UserID": 223955,
- "source": "12345",
- "timestamp": "2023-12-21 02:41:08.649603776 +0000 UTC",
- "version": "255367_2023-12-20_5.2-a3143120c41e"
- }
- },
- "Function": "github.com/sourcegraph/sourcegraph/internal/audit.Log",
- "InstrumentationScope": "frontend.SecurityEvents",
- "timestampNanos": 1703126468649641000,
- "Resource": {
- "service.instance.id": "sourcegraph-frontend-769bdbdd77-p2f8j",
- "service.name": "frontend",
- "service.version": "255367_2023-12-20_5.2-a3143120c41e"
- }
- }
- ...
- }
-
-- Entity field can be used to filter on all security events.
-- Action field will provide information on the event and can be correlated with the action taken, in this case EmailAdded
-- The actorUID can be used to filter out events from a particular user
-- UserID can be used to filter out actions taken on a particular user's information
-
-## FAQ
-### What events are currently being logged as security events?
-- [These](https://sourcegraph.com/github.com/sourcegraph/sourcegraph/-/blob/internal/database/security_event_logs.go?L22-101) are the events that are currently being logged.
-
-### What if I don't want these events to be logged?
-- To turn off all security event logs, you can [set the variable](https://docs.sourcegraph.com/admin/audit_log#excessive-audit-logging) in the site config
-
-### How can I correlate the actorID or userID to a user in the application?
-
-- Currently UIDs are available in the log output but it’s not mapped into a full Sourcegraph user. You can, however, obtain the user details by following these steps:
-
- 1. Grab the ID from the audit log
- 1. Base64 [encode](https://www.base64encode.org) the ID with a "User:" prefix. For example, for Actor with ID 71 use `User:71`, which encodes to `VXNlcjo3MQ==`
- 1. Navigate to Site Admin -> API Console and run the query below
- 1. Find the corresponding user by searching the query results for the encoded ID from above
-
- GraphQL query:
- ```
- {
- users {
- nodes {
- id
- username
- }
- }
- }
- ```
-
-### How can I investigate all actions taken on a user?
-- The `audit.event` node has the ID of the user the action was taken on (`UserID`). Logs can be filtered on this field to gather all logged actions taken on this user's information.
-
-### How can I investigate all actions taken by a user?
-- The `audit.actor` node has the ID of the user the action was taken by (`actorUID`). Logs can be filtered on this field to gather all logged actions taken by this user.
diff --git a/docs/versioned/5.2/admin/sourcegraph-nginx-mermaid.mdx b/docs/versioned/5.2/admin/sourcegraph-nginx-mermaid.mdx
deleted file mode 100644
index 84e8c335d..000000000
--- a/docs/versioned/5.2/admin/sourcegraph-nginx-mermaid.mdx
+++ /dev/null
@@ -1,14 +0,0 @@
-# NGINX and Sourcegraph diagram
-
-```mermaid
-graph LR
-
-A(Browser/Client)
-B(NGINX)
-C(Sourcegraph front-end)
-
-A-->|HTTP request: 80|B
-A-->|HTTPS request :443|B
-A-->|HTTP request: 7080|B
-B-->|HTTP request: 7080|C
-```
diff --git a/docs/versioned/5.2/admin/ssl_https_self_signed_cert_nginx.mdx b/docs/versioned/5.2/admin/ssl_https_self_signed_cert_nginx.mdx
deleted file mode 100644
index 3b6479d2a..000000000
--- a/docs/versioned/5.2/admin/ssl_https_self_signed_cert_nginx.mdx
+++ /dev/null
@@ -1,149 +0,0 @@
-# Adding SSL (HTTPS) to Sourcegraph with a self-signed certificate
-
-This is for external Sourcegraph instances that need a self-signed certificate because they don't yet have a certificate from a [globally trusted Certificate Authority (CA)](https://en.wikipedia.org/wiki/Certificate_authority#Providers). It includes how to get the self-signed certificate trusted by your browser.
-
-> NOTE: Using an IP address also works, including the browser being able to trust (validate) the SSL certificate.
-
-Configuring NGINX with a self-signed certificate to support SSL requires:
-
-- [Adding SSL (HTTPS) to Sourcegraph with a self-signed certificate](#adding-ssl-https-to-sourcegraph-with-a-self-signed-certificate)
- - [1. Installing mkcert](#1-installing-mkcert)
- - [2. Creating the self-signed certificate](#2-creating-the-self-signed-certificate)
- - [3. Adding SSL support to NGINX](#3-adding-ssl-support-to-nginx)
- - [4. Changing the Sourcegraph container to listen on port 443](#4-changing-the-sourcegraph-container-to-listen-on-port-443)
- - [5. Getting the self-signed certificate to be trusted (valid) on external instances](#5-getting-the-self-signed-certificate-to-be-trusted-valid-on-external-instances)
- - [Next steps](#next-steps)
-
-## 1. Installing mkcert
-
-While the [OpenSSL](https://wiki.openssl.org/index.php/Command_Line_Utilities) CLI can can generate self-signed certificates, its API is challenging unless you're well versed in SSL.
-
-A better alternative is [mkcert](https://github.com/FiloSottile/mkcert#mkcert), an abstraction over OpenSSL written by [Filippo Valsorda](https://github.com/FiloSottile), a cryptographer working at Google on the Go team.
-
-> NOTE: The following commands are to be run on the Docker host, **not** inside the Sourcegraph container.
-
-To set up mkcert on the Sourcegraph instance:
-
-1. [Install mkcert](https://github.com/FiloSottile/mkcert#installation)
-1. Create the root [CA](https://en.wikipedia.org/wiki/Certificate_authority) by running:
-
-```bash
-sudo CAROOT=~/.sourcegraph/config mkcert -install
-```
-
-## 2. Creating the self-signed certificate
-
-Now that the root CA has been created, mkcert can issue a self-signed certificate (`sourcegraph.crt`) and key (`sourcegraph.key`).
-
-```bash
-sudo CAROOT=~/.sourcegraph/config mkcert \
- -cert-file ~/.sourcegraph/config/sourcegraph.crt \
- -key-file ~/.sourcegraph/config/sourcegraph.key \
- $HOSTNAME_OR_IP
-```
-
-Run `sudo ls -la ~/.sourcegraph/config` and you should see the CA and SSL certificates and keys.
-
-## 3. Adding SSL support to NGINX
-
-Edit the [default
-`~/.sourcegraph/config/nginx.conf`](https://github.com/sourcegraph/sourcegraph/blob/main/cmd/server/shared/assets/nginx.conf),
-so that port `7080` redirects to `7443` and `7443` is served with SSL. It should look like this:
-
-```nginx
-...
-http {
- ...
- server {
- listen 7080;
- return 301 https://$host:7443$request_uri;
- }
-
- server {
- # Do not remove. The contents of sourcegraph_server.conf can change
- # between versions and may include improvements to the configuration.
- include nginx/sourcegraph_server.conf;
-
- listen 7443 ssl;
- server_name sourcegraph.example.com; # change to your URL
- ssl_certificate sourcegraph.crt;
- ssl_certificate_key sourcegraph.key;
-
- location / {
- ...
- }
- }
-}
-```
-
-## 4. Changing the Sourcegraph container to listen on port 443
-
-> NOTE: If the Sourcegraph container is still running, stop it before reading on.
-
-Now that NGINX is listening on port 7443, we need to configure the Sourcegraph container to forward
-443 to 7443 by adding `--publish 443:7443` to the `docker run` command:
-
-```bash
-docker container run \
- --rm \
- --publish 7080:7080 \
- --publish 443:7443 \
- \
- --volume ~/.sourcegraph/config:/etc/sourcegraph \
- --volume ~/.sourcegraph/data:/var/opt/sourcegraph \
- sourcegraph/server:5.3.1
-```
-
-> NOTE: We recommend removing `--publish 7080:7080` as it's not needed and traffic sent to that port is un-encrypted.
-
-Run the new Docker command, then validate by opening your browser at `https://$HOSTNAME_OR_IP`.
-
-If running Sourcegraph locally, the certificate will be valid because `mkcert` added the root CA to the list trusted by your OS.
-
-## 5. Getting the self-signed certificate to be trusted (valid) on external instances
-
-To have the browser trust the certificate, the root CA on the Sourcegraph instance must be installed locally by:
-
-**1.** [Installing mkcert locally](https://github.com/FiloSottile/mkcert#installation)
-
-**2.** Downloading `rootCA-key.pem` and `rootCA.pem` from `~/.sourcegraph/config/mkcert` on the Sourcegraph instance to the location of `mkcert -CAROOT` on your local machine:
-
-```bash
-# Run locally: Ensure directory the root CA files will be downloaded to exists
-mkdir -p "$(mkcert -CAROOT)"
-```
-
-```bash
-# Run on Sourcegraph host: Ensure `scp` user can read (and therefore download) the root CA files
-sudo chown $USER ~/.sourcegraph/config/root*
-```
-
-```bash
-# Run locally: Download the files (change username and hostname)
-scp user@example.com:~/.sourcegraph/config/root* "$(mkcert -CAROOT)"
-```
-
-**3.** Install the root CA by running:
-
-```bash
-mkcert -install
-```
-
-Open your browser again at `https://$HOSTNAME_OR_IP` and this time, your certificate should be valid.
-
-### Getting the self-signed cert trusted on other developer machines
-
-This is largely the same as step 5, except easier. For other developer machines to trust the self-signed cert:
-
-- [Install mkcert](https://github.com/FiloSottile/mkcert#installation).
-- Download the `rootCA-key.pem` and `rootCA.pem` from Slack or other internal system.
-- Move the `rootCA-key.pem` and `rootCA.pem` files into the `mkcert -CAROOT` directory on their machine.
-- Run `mkcert -install` on their machine.
-
-## Next steps
-
-- [Configure Sourcegraph's `externalURL`](/admin/config/site_config)
-- [Redirect to external HTTPS URL](/admin/http_https_configuration#redirect-to-external-https-url)
-- [NGINX HTTP Strict Transport Security](/admin/http_https_configuration#redirect-to-external-https-url)
-- [NGINX SSL Termination guide](https://docs.nginx.com/nginx/admin-guide/security-controls/terminating-ssl-http/)
-- [NGINX HTTPS Servers guide](https://nginx.org/en/docs/http/configuring_https_servers.html).
diff --git a/docs/versioned/5.2/admin/subscriptions/img/true-up-pricing-summary.png b/docs/versioned/5.2/admin/subscriptions/img/true-up-pricing-summary.png
deleted file mode 100644
index 07a5d75f8..000000000
Binary files a/docs/versioned/5.2/admin/subscriptions/img/true-up-pricing-summary.png and /dev/null differ
diff --git a/docs/versioned/5.2/admin/subscriptions/index.mdx b/docs/versioned/5.2/admin/subscriptions/index.mdx
deleted file mode 100644
index ae2461107..000000000
--- a/docs/versioned/5.2/admin/subscriptions/index.mdx
+++ /dev/null
@@ -1,33 +0,0 @@
-# Paid subscriptions for Sourcegraph Enterprise
-
-> NOTE: Pricing documentation below applies to [Sourcegraph Enterprise](https://about.sourcegraph.com/pricing).
-
-Organizations using Sourcegraph can [upgrade to Sourcegraph Enterprise](https://about.sourcegraph.com/pricing) to get the features that large organizations need (single sign-on, backups and recovery, cluster deployment, access to code navigation and intelligence, etc.). These additional features in Sourcegraph Enterprise are paid and not open source.
-
-You can [contact Sourcegraph](https://about.sourcegraph.com/contact/sales) to purchase a subscription. This entitles you to a license key (provided immediately after your purchase), which activates Enterprise features on your Sourcegraph instance.
-
-## Volume discounts
-
-[Contact us](https://about.sourcegraph.com/contact) to ask about volume discounts for Sourcegraph Enterprise.
-
-## Pricing model
-
-[Sourcegraph's pricing](https://about.sourcegraph.com/pricing) is based primarily on [total active user accounts](#how-user-accounts-are-counted). In certain situations, it is also a combination of the [number of lines of code indexed](#how-lines-of-code-are-counted). Please [contact Sourcegraph](https://about.sourcegraph.com/contact/sales) to answer specific questions about our pricing model for your use.
-
-## How user accounts are counted
-
-This count is maintained on your Sourcegraph instance, viewable and auditable on the **Site admin > Users** page, and is reported back in aggregate to Sourcegraph.com via [pings](https://docs.sourcegraph.com/admin/pings).
-
-A Sourcegraph user account is created when a user signs up or signs in for the first time. Sourcegraph user accounts can be deleted by administrators via the **Site admin > Users** page, or using the [GraphQL API](/api/graphql/) or the [Sourcegraph CLI](https://github.com/sourcegraph/src-cli).
-
-## How lines of code are counted
-
-We count the number of newlines (`\n`) appearing in the text search index. Our text search index contains the working copy of your default branch in all repositories synchronized by Sourcegraph. The default branch is typically called `master` or `main`. Additional branches can be configured to be indexed by site administrators. These will also be part of the newlines count.
-
-Our text search index deduplicates for paths that are the same across branches. We only count the newlines once per unique file. Forks are separately indexed. They are included in the count of new lines.
-
-Sourcegraph administrators can view the lines of code count for each repository by visiting the repository and clicking on **Settings > Indexing**.
-
-## Updating your license key
-
-- Navigate to **Site admin > Configuration > Site configuration**, update the `licenseKey` field with the new value, and then click **Save changes**.
diff --git a/docs/versioned/5.2/admin/teams/index.mdx b/docs/versioned/5.2/admin/teams/index.mdx
deleted file mode 100644
index b8a2ab27f..000000000
--- a/docs/versioned/5.2/admin/teams/index.mdx
+++ /dev/null
@@ -1,315 +0,0 @@
-# Modeling teams in Sourcegraph
-
-This feature is in Experimental stage and might change in the future.
-
-Teams in Sourcegraph are groups of users with a common handle. Teams are structured as a tree, so teams can have child teams.
-
-Example team structure that can be modeled:
-
-```
-Engineering
-├─ Security
-├─ Code Graph
-│ ├─ Batch Changes
-│ ├─ Code Insights
-├─ source
-│ ├─ Repo Management
-│ ├─ IAM
-Product
-```
-
-Teams in Sourcegraph are usable in [code ownership](/own/), and other features in the future. Teams can be code owners and will influence the code ownership experience. You can search for code owned by a specific team, and in the future advanced ownership analytics will be informed by given team structures.
-
-## Configuring teams
-
-Teams can either be defined directly in Sourcegraph, or be ingested from external systems into Sourcegraph using [src-cli](https://github.com/sourcegraph/src-cli). A team name must be globally unique, and the global namespace for names is shared among users, teams, and orgs.
-
-### From the UI
-
-Go to **Teams** from the user navbar item. On this page, click "Create team". A team needs to have a unique name and can optionally take a display name. Additionally, you can add a parent team to build a tree structure as outlined above.
-
-After hitting create, you will be redirected to the team page where you can add Sourcegraph users as team members.
-
-> NOTE: It's common to define teams in Sourcegraph from a third party system. Teams defined from src-cli using the `-read-only` flag cannot be modified from the UI to prevent state drift from external systems.
-
-### From the CLI
-
-If you prefer a command line based approach, or would like to integrate an external system of record for teams into Sourcegraph, [src-cli](https://github.com/sourcegraph/src-cli) (v5.0+) provides commands to manage teams:
-
-```bash
-# List configured teams. Lists root teams, using -parent-team can read child teams.
-src teams list [-query=] [-parent-team=]
-
-# Create a new team.
-src teams create -name= [-display-name=] [-parent-team=] [-read-only]
-
-# Update a team.
-src teams update -name= [-display-name=] [-parent-team=]
-
-# Delete a team.
-src teams delete -name=
-
-# List team members.
-src teams members list -name= [-query=]
-
-# Add a new team member. See user account matching for details on how this works.
-src teams members add -team-name= [-email=] [-username=] [-id=] [-external-account-service-id= -external-account-service-type= [-external-account-account-id=] [-external-account-login=]] [-skip-unmatched-members]
-
-# Remove a team member. See user account matching for details on how this works.
-src teams members remove -team-name= [-email=] [-username=] [-id=] [-external-account-service-id= -external-account-service-type= [-external-account-account-id=] [-external-account-login=]] [-skip-unmatched-members]
-```
-
-#### User account matching
-
-Matching a user account in Sourcegraph from an external system can be achieved in a few different ways: Sourcegraph User ID, Sourcegraph account email, Sourcegraph username or an explicit external-account mapping can be provided.
-
-The matching order is as follows:
-- try Sourcegraph user ID
-- then try email
-- then try username
-- then try external-account
-
-Example for external account matching with configured GitHub auth provider:
-
-```bash
-# Match a user with the account ID 123123123:
-src teams members add \
- -team-name='engineering' \
- -external-account-service-id='https://github.com/' \
- -external-account-service-type='github' \
- -external-account-account-id='123123123'
-# Match a user with the GitHub login handle alice:
-src teams members add \
- -team-name='engineering' \
- -external-account-service-id='https://github.com/' \
- -external-account-service-type='github' \
- -external-account-login='alice'
-```
-
-### Permissions in teams
-
-For now, team permissions are based on membership. Read-only teams are only editable by site-admins. The creator of a team can always modify it, even if they are not a member of it.
-
-**Action**|**Site-admin**|**Regular user**|**Direct team member**
-:-----:|:-----:|:-----:|:-----:
-Reading teams, metadata and members|🟢|🟢|🟢
-Creating a new team|🟢|🟢|n/a
-Creating a new child team|🟢|🔴|🟢
-Creating a new read-only team|🟢|🔴|n/a
-Updating team details/metadata|🟢|🔴|🟢
-Deleting a team|🟢|🔴|🟢
-Deleting a read-only team|🟢|🔴|🔴
-Adding a member to a team|🟢|🔴|🟢
-Removing a member from a team|🟢|🔴|🟢
-Adding a member to a read-only team|🟢|🔴|🔴
-Removing a member from a read-only team|🟢|🔴|🔴
-
-### Known limitations
-
-- Read-only teams can only be created by site-admins
-- Identity Provider / SCIM integrations are not available at the moment
-
-## Common integrations
-
-### GitHub teams
-
-Using the GitHub CLI along with Sourcegraph's CLI, you can ingest teams data from GitHub into Sourcegraph. You may want to run this process regularly.
-
-```bash
-#!/usr/bin/env bash
-
-set -e
-
-ORG=