Semantic-release plugin to generate changelog content with conventional-changelog
Produce release notes from conventional commits while normalizing repository URLs across git/ssh/git+http inputs and tolerating AWS CodeCommit shorthand. Group commits by their conventional types (for example, Bug Fixes and Features) and include compare links whenever both release tags are provided.
{hash: "abc111", message: "fix(parser): accept ssh urls"} and {hash: "def222", message: "feat(output): add badges"} plus tags v1.0.0 → v1.1.0, generated notes include a compare link https://github.com/octocat/release-notes/compare/v1.0.0...v1.1.0 and each entry links commits using the https host (for example https://github.com/octocat/release-notes/commit/abc111) even when the repository URL is git@github.com:octocat/release-notes.git. @test{hash: "aa11bb", message: "fix(core): repair logic"} and {hash: "cc22dd", message: "feat(core): add option"} with tags v2.3.0 → v2.4.0 and repository URL git+http://bitbucket.org/team/project.git, commit and compare links stay on http://bitbucket.org/team/project/... (no automatic https upgrade) while grouping commits into type-based sections. @test{hash: "9f9f9f", message: "fix(api): stabilize"} and {hash: "1a2b3c", message: "feat(api): expose endpoint"} and tags v0.9.0 → v1.0.0, using repository URL codecommit::eu-central-1://profile@repository-name still produces release notes without throwing; commit hashes appear in the entries even if link targets cannot be built for the host. @test@generates
/**
* Builds release notes from commit history and repository metadata.
*
* @param {Object} input
* @param {string} input.repositoryUrl - Git repository URL that may be https, ssh, git+, or CodeCommit shorthand.
* @param {string} input.previousTag - Tag or git ref representing the last release.
* @param {string} input.currentTag - Tag or git ref representing the current release.
* @param {Array<{hash: string, message: string}>} input.commits - Commits to include, using conventional commit messages.
* @returns {Promise<string>} release notes markdown.
*/
export async function generateReleaseNotes(input);Generates changelog text from conventional commit data and repository metadata.
tessl i tessl/npm-semantic-release--release-notes-generator@14.0.0docs
evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
scenario-10