# semantic-release/semantic-release

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/semantic-release-semantic-release).**

23,332 stars · 1,794 forks · JavaScript · mit

## Links

- GitHub: https://github.com/semantic-release/semantic-release
- Homepage: https://semantic-release.gitbook.io
- awesome-repositories: https://awesome-repositories.com/repository/semantic-release-semantic-release.md

## Topics

`automation` `changelog` `package` `publish` `release` `release-automation` `release-workflow` `semantic-release` `semantic-version` `semver` `semver-release` `version`

## Description

Semantic-release is an automated release management tool that determines version increments, generates changelogs, and publishes software packages by analyzing commit history against standardized conventions. It functions as a plugin-based orchestrator that integrates directly into continuous integration pipelines to manage the entire release lifecycle, from verifying environment conditions to distributing artifacts.

The project distinguishes itself through its commit-message-driven approach, which enforces consistent versioning standards and automates the creation of release notes based on the scope of changes. It supports complex release strategies, including multi-branch mapping for parallel release streams, maintenance patches for legacy versions, and the publication of pre-release versions to specific distribution channels.

Beyond core versioning, the system provides a highly extensible lifecycle that allows for custom automation through hooks and third-party plugins. It includes robust support for supply chain security, enabling the generation of verifiable provenance attestations and secure credential management via environment-aware secret injection and identity provider authentication.

The tool is designed for integration into automated build environments, though it also supports local execution for manual overrides and process simulation. Configuration is handled through external files, allowing teams to standardize release workflows and share settings across multiple projects.

## Tags

### DevOps & Infrastructure

