semantic-release-pr-fix

1.3.0 • Public • Published

semantic-release-pr-fix

A wrapper for commit-analyzer and release-notes-generator that handles Azure DevOps PR merge commits.

npm latest version

Problem

When using semantic-release with Azure DevOps repositories, merged PRs have a prefix added to the commit message: Merged PR 1234: original message. This prevents semantic-release from properly detecting release types because it expects semantic commit messages to start with prefixes like feat:, fix:, etc.

This wrapper strips the Azure DevOps PR prefix from commit messages before passing them to the commit-analyzer, allowing semantic-release to properly parse your commits.

Install

npm install -D semantic-release-pr-fix

Usage

In your .releaserc.json or release.config.js file:

{
  "plugins": [
    ["semantic-release-pr-fix", {
      "commitAnalyzerConfig": {
        "preset": "angular",
        "parserOpts": {
          "noteKeywords": ["BREAKING CHANGE", "BREAKING CHANGES", "BREAKING"]
        }
      },
      "notesGeneratorConfig": {
        "preset": "angular",
        "writerOpts": {
          "commitsSort": ["subject", "scope"]
        }
      }
    }],
    "@semantic-release/npm",
    "@semantic-release/github"
  ]
}

This plugin replaces both @semantic-release/commit-analyzer and @semantic-release/release-notes-generator by wrapping them with Azure DevOps PR merge commit compatibility.

Configuration

The plugin supports the following configuration options:

Option Description
commitAnalyzerConfig Configuration object passed directly to @semantic-release/commit-analyzer. See commit-analyzer documentation for available options.
notesGeneratorConfig Configuration object passed directly to @semantic-release/release-notes-generator. See release-notes-generator documentation for available options. Set to false to disable release notes generation.

Disabling Release Notes Generation

If you want to use a different release notes generator plugin, you can disable the built-in notes generation:

{
  "plugins": [
    ["semantic-release-pr-fix", {
      "commitAnalyzerConfig": {
        "preset": "angular"
      },
      "notesGeneratorConfig": false
    }],
    "@semantic-release/release-notes-generator",
    "@semantic-release/npm"
  ]
}

How it works

The plugin processes each commit message and removes the Azure DevOps PR merge prefix (Merged PR xxxx:) before passing the commits to the standard semantic-release plugins. This allows your semantic commit messages to be properly recognized even when they're part of merged PRs in Azure DevOps.

It handles both version determination (via commit-analyzer) and release notes generation (via release-notes-generator), ensuring consistent processing of PR merge commits throughout the semantic-release pipeline.

Package Sidebar

Install

npm i semantic-release-pr-fix

Weekly Downloads

36

Version

1.3.0

License

MIT

Unpacked Size

18 kB

Total Files

4

Last publish

Collaborators

  • layzacs