@philippdormann/changelogen v2.0.0
changelogen
Generate Beautiful Changelogs using Conventional Commits
Quick Start
Generate a changelog in Markdown format and display in the console:
npx changelogen@latestGenerate a changelog, bump the version in package.json and update CHANGELOG.md (without commit):
npx changelogen@latest --bumpBump the version, update CHANGELOG.md and make a git commit and tag:
npx changelogen@latest --releaseCLI Usage
npx changelogen@latest [...args] [--dir <dir>]Arguments:
--from: Start commit reference. When not provided, latest git tag will be used as default.--to: End commit reference. When not provided, latest commit in HEAD will be used as default.--dir: Path to git repository. When not provided, current working directory will be used as as default.--output: Changelog file name to create or update. Defaults toCHANGELOG.mdand resolved relative to dir. Use--no-outputto write to console only.--bump: Determine semver change and update version inpackage.json.--release. Bumps version inpackage.jsonand creates commit and git tags using localgit. You can disable commit using--no-commitand tag using--no-tag.-r: Release as specific version.--major: Bump as a semver-major version--minor: Bump as a semver-minor version--patch: Bump as a semver-patch version--premajor: Bump as a semver-premajor version, can set id with string.--preminor: Bump as a semver-preminor version, can set id with string.--prepatch: Bump as a semver-prepatch version, can set id with string.--prerelease: Bump as a semver-prerelease version, can set id with string.
changelogen gh release
Changelogen has built-in functionality to sync with with Github releases.
In order to manually sync a release, you can use changelogen gh release. It will parse current CHANGELOG.md from current repository (local, then remote) and create or update releases.
Usage:
npx changelogen@latest gh release [all|versions...] [--dir] [--token]To enable this integration, make sure there is a valid repository field in package.json or repo is set in .changelogenrc.
By default in unauthenticated mode, changelogen will open a browser link to make manual release. By providing github token, it can be automated.
- Using environment variables or
.env, useCHANGELOGEN_TOKENS_GITHUBorGITHUB_TOKENorGH_TOKEN - Using CLI args, use
--token <token> - Using global configuration, put
tokens.github=<token>inside~/.changlogenrc - Using GitHub CLI token when authenticated with
gh auth login
Configuration
Configuration is loaded by unjs/c12 from cwd. You can use either changelog.config.json, changelog.config.{ts,js,mjs,cjs}, .changelogrc or use the changelog field in package.json.
See ./src/config.ts for available options and defaults.
💻 Development
- Clone this repository
- Enable Corepack using
corepack enable(usenpm i -g corepackfor Node.js < 16.10) - Install dependencies using
pnpm install - Run interactive tests using
pnpm dev
License
Made with 💛
Published under MIT License.