Command-line interface for creating GitHub releases from git metadata using conventional changelog conventions.
Executable command-line tool for creating GitHub releases.
# Global installation
npm install -g conventional-github-releaser
# Usage
conventional-github-releaser [options]You can supply your auth token via flag or environment variable:
# Using flag
conventional-github-releaser -t your-github-token -p angular
# Using environment variable (recommended)
export CONVENTIONAL_GITHUB_RELEASER_TOKEN=your-github-token
conventional-github-releaser -p angularToken Requirements: Create a GitHub Personal Token with public_repo or repo scope (for private repos).
# URL of your GitHub provider (default: https://api.github.com/)
-u, --url <url>
# Your GitHub auth token
-t, --token <token>
# Preset name (required for most usage)
-p, --preset <preset>
# Path to package.json file (default: closest package.json from cwd)
-k, --pkg <path>
# Number of releases to generate (default: 1, 0 for all)
-r, --release-count <number>
# Enable verbose output for debugging (default: false)
-v, --verbose
# Path to config script
-n, --config <path>
# Path to context javascript file
-c, --context <path>
# Publish as draft release (default: false)
-d, --draftSupported conventional changelog presets:
angular - Angular commit convention (most common)atom - Atom editor commit conventioncodemirror - CodeMirror commit conventionember - Ember.js commit conventioneslint - ESLint commit conventionexpress - Express.js commit conventionjquery - jQuery commit conventionjscs - JSCS commit conventionjshint - JSHint commit conventionUsage Examples:
# Create release using Angular preset
conventional-github-releaser -p angular
# Generate all historical releases (first time use)
conventional-github-releaser -p angular -r 0
# Create draft release for review
conventional-github-releaser -p angular -d
# Verbose output for debugging
conventional-github-releaser -p angular -v
# Use custom GitHub enterprise URL
conventional-github-releaser -p angular -u https://github.company.com/api/v3/Create a custom configuration file to override default behavior:
// config.js
module.exports = {
gitRawCommitsOpts: {
// Custom git options
},
parserOpts: {
// Custom parser options
},
writerOpts: {
// Custom writer options
}
};Usage:
conventional-github-releaser -p angular -n ./config.jsDefine template variables for release notes:
// context.js
module.exports = {
owner: 'myorg',
repository: 'myrepo',
customVar: 'value'
};Usage:
conventional-github-releaser -p angular -c ./context.jsRecommended Workflow:
package.jsonpackage.json changesconventional-github-releaserPackage.json Integration:
{
"scripts": {
"github-release": "conventional-github-releaser -p angular",
"github-release-all": "conventional-github-releaser -p angular -r 0"
}
}The CLI respects these environment variables:
"No semver tags found": Ensure your repository has at least one semver-formatted git tag (e.g., v1.0.0).
Authentication errors: Verify your token has correct permissions (public_repo or repo scope).
Empty releases: Check that your commits follow the conventional format expected by your chosen preset.