- [Release Automation](https://awesome-repositories.com/f/devops-infrastructure/release-automation.md) — Automates the entire release lifecycle by analyzing commit history to determine version increments and publish packages. ([source](https://semantic-release.gitbook.io/semantic-release/beta/undefined.md))
- [Commit-Based Versioning Engines](https://awesome-repositories.com/f/devops-infrastructure/version-control-automation/commit-based-versioning-engines.md) — Determines semantic version increments automatically by parsing commit message types and history.
- [Semantic Versioning Systems](https://awesome-repositories.com/f/devops-infrastructure/dependency-management/version-compatibility-management/semantic-versioning-systems.md) — Automatically applies semantic versioning rules to ensure consistent and predictable version increments. ([source](https://semantic-release.gitbook.io/semantic-release/next/undefined.md))
- [CI/CD Orchestration](https://awesome-repositories.com/f/devops-infrastructure/ci-cd-orchestration.md) — Orchestrates complex release workflows by integrating with version control to manage branches and artifact distribution.
- [Continuous Integration Pipelines](https://awesome-repositories.com/f/devops-infrastructure/continuous-integration-pipelines.md) — Integrates automated versioning, changelog generation, and package publishing directly into continuous integration pipelines.
- [CI Pipeline Integrators](https://awesome-repositories.com/f/devops-infrastructure/release-automation/ci-pipeline-integrators.md) — Integrates release automation directly into continuous integration pipelines. ([source](https://semantic-release.gitbook.io/semantic-release/support/node-version.md))
- [Channel Publishers](https://awesome-repositories.com/f/devops-infrastructure/release-automation/release-group-filters/channel-publishers.md) — Supports publishing to specific distribution channels to manage access for different user groups. ([source](https://semantic-release.gitbook.io/semantic-release/beta/usage/workflow-configuration.md))
- [Release Behavior Configurators](https://awesome-repositories.com/f/devops-infrastructure/release-automation/release-group-filters/release-behavior-configurators.md) — Configures release behavior, branch mapping, and plugin sequences through external files to standardize automation.
- [Git Release Automators](https://awesome-repositories.com/f/devops-infrastructure/release-automation/git-release-automators.md) — Updates version numbers in manifests and prepares source code for distribution. ([source](https://semantic-release.gitbook.io/semantic-release/extending/plugins-list.md))
- [Plugin Extensibility](https://awesome-repositories.com/f/devops-infrastructure/release-automation/plugin-extensibility.md) — Provides a highly extensible plugin architecture to support diverse registries and notification channels. ([source](https://semantic-release.gitbook.io/semantic-release/beta/extending/plugins-list.md))
- [Branch-Restricted Releases](https://awesome-repositories.com/f/devops-infrastructure/release-automation/branch-restricted-releases.md) — Restricts automated release processes to execute only when commits are pushed to specific protected branches. ([source](https://semantic-release.gitbook.io/semantic-release/beta/recipes/recipes/gitlab-ci.md))
- [Pre-release Command Executors](https://awesome-repositories.com/f/devops-infrastructure/release-automation/pre-release-command-executors.md) — Validates environment conditions, including authentication tokens and configuration, before initiating a release. ([source](https://semantic-release.gitbook.io/semantic-release/next/extending/plugins-list.md))
- [Release Lifecycle Management](https://awesome-repositories.com/f/devops-infrastructure/release-lifecycle-management.md) — Extends the release process through a plugin-based architecture for custom tasks and workflow integrations.

### Development Tools & Productivity

- [Package Publishing Pipelines](https://awesome-repositories.com/f/development-tools-productivity/package-publishing-pipelines.md) — Automates the entire package publishing pipeline including versioning and artifact distribution. ([source](https://semantic-release.gitbook.io/semantic-release/recipes/ci-configurations/github-actions.md))
- [Commit Standards](https://awesome-repositories.com/f/development-tools-productivity/commit-standards.md) — Enforces structured commit message conventions to categorize changes and drive automated release logic. ([source](https://semantic-release.gitbook.io/semantic-release/beta/undefined.md))
- [Release Changelog Generators](https://awesome-repositories.com/f/development-tools-productivity/project-changelogs/release-changelog-generators.md) — Generates release notes and updates documentation by parsing commit history since the last release. ([source](https://semantic-release.gitbook.io/semantic-release/extending/plugins-list.md))
- [Package Publishing](https://awesome-repositories.com/f/development-tools-productivity/dependency-managers/artifact-distribution-systems/package-publishing.md) — Provides secure credentials to external registries through environment variables to authorize the publication of software artifacts. ([source](https://semantic-release.gitbook.io/semantic-release/beta/usage/ci-configuration.md))
- [Package Provenance Metadata](https://awesome-repositories.com/f/development-tools-productivity/dependency-managers/artifact-distribution-systems/package-publishing/package-provenance-metadata.md) — Creates verifiable metadata for published packages to enhance supply-chain security by confirming the build origin. ([source](https://semantic-release.gitbook.io/semantic-release/recipes/ci-configurations/github-actions.md))
- [Plugin Orchestration](https://awesome-repositories.com/f/development-tools-productivity/plugin-orchestration.md) — Orchestrates the release process by invoking modular plugins in a defined sequence.
- [Release Management](https://awesome-repositories.com/f/development-tools-productivity/release-management.md) — Provides a plugin-based lifecycle that allows hooking into specific stages of the release process. ([source](https://semantic-release.gitbook.io/semantic-release/beta/developer-guide/plugin.md))
- [Release Channel Managers](https://awesome-repositories.com/f/development-tools-productivity/version-control-repository-tools/version-control-managers/repository-utilities/release-channel-managers.md) — Publishes software versions to specific distribution channels based on branch-based logic. ([source](https://semantic-release.gitbook.io/semantic-release/recipes/release-workflow/distribution-channels.md))
- [Pre-release Build Channels](https://awesome-repositories.com/f/development-tools-productivity/release-management/pre-release-build-channels.md) — Creates incremental pre-release versions from dedicated branches for testing future features. ([source](https://semantic-release.gitbook.io/semantic-release/next/usage/workflow-configuration.md))
- [Versioning Sequence Validators](https://awesome-repositories.com/f/development-tools-productivity/version-constraints/versioning-sequence-validators.md) — Ensures logical version progression and prevents conflicts by validating sequences across branches. ([source](https://semantic-release.gitbook.io/semantic-release/beta/usage/workflow-configuration.md))

### Security & Cryptography

- [Identity Federation Providers](https://awesome-repositories.com/f/security-cryptography/identity-federation-providers.md) — Uses OpenID Connect to establish a trust relationship with package registries, eliminating the need for long-lived tokens. ([source](https://semantic-release.gitbook.io/semantic-release/recipes/ci-configurations/github-actions.md))
- [Software Supply Chain Security](https://awesome-repositories.com/f/security-cryptography/software-supply-chain-security.md) — Secures the release process through credential management, provenance attestation, and enforcement of commit standards.
- [Access Authentication](https://awesome-repositories.com/f/security-cryptography/access-authentication.md) — Configures secure access to remote repositories using personal access tokens or SSH keys to enable version tagging. ([source](https://semantic-release.gitbook.io/semantic-release/beta/usage/ci-configuration.md))
- [Remote Repository Authentication](https://awesome-repositories.com/f/security-cryptography/identity-access-management/authentication-strategies/machine-and-protocol-identity/specialized-authentication-protocols/remote-repository-authentication.md) — Configures Git access via personal access tokens or SSH keys to allow the creation of version tags. ([source](https://semantic-release.gitbook.io/semantic-release/next/usage/ci-configuration.md))
- [Credential Security](https://awesome-repositories.com/f/security-cryptography/identity-access-management/credential-lifecycle-management/credential-security.md) — Uses protected environment variables within pipelines to securely authenticate release processes without exposing secrets. ([source](https://semantic-release.gitbook.io/semantic-release/recipes/ci-configurations/gitlab-ci.md))
- [Environment-Scoped Secret Management](https://awesome-repositories.com/f/security-cryptography/security/utilities/secret-and-credential-managers/secret-management-systems/environment-scoped-secret-management.md) — Retrieves sensitive authentication tokens from the host environment to authorize secure registry interactions.
- [Authentication Plugins](https://awesome-repositories.com/f/security-cryptography/authentication-plugins.md) — Provides secure access tokens to plugins through environment variables to enable automated publishing to external registries. ([source](https://semantic-release.gitbook.io/semantic-release/usage/ci-configuration.md))
- [Authentication Security](https://awesome-repositories.com/f/security-cryptography/authentication-security.md) — Provides secure injection of authentication tokens into build environments to authorize package publishing. ([source](https://semantic-release.gitbook.io/semantic-release/recipes/ci-configurations/jenkins-ci.md))
- [SSH Key Management](https://awesome-repositories.com/f/security-cryptography/ssh-key-management.md) — Configures secure access to remote repositories using SSH keys for automated tagging. ([source](https://semantic-release.gitbook.io/semantic-release/beta/recipes/git-hosted-services.md))

### Software Engineering & Architecture

- [Release Branching Strategies](https://awesome-repositories.com/f/software-engineering-architecture/development-methodologies/software-development-lifecycle/release-branching-strategies.md) — Automates versioning and publishing across multiple concurrent release branches by mapping branches to distinct distribution tags. ([source](https://semantic-release.gitbook.io/semantic-release/recipes/release-workflow/maintenance-releases.md))
- [Branch Mappings](https://awesome-repositories.com/f/software-engineering-architecture/development-methodologies/software-development-lifecycle/release-branching-strategies/branch-mappings.md) — Enables mapping of specific git branches to distinct distribution channels for controlled release tracks. ([source](https://semantic-release.gitbook.io/semantic-release/usage/workflow-configuration.md))
- [Hook Resolution Lifecycles](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/extensibility/plugin-architectures/hook-event-orchestration/hook-resolution-lifecycles.md) — Provides standardized hooks for plugins to intercept and modify the release flow.
- [Release Management](https://awesome-repositories.com/f/software-engineering-architecture/release-management.md) — Manages concurrent release streams by associating specific git branches with distinct version tracks.
- [Release & Versioning](https://awesome-repositories.com/f/software-engineering-architecture/project-management-governance/project-governance/release-versioning.md) — Enables patching of older project versions by isolating releases to specific maintenance branches. ([source](https://semantic-release.gitbook.io/semantic-release/next/usage/workflow-configuration.md))

### User Interface & Experience

- [Workflow Extenders](https://awesome-repositories.com/f/user-interface-experience/customizable-workspaces/workflow-extenders.md) — Integrates custom logic into the release process by defining a sequence of plugins that execute specific tasks. ([source](https://semantic-release.gitbook.io/semantic-release/beta/usage/configuration.md))
