1package semanticrelease
2
3// semantic-release Schema
4#Schema: {
5 @jsonschema(schema="http://json-schema.org/draft-07/schema#")
6 @jsonschema(id="https://json.schemastore.org/semantic-release.json")
7
8 // List of modules or file paths containing a shareable configuration. If
9 // multiple shareable configurations are set, they will be imported in the
10 // order defined with each configuration option taking precedence over the
11 // options defined in a previous shareable configuration
12 "extends"?: matchN(1, [string, [...string]])
13
14 // The branches on which releases should happen.
15 "branches"?: matchN(1, [string, #."branch-object", [...matchN(>=1, [string, #."branch-object"])]])
16
17 // The git repository URL
18 "repositoryUrl"?: string
19
20 // The Git tag format used by semantic-release to identify releases. The tag
21 // name is generated with Lodash template and will be compiled with the version
22 // variable.
23 "tagFormat"?: string
24
25 // Define the list of plugins to use. Plugins will run in series, in the order defined
26 "plugins"?: [...matchN(>=1, [
27 string,
28 [...], {
29 "path"!: string
30 ...
31 }
32 ])]
33
34 // The objective of the dry-run mode is to get a preview of the pending release.
35 // Dry-run mode skips the following steps: prepare, publish, success and fail.
36 // In addition to this it prints the next version and release notes to the
37 // console
38 "dryRun"?: bool
39
40 // Set to false to skip Continuous Integration environment verifications. This
41 // allows for making releases from a local machine
42 "ci"?: bool
43 ...
44
45 #: "branch-object": close({
46 "name"!: string
47 "channel"?: string
48 "range"?: string
49 "prerelease"?: bool | string
50 })
51}