Vibeleaderboard
Index / tool
Visit github.com
Category
Developer Tools
Rank

Previous survey · No. 811 ·

Pricing
Open Source
Type
TOOL
Builder
nodejs
GitHub
237 stars
Latest release
v5.0.4
Date

About

Generate a clean CHANGELOG.md from your git log — the tool the Node.js core team uses for release notes.

What it does

It reads a repository’s commit history, chooses a range from tags or explicit references, and turns each commit into structured release text. It can group entries by commit-message prefix, suppress release commits, attach authors and pull requests, and enrich entries with semantic-version or vulnerability labels from GitHub.

Why it's ranked here

This is a focused release-note building block with unusually practical controls. Multiple output styles, explicit history boundaries, grouping, release-commit filtering, custom commit links, and pull-request discovery cover both routine releases and older repositories. Its conventions remain strongly shaped by Node.js and GitHub, so it fits best where those assumptions are welcome.

What's good

The tool preserves useful provenance: abbreviated commit identifiers, authors, commit links, and pull-request links. Markdown output escapes punctuation and tricky backtick cases. Semantic-version and vulnerability labels receive visible treatment. Users can process all history, select both range endpoints, reverse normal output, group conventional-style prefixes, or substitute commit-link templates for non-GitHub hosting.

Tradeoffs

GitHub enrichment requires authentication and network access, with repository scope requested by the authentication code. Pull-request discovery only considers associated merged requests returned among the first four results. Automatic repository detection depends on package metadata and otherwise assumes the Node.js repository. Output goes to standard output, so saving or merging release notes remains external workflow work.

How to use it well

Use it for projects whose commit messages carry meaningful prefixes and whose releases need traceable, human-editable notes. Pin both references in automation for repeatable ranges, request Markdown for publication, and enable pull-request discovery only when metadata is missing. Treat the result as source material for release notes. It does not decide release policy or update a release document itself.

Technical notes+

package.json defines an ES module npm package, a global-preferred changelog-maker binary backed by changelog-maker.js, and three exported library subpaths. commit-to-list.js streams git log through gitexec, split2, and commit-stream, while process-commits.js handles enrichment, grouping, formatting, reversal, quiet mode, and stdout. collect-commit-labels.js uses ghissues with an async queue of 15; find-matching-prs.js uses GitHub GraphQL with the same concurrency and selects the first merged pull request among four associated results. commit-to-output.js implements simple, plaintext, Markdown, message-only, and SHA rendering, including escaping, semver labels, CVE identifiers, reverts, and custom URL placeholders. format.js normalizes Markdown through unified and remark. test.js exercises the CLI through child processes, including ranges, grouping, filtering, escaping, pull-request matching, conventional prefixes, and CVE output.

Observed

License
MIT
Primary language
JavaScript using ES modules
Packaging
npm package configured with a command-line binary and global installation preference
Install surface
Documented global installation through npm
Interfaces
Command-line interface plus three exported library subpaths
Output formats
Simple, Markdown, plaintext, message-only, and abbreviated commit identifiers
GitHub integration
Authenticated issue-label lookup and optional GraphQL pull-request discovery
Test structure
A single top-level test.js file exercises the command-line interface with tap

Read from README.md, package.json, auth.js, test.js, format.js, groups.js, reverts.js, group-commits.js, commit-to-list.js, changelog-maker.js, process-commits.js, commit-to-output.js, find-matching-prs.js, collect-commit-labels.js, LICENSE.md.

What it can do

  • Generate changelog from git log

    Git repository historyCHANGELOG.md file

  • Parse commit messages

    Git commit messagesStructured changelog entries

  • Format release notes

    Git commits and metadataClean formatted release notes

  • Extract version information

    Git tags and commitsVersion-organized changelog sections

  • Filter relevant commits

    Raw git log dataCurated list of changelog-worthy commits

Tags

changeloggitreleasenodejs

Tech Stack

Node.js

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.