@phojie/changegear v1.0.1
changegear
Generate Beautiful Changelogs using Conventional Commits
Quick Start
Generate a changelog in Markdown format and display in the console:
npx changegear@latestGenerate a changelog, bump the version in package.json and update CHANGELOG.md (without commit):
npx changegear@latest --bumpBump the version, update CHANGELOG.md and make a git commit and tag:
npx changegear@latest --releaseCLI Usage
npx changegear@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.
- --clean: Determine if the working directory is clean and if it is not clean, exit.
- --output: Changelog file name to create or update. Defaults to- CHANGELOG.mdand resolved relative to dir. Use- --no-outputto write to console only.
- --bump: Determine semver change and update version in- package.json.
- --release. Bumps version in- package.jsonand creates commit and git tags using local- git. You can disable commit using- --no-commitand tag using- --no-tag. You can enable the automatic push of the new tag and release commit to your git repository by adding- --push.
- --publish. Publishes package as a new version on- npm. You will need to set authorisation tokens separately via- .npmrcor environment variables.
- --publishTagUse custom npm tag for publishing (Default is- latest)
- --nameSuffix: Adds suffix to package name (Example:- --nameSuffix canaryrenames- footo- foo-canary)
- --versionSuffix: Adds suffix to package version. When set without value or to- true, uses date + commit hash as commit
- --canary. Shortcut to- --bump --versionSuffix(- --nameSuffixwill be also added if arg has a string value).
- -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.
changegear gh release
Changelogen has built-in functionality to sync with with Github releases.
In order to manually sync a release, you can use changegear gh release. It will parse current CHANGELOG.md from current repository (local, then remote) and create or update releases.
Usage:
npx changegear@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, changegear 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.
2 years ago