sourcegraph/schema
Stefan Hengl 1af563b614
batches: use "keyword" as default pattern type (#63613)
This is part of the Keyword GA Project.

Batch Changes uses Sourcegraph queries to define the list of repositories on which the batch change will run.

With this change we default to pattern type "keyword" instead of "standard". 

To make this a backward compatible change, we also introduce a version identifier to batch specs. Authors can specify `version: 2` in the spec, in which case we default to pattern type "keyword". Existing specs (without a specified version) and specs with `version: 1` will keep using pattern type "standard".

Notes:
- Corresponding doc update [PR](https://github.com/sourcegraph/docs/pull/477)
- We don't have a query input field, but instead the query is defined in a batch spec YAML. It didn't feel right to edit the YAML and append "patternType: " on save, which is what we do for Code Monitors and Insights.
- I misuse the pattern type query parameter to effectively override the version. Once we introduce "V4" we should come back here and clean up. I left a TODO in the code.

Test plan:
- New and updated unit tests
- manual testing
  - new batch changes use `version: 2` by default.
  - using an unsupported version returns an error
  - I ran various "on:" queries to verify that version 2 uses keyword search and version 1 uses standard search.
2024-07-09 10:35:01 +02:00
..
aws_codecommit.schema.json
azuredevops.schema.json Docs: update links to point to new site (#60381) 2024-02-13 00:23:47 +00:00
batch_spec.schema.json batches: use "keyword" as default pattern type (#63613) 2024-07-09 10:35:01 +02:00
bitbucket_cloud.schema.json Add support for naming repo explicitly for Bitbucket Cloud (#61536) 2024-04-08 19:03:53 +02:00
bitbucket_server_util.go authz/github: validate provider against default github URL if not set (#24598) 2021-09-06 12:37:33 -04:00
bitbucket_server.schema.json fix(Source): Fix documentation URLs for code hosts help pages (#63274) 2024-06-17 14:32:46 -04:00
bitbucketcloud_util.go Add Bitbucket Cloud as an auth provider with Perms syncing (#46309) 2023-01-16 14:20:35 +02:00
BUILD.bazel bazel: transcribe test ownership to bazel tags (#62664) 2024-05-16 15:51:16 +01:00
changeset_spec.schema.json code-search: handle changeset fork when creating a batch change via src-cli (#58156) 2023-11-08 09:55:05 +01:00
extension_schema.go remove extension registry UI and related GraphQL API (#45891) 2022-12-22 00:10:56 -08:00
gerrit.schema.json gerrit: Add support for SSH cloning (#61537) 2024-04-04 15:56:51 +02:00
github_util.go authz/github: validate provider against default github URL if not set (#24598) 2021-09-06 12:37:33 -04:00
github.schema.json dotcom: Remove on-demand cloning of repositories (#63321) 2024-06-26 14:53:14 -07:00
gitlab_util.go authz/github: validate provider against default github URL if not set (#24598) 2021-09-06 12:37:33 -04:00
gitlab.schema.json dotcom: Remove on-demand cloning of repositories (#63321) 2024-06-26 14:53:14 -07:00
gitolite.schema.json Unremoving phabricator integration fields, adding lines to changelog (#32573) 2022-03-15 10:01:39 -04:00
go-modules.schema.json extsvc: Change default rate limits of npm and Go external services (#34042) 2022-04-19 11:50:46 +00:00
json-schema-draft-07.schema.json
jvm-packages.schema.json packages: improve and expand docs (#49774) 2023-03-21 17:47:57 +00:00
npm-packages.schema.json npm: Bump rate limit. (#37018) 2022-06-10 15:00:51 +00:00
onboardingtour.schema.json user onboarding: Use server side configuration and improve admin experience (#56768) 2023-09-19 22:10:45 +02:00
opencodegraph-protocol.schema.json OpenCodeGraph prototype (#58675) 2023-12-06 21:39:33 -08:00
opencodegraph.schema.json OpenCodeGraph prototype (#58675) 2023-12-06 21:39:33 -08:00
other_external_service.schema.json Remove App from codebase (#59115) 2023-12-21 01:07:05 +01:00
package.json web: sync TS project refenreces (#46407) 2023-01-16 18:55:10 -08:00
pagure.schema.json repos: add Pagure code host support (#28084) 2021-11-23 18:03:35 +01:00
perforce.schema.json Remove unused rateLimit on perforce connections (#58188) 2023-11-15 03:27:14 +01:00
phabricator.schema.json
python-packages.schema.json repos: Introduce Python dependency repos integration (#34886) 2022-05-05 13:24:25 +02:00
README.md site-config: Make symbols not required in syntaxHighlighting (#57276) 2023-10-16 19:53:19 -04:00
ruby-packages.schema.json Packages: add RubyGems support (#42817) 2022-10-17 09:48:18 +02:00
rust-packages.schema.json Remove experimental indexRepositoryName for rust packages (#59176) 2024-01-08 17:42:36 +01:00
schema.go batches: use "keyword" as default pattern type (#63613) 2024-07-09 10:35:01 +02:00
settings.schema.json Search: remove keyword toggle (#63584) 2024-07-03 10:53:33 -07:00
site.schema.json site config: minor fixes, make modelConfiguration enable new backend models API, initial self-hosted model config (#63697) 2024-07-08 16:53:05 -07:00
stringdata.go Remove App from codebase (#59115) 2023-12-21 01:07:05 +01:00
tsconfig.json web: fix pnpm-lock issue (#47478) 2023-02-09 22:04:31 -08:00
validation_test.go schema: remove non-determinism from TestSchemaValidationUUID (#61728) 2024-04-09 15:50:30 +00:00

Sourcegraph JSON Schemas

JSON Schema is a way to define the structure of a JSON document. It enables typechecking and code intelligence on JSON documents.

Sourcegraph uses the following JSON Schemas:

Modifying a schema

  1. Edit the *.schema.json file in this directory.
  2. Run bazel run //schema:write_generated_schema.
  3. Commit the changes to both files.
  4. Run sg start to automatically update TypeScript schema files.

Known issues

  • The JSON Schema IDs (URIs) are of the form https://sourcegraph.com/v1/*.schema.json#, but these are not actually valid URLs. This means you generally need to supply them to JSON Schema validation libraries manually instead of having the validator fetch the schema from the web.