GIT-GENERATE-CHANGELOG(1)
π GIT-GENERATE-CHANGELOG(1) β¨
okay so bestie, you know that manual page git-generate-changelog? yeah. we're reading it together. grab a snack π
πΈ NAME πΈ
git-generate-changelog β generate a changelog straight out of GitHub, no cap
π¦ SYNOPSIS π¦
git generate-changelog [-h|--help] [-u|--user] [-p|--project]
π DESCRIPTION π
It automatically generates a changelog from your tags, your issues, your labels and your pull requests on GitHub. That's it. That's the whole vibe. Literally it does the tedious part for you and you get to be the main character π
β¨ OPTIONS β¨
okay this is the long part, stay with me, we're going through ALL of them π
-u,--user USERβ the username of whoever owns the target GitHub repo. the owner. the account-haver. π-p,--project PROJECTβ the name of the project on GitHub.-t,--token TOKENβ ngl you need a GitHub token if you wanna make more than 50 requests per hour (yes, 50, that's the cap π). you can generate one right here:https://github.com/settings/tokens/new-f,--date-format FORMATβ how dates get formatted. default is%Y-%m-%d.-o,--output NAMEβ the output file. wanna print to STDOUT instead? just use blank as the path, slay. default isCHANGELOG.md.-b,--base NAMEβ optional base file to append the generated changes to. default isHISTORY.md.
π the label options π
--summary-label LABELβ custom label for the release summary section. default is"".--breaking-label LABELβ custom label for the breaking changes section. default is"Breaking changes:".--enhancement-label LABELβ custom label for the enhancements section. default is"Implemented enhancements:".--bugs-label LABELβ custom label for the bug-fixes section. default is"Fixed bugs:".--deprecated-label LABELβ custom label for the deprecated section. default is"Deprecated:".--removed-label LABELβ custom label for the removed section. default is"Removed:".--security-label LABELβ custom label for the security section. default is"Security:".--issues-label LABELβ custom label for the closed-issues section. default is"Closed issues:".--header-label LABELβ custom header label. default is"# Changelog".--pr-label LABELβ custom label for the pull requests section. default is"Merged pull requests:".--unreleased-label LABELβ custom label for the unreleased closed issues section. default is"Unreleased:".
π«Ά building your own sections π«Ά
--configure-sections HASH, STRINGβ define your own set of sections, and this overrides all the default sections. icon behaviour, honestly.--add-sections HASH, STRINGβ add new sections but keep the default ones too. the friendly version π
π§ the rest of the options π§
--front-matter JSONβ add YAML front matter. it's formatted as JSON because it's easier to add on the command line.--[no-]issuesβ include closed issues in the changelog. default istrue.--[no-]issues-wo-labelsβ include closed issues without labels. default istrue.--[no-]pr-wo-labelsβ include pull requests without labels. default istrue.--[no-]pull-requestsβ include pull requests. default istrue.--[no-]filter-by-milestoneβ use the milestone to detect when an issue was resolved. default istrue.--[no-]issues-of-open-milestonesβ include issues of open milestones. default istrue.--[no-]authorβ add the author of the pull request at the end. default istrue.--usernames-as-github-loginsβ use GitHub tags instead of Markdown links for the author of an issue or pull-request. π·οΈ--unreleased-onlyβ generate the log from unreleased closed issues only.--[no-]unreleasedβ add unreleased closed issues to the log. default istrue.--[no-]compare-linkβ include the compare link (Full Changelog) between the older version and the newer version. default istrue.--include-labels x,y,zβ of the labeled issues, only the ones with these specified labels get included.--exclude-labels x,y,zβ issues with these labels get excluded from the changelog. default isduplicate,question,invalid,wontfix.--summary-labels x,y,zβ issues with these labels get added to a new section called "Release Summary". that section displays only the body of the issues. default isRelease summary,release-summary,Summary,summary.--breaking-labels x,y,zβ issues with these labels get added to a new section called "Breaking changes". default isbackwards-incompatible,breaking.--enhancement-labels x,y,zβ issues with these labels land in the "Implemented enhancements" section. default isenhancement,Enhancement.--bug-labels x,y,zβ issues with these labels land in the "Fixed bugs" section. default isbug,Bug.--deprecated-labels x,y,zβ issues with these labels land in a section called "Deprecated". default isdeprecated,Deprecated.--removed-labels x,y,zβ issues with these labels land in a section called "Removed". default isremoved,Removed.--security-labels x,y,zβ issues with these labels land in a section called "Security fixes". default issecurity,Security.--issue-line-labels x,y,zβ these labels get shown in brackets next to each matching issue. use"ALL"to show every label. default is[].--exclude-tags x,y,zβ the changelog will exclude these tags.--exclude-tags-regex REGEXβ slap a regular expression on the tag names so they can be excluded, like for example:--exclude-tags-regex ".*+\d{1,}".--since-tag xβ the changelog will start after this tag.--due-tag xβ the changelog will end before this tag.--since-commit xβ fetch only commits after this time, e.g."2017-01-01 10:00:00".--max-issues NUMBERβ the maximum number of issues to fetch from GitHub. default is unlimited.--release-url URLβ the URL to point to for release links, in printf format (with the tag as the variable).--github-site URLβ the Enterprise GitHub site where your project is hosted.--github-api URLβ the enterprise endpoint to use for your GitHub API.--simple-listβ create a simple list from issues and pull requests. default isfalse.--future-release RELEASE-VERSIONβ put the unreleased changes in the specified release number.--release-branch RELEASE-BRANCHβ limit pull requests to the release branch, likemasterorrelease.--http-cacheβ use HTTP Cache to cache GitHub API requests (useful for large repos). default istrue.--[no-]cache-file CACHE-FILEβ filename to use for the cache. default isgithub-changelog-http-cachein a temporary directory.--cache-log CACHE-LOGβ filename to use for the cache log. default isgithub-changelog-logger.login a temporary directory.--ssl-ca-file PATHβ path to thecacert.pemfile. default is a bundledlib/github_changelog_generator/ssl_certs/cacert.pem. it respectsSSL_CA_PATH. π--require file1.rb,file2.rbβ paths to the Ruby file(s) to require before generating the changelog.--[no-]verboseβ run verbosely. default istrue. it will not shut up (affectionate).-v,--versionβ print the version number.-h,--helpβ displays Help.
π REBASED COMMITS π
okay this is the niche lore and it's actually so cool. GitHub pull requests that got merged, but whose merge commit SHA got modified through rebasing, cherry picking, or some other method β those can still be tracked via a special comment on GitHub. so: git commit SHAs found in comments on pull requests that match the regular expression /rebased commit: ([0-9a-f]{40})/i will be used in place of the original merge SHA when they get added to the changelog. periodt π
π EXAMPLES π
okay so fun fact: on this page this heading exists and thenβ¦ there's nothing under it. no examples. not a single one. the audacity is honestly iconic π
π AUTHOR π
Written by Petr Korolev sky4winder@gmail.com β we stan π«Ά
π REPORTING BUGS π
found a bug? go tell on them right here:
https://github.com/github-changelog-generator/github-changelog-generator/issues
β SEE ALSO β
https://github.com/github-changelog-generator/github-changelog-generator/
and that's the whole page bestie!! source/version is the git-generate-changelog manual, and it's dated May 2020 β so yeah, it's giving slightly vintage, but it still ate. mwah ππ§ββοΈπ
π¦ where this page comes from
- nixos 26.05: github_changelog_generator 1.16.4
- nixpkgs unstable: github_changelog_generator 1.16.4
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms