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-2/

Release Notes Builder

Create a small module that turns a set of conventional commit entries and release metadata into a markdown changelog suitable for publishing.

Capabilities

Generate grouped notes

  • Given feature and bug-fix style commits plus release context (previous tag v1.0.0, next tag v1.1.0, repository URL https://github.com/acme/api.git), return markdown that contains "Features" and "Bug Fixes" sections with bullet points including scope and subject, renders referenced issue #12 as a hyperlink, and includes a compare link between the two tags. @test

Host-aware links

  • When the repository URL is https://gitlab.example.com/team/service.git, produce commit and issue links that follow that host's URL structure and include a compare link using the host's compare pattern. @test

Custom section labels

  • When provided writer configuration overrides section labels (e.g., features labeled "Enhancements", fixes labeled "Patches") and introduces a performance commit, output honors the overridden labels/order and skips revert commits that negate earlier entries. @test

Implementation

@generates

API

/**
 * Generate release notes markdown from conventional commit metadata.
 *
 * @param {Array<Commit>} commits - Parsed commit objects including message, type, scope, hash, and references.
 * @param {ReleaseContext} context - Release metadata with repository URL and tag information.
 * @param {object} [options] - Optional configuration including changelog writer overrides and host/link options.
 * @returns {Promise<string>} Markdown changelog for the release.
 */
export async function generateReleaseNotes(commits, context, options = {});

/** @typedef {{
 *   hash: string,
 *   message: string,
 *   type?: string,
 *   scope?: string,
 *   references?: Array<{ issue: string, action?: string }>,
 *   revert?: { header: string }
 * }} Commit */

/** @typedef {{
 *   previousTag?: string,
 *   nextTag?: string,
 *   repositoryUrl: string,
 *   host?: string,
 *   owner?: string,
 *   repository?: string
 * }} ReleaseContext */

Dependencies { .dependencies }

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

Transforms commit lists and release context into markdown release notes.

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

tile.json