CtrlK
CommunityDocumentationLog inGet started
Tessl Logo

tessl/npm-semantic-release--release-notes-generator

Semantic-release plugin to generate changelog content with conventional-changelog

51%

Overall

Evaluation51%

0.78x

Agent success when using this tile

Overview
Eval results
Files

task.mdevals/scenario-7/

Custom Release Notes Formatter

Generate customer-facing release notes with bespoke formatting while relying on the dependency's customizable changelog writer. Commits follow the type(scope): subject convention and include a hash for commit links.

Capabilities

Format selected commit types

  • Given repositoryUrl https://example.com/org/repo, lastTag v1.0.0, nextTag v1.1.0, and commits fix(parser): handle braces (#123), feat(ui): add filters (JIRA-9), and chore: update deps, the notes include a compare link (https://example.com/org/repo/compare/v1.0.0...v1.1.0), contain sections titled Customer Fixes and Customer Features in that order, sort entries inside each section alphabetically by subject, and omit the chore commit entirely. @test

Annotate references with links

  • For a commit fix(api): return payload (#321) the corresponding entry links the short hash to https://example.com/org/repo/commit/<hash> and appends closes #321 where #321 links to https://example.com/org/repo/issues/321; for a commit feat(reports): add exports (JIRA-77) the reference JIRA-77 appears as plain text after the subject. @test

Surface formatter failures

  • When any commit subject contains [skip-notes], rendering stops and an error with the message Skip notes for flagged commit is thrown all the way to the caller without being wrapped or replaced. @test

Implementation

@generates

API

export interface CommitInput {
  hash: string;
  message: string;
}

export interface ReleaseContext {
  repositoryUrl: string;
  lastTag: string;
  nextTag: string;
  commits: CommitInput[];
}

export function buildReleaseNotes(context: ReleaseContext): Promise<string>;

Dependencies { .dependencies }

@semantic-release/release-notes-generator { .dependency }

Generates release notes from commit metadata with customizable formatting hooks.

tessl i tessl/npm-semantic-release--release-notes-generator@14.0.0

tile.json