Type object
File match releasekit.config.json
Schema URL https://catalog.lintel.tools/schemas/schemastore/releasekit/latest.json
Source https://goosewobbler.github.io/releasekit/schema.json

Validate with Lintel

npx @lintel/lintel check
Type: object

Configuration schema for ReleaseKit - Automated versioning, changelog generation, and publishing

Properties

$schema string

JSON schema reference URL

git object

Git configuration

6 nested properties
remote string

Git remote name

Default: "origin"
branch string

Default branch name

Default: "main"
pushMethod string

Method for pushing to remote

Default: "auto"
Values: "auto" "ssh" "https"
push boolean

Whether to push changes to remote

httpsTokenEnv string

Environment variable name containing a GitHub token for HTTPS pushes

skipHooks boolean

Skip Git hooks when committing

monorepo object

Monorepo configuration

4 nested properties
mode string

Changelog aggregation mode

Values: "root" "packages" "both"
rootPath string

Path to root changelog

packagesPath string

Path to packages directory

mainPackage string

Main package name for versioning

version object

Versioning configuration

18 nested properties
tagTemplate string

Template for Git tags. Available variables: ${version} (version number), ${prefix} (versionPrefix value, e.g. 'v'), ${packageName} (sanitized package name, e.g. 'scope-pkg'). Example: "${packageName}-${prefix}${version}" produces "scope-pkg-v1.2.3".

Default: "${prefix}${version}"
packageSpecificTags boolean

Enable package-specific tagging

Default: false
preset string

Commit convention preset

Default: "conventional"
sync boolean

Sync versions across packages

Default: true
packages string[]

Packages to include in versioning

Default:
[]
mainPackage string

Package to use for version determination

updateInternalDependencies string

How to bump internal dependencies

Default: "minor"
Values: "major" "minor" "patch" "no-internal-update"
skip string[]

Packages to exclude from versioning

commitMessage string

Template for release commit messages

versionStrategy string

Strategy for determining version bumps

Default: "commitMessage"
Values: "branchPattern" "commitMessage"
branchPatterns object[]

Branch name patterns for version determination

defaultReleaseType string

Default release type when no pattern matches

Values: "major" "minor" "patch" "prerelease"
mismatchStrategy string

How to handle version mismatches

Default: "warn"
Values: "error" "warn" "ignore" "prefer-package" "prefer-git"
versionPrefix string

Prefix for version tags

Default: ""
prereleaseIdentifier string

Identifier for prerelease versions (e.g., 'alpha', 'beta')

baseBranch string

Base branch for versioning

strictReachable boolean

Only use reachable tags

Default: false
cargo object

Cargo/Rust configuration

2 nested properties
enabled boolean

Enable Cargo.toml version handling

Default: true
paths string[]

Directories to search for Cargo.toml files

publish object

Publishing configuration

5 nested properties
git object

Git publishing options

6 nested properties
push boolean

Push tags and commits to remote

Default: true
pushMethod string

Push method override

Values: "auto" "ssh" "https"
remote string

Remote name override

branch string

Branch name override

httpsTokenEnv string

Environment variable name containing a GitHub token for HTTPS pushes

skipHooks boolean

Skip Git hooks when committing

npm object

NPM publishing configuration

7 nested properties
enabled boolean

Enable NPM publishing

Default: true
auth string

Authentication method

Default: "auto"
Values: "auto" "oidc" "token"
provenance boolean

Enable npm provenance attestation

Default: true
access string

Package access level

Default: "public"
Values: "public" "restricted"
registry string

NPM registry URL

Default: "https://registry.npmjs.org"
copyFiles string[]

Files to copy to package before publishing

Default:
[
  "LICENSE"
]
tag string

NPM dist tag

Default: "latest"
cargo object

Cargo publishing configuration

4 nested properties
enabled boolean

Enable Cargo publishing

Default: false
noVerify boolean

Skip verification before publish

Default: false
publishOrder string[]

Order in which to publish packages

Default:
[]
clean boolean

