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
9 // configuration. If multiple shareable configurations are set,
10 // they will be imported in the order defined with each
11 // configuration option taking precedence over the options
12 // defined in a previous shareable configuration
13 "extends"?: matchN(1, [string, [...string]])
14
15 // The branches on which releases should happen.
16 "branches"?: matchN(1, [string, #."branch-object", [...matchN(>=1, [string, #."branch-object"])]])
17
18 // The git repository URL
19 "repositoryUrl"?: string
20
21 // The Git tag format used by semantic-release to identify
22 // releases. The tag name is generated with Lodash template and
23 // will be compiled with the version variable.
24 "tagFormat"?: string
25
26 // Define the list of plugins to use. Plugins will run in series,
27 // in the order defined
28 "plugins"?: [...matchN(>=1, [string, [...], {
29 "path"!: string
30 ...
31 }])]
32
33 // The objective of the dry-run mode is to get a preview of the
34 // pending release. Dry-run mode skips the following steps:
35 // prepare, publish, success and fail. In addition to this it
36 // prints the next version and release notes to the console
37 "dryRun"?: bool
38
39 // Set to false to skip Continuous Integration environment
40 // verifications. This allows for making releases from a local
41 // 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}