Skip to content

Shareable Configurations

A shareable configuration is an npm package that exports a reusable semantic-release configuration object. It lets teams define a common release workflow once and apply it across several projects.

Use a shareable configuration when multiple repositories should follow the same release workflow and only need small project-specific overrides.

In practice, a shareable configuration usually provides the base configuration, while each project keeps only the settings that differ locally.

The shareable configurations to use can be set with the extends option, using either an npm package name or a local file path.

{
"extends": "@semantic-release/gitlab-config"
}

For example, a project can extend a shared base config and still override its own branches locally:

{
"extends": "@semantic-release/gitlab-config",
"branches": ["main", "next"]
}

If multiple shareable configurations are defined, they are loaded in order. Local configuration and CLI arguments take precedence over values defined in a shareable configuration.

See the shareable configurations list for official and community-maintained packages you can extend.

If you want to build your own shareable configuration, see Shareable configuration development.