Clean before publishing

Default: false
githubRelease object

GitHub Release configuration

6 nested properties
enabled boolean

Enable GitHub releases

Default: true
draft boolean

Create as draft release

Default: true
perPackage boolean

Create separate release per package

Default: true
prerelease boolean | string

Mark as prerelease

Default: "auto"
body string

Source for GitHub release body. 'auto': use release notes if enabled, else changelog, else GitHub auto. 'releaseNotes': use LLM-generated release notes. 'changelog': use changelog entries. 'generated': GitHub auto-generated. 'none': no body.

Default: "auto"
Values: "auto" "releaseNotes" "changelog" "generated" "none"
titleTemplate string

Template for the GitHub release title when a package name is resolved. Available variables: ${packageName} (original scoped name, e.g. '@scope/pkg'), ${version} (e.g. 'v1.0.0'). Version-only tags always use the tag string directly.

Default: "${packageName}: ${version}"
verify object

Registry verification configuration

2 nested properties
npm object
4 nested properties
enabled boolean

Verify NPM publish

Default: true
maxAttempts integer

Maximum verification attempts

Default: 5
min=1
initialDelay integer

Initial delay in milliseconds

Default: 15000
min=1
backoffMultiplier number

Exponential backoff multiplier

Default: 2
min=1
cargo object
4 nested properties
enabled boolean

Verify Cargo publish

Default: true
maxAttempts integer

Maximum verification attempts

Default: 10
min=1
initialDelay integer

Initial delay in milliseconds

Default: 30000
min=1
backoffMultiplier number

Exponential backoff multiplier

Default: 2
min=1
notes object

Changelog and release notes configuration

3 nested properties
changelog boolean | object
releaseNotes boolean | object
updateStrategy string

How to update existing changelog files. 'prepend' adds new entries to the top; 'regenerate' rewrites the file from scratch.

Values: "prepend" "regenerate"
ci object

CI automation configuration for release triggers, PR previews, and label management

7 nested properties
releaseStrategy string

How releases are delivered. 'direct': release on merge to main. 'manual': releases triggered manually (e.g. workflow_dispatch). 'standing-pr': changes accumulate in a release PR. 'scheduled': releases triggered on a schedule.

Default: "direct"
Values: "manual" "direct" "standing-pr" "scheduled"
releaseTrigger string

What triggers a release. 'label': a PR bump label (bump:patch/minor/major) is required. 'commit': conventional commits drive the bump automatically; every merge can trigger a release.

Default: "label"
Values: "commit" "label"
prPreview boolean

Enable PR preview comments showing what would be released if the PR is merged. Set to false to disable.

Default: true
autoRelease boolean

Automatically trigger a release when CI conditions are met, without manual intervention.

Default: false
skipPatterns string[]

Commit message prefixes that suppress a release. The default matches the release commit template to prevent release loops.

Default:
[
  "chore: release "
]
minChanges integer

Minimum number of packages with releasable changes required to trigger a release.

Default: 1
min=1
labels object

PR label names used for release control. Override to match your repository's label conventions.

6 nested properties
stable string

Label to graduate a prerelease to stable

Default: "release:stable"
prerelease string

Label to create a prerelease

Default: "release:prerelease"
skip string

Label to suppress a release on this PR

Default: "release:skip"
major string

Label to force a major bump

Default: "bump:major"
minor string

Label to force a minor bump

Default: "bump:minor"
patch string

Label to force a patch bump

Default: "bump:patch"
release object

Release pipeline automation configuration

2 nested properties
steps string[]

Which steps to run by default. Omitting a step is equivalent to --skip-.

minItems=1
ci object

CI-specific automation settings

4 nested properties
skipPatterns string[]

Commit message prefixes that prevent a release (e.g. 'chore(deps):', 'ci:')

minChanges integer

Minimum number of packages with releasable changes required to trigger a release

min=1
githubRelease boolean

Set to false to disable GitHub release creation in CI

Values: false
notes boolean

Set to false to disable changelog generation in CI

Values: false